diff --git a/.codeqlmanifest.json b/.codeqlmanifest.json index fd009b2b1ff..687811d78d7 100644 --- a/.codeqlmanifest.json +++ b/.codeqlmanifest.json @@ -6,6 +6,7 @@ "*/ql/examples/qlpack.yml", "cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/tainted/qlpack.yml", "javascript/ql/experimental/adaptivethreatmodeling/lib/qlpack.yml", + "javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/qlpack.yml", "javascript/ql/experimental/adaptivethreatmodeling/src/qlpack.yml", "csharp/ql/campaigns/Solorigate/lib/qlpack.yml", "csharp/ql/campaigns/Solorigate/src/qlpack.yml", diff --git a/.gitattributes b/.gitattributes index e705e8f40d9..559365ce63d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -50,4 +50,9 @@ *.pdb -text java/ql/test/stubs/**/*.java linguist-generated=true -java/ql/test/experimental/stubs/**/*.java linguist-generated=true \ No newline at end of file +java/ql/test/experimental/stubs/**/*.java linguist-generated=true + +# Generated test files - these are synced from the standard JavaScript libraries using +# `javascript/ql/experimental/adaptivethreatmodeling/test/update_endpoint_test_files.py`. +javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/autogenerated/**/*.js linguist-generated=true -merge +javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/autogenerated/**/*.ts linguist-generated=true -merge diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index a381c9f186c..312feb3359b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -27,6 +27,11 @@ jobs: pull-requests: read steps: + - name: Setup dotnet + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 6.0.101 + - name: Checkout repository uses: actions/checkout@v2 @@ -51,7 +56,7 @@ jobs: # uses a compiled language - run: | - dotnet build csharp + dotnet build csharp /p:UseSharedCompilation=false - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@main diff --git a/.github/workflows/js-ml-tests.yml b/.github/workflows/js-ml-tests.yml new file mode 100644 index 00000000000..ad485645737 --- /dev/null +++ b/.github/workflows/js-ml-tests.yml @@ -0,0 +1,67 @@ +name: JS ML-powered queries tests + +on: + push: + paths: + - "javascript/ql/experimental/adaptivethreatmodeling/**" + - .github/workflows/js-ml-tests.yml + branches: + - main + - "rc/*" + pull_request: + paths: + - "javascript/ql/experimental/adaptivethreatmodeling/**" + - .github/workflows/js-ml-tests.yml + +defaults: + run: + working-directory: javascript/ql/experimental/adaptivethreatmodeling + +jobs: + qlformat: + name: Check QL formatting + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: ./.github/actions/fetch-codeql + + - name: Check QL formatting + run: | + find . "(" -name "*.ql" -or -name "*.qll" ")" -print0 | \ + xargs -0 codeql query format --check-only + + qlcompile: + name: Check QL compilation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: ./.github/actions/fetch-codeql + + - name: Check QL compilation + run: | + codeql query compile \ + --check-only \ + --ram 5120 \ + --additional-packs "${{ github.workspace }}" \ + --threads=0 \ + -- \ + lib modelbuilding src + + qltest: + name: Run QL tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: ./.github/actions/fetch-codeql + + - name: Run QL tests + run: | + codeql test run \ + --threads=0 \ + --ram 5120 \ + --additional-packs "${{ github.workspace }}" \ + -- \ + test diff --git a/.github/workflows/mad_modelDiff.yml b/.github/workflows/mad_modelDiff.yml new file mode 100644 index 00000000000..a4b9169b44e --- /dev/null +++ b/.github/workflows/mad_modelDiff.yml @@ -0,0 +1,103 @@ +name: Models as Data - Diff + +on: + workflow_dispatch: + inputs: + projects: + description: "The projects to generate models for" + required: true + default: '["netty/netty"]' + pull_request: + branches: + - main + paths: + - "java/ql/src/utils/model-generator/**/*.*" + - ".github/workflows/mad_modelDiff.yml" + +permissions: + contents: read + +jobs: + model-diff: + name: Model Difference + runs-on: ubuntu-latest + if: github.repository == 'github/codeql' + strategy: + matrix: + slug: ${{fromJson(github.event.inputs.projects || '["apache/commons-codec", "apache/commons-io", "apache/commons-beanutils", "apache/commons-logging", "apache/commons-fileupload", "apache/commons-lang", "apache/commons-validator", "apache/commons-csv", "apache/dubbo"]' )}} + steps: + - name: Clone github/codeql from PR + uses: actions/checkout@v2 + if: github.event.pull_request + with: + path: codeql-pr + - name: Clone github/codeql from main + uses: actions/checkout@v2 + with: + path: codeql-main + ref: main + - uses: ./codeql-main/.github/actions/fetch-codeql + - name: Download database + env: + SLUG: ${{ matrix.slug }} + run: | + set -x + mkdir lib-dbs + SHORTNAME=${SLUG//[^a-zA-Z0-9_]/} + projectId=`curl -s https://lgtm.com/api/v1.0/projects/g/${SLUG} | jq .id` + curl -L "https://lgtm.com/api/v1.0/snapshots/$projectId/java" -o "$SHORTNAME.zip" + unzip -q -d "${SHORTNAME}-db" "${SHORTNAME}.zip" + mkdir "lib-dbs/$SHORTNAME/" + mv "${SHORTNAME}-db/"$(ls -1 "${SHORTNAME}"-db)/* "lib-dbs/${SHORTNAME}/" + - name: Generate Models (PR and main) + run: | + set -x + mkdir tmp-models + MODELS=`pwd`/tmp-models + DATABASES=`pwd`/lib-dbs + + analyzeDatabaseWithCheckout() { + QL_VARIANT=$1 + DATABASE=$2 + cd codeql-$QL_VARIANT + SHORTNAME=`basename $DATABASE` + python java/ql/src/utils/model-generator/GenerateFlowModel.py $DATABASE $MODELS/${SHORTNAME}.qll + mv $MODELS/${SHORTNAME}.qll $MODELS/${SHORTNAME}Generated_${QL_VARIANT}.qll + cd .. + } + + for d in $DATABASES/*/ ; do + ls -1 "$d" + + analyzeDatabaseWithCheckout "main" $d + if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]] + then + analyzeDatabaseWithCheckout "pr" $d + fi + done + - name: Install diff2html + if: github.event.pull_request + run: | + npm install -g diff2html-cli + - name: Generate Model Diff + if: github.event.pull_request + run: | + set -x + MODELS=`pwd`/tmp-models + ls -1 tmp-models/ + for m in $MODELS/*_main.qll ; do + t="${m/main/"pr"}" + basename=`basename $m` + name="diff_${basename/_main.qll/""}" + (diff -w -u $m $t | diff2html -i stdin -F $MODELS/$name.html) || true + done + - uses: actions/upload-artifact@v2 + with: + name: models + path: tmp-models/*.qll + retention-days: 20 + - uses: actions/upload-artifact@v2 + with: + name: diffs + path: tmp-models/*.html + retention-days: 20 diff --git a/.github/workflows/mad_regenerate-models.yml b/.github/workflows/mad_regenerate-models.yml new file mode 100644 index 00000000000..03e64816f9d --- /dev/null +++ b/.github/workflows/mad_regenerate-models.yml @@ -0,0 +1,62 @@ +name: Regenerate framework models + +on: + workflow_dispatch: + schedule: + - cron: "30 2 * * *" + pull_request: + branches: + - main + paths: + - ".github/workflows/mad_regenerate-models.yml" + +jobs: + regenerate-models: + runs-on: ubuntu-latest + strategy: + matrix: + # placeholder required for each axis, excluded below, replaced by the actual combinations (see include) + slug: ["placeholder"] + ref: ["placeholder"] + include: + - slug: "apache/commons-io" + ref: "8985de8fe74f6622a419b37a6eed0dbc484dc128" + exclude: + - slug: "placeholder" + ref: "placeholder" + steps: + - name: Clone self (github/codeql) + uses: actions/checkout@v2 + - name: Setup CodeQL binaries + uses: ./.github/actions/fetch-codeql + - name: Clone repositories + uses: actions/checkout@v2 + with: + path: repos/${{ matrix.ref }} + ref: ${{ matrix.ref }} + repository: ${{ matrix.slug }} + - name: Build database + env: + SLUG: ${{ matrix.slug }} + REF: ${{ matrix.ref }} + run: | + mkdir dbs + cd repos/${REF} + SHORTNAME=${SLUG//[^a-zA-Z0-9_]/} + codeql database create --language=java ../../dbs/${SHORTNAME} + - name: Regenerate models in-place + env: + SLUG: ${{ matrix.slug }} + run: | + SHORTNAME=${SLUG//[^a-zA-Z0-9_]/} + java/ql/src/utils/model-generator/RegenerateModels.py "${SLUG}" dbs/${SHORTNAME} + - name: Stage changes + run: | + find java -name "*.qll" -print0 | xargs -0 git add + git status + git diff --cached > models.patch + - uses: actions/upload-artifact@v2 + with: + name: patch + path: models.patch + retention-days: 7 diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 9eaadb9df27..16a675427d2 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -189,4 +189,11 @@ jobs: uses: github/codeql-action/analyze@erik-krogh/ql with: category: "ql-for-ql-${{ matrix.folder }}" + - name: Copy sarif file to CWD + run: cp ../results/ql.sarif ./${{ matrix.folder }}.sarif + - name: Sarif as artifact + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.folder }}.sarif + path: ${{ matrix.folder }}.sarif diff --git a/.github/workflows/ql-for-ql-dataset_measure.yml b/.github/workflows/ql-for-ql-dataset_measure.yml index 42100be5178..c103f64ede9 100644 --- a/.github/workflows/ql-for-ql-dataset_measure.yml +++ b/.github/workflows/ql-for-ql-dataset_measure.yml @@ -17,7 +17,7 @@ jobs: CODEQL_THREADS: 4 # TODO: remove this once it's set by the CLI strategy: matrix: - repo: + repo: - github/codeql - github/codeql-go runs-on: ubuntu-latest @@ -35,7 +35,7 @@ jobs: ~/.cargo/registry ~/.cargo/git ql/target - key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('ql/**/Cargo.lock') }} - name: Build Extractor run: cd ql; env "PATH=$PATH:`dirname ${CODEQL}`" ./create-extractor-pack.sh env: diff --git a/.github/workflows/ql-for-ql-tests.yml b/.github/workflows/ql-for-ql-tests.yml index 5037315392b..2e5eb845ed5 100644 --- a/.github/workflows/ql-for-ql-tests.yml +++ b/.github/workflows/ql-for-ql-tests.yml @@ -29,24 +29,24 @@ jobs: ~/.cargo/registry ~/.cargo/git ql/target - key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('ql/**/Cargo.lock') }} - name: Build extractor run: | cd ql; codeqlpath=$(dirname ${{ steps.find-codeql.outputs.codeql-path }}); env "PATH=$PATH:$codeqlpath" ./create-extractor-pack.sh - name: Run QL tests - run: | + run: | "${CODEQL}" test run --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --search-path "${{ github.workspace }}/ql/extractor-pack" --consistency-queries ql/ql/consistency-queries ql/ql/test env: CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} - name: Check QL formatting - run: | + run: | find ql/ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 "${CODEQL}" query format --check-only env: CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} - name: Check QL compilation - run: | + run: | "${CODEQL}" query compile --check-only --threads=4 --warnings=error --search-path "${{ github.workspace }}/ql/extractor-pack" "ql/ql/src" "ql/ql/examples" env: CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index b55d9c353d6..63aff63b9d6 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -50,7 +50,7 @@ jobs: ~/.cargo/registry ~/.cargo/git ruby/target - key: ${{ runner.os }}-rust-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-ruby-rust-cargo-${{ hashFiles('ruby/rust-toolchain.toml', 'ruby/**/Cargo.lock') }} - name: Check formatting run: cargo fmt --all -- --check - name: Build diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml index 8fa11004561..d395cdd1010 100644 --- a/.github/workflows/ruby-qltest.yml +++ b/.github/workflows/ruby-qltest.yml @@ -24,27 +24,45 @@ defaults: working-directory: ruby jobs: - qltest: + qlformat: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/fetch-codeql - - uses: ./ruby/actions/create-extractor-pack - - name: Run QL tests - run: | - codeql test run --threads=0 --ram 5000 --search-path "${{ github.workspace }}/ruby/extractor-pack" --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --consistency-queries ql/consistency-queries ql/test - env: - GITHUB_TOKEN: ${{ github.token }} - name: Check QL formatting run: find ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 codeql query format --check-only + qlcompile: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/fetch-codeql - name: Check QL compilation run: | codeql query compile --check-only --threads=0 --ram 5000 --warnings=error "ql/src" "ql/examples" env: GITHUB_TOKEN: ${{ github.token }} + qlupgrade: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/fetch-codeql - name: Check DB upgrade scripts run: | echo >empty.trap codeql dataset import -S ql/lib/upgrades/initial/ruby.dbscheme testdb empty.trap codeql dataset upgrade testdb --additional-packs ql/lib diff -q testdb/ruby.dbscheme ql/lib/ruby.dbscheme + qltest: + runs-on: ubuntu-latest + strategy: + matrix: + slice: ["1/2", "2/2"] + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/fetch-codeql + - uses: ./ruby/actions/create-extractor-pack + - name: Run QL tests + run: | + codeql test run --threads=0 --ram 5000 --slice ${{ matrix.slice }} --search-path "${{ github.workspace }}/ruby/extractor-pack" --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --consistency-queries ql/consistency-queries ql/test + env: + GITHUB_TOKEN: ${{ github.token }} diff --git a/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj b/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj index 9bf293c7e8d..dc1d945521b 100644 --- a/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj +++ b/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 false win-x64;linux-x64;osx-x64 enable diff --git a/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj b/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj index b9c3ec1abe9..e417622707a 100644 --- a/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj +++ b/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj @@ -1,7 +1,7 @@ - net5.0 + net6.0 Semmle.Autobuild.Cpp Semmle.Autobuild.Cpp diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll index 5debcf7b178..50dcb8901ea 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll @@ -1290,7 +1290,7 @@ class DataFlowCallOption extends TDataFlowCallOption { } } -/** Content tagged with the type of a containing object. */ +/** A `Content` tagged with the type of a containing object. */ class TypedContent extends MkTypedContent { private Content c; private DataFlowType t; diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll index c67374c3db9..ed3eadca08f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll @@ -592,12 +592,14 @@ predicate simpleLocalFlowStep(Node nodeFrom, Node nodeTo) { * Holds if data flows from `source` to `sink` in zero or more local * (intra-procedural) steps. */ +pragma[inline] predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) } /** * Holds if data can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingUtil.qll index 5bc4d88c658..6fb13455286 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingUtil.qll @@ -124,12 +124,14 @@ predicate localAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeT * Holds if taint may propagate from `source` to `sink` in zero or more local * (intra-procedural) steps. */ +pragma[inline] predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { localTaintStep*(source, sink) } /** * Holds if taint can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprTaint(Expr e1, Expr e2) { localTaint(DataFlow::exprNode(e1), DataFlow::exprNode(e2)) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll index 5debcf7b178..50dcb8901ea 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll @@ -1290,7 +1290,7 @@ class DataFlowCallOption extends TDataFlowCallOption { } } -/** Content tagged with the type of a containing object. */ +/** A `Content` tagged with the type of a containing object. */ class TypedContent extends MkTypedContent { private Content c; private DataFlowType t; diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 582d397fead..75b530e937d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1032,12 +1032,14 @@ SideEffectInstruction getSideEffectFor(CallInstruction call, int argument) { * Holds if data flows from `source` to `sink` in zero or more local * (intra-procedural) steps. */ +pragma[inline] predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) } /** * Holds if data can flow from `i1` to `i2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localInstructionFlow(Instruction e1, Instruction e2) { localFlow(instructionNode(e1), instructionNode(e2)) } @@ -1046,6 +1048,7 @@ predicate localInstructionFlow(Instruction e1, Instruction e2) { * Holds if data can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) } private newtype TContent = diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll index b6b9a7243b2..1086701a97f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll @@ -121,12 +121,14 @@ private predicate operandToInstructionTaintStep(Operand opFrom, Instruction inst * Holds if taint may propagate from `source` to `sink` in zero or more local * (intra-procedural) steps. */ +pragma[inline] predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { localTaintStep*(source, sink) } /** * Holds if taint can flow from `i1` to `i2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localInstructionTaint(Instruction i1, Instruction i2) { localTaint(DataFlow::instructionNode(i1), DataFlow::instructionNode(i2)) } @@ -135,6 +137,7 @@ predicate localInstructionTaint(Instruction i1, Instruction i2) { * Holds if taint can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprTaint(Expr e1, Expr e2) { localTaint(DataFlow::exprNode(e1), DataFlow::exprNode(e2)) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll index adc470c31a9..8034e9e2bd1 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll @@ -567,6 +567,13 @@ newtype TTranslatedElement = } or // The initialization of a base class from within a constructor. TTranslatedConstructorBaseInit(ConstructorBaseInit init) { not ignoreExpr(init) } or + // Workaround for a case where no base constructor is generated but a targetless base + // constructor call is present. + TTranslatedConstructorBareInit(ConstructorInit init) { + not ignoreExpr(init) and + not init instanceof ConstructorBaseInit and + not init instanceof ConstructorFieldInit + } or // The destruction of a base class from within a destructor. TTranslatedDestructorBaseDestruction(DestructorBaseDestruction destruction) { not ignoreExpr(destruction) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll index 2a0b58ce96a..2fa4548fc3c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll @@ -573,6 +573,11 @@ class TranslatedConstructorInitList extends TranslatedElement, InitializationCon baseInit = func.(Constructor).getInitializer(id) and result = getTranslatedConstructorBaseInit(baseInit) ) + or + exists(ConstructorInit bareInit | + bareInit = func.(Constructor).getInitializer(id) and + result = getTranslatedConstructorBareInit(bareInit) + ) } override Instruction getFirstInstruction() { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll index 4b6538654db..23d6ad133cf 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll @@ -917,3 +917,36 @@ class TranslatedDestructorBaseDestruction extends TranslatedBaseStructorCall, final override string toString() { result = "destroy base: " + call.toString() } } + +/** + * A constructor base init call where no base constructor has been generated. + * + * Workaround for an extractor issue. + */ +class TranslatedConstructorBareInit extends TranslatedElement, TTranslatedConstructorBareInit { + ConstructorInit init; + + TranslatedConstructorBareInit() { this = TTranslatedConstructorBareInit(init) } + + override Locatable getAST() { result = init } + + final override string toString() { result = "construct base (no constructor)" } + + override Instruction getFirstInstruction() { result = getParent().getChildSuccessor(this) } + + override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) { + none() + } + + override TranslatedElement getChild(int id) { none() } + + override Function getFunction() { result = getParent().getFunction() } + + override Instruction getInstructionSuccessor(InstructionTag tag, EdgeKind kind) { none() } + + override Instruction getChildSuccessor(TranslatedElement child) { none() } +} + +TranslatedConstructorBareInit getTranslatedConstructorBareInit(ConstructorInit init) { + result.getAST() = init +} diff --git a/cpp/ql/lib/tutorial.qll b/cpp/ql/lib/tutorial.qll index 8cb1797a532..190d054d5ac 100644 --- a/cpp/ql/lib/tutorial.qll +++ b/cpp/ql/lib/tutorial.qll @@ -6,122 +6,22 @@ */ class Person extends string { Person() { - this = "Ronil" or - this = "Dina" or - this = "Ravi" or - this = "Bruce" or - this = "Jo" or - this = "Aida" or - this = "Esme" or - this = "Charlie" or - this = "Fred" or - this = "Meera" or - this = "Maya" or - this = "Chad" or - this = "Tiana" or - this = "Laura" or - this = "George" or - this = "Will" or - this = "Mary" or - this = "Almira" or - this = "Susannah" or - this = "Rhoda" or - this = "Cynthia" or - this = "Eunice" or - this = "Olive" or - this = "Virginia" or - this = "Angeline" or - this = "Helen" or - this = "Cornelia" or - this = "Harriet" or - this = "Mahala" or - this = "Abby" or - this = "Margaret" or - this = "Deb" or - this = "Minerva" or - this = "Severus" or - this = "Lavina" or - this = "Adeline" or - this = "Cath" or - this = "Elisa" or - this = "Lucretia" or - this = "Anne" or - this = "Eleanor" or - this = "Joanna" or - this = "Adam" or - this = "Agnes" or - this = "Rosanna" or - this = "Clara" or - this = "Melissa" or - this = "Amy" or - this = "Isabel" or - this = "Jemima" or - this = "Cordelia" or - this = "Melinda" or - this = "Delila" or - this = "Jeremiah" or - this = "Elijah" or - this = "Hester" or - this = "Walter" or - this = "Oliver" or - this = "Hugh" or - this = "Aaron" or - this = "Reuben" or - this = "Eli" or - this = "Amos" or - this = "Augustus" or - this = "Theodore" or - this = "Ira" or - this = "Timothy" or - this = "Cyrus" or - this = "Horace" or - this = "Simon" or - this = "Asa" or - this = "Frank" or - this = "Nelson" or - this = "Leonard" or - this = "Harrison" or - this = "Anthony" or - this = "Louis" or - this = "Milton" or - this = "Noah" or - this = "Cornelius" or - this = "Abdul" or - this = "Warren" or - this = "Harvey" or - this = "Dennis" or - this = "Wesley" or - this = "Sylvester" or - this = "Gilbert" or - this = "Sullivan" or - this = "Edmund" or - this = "Wilson" or - this = "Perry" or - this = "Matthew" or - this = "Simba" or - this = "Nala" or - this = "Rafiki" or - this = "Shenzi" or - this = "Ernest" or - this = "Gertrude" or - this = "Oscar" or - this = "Lilian" or - this = "Raymond" or - this = "Elgar" or - this = "Elmer" or - this = "Herbert" or - this = "Maude" or - this = "Mae" or - this = "Otto" or - this = "Edwin" or - this = "Ophelia" or - this = "Parsley" or - this = "Sage" or - this = "Rosemary" or - this = "Thyme" or - this = "Garfunkel" or - this = "King Basil" or - this = "Stephen" + this = + [ + "Ronil", "Dina", "Ravi", "Bruce", "Jo", "Aida", "Esme", "Charlie", "Fred", "Meera", "Maya", + "Chad", "Tiana", "Laura", "George", "Will", "Mary", "Almira", "Susannah", "Rhoda", + "Cynthia", "Eunice", "Olive", "Virginia", "Angeline", "Helen", "Cornelia", "Harriet", + "Mahala", "Abby", "Margaret", "Deb", "Minerva", "Severus", "Lavina", "Adeline", "Cath", + "Elisa", "Lucretia", "Anne", "Eleanor", "Joanna", "Adam", "Agnes", "Rosanna", "Clara", + "Melissa", "Amy", "Isabel", "Jemima", "Cordelia", "Melinda", "Delila", "Jeremiah", "Elijah", + "Hester", "Walter", "Oliver", "Hugh", "Aaron", "Reuben", "Eli", "Amos", "Augustus", + "Theodore", "Ira", "Timothy", "Cyrus", "Horace", "Simon", "Asa", "Frank", "Nelson", + "Leonard", "Harrison", "Anthony", "Louis", "Milton", "Noah", "Cornelius", "Abdul", "Warren", + "Harvey", "Dennis", "Wesley", "Sylvester", "Gilbert", "Sullivan", "Edmund", "Wilson", + "Perry", "Matthew", "Simba", "Nala", "Rafiki", "Shenzi", "Ernest", "Gertrude", "Oscar", + "Lilian", "Raymond", "Elgar", "Elmer", "Herbert", "Maude", "Mae", "Otto", "Edwin", + "Ophelia", "Parsley", "Sage", "Rosemary", "Thyme", "Garfunkel", "King Basil", "Stephen" + ] } /** Gets the hair color of the person. If the person is bald, there is no result. */ @@ -936,25 +836,12 @@ class Person extends string { /** Holds if the person is deceased. */ predicate isDeceased() { - this = "Ernest" or - this = "Gertrude" or - this = "Oscar" or - this = "Lilian" or - this = "Edwin" or - this = "Raymond" or - this = "Elgar" or - this = "Elmer" or - this = "Herbert" or - this = "Maude" or - this = "Mae" or - this = "Otto" or - this = "Ophelia" or - this = "Parsley" or - this = "Sage" or - this = "Rosemary" or - this = "Thyme" or - this = "Garfunkel" or - this = "King Basil" + this = + [ + "Ernest", "Gertrude", "Oscar", "Lilian", "Edwin", "Raymond", "Elgar", "Elmer", "Herbert", + "Maude", "Mae", "Otto", "Ophelia", "Parsley", "Sage", "Rosemary", "Thyme", "Garfunkel", + "King Basil" + ] } /** Gets a parent of the person (alive or deceased). */ @@ -1195,12 +1082,7 @@ class Person extends string { } /** Holds if the person is allowed in the region. Initially, all villagers are allowed in every region. */ - predicate isAllowedIn(string region) { - region = "north" or - region = "south" or - region = "east" or - region = "west" - } + predicate isAllowedIn(string region) { region = ["north", "south", "east", "west"] } } /** Returns a parent of the person. */ diff --git a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql index e182dc84c91..c75fb8b639d 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql @@ -14,6 +14,9 @@ */ import cpp +// We don't actually use the global value numbering library in this query, but without it we end up +// recomputing the IR. +private import semmle.code.cpp.valuenumbering.GlobalValueNumbering import semmle.code.cpp.ir.IR import semmle.code.cpp.ir.dataflow.DataFlow::DataFlow diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql index 70facd34598..b45c11532fd 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql @@ -5,7 +5,7 @@ * @kind path-problem * @problem.severity warning * @security-severity 7.5 - * @precision medium + * @precision high * @id cpp/cleartext-transmission * @tags security * external/cwe/cwe-319 @@ -14,8 +14,8 @@ import cpp import semmle.code.cpp.security.SensitiveExprs import semmle.code.cpp.dataflow.TaintTracking -import semmle.code.cpp.valuenumbering.GlobalValueNumbering import semmle.code.cpp.models.interfaces.FlowSource +import semmle.code.cpp.commons.File import DataFlow::PathGraph /** @@ -27,6 +27,7 @@ class SensitiveNode extends DataFlow::Node { this.asExpr() = any(SensitiveVariable sv).getInitializer().getExpr() or this.asExpr().(VariableAccess).getTarget() = any(SensitiveVariable sv).(GlobalOrNamespaceVariable) or + this.asExpr().(VariableAccess).getTarget() = any(SensitiveVariable v | v instanceof Field) or this.asUninitialized() instanceof SensitiveVariable or this.asParameter() instanceof SensitiveVariable or this.asExpr().(FunctionCall).getTarget() instanceof SensitiveFunction @@ -120,24 +121,32 @@ abstract class NetworkSendRecv extends FunctionCall { NetworkSendRecv() { this.getTarget() = target and // exclude calls based on the socket... - not exists(GVN g | - g = globalValueNumber(target.getSocketExpr(this)) and + not exists(DataFlow::Node src, DataFlow::Node dest | + DataFlow::localFlow(src, dest) and + dest.asExpr() = target.getSocketExpr(this) and ( // literal constant - globalValueNumber(any(Literal l)) = g + src.asExpr() instanceof Literal or // variable (such as a global) initialized to a literal constant exists(Variable v | v.getInitializer().getExpr() instanceof Literal and - g = globalValueNumber(v.getAnAccess()) + src.asExpr() = v.getAnAccess() ) or // result of a function call with literal inputs (likely constant) + forex(Expr arg | arg = src.asExpr().(FunctionCall).getAnArgument() | arg instanceof Literal) + or + // variable called `stdin`, `stdout` or `stderr` + src.asExpr().(VariableAccess).getTarget().getName() = ["stdin", "stdout", "stderr"] + or + // open of `"/dev/tty"` exists(FunctionCall fc | - forex(Expr arg | arg = fc.getAnArgument() | arg instanceof Literal) and - g = globalValueNumber(fc) + fopenCall(fc) and + fc.getAnArgument().getValue() = "/dev/tty" and + src.asExpr() = fc ) - // (this is far from exhaustive) + // (this is not exhaustive) ) ) } diff --git a/cpp/ql/src/change-notes/2022-01-22-cleartext-transmission.md b/cpp/ql/src/change-notes/2022-01-22-cleartext-transmission.md new file mode 100644 index 00000000000..d5e150c4a30 --- /dev/null +++ b/cpp/ql/src/change-notes/2022-01-22-cleartext-transmission.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "Cleartext transmission of sensitive information" (`cpp/cleartext-transmission`) query now finds more results, where a password is stored in a struct field or class member variable. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2022-02-22-cleartext-transmission.md b/cpp/ql/src/change-notes/2022-02-22-cleartext-transmission.md new file mode 100644 index 00000000000..88c248a839a --- /dev/null +++ b/cpp/ql/src/change-notes/2022-02-22-cleartext-transmission.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "Cleartext transmission of sensitive information" (`cpp/cleartext-transmission`) query has been further improved to reduce false positive results, and upgraded from `medium` to `high` precision. \ No newline at end of file diff --git a/cpp/ql/src/experimental/Best Practices/UselessTest.cpp b/cpp/ql/src/experimental/Best Practices/UselessTest.cpp new file mode 100644 index 00000000000..9e84f6fcbcb --- /dev/null +++ b/cpp/ql/src/experimental/Best Practices/UselessTest.cpp @@ -0,0 +1,9 @@ +void test(){ + int a = 8; + int b = 9; + + //Useless NonEquals + if(a==8 && a != 7) {} + + while(a==8 && a!=7){} +} diff --git a/cpp/ql/src/experimental/Best Practices/UselessTest.qhelp b/cpp/ql/src/experimental/Best Practices/UselessTest.qhelp new file mode 100644 index 00000000000..11d6adbc8bc --- /dev/null +++ b/cpp/ql/src/experimental/Best Practices/UselessTest.qhelp @@ -0,0 +1,18 @@ + + + + +

Comparison operations like a==8 && a!=7 contain a useless part : the non-equal part. This rule finds tests of this kind within an if or a while statement

+
+ + +

Remove the useless comparisons

+
+ + + + + +
diff --git a/cpp/ql/src/experimental/Best Practices/UselessTest.ql b/cpp/ql/src/experimental/Best Practices/UselessTest.ql new file mode 100644 index 00000000000..29994d0fc16 --- /dev/null +++ b/cpp/ql/src/experimental/Best Practices/UselessTest.ql @@ -0,0 +1,43 @@ +/** + * @name Useless Test + * @description A boolean condition that is guaranteed to never be evaluated should be deleted. + * @kind problem + * @problem.severity warning + * @id cpp/uselesstest + * @tags reliability + * readability + */ + +import cpp +import semmle.code.cpp.valuenumbering.GlobalValueNumbering + +predicate sameExpr(Expr e1, Expr e2) { globalValueNumber(e1).getAnExpr() = e2 } + +Element nearestParent(Expr e) { + if + e.getParent().(Expr).getConversion*() instanceof ParenthesisExpr or + e.getParent() instanceof IfStmt or + e.getParent() instanceof WhileStmt + then result = e.getParent() + else result = nearestParent(e.getParent()) +} + +from LogicalAndExpr b, EQExpr eq, NEExpr ne +where + ( + b.getAChild*() = eq and + b.getAChild*() = ne and + eq.getParent() instanceof LogicalAndExpr and + ne.getParent() instanceof LogicalAndExpr + ) and + ( + eq.getLeftOperand() instanceof VariableAccess and ne.getLeftOperand() instanceof VariableAccess + or + eq.getLeftOperand() instanceof PointerDereferenceExpr and + ne.getLeftOperand() instanceof PointerDereferenceExpr + ) and + eq.getRightOperand() instanceof Literal and + ne.getRightOperand() instanceof Literal and + nearestParent(eq) = nearestParent(ne) and + sameExpr(eq.getLeftOperand(), ne.getLeftOperand()) +select ne, "Useless Test" diff --git a/cpp/ql/test/TestUtilities/InlineExpectationsTest.qll b/cpp/ql/test/TestUtilities/InlineExpectationsTest.qll index 52a790cca28..7d605a491ee 100644 --- a/cpp/ql/test/TestUtilities/InlineExpectationsTest.qll +++ b/cpp/ql/test/TestUtilities/InlineExpectationsTest.qll @@ -93,7 +93,7 @@ private import InlineExpectationsTestPrivate /** - * Base class for tests with inline expectations. The test extends this class to provide the actual + * The base class for tests with inline expectations. The test extends this class to provide the actual * results of the query, which are then compared with the expected results in comments to produce a * list of failure messages that point out where the actual results differ from the expected * results. @@ -123,6 +123,15 @@ abstract class InlineExpectationsTest extends string { */ abstract predicate hasActualResult(Location location, string element, string tag, string value); + /** + * Like `hasActualResult`, but returns results that do not require a matching annotation. + * A failure will still arise if there is an annotation that does not match any results, but not vice versa. + * Override this predicate to specify optional results. + */ + predicate hasOptionalResult(Location location, string element, string tag, string value) { + none() + } + final predicate hasFailureMessage(FailureLocatable element, string message) { exists(ActualResult actualResult | actualResult.getTest() = this and @@ -134,7 +143,8 @@ abstract class InlineExpectationsTest extends string { ) or not exists(ValidExpectation expectation | expectation.matchesActualResult(actualResult)) and - message = "Unexpected result: " + actualResult.getExpectationText() + message = "Unexpected result: " + actualResult.getExpectationText() and + not actualResult.isOptional() ) ) or @@ -243,9 +253,13 @@ private string expectationPattern() { private newtype TFailureLocatable = TActualResult( - InlineExpectationsTest test, Location location, string element, string tag, string value + InlineExpectationsTest test, Location location, string element, string tag, string value, + boolean optional ) { - test.hasActualResult(location, element, tag, value) + test.hasActualResult(location, element, tag, value) and + optional = false + or + test.hasOptionalResult(location, element, tag, value) and optional = true } or TValidExpectation(ExpectationComment comment, string tag, string value, string knownFailure) { exists(TColumn column, string tags | @@ -277,8 +291,9 @@ class ActualResult extends FailureLocatable, TActualResult { string element; string tag; string value; + boolean optional; - ActualResult() { this = TActualResult(test, location, element, tag, value) } + ActualResult() { this = TActualResult(test, location, element, tag, value, optional) } override string toString() { result = element } @@ -289,6 +304,8 @@ class ActualResult extends FailureLocatable, TActualResult { override string getTag() { result = tag } override string getValue() { result = value } + + predicate isOptional() { optional = true } } abstract private class Expectation extends FailureLocatable { diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index faff86c0081..e50b02f0be8 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -11332,6 +11332,64 @@ ir.cpp: # 1447| Type = [Struct] POD_Derived # 1447| ValueCategory = prvalue # 1448| getStmt(4): [ReturnStmt] return ... +# 1450| [CopyAssignmentOperator] Inheritance_Test_B& Inheritance_Test_B::operator=(Inheritance_Test_B const&) +# 1450| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Inheritance_Test_B & +# 1450| [Constructor] void Inheritance_Test_B::Inheritance_Test_B() +# 1450| : +# 1451| [Destructor] void Inheritance_Test_B::~Inheritance_Test_B() +# 1451| : +# 1451| getEntryPoint(): [BlockStmt] { ... } +# 1451| getStmt(0): [ReturnStmt] return ... +# 1451| : +# 1454| [CopyAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A const&) +# 1454| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Inheritance_Test_A & +# 1454| [MoveAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A&&) +# 1454| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] Inheritance_Test_A && +# 1454| [CopyConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A const&) +# 1454| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Inheritance_Test_A & +# 1454| [MoveConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A&&) +# 1454| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] Inheritance_Test_A && +# 1454| [Destructor] void Inheritance_Test_A::~Inheritance_Test_A() +# 1454| : +# 1457| [Constructor] void Inheritance_Test_A::Inheritance_Test_A() +# 1457| : +# 1457| : +# 1457| getInitializer(0): (no string representation) +# 1457| Type = [Struct] Inheritance_Test_B +# 1457| ValueCategory = prvalue +# 1457| getInitializer(1): [ConstructorFieldInit] constructor init of field x +# 1457| Type = [IntType] int +# 1457| ValueCategory = prvalue +# 1457| getExpr(): [Literal] 42 +# 1457| Type = [IntType] int +# 1457| Value = [Literal] 42 +# 1457| ValueCategory = prvalue +# 1457| getEntryPoint(): [BlockStmt] { ... } +# 1458| getStmt(0): [ExprStmt] ExprStmt +# 1458| getExpr(): [AssignExpr] ... = ... +# 1458| Type = [IntType] int +# 1458| ValueCategory = lvalue +# 1458| getLValue(): [PointerFieldAccess] y +# 1458| Type = [IntType] int +# 1458| ValueCategory = lvalue +# 1458| getQualifier(): [ThisExpr] this +# 1458| Type = [PointerType] Inheritance_Test_A * +# 1458| ValueCategory = prvalue(load) +# 1458| getRValue(): [Literal] 3 +# 1458| Type = [IntType] int +# 1458| Value = [Literal] 3 +# 1458| ValueCategory = prvalue +# 1459| getStmt(1): [ReturnStmt] return ... perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| : diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 9e52504441c..9eb79f3c574 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -1447,4 +1447,15 @@ void temporary_hierarchy() { float f = (returnValue()).f(); } +struct Inheritance_Test_B { + ~Inheritance_Test_B() {} +}; + +struct Inheritance_Test_A : public Inheritance_Test_B { + int x; + int y; + Inheritance_Test_A() : x(42) { + y = 3; + } +}; // semmle-extractor-options: -std=c++17 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index ba6950b5e2f..37230e65109 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -6626,6 +6626,36 @@ | ir.cpp:1447:44:1447:44 | ChiTotal | total:m1447_5 | | ir.cpp:1447:44:1447:44 | SideEffect | ~m1447_5 | | ir.cpp:1447:44:1447:44 | StoreValue | r1447_8 | +| ir.cpp:1451:3:1451:21 | Address | &:r1451_5 | +| ir.cpp:1451:3:1451:21 | Address | &:r1451_5 | +| ir.cpp:1451:3:1451:21 | Address | &:r1451_7 | +| ir.cpp:1451:3:1451:21 | Address | &:r1451_7 | +| ir.cpp:1451:3:1451:21 | ChiPartial | partial:m1451_3 | +| ir.cpp:1451:3:1451:21 | ChiTotal | total:m1451_2 | +| ir.cpp:1451:3:1451:21 | Load | m1451_6 | +| ir.cpp:1451:3:1451:21 | SideEffect | m1451_3 | +| ir.cpp:1451:3:1451:21 | SideEffect | m1451_8 | +| ir.cpp:1457:3:1457:20 | Address | &:r1457_5 | +| ir.cpp:1457:3:1457:20 | Address | &:r1457_5 | +| ir.cpp:1457:3:1457:20 | Address | &:r1457_7 | +| ir.cpp:1457:3:1457:20 | Address | &:r1457_7 | +| ir.cpp:1457:3:1457:20 | ChiPartial | partial:m1457_3 | +| ir.cpp:1457:3:1457:20 | ChiTotal | total:m1457_2 | +| ir.cpp:1457:3:1457:20 | Load | m1457_6 | +| ir.cpp:1457:3:1457:20 | SideEffect | m1457_3 | +| ir.cpp:1457:3:1457:20 | SideEffect | m1458_6 | +| ir.cpp:1457:3:1457:20 | Unary | m1457_6 | +| ir.cpp:1457:26:1457:30 | Address | &:r1457_9 | +| ir.cpp:1457:26:1457:30 | ChiPartial | partial:m1457_11 | +| ir.cpp:1457:26:1457:30 | ChiTotal | total:m1457_8 | +| ir.cpp:1457:26:1457:30 | StoreValue | r1457_10 | +| ir.cpp:1458:5:1458:5 | Address | &:r1458_2 | +| ir.cpp:1458:5:1458:5 | Address | &:r1458_4 | +| ir.cpp:1458:5:1458:5 | Load | m1457_6 | +| ir.cpp:1458:5:1458:5 | Unary | r1458_3 | +| ir.cpp:1458:5:1458:9 | ChiPartial | partial:m1458_5 | +| ir.cpp:1458:5:1458:9 | ChiTotal | total:m1457_12 | +| ir.cpp:1458:9:1458:9 | StoreValue | r1458_1 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 817a8f68cf7..22430f7321e 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -7858,6 +7858,44 @@ ir.cpp: # 1443| v1443_5(void) = AliasedUse : ~m? # 1443| v1443_6(void) = ExitFunction : +# 1451| void Inheritance_Test_B::~Inheritance_Test_B() +# 1451| Block 0 +# 1451| v1451_1(void) = EnterFunction : +# 1451| mu1451_2(unknown) = AliasedDefinition : +# 1451| mu1451_3(unknown) = InitializeNonLocal : +# 1451| r1451_4(glval) = VariableAddress[#this] : +# 1451| mu1451_5(glval) = InitializeParameter[#this] : &:r1451_4 +# 1451| r1451_6(glval) = Load[#this] : &:r1451_4, ~m? +# 1451| mu1451_7(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1451_6 +# 1451| v1451_8(void) = NoOp : +# 1451| v1451_9(void) = ReturnIndirection[#this] : &:r1451_6, ~m? +# 1451| v1451_10(void) = ReturnVoid : +# 1451| v1451_11(void) = AliasedUse : ~m? +# 1451| v1451_12(void) = ExitFunction : + +# 1457| void Inheritance_Test_A::Inheritance_Test_A() +# 1457| Block 0 +# 1457| v1457_1(void) = EnterFunction : +# 1457| mu1457_2(unknown) = AliasedDefinition : +# 1457| mu1457_3(unknown) = InitializeNonLocal : +# 1457| r1457_4(glval) = VariableAddress[#this] : +# 1457| mu1457_5(glval) = InitializeParameter[#this] : &:r1457_4 +# 1457| r1457_6(glval) = Load[#this] : &:r1457_4, ~m? +# 1457| mu1457_7(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1457_6 +# 1457| r1457_8(glval) = FieldAddress[x] : mu1457_5 +# 1457| r1457_9(int) = Constant[42] : +# 1457| mu1457_10(int) = Store[?] : &:r1457_8, r1457_9 +# 1458| r1458_1(int) = Constant[3] : +# 1458| r1458_2(glval) = VariableAddress[#this] : +# 1458| r1458_3(Inheritance_Test_A *) = Load[#this] : &:r1458_2, ~m? +# 1458| r1458_4(glval) = FieldAddress[y] : r1458_3 +# 1458| mu1458_5(int) = Store[?] : &:r1458_4, r1458_1 +# 1459| v1459_1(void) = NoOp : +# 1457| v1457_11(void) = ReturnIndirection[#this] : &:r1457_6, ~m? +# 1457| v1457_12(void) = ReturnVoid : +# 1457| v1457_13(void) = AliasedUse : ~m? +# 1457| v1457_14(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected index 02d2773348c..a63099bb875 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected @@ -1,4 +1,5 @@ edges +| test2.cpp:63:24:63:31 | password | test2.cpp:63:16:63:20 | call to crypt | | test3.cpp:17:28:17:36 | password1 | test3.cpp:22:15:22:23 | password1 | | test3.cpp:17:51:17:59 | password2 | test3.cpp:26:15:26:23 | password2 | | test3.cpp:45:8:45:15 | password | test3.cpp:47:15:47:22 | password | @@ -89,11 +90,16 @@ edges | test3.cpp:398:18:398:25 | password | test3.cpp:400:15:400:23 | & ... | | test3.cpp:398:18:398:25 | password | test3.cpp:400:16:400:23 | password | | test3.cpp:398:18:398:25 | password | test3.cpp:400:33:400:40 | password | +| test3.cpp:421:21:421:28 | password | test3.cpp:421:3:421:17 | call to decrypt_inplace | +| test3.cpp:429:7:429:14 | password | test3.cpp:431:8:431:15 | password | | test.cpp:41:23:41:43 | cleartext password! | test.cpp:48:21:48:27 | call to encrypt | | test.cpp:41:23:41:43 | cleartext password! | test.cpp:48:29:48:39 | thePassword | | test.cpp:66:23:66:43 | cleartext password! | test.cpp:76:21:76:27 | call to encrypt | | test.cpp:66:23:66:43 | cleartext password! | test.cpp:76:29:76:39 | thePassword | nodes +| test2.cpp:63:16:63:20 | call to crypt | semmle.label | call to crypt | +| test2.cpp:63:24:63:31 | password | semmle.label | password | +| test2.cpp:63:24:63:31 | password | semmle.label | password | | test3.cpp:17:28:17:36 | password1 | semmle.label | password1 | | test3.cpp:17:51:17:59 | password2 | semmle.label | password2 | | test3.cpp:22:15:22:23 | password1 | semmle.label | password1 | @@ -208,6 +214,13 @@ nodes | test3.cpp:400:15:400:23 | & ... | semmle.label | & ... | | test3.cpp:400:16:400:23 | password | semmle.label | password | | test3.cpp:400:33:400:40 | password | semmle.label | password | +| test3.cpp:414:17:414:24 | password | semmle.label | password | +| test3.cpp:420:17:420:24 | password | semmle.label | password | +| test3.cpp:421:3:421:17 | call to decrypt_inplace | semmle.label | call to decrypt_inplace | +| test3.cpp:421:21:421:28 | password | semmle.label | password | +| test3.cpp:421:21:421:28 | password | semmle.label | password | +| test3.cpp:429:7:429:14 | password | semmle.label | password | +| test3.cpp:431:8:431:15 | password | semmle.label | password | | test.cpp:41:23:41:43 | cleartext password! | semmle.label | cleartext password! | | test.cpp:48:21:48:27 | call to encrypt | semmle.label | call to encrypt | | test.cpp:48:29:48:39 | thePassword | semmle.label | thePassword | @@ -238,3 +251,6 @@ subpaths | test3.cpp:300:2:300:5 | call to send | test3.cpp:308:58:308:66 | password2 | test3.cpp:300:14:300:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@ | test3.cpp:308:58:308:66 | password2 | password2 | | test3.cpp:341:4:341:7 | call to recv | test3.cpp:339:9:339:16 | password | test3.cpp:341:16:341:23 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@ | test3.cpp:339:9:339:16 | password | password | | test3.cpp:388:3:388:6 | call to recv | test3.cpp:386:8:386:15 | password | test3.cpp:388:15:388:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@ | test3.cpp:386:8:386:15 | password | password | +| test3.cpp:414:3:414:6 | call to recv | test3.cpp:414:17:414:24 | password | test3.cpp:414:17:414:24 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@ | test3.cpp:414:17:414:24 | password | password | +| test3.cpp:420:3:420:6 | call to recv | test3.cpp:420:17:420:24 | password | test3.cpp:420:17:420:24 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@ | test3.cpp:420:17:420:24 | password | password | +| test3.cpp:431:2:431:6 | call to fgets | test3.cpp:429:7:429:14 | password | test3.cpp:431:8:431:15 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@ | test3.cpp:429:7:429:14 | password | password | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test3.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test3.cpp index bac96324554..f54d2a09e8d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test3.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test3.cpp @@ -411,13 +411,66 @@ void test_member_password() { packet p; - recv(val(), p.password, 256, val()); // BAD: not encrypted [NOT DETECTED] + recv(val(), p.password, 256, val()); // BAD: not encrypted } { packet p; - recv(val(), p.password, 256, val()); // GOOD: password is encrypted + recv(val(), p.password, 256, val()); // GOOD: password is encrypted [FALSE POSITIVE] decrypt_inplace(p.password); // proof that `password` was in fact encrypted } } + +extern FILE *stdin; + +void test_stdin_param(FILE *stream) +{ + char password[128]; + + fgets(password, 128, stream); // GOOD: from standard input (see call below) [FALSE POSITIVE] +} + +void test_stdin() +{ + char password[128]; + FILE *f = stdin; + + fgets(password, 128, stdin); // GOOD: from standard input + fgets(password, 128, f); // GOOD: from standard input + test_stdin_param(stdin); +} + +int open(const char *filename, int b); + +void test_tty() +{ + { + char password[256]; + int f; + + f = open("/dev/tty", val()); + recv(f, password, 256, val()); // GOOD: from terminal + } + + { + char password[256]; + int f; + + f = STDIN_FILENO; + recv(f, password, 256, val()); // GOOD: from stdin + } + + { + char password[256]; + int f; + + f = open("/dev/tty", val()); + if (f == -1) + { + f = STDIN_FILENO; + } + + recv(f, password, 256, val()); // GOOD: from terminal or stdin + } +} diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj index b93957776d8..a91868fbd80 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 false win-x64;linux-x64;osx-x64 enable diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj b/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj index fe9116e40b8..4f712a651d4 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 Semmle.Autobuild.CSharp Semmle.Autobuild.CSharp diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj b/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj index 202189e725e..d3e24dd6ad5 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 Semmle.Autobuild.Shared Semmle.Autobuild.Shared false diff --git a/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/old.dbscheme b/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/old.dbscheme new file mode 100644 index 00000000000..ab09ac82875 --- /dev/null +++ b/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/old.dbscheme @@ -0,0 +1,2054 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | --cil + * 3 | f1.cs + * 4 | f2.cs + * 5 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/semmlecode.csharp.dbscheme b/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/semmlecode.csharp.dbscheme new file mode 100644 index 00000000000..ba220124807 --- /dev/null +++ b/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/semmlecode.csharp.dbscheme @@ -0,0 +1,2046 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | --cil + * 3 | f1.cs + * 4 | f2.cs + * 5 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/upgrade.properties b/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/upgrade.properties new file mode 100644 index 00000000000..520f175692e --- /dev/null +++ b/csharp/downgrades/ab09ac8287516082b7a7367f8fda1862b1be47c5/upgrade.properties @@ -0,0 +1,3 @@ +description: Remove 'kind' from 'attributes'. +compatability: full +attributes.rel: reorder attributes.rel (int id, int kind, int type_id, int target) id type_id target \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj b/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj index dea12d5d012..08add7ad01c 100644 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj +++ b/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 Semmle.Extraction.CIL.Driver Semmle.Extraction.CIL.Driver false diff --git a/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj b/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj index fa116980d47..8dc6d8a9f76 100644 --- a/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj +++ b/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 Semmle.Extraction.CIL Semmle.Extraction.CIL false diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Driver/Semmle.Extraction.CSharp.Driver.csproj b/csharp/extractor/Semmle.Extraction.CSharp.Driver/Semmle.Extraction.CSharp.Driver.csproj index 7ae23fdcd2e..9897dbed627 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Driver/Semmle.Extraction.CSharp.Driver.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp.Driver/Semmle.Extraction.CSharp.Driver.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 Semmle.Extraction.CSharp.Driver Semmle.Extraction.CSharp.Driver false diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/AssemblyInfo.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/AssemblyInfo.cs index a234d5ca7b3..11fcfe56a1b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/AssemblyInfo.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/AssemblyInfo.cs @@ -146,7 +146,7 @@ namespace Semmle.BuildAnalyser * loading the same assembly from different locations. */ using var pereader = new System.Reflection.PortableExecutable.PEReader(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)); - using var sha1 = new SHA1CryptoServiceProvider(); + using var sha1 = SHA1.Create(); var metadata = pereader.GetMetadata(); unsafe { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/BuildAnalysis.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/BuildAnalysis.cs index 8450cd898f8..47bdd3ae568 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/BuildAnalysis.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/BuildAnalysis.cs @@ -160,7 +160,7 @@ namespace Semmle.BuildAnalyser { var bytes = Encoding.Unicode.GetBytes(srcDir); - using var sha1 = new SHA1CryptoServiceProvider(); + using var sha1 = SHA1.Create(); var sha = sha1.ComputeHash(bytes); var sb = new StringBuilder(); foreach (var b in sha.Take(8)) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj index 44d972f7b1c..5546278e93c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj @@ -1,7 +1,7 @@ Exe - net5.0 + net6.0 Semmle.Extraction.CSharp.Standalone Semmle.Extraction.CSharp.Standalone false diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs index a1b976c4a6c..23c17252087 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs @@ -1,3 +1,5 @@ +using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.CodeAnalysis; @@ -6,18 +8,28 @@ using Semmle.Extraction.Entities; namespace Semmle.Extraction.CSharp.Entities { + internal enum AttributeKind + { + Default = 0, + Return = 1, + Assembly = 2, + Module = 3, + } + internal class Attribute : CachedEntity, IExpressionParentEntity { bool IExpressionParentEntity.IsTopLevelParent => true; private readonly AttributeSyntax? attributeSyntax; private readonly IEntity entity; + private readonly AttributeKind kind; - private Attribute(Context cx, AttributeData attributeData, IEntity entity) + private Attribute(Context cx, AttributeData attributeData, IEntity entity, AttributeKind kind) : base(cx, attributeData) { this.attributeSyntax = attributeData.ApplicationSyntaxReference?.GetSyntax() as AttributeSyntax; this.entity = entity; + this.kind = kind; } public override void WriteId(EscapingTextWriter trapFile) @@ -48,7 +60,7 @@ namespace Semmle.Extraction.CSharp.Entities public override void Populate(TextWriter trapFile) { var type = Type.Create(Context, Symbol.AttributeClass); - trapFile.attributes(this, type.TypeRef, entity); + trapFile.attributes(this, kind, type.TypeRef, entity); trapFile.attribute_location(this, Location); if (attributeSyntax is not null) @@ -125,26 +137,36 @@ namespace Semmle.Extraction.CSharp.Entities public override bool NeedsPopulation => true; - public static void ExtractAttributes(Context cx, ISymbol symbol, IEntity entity) + private static void ExtractAttributes(Context cx, IEnumerable attributes, IEntity entity, AttributeKind kind) { - foreach (var attribute in symbol.GetAttributes()) + foreach (var attribute in attributes) { - Create(cx, attribute, entity); + Create(cx, attribute, entity, kind); } } - public static Attribute Create(Context cx, AttributeData attributeData, IEntity entity) + public static void ExtractAttributes(Context cx, ISymbol symbol, IEntity entity) { - var init = (attributeData, entity); + ExtractAttributes(cx, symbol.GetAttributes(), entity, AttributeKind.Default); + if (symbol is IMethodSymbol method) + { + ExtractAttributes(cx, method.GetReturnTypeAttributes(), entity, AttributeKind.Return); + } + } + + + public static Attribute Create(Context cx, AttributeData attributeData, IEntity entity, AttributeKind kind) + { + var init = (attributeData, entity, kind); return AttributeFactory.Instance.CreateEntity(cx, attributeData, init); } - private class AttributeFactory : CachedEntityFactory<(AttributeData attributeData, IEntity receiver), Attribute> + private class AttributeFactory : CachedEntityFactory<(AttributeData attributeData, IEntity receiver, AttributeKind kind), Attribute> { public static readonly AttributeFactory Instance = new AttributeFactory(); - public override Attribute Create(Context cx, (AttributeData attributeData, IEntity receiver) init) => - new Attribute(cx, init.attributeData, init.receiver); + public override Attribute Create(Context cx, (AttributeData attributeData, IEntity receiver, AttributeKind kind) init) => + new Attribute(cx, init.attributeData, init.receiver, init.kind); } } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs index 49afa50ccc1..11e54ddff35 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs @@ -178,6 +178,9 @@ namespace Semmle.Extraction.CSharp.Entities /// The converted name. private static string OperatorSymbol(Context cx, IMethodSymbol method) { + if (method.ExplicitInterfaceImplementations.Any()) + return OperatorSymbol(cx, method.ExplicitInterfaceImplementations.First()); + var methodName = method.Name; if (!OperatorSymbol(methodName, out var result)) cx.ModelError(method, $"Unhandled operator name in OperatorSymbol(): '{methodName}'"); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs index 3e18f0ab836..6ee8db1d93a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs @@ -86,11 +86,17 @@ namespace Semmle.Extraction.CSharp.Populators return; var outputAssembly = Assembly.CreateOutputAssembly(Cx); + var kind = node.Target?.Identifier.Kind() switch + { + SyntaxKind.AssemblyKeyword => Entities.AttributeKind.Assembly, + SyntaxKind.ModuleKeyword => Entities.AttributeKind.Module, + _ => throw new InternalError(node, "Unhandled global target") + }; foreach (var attribute in node.Attributes) { if (attributeLookup.Value(attribute) is AttributeData attributeData) { - var ae = Entities.Attribute.Create(Cx, attributeData, outputAssembly); + var ae = Entities.Attribute.Create(Cx, attributeData, outputAssembly, kind); Cx.BindComments(ae, attribute.GetLocation()); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj index 3aa2da32d6b..77e204997b3 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 Semmle.Extraction.CSharp Semmle.Extraction.CSharp false diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs b/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs index be4fe339975..58346b157a5 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Tuples.cs @@ -32,8 +32,8 @@ namespace Semmle.Extraction.CSharp internal static void array_element_type(this TextWriter trapFile, ArrayType array, int dimension, int rank, Type elementType) => trapFile.WriteTuple("array_element_type", array, dimension, rank, elementType); - internal static void attributes(this TextWriter trapFile, Attribute attribute, Type attributeType, IEntity entity) => - trapFile.WriteTuple("attributes", attribute, attributeType, entity); + internal static void attributes(this TextWriter trapFile, Attribute attribute, AttributeKind kind, Type attributeType, IEntity entity) => + trapFile.WriteTuple("attributes", attribute, kind, attributeType, entity); internal static void attribute_location(this TextWriter trapFile, Attribute attribute, Location location) => trapFile.WriteTuple("attribute_location", attribute, location); diff --git a/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj b/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj index e60ffc935ca..c4fa93f9697 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj +++ b/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 false win-x64;linux-x64;osx-x64 enable diff --git a/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj b/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj index 5990df6e4b0..f647003ebf0 100644 --- a/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj +++ b/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 Semmle.Extraction Semmle.Extraction false diff --git a/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj b/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj index 3aa59bf6b9b..7447a7e82c1 100644 --- a/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj +++ b/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 false win-x64;linux-x64;osx-x64 enable diff --git a/csharp/extractor/Semmle.Util/FileUtils.cs b/csharp/extractor/Semmle.Util/FileUtils.cs index e0937432049..2c43a46f0f8 100644 --- a/csharp/extractor/Semmle.Util/FileUtils.cs +++ b/csharp/extractor/Semmle.Util/FileUtils.cs @@ -84,7 +84,7 @@ namespace Semmle.Util public static string ComputeFileHash(string filePath) { using var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); - using var shaAlg = new SHA256Managed(); + using var shaAlg = SHA256.Create(); var sha = shaAlg.ComputeHash(fileStream); var hex = new StringBuilder(sha.Length * 2); foreach (var b in sha) diff --git a/csharp/extractor/Semmle.Util/Semmle.Util.csproj b/csharp/extractor/Semmle.Util/Semmle.Util.csproj index 63ac78cb7cc..befa19db6a5 100644 --- a/csharp/extractor/Semmle.Util/Semmle.Util.csproj +++ b/csharp/extractor/Semmle.Util/Semmle.Util.csproj @@ -1,7 +1,7 @@ - net5.0 + net6.0 Semmle.Util Semmle.Util false diff --git a/csharp/ql/lib/change-notes/2021-02-02-return-value-attributes.md b/csharp/ql/lib/change-notes/2021-02-02-return-value-attributes.md new file mode 100644 index 00000000000..af14a47d800 --- /dev/null +++ b/csharp/ql/lib/change-notes/2021-02-02-return-value-attributes.md @@ -0,0 +1,5 @@ +--- +category: majorAnalysis +--- +* Return value attributes are extracted. +* The QL `Attribute` class now has subclasses for each kind of attribute. \ No newline at end of file diff --git a/csharp/ql/lib/semmle/code/csharp/Attribute.qll b/csharp/ql/lib/semmle/code/csharp/Attribute.qll index dae9f8a9fad..f20c18843a5 100644 --- a/csharp/ql/lib/semmle/code/csharp/Attribute.qll +++ b/csharp/ql/lib/semmle/code/csharp/Attribute.qll @@ -36,6 +36,12 @@ class Attributable extends @attributable { } } +private string getAttributeName(Attribute a) { + exists(string type | type = a.getType().getName() | + if type.matches("%Attribute") then result = type.prefix(type.length() - 9) else result = type + ) +} + /** * An attribute, for example `[...]` on line 1 in * @@ -50,10 +56,10 @@ class Attributable extends @attributable { */ class Attribute extends TopLevelExprParent, @attribute { /** Gets the type of this attribute. */ - Class getType() { attributes(this, getTypeRef(result), _) } + Class getType() { attributes(this, _, getTypeRef(result), _) } /** Gets the element that this attribute is attached to. */ - Attributable getTarget() { attributes(this, _, result) } + Attributable getTarget() { attributes(this, _, _, result) } /** * Gets the `i`th argument of this attribute. This includes both constructor @@ -88,12 +94,55 @@ class Attribute extends TopLevelExprParent, @attribute { override Location getALocation() { attribute_location(this, result) } - override string toString() { - exists(string type, string name | type = this.getType().getName() | - (if type.matches("%Attribute") then name = type.prefix(type.length() - 9) else name = type) and - result = "[" + name + "(...)]" - ) - } + override string toString() { result = "[" + getAttributeName(this) + "(...)]" } override string getAPrimaryQlClass() { result = "Attribute" } } + +/** + * An attribute with default kind, for example `[...]` on line 1 in + * ```csharp + * [MyAttribute(0)] + * int SomeMethod() { return 1; } + * ``` + */ +class DefaultAttribute extends Attribute, @attribute_default { + override string getAPrimaryQlClass() { result = "DefaultAttribute" } +} + +/** + * An attribute with return kind, for example `[...]` on line 1 in + * ```csharp + * [return: MyAttribute(0)] + * int SomeMethod() { return 1; } + * ``` + */ +class ReturnAttribute extends Attribute, @attribute_return { + override string toString() { result = "[return: " + getAttributeName(this) + "(...)]" } + + override string getAPrimaryQlClass() { result = "ReturnAttribute" } +} + +/** + * An attribute with assembly kind, for example `[...]` on line 1 in + * ```csharp + * [assembly: MyAttribute(0)] + * ``` + */ +class AssemblyAttribute extends Attribute, @attribute_assembly { + override string toString() { result = "[assembly: " + getAttributeName(this) + "(...)]" } + + override string getAPrimaryQlClass() { result = "AssemblyAttribute" } +} + +/** + * An attribute with module kind, for example `[...]` on line 1 in + * ```csharp + * [module: MyAttribute(0)] + * ``` + */ +class ModuleAttribute extends Attribute, @attribute_module { + override string toString() { result = "[module: " + getAttributeName(this) + "(...)]" } + + override string getAPrimaryQlClass() { result = "ModuleAttribute" } +} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll index 53465e72716..e7ae2e489a2 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll @@ -214,7 +214,7 @@ abstract class SplitKind extends SplitKindBase { abstract string toString(); } -/** Provides the interface for implementing an entity to split on. */ +/** An interface for implementing an entity to split on. */ abstract class SplitImpl extends Split { /** Gets the kind of this split. */ abstract SplitKind getKind(); @@ -900,10 +900,25 @@ module TestOutput { } query predicate edges(RelevantNode pred, RelevantNode succ, string attr, string val) { + attr = "semmle.label" and exists(SuccessorType t | succ = getASuccessor(pred, t) | - attr = "semmle.label" and if successorTypeIsSimple(t) then val = "" else val = t.toString() ) + or + attr = "semmle.order" and + val = + any(int i | + succ = + rank[i](RelevantNode s, SuccessorType t, Location l | + s = getASuccessor(pred, t) and + l = s.getLocation() + | + s + order by + l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString() + ) + ).toString() } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll index 5debcf7b178..50dcb8901ea 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll @@ -1290,7 +1290,7 @@ class DataFlowCallOption extends TDataFlowCallOption { } } -/** Content tagged with the type of a containing object. */ +/** A `Content` tagged with the type of a containing object. */ class TypedContent extends MkTypedContent { private Content c; private DataFlowType t; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index d9ab0bd2fe7..b6d749e18fd 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -160,6 +160,7 @@ predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) } * Holds if data can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) } /** diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index 1ded4e7bed1..3cd828078bc 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -90,7 +90,9 @@ module Public { predicate contains(SummaryComponent c) { c = this.drop(_).head() } /** Gets the bottom element of this stack. */ - SummaryComponent bottom() { result = this.drop(this.length() - 1).head() } + SummaryComponent bottom() { + this = TSingletonSummaryComponentStack(result) or result = this.tail().bottom() + } /** Gets a textual representation of this stack. */ string toString() { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll index 6e4ba538a40..1e60165d748 100755 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll @@ -5,12 +5,14 @@ private import TaintTrackingPrivate * Holds if taint propagates from `source` to `sink` in zero or more local * (intra-procedural) steps. */ +pragma[inline] predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { localTaintStep*(source, sink) } /** * Holds if taint can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprTaint(Expr e1, Expr e2) { localTaint(DataFlow::exprNode(e1), DataFlow::exprNode(e2)) } diff --git a/csharp/ql/lib/semmlecode.csharp.dbscheme b/csharp/ql/lib/semmlecode.csharp.dbscheme index ba220124807..ab09ac82875 100644 --- a/csharp/ql/lib/semmlecode.csharp.dbscheme +++ b/csharp/ql/lib/semmlecode.csharp.dbscheme @@ -520,9 +520,17 @@ tuple_element( attributes( unique int id: @attribute, + int kind: int ref, int type_id: @type_or_ref ref, int target: @attributable ref); +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + attribute_location( int id: @attribute ref, int loc: @location ref); diff --git a/csharp/ql/lib/semmlecode.csharp.dbscheme.stats b/csharp/ql/lib/semmlecode.csharp.dbscheme.stats index 9f8acbb2b0a..65ac0443b45 100644 --- a/csharp/ql/lib/semmlecode.csharp.dbscheme.stats +++ b/csharp/ql/lib/semmlecode.csharp.dbscheme.stats @@ -2,43 +2,43 @@ @compilation - 1622 + 1549 @diagnostic - 25024 + 24565 @extractor_message - 44691 + 41551 @assembly - 30136 + 27545 @file - 508426 + 464722 @folder - 484045 + 442437 @namespace - 367575 + 343752 @namespace_declaration - 32679 + 31219 @using_namespace_directive - 170883 + 163247 @using_static_directive - 483 + 474 @directive_if @@ -58,11 +58,11 @@ @directive_region - 25505 + 24936 @directive_endregion - 25505 + 24936 @directive_line @@ -70,7 +70,7 @@ @directive_nullable - 3382 + 3320 @directive_warning @@ -94,111 +94,111 @@ @pragma_warning - 1873 + 1831 @bool_type - 169 + 154 @char_type - 169 + 154 @decimal_type - 169 + 154 @sbyte_type - 169 + 154 @short_type - 169 + 154 @int_type - 169 + 154 @long_type - 169 + 154 @byte_type - 169 + 154 @ushort_type - 169 + 154 @uint_type - 169 + 154 @ulong_type - 169 + 154 @float_type - 169 + 154 @double_type - 169 + 154 @enum_type - 149911 + 140195 @struct_type - 1223173 + 1223207 @class_type - 3789350 + 3543761 @interface_type - 2384805 + 2230245 @delegate_type - 2249822 + 2249884 @null_type - 169 + 154 @type_parameter - 831790 + 831813 @pointer_type - 9784 + 9150 @nullable_type - 16705 + 15622 @array_type - 85803 + 80242 @void_type - 169 + 154 @int_ptr_type - 169 + 154 @dynamic_type - 21 + 20 @arglist_type @@ -210,11 +210,11 @@ @tuple_type - 27812 + 26010 @function_pointer_type - 27738 + 27733 @uint_ptr_type @@ -222,83 +222,95 @@ @typeref - 3537560 + 3308289 - @attribute - 10551328 + @attribute_default + 9866864 - @type_mention - 4147990 + @attribute_return + 235223 + + + @attribute_assembly + 37747 + + + @attribute_module + 37 @location_default - 43578472 + 2041588277 + + + @type_mention + 4148103 @oblivious - 15641 + 14628 @not_annotated - 4909 + 4544 @annotated - 3216 + 2940 @type_parameter_constraints - 1730279 + 831813 @modifier - 2539 + 2321 @property - 4879885 + 4563618 @indexer - 104631 + 95946 @getter - 4950263 + 4629435 @setter - 864799 + 808751 @event - 59075 + 55246 @add_event_accessor - 59075 + 55246 @remove_event_accessor - 59075 + 55246 @operator - 807641 + 807663 @method - 15027104 + 14053435 @constructor - 4401492 + 4116230 @destructor - 6095 + 5571 @local_function @@ -306,35 +318,35 @@ @addressable_field - 8156760 + 7628118 @constant - 2845820 + 2661381 @addressable_local_variable - 353479 + 353412 @local_constant - 1273 + 1244 @local_variable_ref - 413 + 407 @parameter - 27466231 + 25686134 @block_stmt - 470420 + 459922 @expr_stmt - 493564 + 493470 @if_stmt @@ -346,11 +358,11 @@ @while_stmt - 11507 + 11495 @do_stmt - 1261 + 1242 @for_stmt @@ -358,19 +370,19 @@ @foreach_stmt - 20870 + 20404 @break_stmt - 42188 + 42144 @continue_stmt - 6618 + 6471 @goto_stmt - 3586 + 3534 @goto_case_stmt @@ -378,7 +390,7 @@ @throw_stmt - 114825 + 113140 @return_stmt @@ -386,15 +398,15 @@ @yield_stmt - 4545 + 4444 @try_stmt - 14229 + 13912 @checked_stmt - 317 + 312 @unchecked_stmt @@ -402,19 +414,19 @@ @lock_stmt - 6270 + 6130 @using_block_stmt - 7060 + 6942 @var_decl_stmt - 319997 + 319935 @const_decl_stmt - 1273 + 1244 @empty_stmt @@ -422,19 +434,19 @@ @label_stmt - 1347 + 1328 @catch - 19789 + 19348 @case_stmt - 95740 + 95743 @goto_default_stmt - 196 + 192 @unsafe_stmt @@ -442,19 +454,19 @@ @fixed_stmt - 1442 + 1421 @local_function_stmt - 3316 + 3256 @using_decl_stmt - 9176 + 9023 @bool_literal_expr - 585968 + 536217 @char_literal_expr @@ -462,11 +474,11 @@ @int_literal_expr - 3350904 + 3456554 @long_literal_expr - 14560 + 13308 @uint_literal_expr @@ -474,23 +486,23 @@ @ulong_literal_expr - 846 + 773 @float_literal_expr - 91457 + 89289 @double_literal_expr - 34816 + 34809 @string_literal_expr - 1548382 + 1491753 @null_literal_expr - 155826 + 153585 @this_access_expr @@ -498,35 +510,35 @@ @base_access_expr - 30751 + 30237 @local_variable_access_expr - 1030136 + 1029939 @parameter_access_expr - 969866 + 969893 @field_access_expr - 753789 + 753843 @property_access_expr - 1360054 + 1358619 @method_access_expr - 22567 + 22568 @event_access_expr - 8205 + 8204 @indexer_access_expr - 42728 + 42720 @array_access_expr @@ -534,31 +546,31 @@ @type_access_expr - 919474 + 919499 @typeof_expr - 439081 + 410624 @method_invocation_expr - 832863 + 817602 @delegate_invocation_expr - 56440 + 56441 @operator_invocation_expr - 778748 + 778769 @cast_expr - 540196 + 532460 @object_creation_expr - 438904 + 438441 @explicit_delegate_creation_expr @@ -566,15 +578,15 @@ @implicit_delegate_creation_expr - 6692 + 6543 @array_creation_expr - 349823 + 380830 @default_expr - 790758 + 790780 @minus_expr @@ -594,7 +606,7 @@ @pre_incr_expr - 9378 + 9376 @pre_decr_expr @@ -638,11 +650,11 @@ @le_expr - 12909 + 12907 @ge_expr - 8059 + 8057 @eq_expr @@ -650,7 +662,7 @@ @ne_expr - 67609 + 66100 @bit_and_expr @@ -662,11 +674,11 @@ @bit_or_expr - 22325 + 22018 @log_and_expr - 46502 + 46503 @log_or_expr @@ -674,23 +686,23 @@ @is_expr - 13085 + 13082 @as_expr - 14374 + 14372 @null_coalescing_expr - 22567 + 22568 @conditional_expr - 45861 + 45862 @simple_assign_expr - 1592070 + 1590390 @assign_add_expr @@ -702,7 +714,7 @@ @assign_mul_expr - 261 + 257 @assign_or_expr @@ -710,31 +722,31 @@ @object_init_expr - 383016 + 382612 @collection_init_expr - 10286 + 10284 @array_init_expr - 349224 + 380258 @checked_expr - 589 + 580 @unchecked_expr - 1784 + 1758 @constructor_init_expr - 30831 + 30378 @add_event_expr - 2494 + 2490 @remove_event_expr @@ -742,11 +754,11 @@ @local_var_decl_expr - 354490 + 354422 @lambda_expr - 733506 + 733526 @anonymous_method_expr @@ -754,15 +766,15 @@ @dynamic_element_access_expr - 359 + 343 @dynamic_member_access_expr - 3401 + 3249 @nameof_expr - 37520 + 36893 @interpolated_string_expr @@ -774,7 +786,7 @@ @tuple_expr - 5584 + 5491 @define_symbol_expr @@ -782,19 +794,19 @@ @decimal_literal_expr - 131180 + 128070 @plus_expr - 977 + 955 @bit_not_expr - 1296 + 1280 @assign_div_expr - 128 + 126 @assign_rem_expr @@ -810,11 +822,11 @@ @assign_lshift_expr - 148 + 146 @assign_rshift_expr - 289 + 285 @par_expr @@ -830,15 +842,15 @@ @address_of_expr - 1627 + 1604 @sizeof_expr - 1375 + 1355 @await_expr - 43981 + 42016 @unknown_expr @@ -846,55 +858,55 @@ @local_function_invocation_expr - 22567 + 22568 @ref_expr - 694 + 684 @discard_expr - 1634 + 1605 @range_expr - 324 + 318 @index_expr - 94 + 92 @switch_expr - 772 + 760 @recursive_pattern_expr - 2047 + 2016 @property_pattern_expr - 1616 + 1627 @positional_pattern_expr - 425 + 417 @switch_case_expr - 6149 + 6059 @assign_coalesce_expr - 1725 + 1686 @suppress_nullable_warning_expr - 18136 + 17869 @namespace_access_expr - 25 + 24 @lt_pattern_expr @@ -902,27 +914,27 @@ @gt_pattern_expr - 30 + 29 @le_pattern_expr - 30 + 29 @ge_pattern_expr - 39 + 41 @not_pattern_expr - 1384 + 1353 @and_pattern_expr - 123 + 122 @or_pattern_expr - 906 + 890 @function_pointer_invocation_expr @@ -930,7 +942,7 @@ @with_expr - 103 + 101 @xmldtd @@ -938,23 +950,27 @@ @xmlelement - 1042732803 + 953100387 @xmlattribute - 782956405 + 715654145 @xmlnamespace - 3047 + 2785 @xmlcomment - 201474 + 184155 @xmlcharacters - 808542609 + 739040981 + + + @commentblock + 411861 @singlelinecomment @@ -962,16 +978,12 @@ @xmldoccomment - 1212392 + 1211114 @multilinecomment 56989 - - @commentblock - 412295 - @asp_close_tag 13496 @@ -1010,55 +1022,55 @@ @cil_valueorreftype - 7660317 + 7163849 @cil_typeparameter - 1302992 + 1218544 @cil_array_type - 133553 + 124897 @cil_pointer_type - 10695 + 10002 @cil_function_pointer_type - 28676 + 28670 @cil_method - 28926164 + 27051448 @cil_ceq - 683257 + 638975 @cil_cgt - 61114 + 57153 @cil_cgt_un - 260988 + 244074 @cil_clt - 55668 + 52061 @cil_clt_un - 5510 + 5153 @cil_ldftn - 2118023 + 1980753 @cil_ldvirtftn - 37770 + 35322 @cil_ldarg @@ -1066,19 +1078,19 @@ @cil_ldloc - 10804 + 10103 @cil_stloc - 9524 + 8906 @cil_localloc - 1739 + 1713 @cil_endfilter - 12190 + 11142 @cil_unaligned @@ -1086,19 +1098,19 @@ @cil_volatile - 40569 + 37940 @cil_initobj - 698443 + 653177 @cil_constrained - 557145 + 521036 @cil_cpblk - 11913 + 11910 @cil_initblk @@ -1106,103 +1118,103 @@ @cil_rethrow - 52913 + 49484 @cil_sizeof - 21456 + 20065 @cil_readonly - 86 + 82 @cil_stsfld - 1909493 + 1785738 @cil_stobj - 53260 + 49808 @cil_box - 1043087 + 975484 @cil_newarr - 1178159 + 1101802 @cil_ldlen - 418970 + 391817 @cil_ldelema - 524863 + 490846 @cil_ldelem_i1 - 2343 + 2191 @cil_ldelem_u1 - 77038 + 72045 @cil_ldelem_i2 - 6161 + 5762 @cil_ldelem_u2 - 18285 + 16713 @cil_ldelem_i4 - 116262 + 108727 @cil_ldelem_u4 - 96043 + 89818 @cil_ldelem_i8 - 47446 + 44371 @cil_ldelem_i - 169 + 154 @cil_ldelem_r4 - 846 + 791 @cil_ldelem_r8 - 4689 + 4688 @cil_ldelem_ref - 253308 + 236891 @cil_stelem_i - 507 + 464 @cil_stelem_i1 - 55278 + 51695 @cil_stelem_i2 - 67991 + 63585 @cil_stelem_i4 - 127175 + 118932 @cil_stelem_i8 - 22779 + 21303 @cil_stelem_r8 @@ -1210,351 +1222,351 @@ @cil_stelem_ref - 3101385 + 2900383 @cil_ldelem - 26380 + 24671 @cil_stelem - 152948 + 143035 @cil_unbox_any - 167245 + 156406 @cil_conv_ovf_u1 - 607 + 568 @cil_conv_ovf_i4 - 543 + 519 @cil_conv_ovf_i8 - 86 + 81 @cil_ldtoken - 749621 + 701038 @cil_conv_u2 - 27617 + 25827 @cil_conv_u1 - 175033 + 163689 @cil_conv_i - 25187 + 23555 @cil_conv_ovf_i - 1778 + 1663 @cil_add_ovf - 6378 + 5964 @cil_mul_ovf - 932 + 872 @cil_sub_ovf - 2064 + 1972 @cil_endfinally - 1445722 + 1352024 @cil_leave - 508917 + 475934 @cil_leave_s - 2302560 + 2153330 @cil_stind_i - 1258 + 1176 @cil_conv_u - 83850 + 78416 @cil_nop - 1547241 + 1545614 @cil_ldarg_0 - 39364181 + 36812972 @cil_ldarg_1 - 15405506 + 14407069 @cil_ldarg_2 - 5488989 + 5133246 @cil_ldarg_3 - 2376431 + 2222413 @cil_ldloc_0 - 12928909 + 12090982 @cil_ldloc_1 - 6975715 + 6523616 @cil_ldloc_2 - 4951066 + 4630185 @cil_ldloc_3 - 3108306 + 2906855 @cil_stloc_0 - 6417355 + 6001444 @cil_stloc_1 - 3676168 + 3437915 @cil_stloc_2 - 2658095 + 2485823 @cil_stloc_3 - 1822149 + 1704055 @cil_ldarg_s - 2508747 + 2346154 @cil_ldarga_s - 917084 + 857647 @cil_starg_s - 198637 + 185764 @cil_ldloc_s - 10621034 + 9932680 @cil_ldloca_s - 7189474 + 6723522 @cil_stloc_s - 6640335 + 6209972 @cil_ldnull - 5392397 + 4928871 @cil_ldc_i4_m1 - 640279 + 598783 @cil_ldc_i4_0 - 7980533 + 7463312 @cil_ldc_i4_1 - 6322961 + 5913167 @cil_ldc_i4_2 - 1431534 + 1338755 @cil_ldc_i4_3 - 788672 + 737558 @cil_ldc_i4_4 - 724282 + 677341 @cil_ldc_i4_5 - 424936 + 397396 @cil_ldc_i4_6 - 245433 + 229527 @cil_ldc_i4_7 - 218054 + 203922 @cil_ldc_i4_8 - 326615 + 305447 @cil_ldc_i4_s - 3951628 + 3695521 @cil_ldc_i4 - 2083962 + 1948900 @cil_ldc_i8 - 26467 + 24752 @cil_ldc_r4 - 22822 + 21343 @cil_ldc_r8 - 175099 + 163750 @cil_dup - 6812179 + 6370679 @cil_pop - 2850593 + 2665845 @cil_call - 35891726 + 33565569 @cil_calli - 12865 + 12031 @cil_ret - 23260101 + 21752604 @cil_br_s - 4244074 + 3969014 @cil_brfalse_s - 7354008 + 6877392 @cil_brtrue_s - 6868456 + 6423308 @cil_beq_s - 1166965 + 1091333 @cil_bge_s - 222133 + 207736 @cil_bgt_s - 174773 + 163446 @cil_ble_s - 251334 + 235045 @cil_blt_s - 426845 + 399181 @cil_bne_un_s - 1697187 + 1587191 @cil_bge_un_s - 13797 + 12903 @cil_bgt_un_s - 74261 + 69448 @cil_ble_un_s - 72504 + 67805 @cil_blt_un_s - 9849 + 9211 @cil_br - 1052156 + 983965 @cil_brfalse - 700830 + 655409 @cil_brtrue - 590511 + 552240 @cil_beq - 308565 + 288567 @cil_bge - 25643 + 23981 @cil_bgt - 26163 + 24468 @cil_ble - 42348 + 39603 @cil_blt - 69944 + 65411 @cil_bne_un - 154814 + 144780 @cil_bge_un - 2364 + 2211 @cil_bgt_un - 9372 + 8764 @cil_ble_un - 25578 + 23920 @cil_blt_un - 1670 + 1562 @cil_switch - 200330 + 187346 @cil_ldind_i1 @@ -1562,27 +1574,27 @@ @cil_ldind_u1 - 66169 + 61880 @cil_ldind_u2 - 7983 + 7466 @cil_ldind_i4 - 161149 + 150705 @cil_ldind_u4 - 4859 + 4544 @cil_ldind_i8 - 18697 + 18693 @cil_ldind_r4 - 1309 + 1250 @cil_ldind_r8 @@ -1590,187 +1602,187 @@ @cil_ldind_ref - 140300 + 131207 @cil_stind_ref - 239142 + 223643 @cil_stind_i1 - 106413 + 99516 @cil_stind_i2 - 8309 + 7770 @cil_stind_i4 - 324337 + 303317 @cil_stind_i8 - 18419 + 18415 @cil_stind_r4 - 626 + 598 @cil_stind_r8 - 2299 + 2150 @cil_add - 1977549 + 1849383 @cil_sub - 739880 + 691928 @cil_mul - 313316 + 293010 @cil_div - 62481 + 58431 @cil_div_un - 2147 + 2008 @cil_rem - 17811 + 16657 @cil_rem_un - 1844 + 1724 @cil_and - 371762 + 347668 @cil_or - 165878 + 155128 @cil_xor - 141190 + 132039 @cil_shl - 86779 + 81155 @cil_shr - 44539 + 41652 @cil_shr_un - 84349 + 78882 @cil_neg - 21673 + 20268 @cil_not - 14947 + 13978 @cil_conv_i1 - 5597 + 5234 @cil_conv_i2 - 12214 + 11422 @cil_conv_i4 - 392307 + 366882 @cil_conv_i8 - 227036 + 212322 @cil_conv_r4 - 16444 + 15378 @cil_conv_r8 - 37445 + 35018 @cil_conv_u4 - 41372 + 38690 @cil_conv_u8 - 105046 + 98238 @cil_callvirt - 30280746 + 28318239 @cil_cpobj - 37358 + 34937 @cil_ldobj - 120384 + 112582 @cil_ldstr - 8268532 + 7732645 @cil_newobj - 9350996 + 8744954 @cil_castclass - 1325294 + 1239401 @cil_isinst - 2016426 + 1885741 @cil_conv_r_un - 2972 + 2779 @cil_unbox - 7137 + 6675 @cil_throw - 5164341 + 4720419 @cil_ldfld - 16903665 + 15808131 @cil_ldflda - 1433638 + 1340723 @cil_stfld - 8348608 + 7807531 @cil_ldsfld - 7724165 + 7223559 @cil_ldsflda - 22584 + 21120 @cil_break @@ -1782,39 +1794,39 @@ @cil_ldind_i2 - 3818 + 3570 @cil_ldind_i - 26489 + 24772 @cil_conv_ovf_i1_un - 260 + 243 @cil_conv_ovf_i2_un - 216 + 202 @cil_conv_ovf_i4_un - 2104 + 1968 @cil_conv_ovf_i8_un - 339 + 331 @cil_conv_ovf_u1_un - 325 + 304 @cil_conv_ovf_u2_un - 368 + 344 @cil_conv_ovf_u4_un - 195 + 182 @cil_conv_ovf_u8_un @@ -1822,7 +1834,7 @@ @cil_conv_ovf_i_un - 672 + 628 @cil_conv_ovf_u_un @@ -1830,31 +1842,31 @@ @cil_stelem_r4 - 1214 + 1136 @cil_conv_ovf_i1 - 542 + 507 @cil_conv_ovf_i2 - 824 + 770 @cil_conv_ovf_u2 - 954 + 892 @cil_conv_ovf_u4 - 2711 + 2536 @cil_conv_ovf_u8 - 368 + 344 @cil_refanyval - 21 + 20 @cil_ckinfinite @@ -1862,7 +1874,7 @@ @cil_mkrefany - 43 + 40 @cil_conv_ovf_u @@ -1870,15 +1882,15 @@ @cil_add_ovf_un - 1518 + 1420 @cil_mul_ovf_un - 889 + 831 @cil_sub_ovf_un - 260 + 243 @cil_arglist @@ -1894,7 +1906,7 @@ @cil_ldloca - 57860 + 54110 @cil_tail @@ -1906,61 +1918,61 @@ @cil_method_implementation - 19889330 + 18600295 @cil_field - 11684971 + 10927663 @cil_parameter - 55186618 + 51609951 @cil_property - 4409953 + 4124142 @cil_event - 51937 + 48571 @cil_local_variable - 16916551 + 15820183 @cil_catch_handler - 294464 + 275379 @cil_filter_handler - 12190 + 11142 @cil_finally_handler - 1221332 + 1142177 @cil_fault_handler - 224389 + 209846 @cil_attribute - 4315754 + 4036048 compilations - 1622 + 1549 id - 1622 + 1549 cwd - 1622 + 1549 @@ -1974,7 +1986,7 @@ 1 2 - 1622 + 1549 @@ -1990,7 +2002,7 @@ 1 2 - 1622 + 1549 @@ -2000,7 +2012,7 @@ compilation_args - 11261 + 9968 id @@ -2008,11 +2020,11 @@ num - 95 + 92 arg - 1441 + 1430 @@ -2024,43 +2036,43 @@ 12 - 10 - 23 + 7 + 20 20 + + 20 + 21 + 64 + + + 21 + 22 + 154 + + + 22 + 23 + 60 + 23 24 - 64 - - - 24 - 25 - 154 - - - 25 - 26 - 60 - - - 26 - 27 31 - 27 - 29 + 24 + 26 33 - 29 - 33 + 26 + 30 36 - 33 - 96 + 30 + 93 33 @@ -2075,43 +2087,43 @@ 12 - 10 - 23 + 7 + 20 20 + + 20 + 21 + 64 + + + 21 + 22 + 155 + + + 22 + 23 + 60 + 23 24 - 64 - - - 24 - 25 - 155 - - - 25 - 26 - 60 - - - 26 - 27 30 - 27 - 29 + 24 + 26 33 - 29 - 33 + 26 + 30 36 - 33 - 96 + 30 + 93 33 @@ -2147,13 +2159,18 @@ 15 - 70 - 8 + 58 + 7 - 83 + 69 + 412 + 7 + + + 428 430 - 8 + 2 430 @@ -2163,7 +2180,7 @@ 431 432 - 10 + 7 @@ -2179,7 +2196,7 @@ 1 2 - 5 + 3 2 @@ -2194,7 +2211,7 @@ 9 10 - 5 + 4 10 @@ -2203,23 +2220,23 @@ 12 - 20 - 8 + 16 + 7 - 25 - 61 - 8 + 19 + 42 + 7 - 68 - 181 - 8 + 53 + 117 + 7 - 259 + 120 274 - 2 + 5 @@ -2235,12 +2252,12 @@ 1 2 - 1171 + 1170 2 3 - 112 + 108 3 @@ -2250,7 +2267,7 @@ 16 432 - 47 + 41 @@ -2266,7 +2283,7 @@ 1 2 - 1212 + 1201 2 @@ -2291,19 +2308,19 @@ compilation_compiling_files - 37897 + 36203 id - 1622 + 1549 num - 1585 + 1514 file - 37888 + 36194 @@ -2317,72 +2334,72 @@ 1 2 - 73 + 70 3 4 - 92 + 88 4 5 - 82 + 79 5 6 - 138 + 132 6 8 - 129 + 123 8 10 - 119 + 114 10 13 - 119 + 114 13 16 - 147 + 140 16 20 - 129 + 123 20 26 - 138 + 132 26 36 - 147 + 140 36 53 - 129 + 123 55 120 - 129 + 123 138 173 - 46 + 44 @@ -2398,72 +2415,72 @@ 1 2 - 73 + 70 3 4 - 92 + 88 4 5 - 82 + 79 5 6 - 138 + 132 6 8 - 129 + 123 8 10 - 119 + 114 10 13 - 119 + 114 13 16 - 147 + 140 16 20 - 129 + 123 20 26 - 138 + 132 26 36 - 147 + 140 36 53 - 129 + 123 55 120 - 129 + 123 138 173 - 46 + 44 @@ -2479,62 +2496,62 @@ 1 2 - 230 + 220 2 5 - 82 + 79 5 6 - 175 + 167 6 7 - 64 + 61 7 8 - 156 + 149 8 9 - 202 + 193 9 15 - 129 + 123 16 23 - 119 + 114 24 40 - 119 + 114 40 60 - 119 + 114 64 121 - 119 + 114 125 177 - 64 + 61 @@ -2550,62 +2567,62 @@ 1 2 - 230 + 220 2 5 - 82 + 79 5 6 - 175 + 167 6 7 - 64 + 61 7 8 - 156 + 149 8 9 - 202 + 193 9 15 - 129 + 123 16 23 - 119 + 114 24 40 - 119 + 114 40 60 - 119 + 114 64 121 - 119 + 114 125 177 - 64 + 61 @@ -2621,12 +2638,12 @@ 1 2 - 37878 + 36186 2 3 - 9 + 8 @@ -2642,12 +2659,12 @@ 1 2 - 37878 + 36186 2 3 - 9 + 8 @@ -2657,19 +2674,19 @@ compilation_referencing_files - 523638 + 500238 id - 1622 + 1549 num - 5558 + 5310 file - 6028 + 5759 @@ -2683,72 +2700,72 @@ 4 289 - 119 + 114 289 292 - 101 + 96 292 294 - 101 + 96 294 297 - 119 + 114 297 300 - 129 + 123 300 315 - 129 + 123 315 317 - 147 + 140 317 322 - 110 + 105 322 325 - 119 + 114 325 329 - 129 + 123 329 353 - 129 + 123 355 366 - 138 + 132 366 564 - 129 + 123 587 604 - 18 + 17 @@ -2764,72 +2781,72 @@ 4 289 - 119 + 114 289 292 - 101 + 96 292 294 - 101 + 96 294 297 - 119 + 114 297 300 - 129 + 123 300 315 - 129 + 123 315 317 - 147 + 140 317 322 - 110 + 105 322 325 - 119 + 114 325 329 - 129 + 123 329 353 - 129 + 123 355 366 - 138 + 132 366 564 - 129 + 123 587 604 - 18 + 17 @@ -2845,42 +2862,42 @@ 1 5 - 442 + 422 5 6 - 27 + 26 6 7 - 1594 + 1523 7 39 - 424 + 405 39 164 - 414 + 396 173 174 - 1189 + 1136 175 176 - 1428 + 1365 176 177 - 36 + 35 @@ -2896,52 +2913,52 @@ 1 5 - 442 + 422 5 6 - 774 + 1056 6 7 - 866 + 510 7 - 16 - 322 + 17 + 440 - 16 - 20 - 433 + 17 + 21 + 405 - 20 - 25 - 442 + 21 + 26 + 422 - 25 - 29 - 433 + 26 + 37 + 413 - 29 - 46 - 424 + 37 + 50 + 396 - 46 - 56 - 424 + 51 + 55 + 378 - 56 + 55 59 - 451 + 378 59 @@ -2951,7 +2968,7 @@ 63 66 - 138 + 79 @@ -2967,47 +2984,47 @@ 1 2 - 497 + 475 2 6 - 341 + 325 6 7 - 682 + 651 7 8 - 516 + 493 8 12 - 479 + 457 12 41 - 488 + 466 41 172 - 405 + 387 173 174 - 1152 + 1100 175 176 - 1465 + 1400 @@ -3023,72 +3040,67 @@ 1 2 - 534 + 510 2 5 - 451 + 387 5 6 - 350 + 440 6 7 - 691 + 616 7 10 - 497 + 475 10 15 - 516 + 475 15 20 - 507 + 440 20 25 - 451 + 528 25 - 35 - 460 + 41 + 440 - 35 - 58 - 387 + 41 + 57 + 413 - 58 - 59 - 276 - - - 59 + 57 60 - 350 + 387 60 63 - 460 + 501 63 - 67 - 92 + 71 + 140 @@ -3098,23 +3110,23 @@ compilation_time - 11357 + 10849 id - 1622 + 1549 num - 9 + 8 kind - 64 + 61 seconds - 8333 + 7564 @@ -3128,7 +3140,7 @@ 1 2 - 1622 + 1549 @@ -3144,7 +3156,7 @@ 7 8 - 1622 + 1549 @@ -3157,10 +3169,15 @@ 12 + + 6 + 7 + 26 + 7 8 - 1622 + 1523 @@ -3176,7 +3193,7 @@ 176 177 - 9 + 8 @@ -3192,7 +3209,7 @@ 7 8 - 9 + 8 @@ -3206,9 +3223,9 @@ 12 - 904 - 905 - 9 + 859 + 860 + 8 @@ -3224,7 +3241,7 @@ 176 177 - 64 + 61 @@ -3240,7 +3257,7 @@ 1 2 - 64 + 61 @@ -3254,29 +3271,29 @@ 12 - 125 - 126 - 9 + 116 + 117 + 8 - 130 - 131 - 9 + 117 + 118 + 8 + + + 138 + 139 + 8 140 141 - 9 - - - 144 - 145 - 9 + 8 176 177 - 27 + 26 @@ -3292,22 +3309,22 @@ 1 2 - 6664 + 6041 2 3 - 912 + 572 3 - 6 - 728 + 4 + 466 - 6 - 8 - 27 + 4 + 9 + 484 @@ -3323,7 +3340,7 @@ 1 2 - 8333 + 7564 @@ -3339,17 +3356,17 @@ 1 2 - 6996 + 6270 2 3 - 1179 + 1030 3 5 - 156 + 264 @@ -3359,15 +3376,15 @@ diagnostic_for - 25024 + 24565 diagnostic - 25024 + 24565 compilation - 93 + 91 file_number @@ -3375,7 +3392,7 @@ file_number_diagnostic_number - 10016 + 9833 @@ -3389,7 +3406,7 @@ 1 2 - 25024 + 24565 @@ -3405,7 +3422,7 @@ 1 2 - 25024 + 24565 @@ -3421,7 +3438,7 @@ 1 2 - 25024 + 24565 @@ -3518,7 +3535,7 @@ 1 2 - 93 + 91 @@ -3668,12 +3685,12 @@ 2 3 - 9480 + 9306 3 72 - 508 + 499 @@ -3694,12 +3711,12 @@ 2 3 - 9480 + 9306 3 72 - 508 + 499 @@ -3715,7 +3732,7 @@ 1 2 - 10016 + 9833 @@ -3725,11 +3742,11 @@ diagnostics - 25024 + 24565 id - 25024 + 24565 severity @@ -3737,7 +3754,7 @@ error_tag - 65 + 64 error_message @@ -3745,11 +3762,11 @@ full_error_message - 2340 + 2297 location - 12805 + 12570 @@ -3763,7 +3780,7 @@ 1 2 - 25024 + 24565 @@ -3779,7 +3796,7 @@ 1 2 - 25024 + 24565 @@ -3795,7 +3812,7 @@ 1 2 - 25024 + 24565 @@ -3811,7 +3828,7 @@ 1 2 - 25024 + 24565 @@ -3827,7 +3844,7 @@ 1 2 - 25024 + 24565 @@ -4024,7 +4041,7 @@ 1 2 - 65 + 64 @@ -4040,7 +4057,7 @@ 1 2 - 65 + 64 @@ -4056,7 +4073,7 @@ 1 2 - 21 + 20 2 @@ -4265,7 +4282,7 @@ 1 2 - 13 + 12 40 @@ -4393,32 +4410,32 @@ 2 3 - 1269 + 1245 4 5 - 374 + 367 5 7 - 179 + 175 8 11 - 213 + 209 12 23 - 185 + 182 24 5630 - 114 + 112 @@ -4434,7 +4451,7 @@ 1 2 - 2340 + 2297 @@ -4450,7 +4467,7 @@ 1 2 - 2340 + 2297 @@ -4466,7 +4483,7 @@ 1 2 - 2340 + 2297 @@ -4482,32 +4499,32 @@ 1 2 - 1271 + 1248 2 3 - 375 + 368 3 4 - 177 + 174 4 6 - 214 + 210 6 12 - 185 + 182 12 3050 - 114 + 112 @@ -4523,12 +4540,12 @@ 1 2 - 739 + 725 2 3 - 12029 + 11808 3 @@ -4549,7 +4566,7 @@ 1 2 - 12805 + 12570 @@ -4565,7 +4582,7 @@ 1 2 - 12798 + 12564 2 @@ -4586,7 +4603,7 @@ 1 2 - 12805 + 12570 @@ -4602,7 +4619,7 @@ 1 2 - 12798 + 12564 2 @@ -4617,35 +4634,35 @@ extractor_messages - 44691 + 41551 id - 44691 + 41551 severity - 43 + 40 origin - 21 + 20 text - 86 + 60 entity - 282 + 20 location - 65 + 20 stack_trace - 151 + 121 @@ -4659,7 +4676,7 @@ 1 2 - 44691 + 41551 @@ -4675,7 +4692,7 @@ 1 2 - 44691 + 41551 @@ -4691,7 +4708,7 @@ 1 2 - 44691 + 41551 @@ -4707,7 +4724,7 @@ 1 2 - 44691 + 41551 @@ -4723,7 +4740,7 @@ 1 2 - 44691 + 41551 @@ -4739,7 +4756,7 @@ 1 2 - 44691 + 41551 @@ -4755,12 +4772,12 @@ 5 6 - 21 + 20 - 2055 - 2056 - 21 + 2043 + 2044 + 20 @@ -4776,7 +4793,7 @@ 1 2 - 43 + 40 @@ -4792,12 +4809,12 @@ 1 2 - 21 + 20 - 3 - 4 - 21 + 2 + 3 + 20 @@ -4813,12 +4830,7 @@ 1 2 - 21 - - - 13 - 14 - 21 + 40 @@ -4834,12 +4846,7 @@ 1 2 - 21 - - - 3 - 4 - 21 + 40 @@ -4855,12 +4862,12 @@ 1 2 - 21 + 20 - 6 - 7 - 21 + 5 + 6 + 20 @@ -4874,9 +4881,9 @@ 12 - 2060 - 2061 - 21 + 2048 + 2049 + 20 @@ -4892,7 +4899,7 @@ 2 3 - 21 + 20 @@ -4906,9 +4913,9 @@ 12 - 4 - 5 - 21 + 3 + 4 + 20 @@ -4922,9 +4929,9 @@ 12 - 13 - 14 - 21 + 1 + 2 + 20 @@ -4938,9 +4945,9 @@ 12 - 3 - 4 - 21 + 1 + 2 + 20 @@ -4954,9 +4961,9 @@ 12 - 7 - 8 - 21 + 6 + 7 + 20 @@ -4972,22 +4979,17 @@ 2 3 - 21 + 20 5 6 - 21 - - - 12 - 13 - 21 + 20 2041 2042 - 21 + 20 @@ -5003,7 +5005,7 @@ 1 2 - 86 + 60 @@ -5019,7 +5021,7 @@ 1 2 - 86 + 60 @@ -5035,12 +5037,7 @@ 1 2 - 65 - - - 12 - 13 - 21 + 60 @@ -5056,12 +5053,7 @@ 1 2 - 65 - - - 2 - 3 - 21 + 60 @@ -5077,12 +5069,12 @@ 1 2 - 65 + 40 4 5 - 21 + 20 @@ -5095,15 +5087,10 @@ 12 - - 1 - 2 - 260 - 2048 2049 - 21 + 20 @@ -5116,15 +5103,10 @@ 12 - - 1 - 2 - 260 - 2 3 - 21 + 20 @@ -5140,7 +5122,7 @@ 1 2 - 282 + 20 @@ -5153,15 +5135,10 @@ 12 - - 1 - 2 - 260 - 3 4 - 21 + 20 @@ -5177,7 +5154,7 @@ 1 2 - 282 + 20 @@ -5190,15 +5167,10 @@ 12 - - 1 - 2 - 260 - 6 7 - 21 + 20 @@ -5211,20 +5183,10 @@ 12 - - 2 - 3 - 21 - - - 10 - 11 - 21 - 2048 2049 - 21 + 20 @@ -5237,15 +5199,10 @@ 12 - - 1 - 2 - 43 - 2 3 - 21 + 20 @@ -5261,7 +5218,7 @@ 1 2 - 65 + 20 @@ -5274,15 +5231,10 @@ 12 - - 1 - 2 - 43 - 3 4 - 21 + 20 @@ -5298,17 +5250,7 @@ 1 2 - 21 - - - 2 - 3 - 21 - - - 10 - 11 - 21 + 20 @@ -5321,15 +5263,10 @@ 12 - - 1 - 2 - 43 - 6 7 - 21 + 20 @@ -5345,27 +5282,22 @@ 2 3 - 65 + 60 5 6 - 21 - - - 12 - 13 - 21 + 20 24 25 - 21 + 20 2013 2014 - 21 + 20 @@ -5381,7 +5313,7 @@ 1 2 - 151 + 121 @@ -5397,7 +5329,7 @@ 1 2 - 151 + 121 @@ -5413,7 +5345,7 @@ 1 2 - 151 + 121 @@ -5429,12 +5361,7 @@ 1 2 - 130 - - - 12 - 13 - 21 + 121 @@ -5450,12 +5377,7 @@ 1 2 - 130 - - - 2 - 3 - 21 + 121 @@ -5465,19 +5387,19 @@ compilation_finished - 1622 + 1549 id - 1622 + 1549 cpu_seconds - 1438 + 1329 elapsed_seconds - 1622 + 1549 @@ -5491,7 +5413,7 @@ 1 2 - 1622 + 1549 @@ -5507,7 +5429,7 @@ 1 2 - 1622 + 1549 @@ -5523,17 +5445,17 @@ 1 2 - 1272 + 1118 2 3 - 147 + 202 3 4 - 18 + 8 @@ -5549,17 +5471,17 @@ 1 2 - 1272 + 1118 2 3 - 147 + 202 3 4 - 18 + 8 @@ -5575,7 +5497,7 @@ 1 2 - 1622 + 1549 @@ -5591,7 +5513,7 @@ 1 2 - 1622 + 1549 @@ -5601,15 +5523,15 @@ compilation_assembly - 1622 + 1549 id - 1622 + 1549 assembly - 1622 + 1549 @@ -5623,7 +5545,7 @@ 1 2 - 1622 + 1549 @@ -5639,7 +5561,7 @@ 1 2 - 1622 + 1549 @@ -5649,42 +5571,42 @@ sourceLocationPrefix - 169 + 154 prefix - 169 + 154 locations_default - 43578472 + 2041588277 id - 43578472 + 2041588277 file - 16933 + 437176 beginLine - 2347252 + 10083216 beginColumn - 51054 + 255806 endLine - 2511832 + 10387151 endColumn - 58694 + 277007 @@ -5698,7 +5620,7 @@ 1 2 - 43578472 + 2041588277 @@ -5714,7 +5636,7 @@ 1 2 - 43578472 + 2041588277 @@ -5730,7 +5652,7 @@ 1 2 - 43578472 + 2041588277 @@ -5746,7 +5668,7 @@ 1 2 - 43578472 + 2041588277 @@ -5762,7 +5684,7 @@ 1 2 - 43578472 + 2041588277 @@ -5777,154 +5699,73 @@ 1 - 10 - 1315 + 11 + 36057 - 10 - 24 - 1273 + 11 + 17 + 33117 - 24 - 35 - 1358 + 17 + 27 + 32807 - 35 - 47 - 679 - - - 47 - 69 - 1273 - - - 69 - 147 - 1273 - - - 155 - 251 - 1273 - - - 252 - 426 - 1273 - - - 429 - 661 - 1273 - - - 667 - 1078 - 1273 - - - 1114 - 2005 - 1273 - - - 2025 - 3739 - 1273 - - - 3775 - 7820 - 1273 - - - 8401 - 161598 - 848 - - - - - - - file - beginLine - - - 12 - - - 1 - 7 - 1400 - - - 7 - 14 - 1400 - - - 14 - 21 - 1273 - - - 21 - 35 - 1273 - - - 35 - 46 - 1315 - - - 49 + 27 86 - 1315 + 32962 86 - 128 - 1273 + 277 + 32807 - 132 - 214 - 1273 + 281 + 790 + 33271 - 215 - 331 - 1273 + 794 + 1821 + 32962 - 331 - 562 - 1273 + 1825 + 2587 + 33581 - 570 - 987 - 1273 + 2587 + 4571 + 32807 - 1041 - 2108 - 1273 + 4591 + 5270 + 33426 - 2204 - 25961 - 1273 + 5277 + 8353 + 33271 - 47452 - 47453 - 42 + 8361 + 10624 + 33117 + + + 10631 + 43375 + 33271 + + + 43432 + 176183 + 3714 @@ -5932,415 +5773,531 @@ file - beginColumn + beginLine 12 1 - 6 - 1358 - - - 6 - 7 - 1485 - - - 7 - 10 - 1442 - - - 10 - 16 - 1315 - - - 16 - 29 - 1358 - - - 29 - 45 - 1358 - - - 45 - 63 - 1315 - - - 63 - 84 - 1273 - - - 84 - 106 - 1273 - - - 106 - 143 - 1273 - - - 143 - 192 - 1273 - - - 192 - 262 - 1273 - - - 271 - 930 - 933 - - - - - - - file - endLine - - - 12 - - - 1 - 7 - 1400 - - - 7 - 14 - 1273 - - - 14 - 21 - 1273 - - - 21 - 36 - 1273 - - - 37 - 51 - 1273 - - - 51 - 97 - 1315 - - - 102 - 147 - 1273 - - - 148 - 235 - 1273 - - - 242 - 395 - 1273 - - - 396 - 685 - 1273 - - - 690 - 1112 - 1273 - - - 1157 - 2221 - 1273 - - - 2248 - 10652 - 1273 - - - 12843 - 55261 - 212 - - - - - - - file - endColumn - - - 12 - - - 1 - 10 - 1442 - - - 10 - 20 - 1315 - - - 20 - 26 - 1103 - - - 26 - 31 - 1442 - - - 31 - 49 - 1273 - - - 50 - 77 - 1358 - - - 78 - 101 - 1273 - - - 104 - 135 - 1315 - - - 135 - 158 - 1273 - - - 158 - 203 - 1273 - - - 203 - 247 - 1315 - - - 249 - 309 - 1273 - - - 309 - 1038 - 1273 - - - - - - - beginLine - id - - - 12 - - - 1 - 2 - 45919 - - - 2 - 3 - 443706 - - - 3 - 4 - 228240 - - - 4 - 5 - 284303 - - - 5 - 6 - 177015 - - - 6 - 7 - 184060 - - - 7 - 8 - 133727 - - - 8 - 10 - 181217 - - - 10 - 14 - 184782 - - - 14 - 24 - 179647 - - - 24 - 92 - 176251 - - - 92 - 759 - 128379 - - - - - - - beginLine - file - - - 12 - - - 1 - 2 - 1044821 - - - 2 - 3 - 387176 - - - 3 - 4 - 354922 - - - 4 - 6 - 187922 - - - 6 - 14 - 183084 - - - 14 - 105 - 176209 - - - 105 - 346 - 13113 - - - - - - - beginLine - beginColumn - - - 12 - - - 1 - 2 - 333363 - - - 2 - 3 - 461913 - - - 3 - 4 - 150533 - - - 4 - 5 - 355729 - - - 5 - 6 - 148793 - - - 6 - 7 - 169164 - - - 7 9 - 173832 + 39926 9 13 - 185036 + 33117 13 - 24 - 182999 + 21 + 33890 - 24 - 98 - 176251 + 21 + 53 + 33117 - 98 - 155 - 9633 + 53 + 147 + 32807 + + + 147 + 401 + 32807 + + + 407 + 730 + 33117 + + + 730 + 920 + 33271 + + + 920 + 1387 + 33117 + + + 1396 + 1915 + 32807 + + + 1918 + 2849 + 32807 + + + 2878 + 3387 + 33890 + + + 3471 + 51989 + 32498 + + + + + + + file + beginColumn + + + 12 + + + 1 + 5 + 16558 + + + 5 + 6 + 25688 + + + 6 + 7 + 28783 + + + 7 + 9 + 30950 + + + 9 + 14 + 35283 + + + 14 + 42 + 34045 + + + 42 + 81 + 33271 + + + 81 + 131 + 32962 + + + 131 + 165 + 33117 + + + 165 + 191 + 33581 + + + 191 + 229 + 34974 + + + 229 + 289 + 33890 + + + 289 + 418 + 33426 + + + 419 + 940 + 30641 + + + + + + + file + endLine + + + 12 + + + 1 + 10 + 40390 + + + 10 + 15 + 38378 + + + 15 + 26 + 34355 + + + 26 + 78 + 34200 + + + 78 + 204 + 34509 + + + 204 + 593 + 32962 + + + 594 + 1005 + 33736 + + + 1006 + 1324 + 32807 + + + 1327 + 1761 + 32962 + + + 1771 + 2600 + 32962 + + + 2605 + 3623 + 33117 + + + 3645 + 5121 + 32807 + + + 5350 + 60493 + 23986 + + + + + + + file + endColumn + + + 12 + + + 1 + 11 + 40390 + + + 11 + 16 + 32807 + + + 16 + 25 + 34819 + + + 25 + 57 + 32807 + + + 57 + 114 + 32962 + + + 114 + 160 + 33117 + + + 160 + 207 + 32807 + + + 207 + 251 + 32807 + + + 251 + 283 + 34045 + + + 283 + 314 + 34509 + + + 314 + 385 + 33890 + + + 387 + 477 + 33581 + + + 477 + 1048 + 28629 + + + + + + + beginLine + id + + + 12 + + + 1 + 4 + 577691 + + + 4 + 5 + 821891 + + + 5 + 6 + 156764 + + + 6 + 7 + 920004 + + + 7 + 8 + 336122 + + + 8 + 9 + 861817 + + + 9 + 10 + 327611 + + + 10 + 11 + 649496 + + + 11 + 13 + 797595 + + + 13 + 16 + 858258 + + + 16 + 21 + 758287 + + + 21 + 213 + 757823 + + + 213 + 316 + 764323 + + + 316 + 503 + 757049 + + + 503 + 5731 + 738479 + + + + + + + beginLine + file + + + 12 + + + 1 + 2 + 808582 + + + 2 + 3 + 1603391 + + + 3 + 4 + 2816188 + + + 4 + 5 + 577227 + + + 5 + 6 + 519195 + + + 6 + 7 + 543491 + + + 7 + 38 + 756740 + + + 38 + 100 + 789238 + + + 100 + 127 + 764477 + + + 127 + 1047 + 756276 + + + 1047 + 2816 + 148407 + + + + + + + beginLine + beginColumn + + + 12 + + + 1 + 2 + 798059 + + + 2 + 3 + 1266031 + + + 3 + 4 + 895553 + + + 4 + 5 + 1079863 + + + 5 + 6 + 938729 + + + 6 + 7 + 716195 + + + 7 + 8 + 532503 + + + 8 + 11 + 917528 + + + 11 + 20 + 771441 + + + 20 + 31 + 760144 + + + 31 + 55 + 758287 + + + 55 + 282 + 648877 @@ -6356,27 +6313,37 @@ 1 2 - 1025256 + 3378714 2 3 - 731192 + 2989820 3 4 - 240802 + 1089922 4 6 - 188983 + 889363 6 - 241 - 161016 + 8 + 795273 + + + 8 + 15 + 818331 + + + 15 + 583 + 121790 @@ -6392,62 +6359,72 @@ 1 2 - 46004 + 81554 2 3 - 443918 + 966120 3 4 - 245301 + 645318 4 5 - 278573 + 931610 5 6 - 184612 + 744669 6 7 - 183339 + 836747 7 8 - 134066 + 646711 8 - 10 - 178288 + 9 + 599511 - 10 - 14 - 184739 + 9 + 11 + 877447 - 14 - 24 - 184315 + 11 + 15 + 835354 - 24 - 81 - 176591 + 15 + 35 + 779953 - 81 - 223 - 107499 + 35 + 54 + 759990 + + + 54 + 100 + 759680 + + + 100 + 356 + 618546 @@ -6462,63 +6439,73 @@ 1 - 2 - 5771 + 10 + 18106 - 2 - 3 - 9548 + 10 + 13 + 20117 - 3 - 4 - 2249 + 13 + 20 + 12844 - 4 - 5 - 3437 + 20 + 22 + 19498 - 5 - 8 - 4074 + 22 + 33 + 21820 - 8 - 17 - 3862 + 33 + 43 + 19189 - 17 - 80 - 3862 + 43 + 62 + 19963 - 81 - 136 - 3862 + 62 + 116 + 19189 - 137 - 219 - 3862 + 116 + 252 + 19344 - 221 - 737 - 3862 + 252 + 620 + 19189 - 755 - 2313 - 3862 + 620 + 1627 + 19189 - 2317 - 232509 - 2801 + 1633 + 5950 + 19189 + + + 6036 + 28432 + 19189 + + + 28549 + 4117259 + 8975 @@ -6533,53 +6520,73 @@ 1 - 2 - 12392 + 5 + 19498 - 2 - 3 - 8148 + 5 + 10 + 2321 - 3 - 4 - 4116 - - - 4 - 6 - 4498 - - - 6 + 10 11 - 4583 + 26307 11 - 20 - 4031 + 18 + 19344 - 20 - 45 - 3862 + 18 + 23 + 19189 - 46 - 105 - 3862 + 23 + 32 + 19653 - 107 - 164 - 3862 + 32 + 42 + 19653 - 164 - 396 - 1697 + 42 + 63 + 19653 + + + 63 + 102 + 19189 + + + 102 + 177 + 19189 + + + 179 + 355 + 19189 + + + 356 + 731 + 19189 + + + 733 + 1385 + 19189 + + + 1388 + 2816 + 14237 @@ -6595,57 +6602,72 @@ 1 2 - 8105 + 17177 2 3 - 9548 + 27545 3 + 4 + 16249 + + + 4 5 - 4625 + 19808 5 - 9 - 4031 + 6 + 13463 - 9 - 21 - 3904 + 6 + 8 + 19808 - 21 - 85 - 3862 + 8 + 12 + 19963 - 85 - 124 - 3862 + 12 + 24 + 19653 - 124 - 256 - 3862 + 24 + 54 + 19344 - 257 - 986 - 3862 + 54 + 154 + 19189 - 991 - 3019 - 3862 + 155 + 402 + 19189 - 3067 - 45105 - 1527 + 403 + 1587 + 19189 + + + 1599 + 5369 + 19189 + + + 5372 + 57736 + 6035 @@ -6661,57 +6683,72 @@ 1 2 - 8105 + 17177 2 3 - 9548 + 27545 3 + 4 + 16249 + + + 4 5 - 4625 + 19808 5 - 9 - 4031 + 6 + 13463 - 9 - 21 - 3904 + 6 + 8 + 19808 - 21 - 85 - 3862 + 8 + 12 + 19963 - 85 - 124 - 3862 + 12 + 24 + 19653 - 124 - 258 - 3862 + 24 + 54 + 19344 - 266 - 989 - 3862 + 54 + 154 + 19189 - 990 - 3020 - 3862 + 155 + 403 + 19189 - 3062 - 47398 - 1527 + 403 + 1582 + 19189 + + + 1583 + 5378 + 19189 + + + 5426 + 59817 + 6035 @@ -6727,266 +6764,331 @@ 1 2 - 12180 + 40699 2 3 - 7978 + 28783 3 4 - 3437 + 18725 4 + 5 + 17487 + + + 5 + 6 + 13927 + + + 6 + 9 + 21974 + + + 9 + 16 + 19963 + + + 16 + 30 + 19808 + + + 30 + 55 + 19653 + + + 55 + 92 + 19189 + + + 92 + 154 + 19189 + + + 154 + 1011 + 16403 + + + + + + + endLine + id + + + 12 + + + 1 + 3 + 660329 + + + 3 + 4 + 637426 + + + 4 + 6 + 928206 + + + 6 7 - 4710 + 549526 7 + 8 + 604463 + + + 8 + 9 + 502327 + + + 9 + 10 + 513933 + + + 10 + 12 + 922789 + + + 12 + 14 + 729039 + + + 14 + 18 + 952192 + + + 18 + 49 + 783357 + + + 49 + 277 + 783203 + + + 277 + 382 + 779953 + + + 382 + 2205 + 779179 + + + 2207 + 5659 + 261222 + + + + + + + endLine + file + + + 12 + + + 1 + 2 + 378524 + + + 2 + 3 + 1251639 + + + 3 + 4 + 3575095 + + + 4 + 6 + 831795 + + + 6 + 7 + 456055 + + + 7 + 8 + 1014712 + + + 8 + 110 + 785833 + + + 110 + 127 + 786452 + + + 127 + 414 + 779643 + + + 414 + 2816 + 527396 + + + + + + + endLine + beginLine + + + 12 + + + 1 + 2 + 3995867 + + + 2 + 3 + 2716218 + + + 3 + 4 + 1013939 + + + 4 + 6 + 920313 + + + 6 + 8 + 781500 + + + 8 + 15 + 810130 + + + 15 + 24 + 149181 + + + + + + + endLine + beginColumn + + + 12 + + + 1 + 2 + 1063924 + + + 2 + 3 + 842473 + + + 3 + 4 + 1249317 + + + 4 + 5 + 781655 + + + 5 + 6 + 1119325 + + + 6 + 7 + 717587 + + + 7 + 8 + 635414 + + + 8 + 10 + 746526 + + + 10 16 - 3904 + 782893 16 28 - 3946 + 824212 28 45 - 4031 + 801154 45 - 83 - 3989 + 180 + 780262 - 83 - 130 - 3946 - - - 130 - 711 - 2928 - - - - - - - endLine - id - - - 12 - - - 1 - 2 - 430635 - - - 2 - 3 - 200060 - - - 3 - 4 - 280186 - - - 4 - 5 - 226967 - - - 5 - 6 - 220007 - - - 6 - 7 - 168994 - - - 7 - 9 - 228537 - - - 9 - 12 - 196962 - - - 12 - 20 - 203710 - - - 20 - 48 - 190978 - - - 48 - 770 - 164793 - - - - - - - endLine - file - - - 12 - - - 1 - 2 - 1096385 - - - 2 - 3 - 286128 - - - 3 - 4 - 490559 - - - 4 - 6 - 207699 - - - 6 - 12 - 190978 - - - 12 - 61 - 189747 - - - 61 - 338 - 50333 - - - - - - - endLine - beginLine - - - 12 - - - 1 - 2 - 1365580 - - - 2 - 3 - 545986 - - - 3 - 4 - 250521 - - - 4 - 7 - 232017 - - - 7 - 21 - 117727 - - - - - - - endLine - beginColumn - - - 12 - - - 1 - 2 - 483132 - - - 2 - 3 - 397192 - - - 3 - 4 - 212155 - - - 4 - 5 - 272250 - - - 5 - 6 - 210925 - - - 6 - 7 - 150151 - - - 7 - 9 - 200951 - - - 9 - 13 - 204813 - - - 13 - 24 - 191105 - - - 24 - 126 - 188516 - - - 128 - 151 - 636 + 180 + 281 + 42402 @@ -7002,57 +7104,72 @@ 1 2 - 440947 + 724087 2 3 - 207063 + 677042 3 4 - 273863 + 712326 4 5 - 229216 + 855472 5 6 - 219582 + 769430 6 7 - 169716 + 753026 7 + 8 + 670852 + + + 8 9 - 231041 + 570572 9 - 12 - 196538 + 11 + 863364 - 12 - 19 - 189917 + 11 + 15 + 859186 - 19 - 42 - 191360 + 15 + 35 + 788619 - 42 - 229 - 162586 + 35 + 55 + 803630 + + + 55 + 113 + 781965 + + + 113 + 353 + 557573 @@ -7067,63 +7184,73 @@ 1 - 2 - 9251 + 7 + 23677 - 2 - 3 - 9761 - - - 3 - 4 - 3734 - - - 4 - 6 - 4668 - - - 6 + 7 12 - 4456 + 22593 12 - 26 - 4541 + 20 + 16868 - 26 - 142 - 4413 + 20 + 24 + 22593 - 142 - 226 - 4413 + 24 + 35 + 21665 - 227 - 670 - 4413 + 35 + 50 + 20891 - 674 - 3683 - 4413 + 50 + 75 + 21046 - 3685 - 13096 - 4413 + 75 + 170 + 21046 - 13740 - 53117 - 212 + 171 + 403 + 20891 + + + 403 + 1166 + 20891 + + + 1167 + 3859 + 20891 + + + 3870 + 23631 + 20891 + + + 23742 + 104401 + 20891 + + + 111118 + 829586 + 2166 @@ -7138,53 +7265,73 @@ 1 - 2 - 14768 - - - 2 - 3 - 8742 - - - 3 4 - 5262 + 20891 4 - 6 - 4625 + 10 + 9749 - 6 + 10 11 - 4922 + 26462 11 - 22 - 4625 + 18 + 21820 - 22 - 56 - 4413 + 18 + 25 + 22903 - 57 - 131 - 4413 + 25 + 35 + 21355 - 131 - 219 - 4413 + 35 + 52 + 21046 - 219 - 338 - 2503 + 52 + 81 + 21510 + + + 81 + 145 + 21046 + + + 146 + 290 + 20891 + + + 290 + 651 + 20891 + + + 653 + 1351 + 20891 + + + 1361 + 1888 + 20891 + + + 1890 + 2816 + 6654 @@ -7200,57 +7347,72 @@ 1 2 - 9294 + 17487 2 3 - 9761 + 28938 3 4 - 3734 + 12070 4 + 5 + 20736 + + + 5 6 - 4668 + 11606 6 + 8 + 25224 + + + 8 12 - 4456 + 24450 12 - 26 - 4625 + 22 + 20891 - 26 - 117 - 4456 + 22 + 57 + 20891 - 117 - 188 - 4456 + 57 + 166 + 20891 - 188 - 657 - 4413 + 166 + 475 + 20891 - 675 - 3159 - 4413 + 481 + 2060 + 20891 - 3196 - 22236 - 4413 + 2063 + 8513 + 20891 + + + 8521 + 33662 + 11142 @@ -7266,52 +7428,62 @@ 1 2 - 17697 + 54627 2 3 - 7044 + 26307 3 4 - 3437 + 16558 4 + 5 + 16713 + + + 5 7 - 5050 + 23367 7 - 14 - 4413 + 11 + 22748 - 14 - 32 - 4413 + 11 + 21 + 21820 - 32 - 55 - 4625 + 21 + 42 + 21201 - 55 - 80 - 4413 + 42 + 74 + 21355 - 80 - 112 - 4456 + 74 + 104 + 21046 - 112 - 289 - 3140 + 104 + 145 + 22129 + + + 145 + 311 + 9130 @@ -7327,62 +7499,72 @@ 1 2 - 9294 + 17177 2 3 - 9761 + 28938 3 4 - 3734 + 12070 4 + 5 + 20736 + + + 5 6 - 4668 + 11606 6 + 8 + 25534 + + + 8 12 - 4456 + 24450 12 - 26 - 4541 + 22 + 20891 - 26 - 116 - 4413 + 22 + 58 + 21046 - 116 - 186 - 4413 + 58 + 167 + 21046 - 187 - 649 - 4456 + 168 + 490 + 20891 - 651 - 3024 - 4413 + 508 + 2082 + 20891 - 3112 - 7905 - 4413 + 2083 + 8570 + 20891 - 8231 - 22227 - 127 + 8608 + 33661 + 10832 @@ -7450,23 +7632,23 @@ numlines - 1043661954 + 953949669 element_id - 1043661954 + 953949669 num_lines - 243123 + 222224 num_code - 243292 + 222379 num_comment - 18285 + 16713 @@ -7480,7 +7662,7 @@ 1 2 - 1043661954 + 953949669 @@ -7496,7 +7678,7 @@ 1 2 - 1043661954 + 953949669 @@ -7512,7 +7694,7 @@ 1 2 - 1043661954 + 953949669 @@ -7528,47 +7710,47 @@ 1 2 - 67891 + 62055 2 3 - 36062 + 32962 3 4 - 39109 + 35747 4 5 - 17099 + 15630 5 6 - 6433 + 5880 6 7 - 18962 + 17332 7 10 - 22179 + 20272 10 15 - 18623 + 17022 15 4827433 - 16761 + 15320 @@ -7584,12 +7766,12 @@ 1 2 - 237536 + 217117 2 6 - 5587 + 5106 @@ -7605,17 +7787,17 @@ 1 2 - 218743 + 199940 2 8 - 18454 + 16868 8 108 - 5925 + 5416 @@ -7631,47 +7813,47 @@ 1 2 - 68061 + 62210 2 3 - 35554 + 32498 3 4 - 39617 + 36212 4 5 - 16930 + 15475 5 6 - 6433 + 5880 6 7 - 19131 + 17487 7 10 - 22009 + 20117 10 15 - 18454 + 16868 15 4828093 - 17099 + 15630 @@ -7687,12 +7869,12 @@ 1 2 - 239568 + 218974 2 21 - 3724 + 3404 @@ -7708,17 +7890,17 @@ 1 2 - 218743 + 199940 2 8 - 18454 + 16868 8 108 - 6095 + 5571 @@ -7734,57 +7916,57 @@ 1 2 - 1693 + 1547 2 3 - 2370 + 2166 3 4 - 2200 + 2011 4 5 - 3047 + 2785 5 7 - 1185 + 1083 7 9 - 1354 + 1238 9 13 - 1523 + 1392 13 21 - 1523 + 1392 21 79 - 1523 + 1392 84 610 - 1523 + 1392 2344 6158894 - 338 + 309 @@ -7800,52 +7982,52 @@ 1 2 - 2200 + 2011 2 3 - 4571 + 4178 3 4 - 2539 + 2321 4 5 - 1354 + 1238 5 6 - 1523 + 1392 6 9 - 1523 + 1392 9 12 - 1185 + 1083 14 21 - 1523 + 1392 21 47 - 1523 + 1392 48 1415 - 338 + 309 @@ -7861,47 +8043,47 @@ 1 2 - 2200 + 2011 2 3 - 4571 + 4178 3 4 - 2539 + 2321 4 5 - 1354 + 1238 5 6 - 1523 + 1392 6 9 - 1523 + 1392 9 15 - 1523 + 1392 15 25 - 1523 + 1392 29 1414 - 1523 + 1392 @@ -7911,27 +8093,27 @@ assemblies - 30136 + 27545 id - 30136 + 27545 file - 30136 + 27545 fullname - 30136 + 27545 name - 30136 + 27545 version - 2200 + 2011 @@ -7945,7 +8127,7 @@ 1 2 - 30136 + 27545 @@ -7961,7 +8143,7 @@ 1 2 - 30136 + 27545 @@ -7977,7 +8159,7 @@ 1 2 - 30136 + 27545 @@ -7993,7 +8175,7 @@ 1 2 - 30136 + 27545 @@ -8009,7 +8191,7 @@ 1 2 - 30136 + 27545 @@ -8025,7 +8207,7 @@ 1 2 - 30136 + 27545 @@ -8041,7 +8223,7 @@ 1 2 - 30136 + 27545 @@ -8057,7 +8239,7 @@ 1 2 - 30136 + 27545 @@ -8073,7 +8255,7 @@ 1 2 - 30136 + 27545 @@ -8089,7 +8271,7 @@ 1 2 - 30136 + 27545 @@ -8105,7 +8287,7 @@ 1 2 - 30136 + 27545 @@ -8121,7 +8303,7 @@ 1 2 - 30136 + 27545 @@ -8137,7 +8319,7 @@ 1 2 - 30136 + 27545 @@ -8153,7 +8335,7 @@ 1 2 - 30136 + 27545 @@ -8169,7 +8351,7 @@ 1 2 - 30136 + 27545 @@ -8185,7 +8367,7 @@ 1 2 - 30136 + 27545 @@ -8201,27 +8383,27 @@ 1 2 - 1354 + 1238 3 4 - 338 + 309 5 6 - 169 + 154 24 25 - 169 + 154 135 136 - 169 + 154 @@ -8237,27 +8419,27 @@ 1 2 - 1354 + 1238 3 4 - 338 + 309 5 6 - 169 + 154 24 25 - 169 + 154 135 136 - 169 + 154 @@ -8273,27 +8455,27 @@ 1 2 - 1354 + 1238 3 4 - 338 + 309 5 6 - 169 + 154 24 25 - 169 + 154 135 136 - 169 + 154 @@ -8309,27 +8491,27 @@ 1 2 - 1354 + 1238 3 4 - 338 + 309 5 6 - 169 + 154 24 25 - 169 + 154 135 136 - 169 + 154 @@ -8339,15 +8521,15 @@ files - 508426 + 464722 id - 508426 + 464722 name - 508426 + 464722 @@ -8361,7 +8543,7 @@ 1 2 - 508426 + 464722 @@ -8377,7 +8559,7 @@ 1 2 - 508426 + 464722 @@ -8387,15 +8569,15 @@ folders - 484045 + 442437 id - 484045 + 442437 name - 484045 + 442437 @@ -8409,7 +8591,7 @@ 1 2 - 484045 + 442437 @@ -8425,7 +8607,7 @@ 1 2 - 484045 + 442437 @@ -8435,15 +8617,15 @@ containerparent - 992133 + 906850 parent - 484045 + 442437 child - 992133 + 906850 @@ -8457,22 +8639,22 @@ 1 2 - 379753 + 347110 2 3 - 46897 + 42866 3 10 - 31321 + 28629 10 269 - 26073 + 23831 @@ -8488,7 +8670,7 @@ 1 2 - 992133 + 906850 @@ -8498,15 +8680,15 @@ file_extraction_mode - 45539 + 43504 file - 45539 + 43504 mode - 9 + 8 @@ -8520,7 +8702,7 @@ 1 2 - 45539 + 43504 @@ -8536,7 +8718,7 @@ 4940 4941 - 9 + 8 @@ -8546,15 +8728,15 @@ namespaces - 367575 + 343752 id - 367575 + 343752 name - 63392 + 59283 @@ -8568,7 +8750,7 @@ 1 2 - 367575 + 343752 @@ -8584,47 +8766,47 @@ 1 2 - 238 + 223 2 3 - 38812 + 36296 3 4 - 86 + 81 4 5 - 8265 + 7730 5 6 - 21 + 20 6 7 - 6269 + 5863 7 13 - 4772 + 4463 14 115 - 4772 + 4463 123 223 - 151 + 142 @@ -8634,15 +8816,15 @@ namespace_declarations - 32679 + 31219 id - 32679 + 31219 namespace_id - 8213 + 7846 @@ -8656,7 +8838,7 @@ 1 2 - 32679 + 31219 @@ -8672,42 +8854,42 @@ 1 2 - 2940 + 2809 2 3 - 1650 + 1576 3 4 - 875 + 836 4 5 - 617 + 590 5 6 - 516 + 493 6 9 - 672 + 642 9 16 - 626 + 598 16 42 - 313 + 299 @@ -8717,15 +8899,15 @@ namespace_declaration_location - 32679 + 31219 id - 32679 + 31219 loc - 32679 + 31219 @@ -8739,7 +8921,7 @@ 1 2 - 32679 + 31219 @@ -8755,7 +8937,7 @@ 1 2 - 32679 + 31219 @@ -8765,15 +8947,15 @@ parent_namespace - 7241086 + 6771789 child_id - 7241086 + 6771789 namespace_id - 231288 + 216298 @@ -8787,7 +8969,7 @@ 1 2 - 7241086 + 6771789 @@ -8803,52 +8985,52 @@ 1 2 - 60224 + 56321 2 3 - 32954 + 30818 3 4 - 21846 + 20430 4 5 - 15663 + 14648 5 6 - 12973 + 12132 6 8 - 17702 + 16555 8 12 - 20978 + 19619 12 19 - 18353 + 17164 19 44 - 17507 + 16373 44 84811 - 13081 + 12234 @@ -8926,26 +9108,26 @@ using_global - 3170 + 3117 id - 3170 + 3117 using_namespace_directives - 170883 + 163247 id - 170883 + 163247 namespace_id - 8831 + 8436 @@ -8959,7 +9141,7 @@ 1 2 - 170883 + 163247 @@ -8975,47 +9157,47 @@ 1 2 - 3549 + 3390 2 3 - 1133 + 1083 3 4 - 543 + 519 4 5 - 424 + 405 5 7 - 672 + 642 7 12 - 765 + 730 12 26 - 672 + 642 26 80 - 663 + 634 81 1686 - 405 + 387 @@ -9025,15 +9207,15 @@ using_static_directives - 483 + 474 id - 483 + 474 type_id - 65 + 64 @@ -9047,7 +9229,7 @@ 1 2 - 483 + 474 @@ -9063,7 +9245,7 @@ 2 3 - 34 + 33 3 @@ -9103,15 +9285,15 @@ using_directive_location - 171003 + 163361 id - 171003 + 163361 loc - 170920 + 163282 @@ -9125,7 +9307,7 @@ 1 2 - 171003 + 163361 @@ -9141,12 +9323,12 @@ 1 2 - 170837 + 163203 2 3 - 82 + 79 @@ -10222,15 +10404,15 @@ directive_regions - 25505 + 24936 id - 25505 + 24936 name - 12319 + 12044 @@ -10244,7 +10426,7 @@ 1 2 - 25505 + 24936 @@ -10260,22 +10442,22 @@ 1 2 - 10172 + 9945 2 3 - 999 + 977 3 14 - 925 + 904 14 111 - 222 + 217 @@ -10285,15 +10467,15 @@ directive_endregions - 25505 + 24936 id - 25505 + 24936 start - 25505 + 24936 @@ -10307,7 +10489,7 @@ 1 2 - 25505 + 24936 @@ -10323,7 +10505,7 @@ 1 2 - 25505 + 24936 @@ -10806,11 +10988,11 @@ directive_nullables - 3382 + 3320 id - 3382 + 3320 setting @@ -10832,7 +11014,7 @@ 1 2 - 3382 + 3320 @@ -10848,7 +11030,7 @@ 1 2 - 3382 + 3320 @@ -11321,11 +11503,11 @@ pragma_warnings - 1873 + 1831 id - 1873 + 1831 kind @@ -11343,7 +11525,7 @@ 1 2 - 1873 + 1831 @@ -11374,19 +11556,19 @@ pragma_warning_error_codes - 2361 + 2309 id - 1828 + 1787 errorCode - 170 + 166 index - 51 + 50 @@ -11400,12 +11582,12 @@ 1 2 - 1369 + 1339 2 3 - 444 + 434 7 @@ -11426,12 +11608,12 @@ 1 2 - 1369 + 1339 2 3 - 444 + 434 7 @@ -11452,7 +11634,7 @@ 2 3 - 74 + 72 3 @@ -11462,7 +11644,7 @@ 4 5 - 22 + 21 6 @@ -11503,7 +11685,7 @@ 1 2 - 162 + 159 2 @@ -11524,7 +11706,7 @@ 2 3 - 37 + 36 62 @@ -11550,7 +11732,7 @@ 1 2 - 37 + 36 2 @@ -11570,15 +11752,15 @@ preprocessor_directive_location - 62641 + 61243 id - 62641 + 61243 loc - 62641 + 61243 @@ -11592,7 +11774,7 @@ 1 2 - 62641 + 61243 @@ -11608,7 +11790,7 @@ 1 2 - 62641 + 61243 @@ -11726,11 +11908,11 @@ preprocessor_directive_active - 62641 + 61243 id - 62641 + 61243 active @@ -11748,7 +11930,7 @@ 1 2 - 62641 + 61243 @@ -11779,19 +11961,19 @@ types - 8463395 + 7914879 id - 8463395 + 7914879 kind - 650 + 608 name - 2569124 + 2402618 @@ -11805,7 +11987,7 @@ 1 2 - 8463395 + 7914879 @@ -11821,7 +12003,7 @@ 1 2 - 8463395 + 7914879 @@ -11837,37 +12019,37 @@ 1 2 - 412 + 385 7 452 - 43 + 40 770 1283 - 43 + 40 3955 6911 - 43 + 40 26663 31892 - 43 + 40 33571 109926 - 43 + 40 174666 174667 - 21 + 20 @@ -11883,32 +12065,32 @@ 1 2 - 433 + 405 7 437 - 43 + 40 747 1236 - 43 + 40 1670 2545 - 43 + 40 6038 9241 - 43 + 40 11743 85767 - 43 + 40 @@ -11924,17 +12106,17 @@ 1 2 - 2307983 + 2158402 2 5 - 201892 + 188807 5 21597 - 59248 + 55408 @@ -11950,12 +12132,12 @@ 1 2 - 2548124 + 2382979 2 5 - 21000 + 19639 @@ -11965,15 +12147,15 @@ typerefs - 3537560 + 3308289 id - 3537560 + 3308289 name - 2476075 + 2315600 @@ -11987,7 +12169,7 @@ 1 2 - 3537560 + 3308289 @@ -12003,12 +12185,12 @@ 1 2 - 2298307 + 2149353 2 11806 - 177767 + 166246 @@ -12018,15 +12200,15 @@ typeref_type - 3508077 + 3280717 id - 3508077 + 3280717 typeId - 3508077 + 3280717 @@ -12040,7 +12222,7 @@ 1 2 - 3508077 + 3280717 @@ -12056,7 +12238,7 @@ 1 2 - 3508077 + 3280717 @@ -12066,23 +12248,23 @@ array_element_type - 85803 + 80242 array - 85803 + 80242 dimension - 65 + 60 rank - 65 + 60 element - 85521 + 79978 @@ -12096,7 +12278,7 @@ 1 2 - 85803 + 80242 @@ -12112,7 +12294,7 @@ 1 2 - 85803 + 80242 @@ -12128,7 +12310,7 @@ 1 2 - 85803 + 80242 @@ -12144,17 +12326,17 @@ 3 4 - 21 + 20 51 52 - 21 + 20 3901 3902 - 21 + 20 @@ -12170,12 +12352,12 @@ 1 2 - 43 + 40 3 4 - 21 + 20 @@ -12191,17 +12373,17 @@ 3 4 - 21 + 20 51 52 - 21 + 20 3888 3889 - 21 + 20 @@ -12217,17 +12399,17 @@ 3 4 - 21 + 20 17 18 - 21 + 20 3935 3936 - 21 + 20 @@ -12243,12 +12425,12 @@ 1 2 - 43 + 40 3 4 - 21 + 20 @@ -12264,17 +12446,17 @@ 3 4 - 21 + 20 17 18 - 21 + 20 3935 3936 - 21 + 20 @@ -12290,12 +12472,12 @@ 1 2 - 85282 + 79755 2 4 - 238 + 223 @@ -12311,7 +12493,7 @@ 1 2 - 85521 + 79978 @@ -12327,12 +12509,12 @@ 1 2 - 85282 + 79755 2 4 - 238 + 223 @@ -12342,15 +12524,15 @@ nullable_underlying_type - 16705 + 15622 nullable - 16705 + 15622 underlying - 16705 + 15622 @@ -12364,7 +12546,7 @@ 1 2 - 16705 + 15622 @@ -12380,7 +12562,7 @@ 1 2 - 16705 + 15622 @@ -12390,15 +12572,15 @@ pointer_referent_type - 9784 + 9150 pointer - 9784 + 9150 referent - 9784 + 9150 @@ -12412,7 +12594,7 @@ 1 2 - 9784 + 9150 @@ -12428,7 +12610,7 @@ 1 2 - 9784 + 9150 @@ -12438,15 +12620,15 @@ enum_underlying_type - 149911 + 140195 enum_id - 149911 + 140195 underlying_type_id - 173 + 162 @@ -12460,7 +12642,7 @@ 1 2 - 149911 + 140195 @@ -12476,42 +12658,42 @@ 5 6 - 21 + 20 9 10 - 21 + 20 17 18 - 21 + 20 49 50 - 21 + 20 103 104 - 21 + 20 315 316 - 21 + 20 397 398 - 21 + 20 6015 6016 - 21 + 20 @@ -12521,15 +12703,15 @@ delegate_return_type - 2249822 + 2249884 delegate_id - 2249822 + 2249884 return_type_id - 801529 + 801551 @@ -12543,7 +12725,7 @@ 1 2 - 2249822 + 2249884 @@ -12559,12 +12741,12 @@ 1 2 - 730408 + 730428 2 30 - 60308 + 60309 30 @@ -12579,15 +12761,15 @@ function_pointer_return_type - 27738 + 27733 function_pointer_id - 27738 + 27733 return_type_id - 5875 + 5874 @@ -12601,7 +12783,7 @@ 1 2 - 27738 + 27733 @@ -12617,17 +12799,17 @@ 1 2 - 1685 + 1684 2 3 - 1934 + 1933 3 4 - 1392 + 1391 4 @@ -12647,11 +12829,11 @@ extend - 3548520 + 3548617 sub - 3547409 + 3547506 super @@ -12669,7 +12851,7 @@ 1 2 - 3546298 + 3546395 2 @@ -12730,26 +12912,26 @@ anonymous_types - 4382 + 4308 id - 4382 + 4308 implement - 9498651 + 8883040 sub - 3317488 + 3102480 super - 2026883 + 1895520 @@ -12763,32 +12945,32 @@ 1 2 - 1125940 + 1052967 2 3 - 905520 + 846833 3 4 - 620559 + 580340 4 6 - 270035 + 252534 6 9 - 249056 + 232915 9 32 - 146375 + 136888 @@ -12804,27 +12986,27 @@ 1 2 - 973056 + 909992 2 3 - 598994 + 560173 3 5 - 173667 + 162411 5 6 - 158242 + 147986 6 90747 - 122922 + 114956 @@ -12834,15 +13016,15 @@ type_location - 4526758 + 4233377 id - 4460394 + 4171314 loc - 11194 + 10469 @@ -12856,12 +13038,12 @@ 1 2 - 4438113 + 4150477 2 495 - 22280 + 20836 @@ -12877,57 +13059,57 @@ 1 2 - 2842 + 2657 2 11 - 867 + 811 11 23 - 846 + 791 23 46 - 846 + 791 46 79 - 911 + 852 79 125 - 846 + 791 125 196 - 846 + 791 196 380 - 846 + 791 382 634 - 846 + 791 650 1782 - 846 + 791 1787 11861 - 650 + 608 @@ -12937,15 +13119,15 @@ tuple_underlying_type - 27812 + 26010 tuple - 27812 + 26010 struct - 27812 + 26010 @@ -12959,7 +13141,7 @@ 1 2 - 27812 + 26010 @@ -12975,7 +13157,7 @@ 1 2 - 27812 + 26010 @@ -12985,19 +13167,19 @@ tuple_element - 149835 + 136956 tuple - 24210 + 22129 index - 3555 + 3249 field - 149835 + 136956 @@ -13011,57 +13193,57 @@ 1 2 - 1523 + 1392 2 3 - 7788 + 7118 3 4 - 2031 + 1857 4 5 - 1523 + 1392 5 6 - 1354 + 1238 6 7 - 1354 + 1238 7 9 - 2200 + 2011 9 12 - 2031 + 1857 12 15 - 2031 + 1857 15 21 - 2031 + 1857 21 22 - 338 + 309 @@ -13077,57 +13259,57 @@ 1 2 - 1523 + 1392 2 3 - 7788 + 7118 3 4 - 2031 + 1857 4 5 - 1523 + 1392 5 6 - 1354 + 1238 6 7 - 1354 + 1238 7 9 - 2200 + 2011 9 12 - 2031 + 1857 12 15 - 2031 + 1857 15 21 - 2031 + 1857 21 22 - 338 + 309 @@ -13143,107 +13325,107 @@ 2 3 - 169 + 154 4 5 - 169 + 154 6 7 - 169 + 154 8 9 - 169 + 154 10 11 - 169 + 154 12 13 - 169 + 154 14 15 - 169 + 154 18 19 - 169 + 154 22 23 - 169 + 154 26 27 - 169 + 154 30 31 - 169 + 154 34 35 - 169 + 154 38 39 - 169 + 154 43 44 - 169 + 154 51 52 - 169 + 154 59 60 - 169 + 154 67 68 - 169 + 154 76 77 - 169 + 154 88 89 - 169 + 154 134 135 - 169 + 154 143 144 - 169 + 154 @@ -13259,107 +13441,107 @@ 2 3 - 169 + 154 4 5 - 169 + 154 6 7 - 169 + 154 8 9 - 169 + 154 10 11 - 169 + 154 12 13 - 169 + 154 14 15 - 169 + 154 18 19 - 169 + 154 22 23 - 169 + 154 26 27 - 169 + 154 30 31 - 169 + 154 34 35 - 169 + 154 38 39 - 169 + 154 43 44 - 169 + 154 51 52 - 169 + 154 59 60 - 169 + 154 67 68 - 169 + 154 76 77 - 169 + 154 88 89 - 169 + 154 134 135 - 169 + 154 143 144 - 169 + 154 @@ -13375,7 +13557,7 @@ 1 2 - 149835 + 136956 @@ -13391,7 +13573,7 @@ 1 2 - 149835 + 136956 @@ -13401,22 +13583,42 @@ attributes - 10551328 + 9999370 id - 10551328 + 9999370 + + + kind + 60 type_id - 13602 + 12721 target - 9250896 + 8739416 + + id + kind + + + 12 + + + 1 + 2 + 9999370 + + + + + id type_id @@ -13427,7 +13629,7 @@ 1 2 - 10551328 + 9999370 @@ -13443,7 +13645,85 @@ 1 2 - 10551328 + 9999370 + + + + + + + kind + id + + + 12 + + + 31 + 32 + 20 + + + 6500 + 6501 + 20 + + + 486321 + 486322 + 20 + + + + + + + kind + type_id + + + 12 + + + 6 + 7 + 20 + + + 11 + 12 + 20 + + + 625 + 626 + 20 + + + + + + + kind + target + + + 12 + + + 3 + 4 + 20 + + + 6229 + 6230 + 20 + + + 426407 + 426408 + 20 @@ -13459,67 +13739,88 @@ 1 2 - 1236 + 1156 2 3 - 1128 + 1034 3 4 - 802 + 750 4 6 - 1106 + 1034 6 9 - 1193 + 1095 9 14 - 1193 + 1115 14 23 - 1041 + 994 23 40 - 1193 + 1115 40 86 - 1063 + 994 88 - 162 - 1041 + 161 + 973 - 170 - 386 - 1041 + 161 + 380 + 973 - 387 - 1501 - 1041 + 385 + 1475 + 973 - 1536 + 1500 152697 - 520 + 507 + + + + + + + type_id + kind + + + 12 + + + 1 + 2 + 12416 + + + 2 + 3 + 304 @@ -13535,67 +13836,67 @@ 1 2 - 1453 + 1359 2 3 - 1063 + 973 3 4 - 846 + 791 4 6 - 1149 + 1075 6 9 - 1258 + 1156 9 14 - 1106 + 1034 14 25 - 1084 + 1034 25 40 - 1041 + 973 40 78 - 1041 + 973 78 - 153 - 1084 + 150 + 973 - 160 - 387 - 1041 + 152 + 380 + 994 - 387 - 1970 - 1041 + 385 + 1756 + 973 - 2016 + 1969 151705 - 390 + 405 @@ -13611,12 +13912,33 @@ 1 2 - 8608447 + 8100055 2 3520 - 642449 + 639360 + + + + + + + target + kind + + + 12 + + + 1 + 2 + 8701110 + + + 2 + 3 + 38305 @@ -13632,12 +13954,12 @@ 1 2 - 8733887 + 8217345 2 29 - 517009 + 522071 @@ -13647,15 +13969,15 @@ attribute_location - 10552695 + 10000648 id - 10551328 + 9999370 loc - 11867 + 11097 @@ -13669,12 +13991,12 @@ 1 2 - 10550244 + 9998355 2 4 - 1084 + 1014 @@ -13690,67 +14012,67 @@ 1 2 - 1084 + 1014 8 10 - 108 + 101 10 11 - 1844 + 1724 11 18 - 976 + 912 18 34 - 997 + 933 35 61 - 911 + 852 61 - 123 - 911 + 125 + 872 - 124 - 210 - 911 + 125 + 215 + 852 - 214 - 350 - 911 + 215 + 360 + 852 - 359 - 806 - 911 + 370 + 818 + 852 - 812 - 1470 - 911 + 823 + 1495 + 852 - 1472 - 5712 - 911 + 1505 + 5965 + 852 - 5961 - 22730 - 477 + 6304 + 22785 + 426 @@ -13760,19 +14082,19 @@ type_mention - 4147990 + 4148103 id - 4147990 + 4148103 type_id - 129976 + 129980 parent - 1453785 + 1453824 @@ -13786,7 +14108,7 @@ 1 2 - 4147990 + 4148103 @@ -13802,7 +14124,7 @@ 1 2 - 4147990 + 4148103 @@ -13818,12 +14140,12 @@ 1 2 - 38232 + 38233 2 3 - 44408 + 44409 3 @@ -13859,17 +14181,17 @@ 1 2 - 69689 + 69691 2 3 - 23721 + 23722 3 4 - 10599 + 10600 4 @@ -13900,17 +14222,17 @@ 1 2 - 1183979 + 1184012 2 3 - 142435 + 142439 3 31 - 116320 + 116323 31 @@ -13931,17 +14253,17 @@ 1 2 - 1271407 + 1271442 2 22 - 114205 + 114208 22 33 - 68172 + 68174 @@ -13951,15 +14273,15 @@ type_mention_location - 4147990 + 4148103 id - 4147990 + 4148103 loc - 3077659 + 3077744 @@ -13973,7 +14295,7 @@ 1 2 - 4147990 + 4148103 @@ -13989,17 +14311,17 @@ 1 2 - 2705125 + 2705199 2 3 - 359177 + 359187 3 97 - 13356 + 13357 @@ -14009,11 +14331,11 @@ type_annotation - 1491205 + 1491246 id - 1491205 + 1491246 annotation @@ -14031,7 +14353,7 @@ 1 2 - 1491205 + 1491246 @@ -14062,15 +14384,15 @@ nullability - 21087 + 19720 nullability - 21087 + 19720 kind - 65 + 60 @@ -14084,7 +14406,7 @@ 1 2 - 21087 + 19720 @@ -14100,17 +14422,17 @@ 27 28 - 21 + 20 224 225 - 21 + 20 721 722 - 21 + 20 @@ -14120,19 +14442,19 @@ nullability_parent - 49073 + 45893 nullability - 6812 + 6370 index - 238 + 223 parent - 21022 + 19659 @@ -14146,22 +14468,22 @@ 1 2 - 4577 + 4280 2 3 - 1583 + 1481 3 5 - 542 + 507 5 12 - 108 + 101 @@ -14177,32 +14499,32 @@ 1 2 - 3449 + 3225 2 3 - 1323 + 1237 3 4 - 629 + 588 4 5 - 477 + 446 5 9 - 520 + 486 9 387 - 412 + 385 @@ -14218,47 +14540,47 @@ 1 2 - 21 + 20 2 3 - 65 + 60 3 4 - 21 + 20 5 6 - 21 + 20 17 18 - 21 + 20 18 19 - 21 + 20 40 41 - 21 + 20 125 126 - 21 + 20 263 264 - 21 + 20 @@ -14274,57 +14596,57 @@ 2 3 - 21 + 20 4 5 - 21 + 20 5 6 - 21 + 20 22 23 - 21 + 20 27 28 - 21 + 20 34 35 - 21 + 20 54 55 - 21 + 20 124 125 - 21 + 20 265 266 - 21 + 20 756 757 - 21 + 20 969 970 - 21 + 20 @@ -14340,17 +14662,17 @@ 1 2 - 5402 + 5051 2 3 - 13863 + 12964 3 4 - 1757 + 1643 @@ -14366,27 +14688,27 @@ 1 2 - 4621 + 4321 2 3 - 10652 + 9961 3 4 - 3058 + 2860 4 5 - 1518 + 1420 5 12 - 1171 + 1095 @@ -14396,15 +14718,15 @@ type_nullability - 32568402 + 30508272 id - 32566081 + 30506101 nullability - 20653 + 19314 @@ -14418,12 +14740,12 @@ 1 2 - 32563846 + 30504011 2 4 - 2234 + 2089 @@ -14439,47 +14761,47 @@ 1 2 - 7441 + 6959 2 3 - 2711 + 2536 3 4 - 2126 + 1988 4 5 - 1128 + 1055 5 7 - 1757 + 1643 7 11 - 1583 + 1481 11 30 - 1627 + 1521 30 173 - 1562 + 1460 189 1342267 - 715 + 669 @@ -14489,11 +14811,11 @@ expr_flowstate - 3848496 + 3792662 id - 3848496 + 3792662 state @@ -14511,7 +14833,7 @@ 1 2 - 3848496 + 3792662 @@ -14525,13 +14847,13 @@ 12 - 210406 - 210407 + 210398 + 210399 1 - 2276592 - 2276593 + 2277024 + 2277025 1 @@ -14542,11 +14864,11 @@ type_parameters - 830422 + 830445 id - 830422 + 830445 index @@ -14554,7 +14876,7 @@ generic_id - 796400 + 796422 variance @@ -14572,7 +14894,7 @@ 1 2 - 830422 + 830445 @@ -14588,7 +14910,7 @@ 1 2 - 830422 + 830445 @@ -14604,7 +14926,7 @@ 1 2 - 830422 + 830445 @@ -14828,7 +15150,7 @@ 1 2 - 789861 + 789883 2 @@ -14849,7 +15171,7 @@ 1 2 - 789861 + 789883 2 @@ -14870,7 +15192,7 @@ 1 2 - 796037 + 796059 2 @@ -14963,11 +15285,11 @@ type_arguments - 32946623 + 32947525 id - 851708 + 851731 index @@ -14975,7 +15297,7 @@ constructed_id - 3572648 + 3572746 @@ -14989,17 +15311,17 @@ 1 2 - 100891 + 100893 2 3 - 720385 + 720404 3 6 - 30431 + 30432 @@ -15020,17 +15342,17 @@ 2 3 - 721261 + 721281 3 28 - 64154 + 64156 28 3541 - 52037 + 52039 @@ -15228,37 +15550,37 @@ 1 2 - 146923 + 146927 2 3 - 2211291 + 2211351 3 20 - 305494 + 305502 20 25 - 281238 + 281246 25 29 - 321415 + 321424 29 32 - 283717 + 283725 32 33 - 22567 + 22568 @@ -15274,37 +15596,37 @@ 1 2 - 146389 + 146393 2 3 - 2211334 + 2211394 3 20 - 305985 + 305994 20 25 - 281238 + 281246 25 29 - 321415 + 321424 29 32 - 283717 + 283725 32 33 - 22567 + 22568 @@ -15314,15 +15636,15 @@ constructed_generic - 3862918 + 3612560 constructed - 3862918 + 3612560 generic - 79576 + 74419 @@ -15336,7 +15658,7 @@ 1 2 - 3862918 + 3612560 @@ -15352,47 +15674,47 @@ 1 2 - 24840 + 23230 2 3 - 15446 + 14445 3 4 - 7810 + 7303 4 5 - 5076 + 4747 5 7 - 5640 + 5275 7 11 - 6269 + 5863 11 22 - 6009 + 5619 22 148 - 5987 + 5599 149 19826 - 2494 + 2333 @@ -15402,15 +15724,15 @@ type_parameter_constraints - 1730279 + 831813 id - 1730279 + 831813 param_id - 831790 + 831813 @@ -15424,7 +15746,7 @@ 1 2 - 1730279 + 831813 @@ -15440,17 +15762,7 @@ 1 2 - 11924 - - - 2 - 3 - 777765 - - - 3 - 41 - 42100 + 831813 @@ -15496,11 +15808,11 @@ general_type_parameter_constraints - 283388 + 198772 id - 281228 + 198057 kind @@ -15518,12 +15830,12 @@ 1 2 - 279068 + 197341 2 3 - 2160 + 715 @@ -15537,28 +15849,28 @@ 12 - 10 - 11 + 8 + 9 2 - 137 - 138 + 36 + 37 2 - 2527 - 2528 + 593 + 594 2 - 4084 - 4085 + 1061 + 1062 2 - 89405 - 89406 + 66899 + 66900 2 @@ -15569,15 +15881,15 @@ specific_type_parameter_constraints - 260902 + 207574 id - 254827 + 202827 base_id - 30980 + 28972 @@ -15591,12 +15903,12 @@ 1 2 - 250206 + 199357 2 9 - 4621 + 3469 @@ -15612,37 +15924,37 @@ 1 2 - 15945 + 17022 2 3 - 3341 + 3124 3 4 - 3145 + 1866 4 6 - 2364 + 2130 6 - 10 - 2581 + 11 + 2394 - 10 - 27 - 2364 + 11 + 76 + 2211 - 27 - 2734 - 1236 + 82 + 2440 + 223 @@ -15652,19 +15964,19 @@ specific_type_parameter_nullability - 48843 + 29712 id - 48606 + 29712 base_id - 1375 + 15630 nullability - 23 + 464 @@ -15678,12 +15990,7 @@ 1 2 - 48369 - - - 2 - 3 - 237 + 29712 @@ -15699,7 +16006,7 @@ 1 2 - 48606 + 29712 @@ -15715,67 +16022,17 @@ 1 2 - 129 + 13463 2 - 3 - 280 - - - 3 - 4 - 3 - - - 4 - 5 - 129 - - - 5 - 8 - 75 + 7 + 1238 8 - 9 - 139 - - - 9 - 11 - 122 - - - 11 - 16 - 77 - - - 16 - 20 - 85 - - - 20 - 27 - 110 - - - 28 - 51 - 108 - - - 52 - 691 - 104 - - - 696 - 4144 - 9 + 25 + 928 @@ -15791,12 +16048,12 @@ 1 2 - 1340 + 15475 2 3 - 35 + 154 @@ -15809,75 +16066,20 @@ 12 + + 1 + 2 + 154 + 2 3 - 2 + 154 - 8 - 9 - 5 - - - 10 - 11 - 1 - - - 12 - 13 - 1 - - - 16 - 17 - 1 - - - 20 - 21 - 1 - - - 22 - 23 - 1 - - - 28 - 29 - 1 - - - 52 - 53 - 1 - - - 75 - 76 - 1 - - - 90 - 91 - 1 - - - 197 - 198 - 1 - - - 434 - 435 - 1 - - - 35892 - 35893 - 1 + 189 + 190 + 154 @@ -15893,47 +16095,17 @@ 1 2 - 11 + 154 2 3 - 1 + 154 - 3 - 4 - 1 - - - 5 - 6 - 2 - - - 6 - 7 - 1 - - - 9 - 10 - 1 - - - 11 - 12 - 1 - - - 42 - 43 - 1 - - - 979 - 980 - 1 + 99 + 100 + 154 @@ -15943,11 +16115,11 @@ function_pointer_calling_conventions - 27738 + 27733 id - 27738 + 27733 kind @@ -15965,7 +16137,7 @@ 1 2 - 27738 + 27733 @@ -16076,15 +16248,15 @@ modifiers - 2539 + 2321 id - 2539 + 2321 name - 2539 + 2321 @@ -16098,7 +16270,7 @@ 1 2 - 2539 + 2321 @@ -16114,7 +16286,7 @@ 1 2 - 2539 + 2321 @@ -16124,15 +16296,15 @@ has_modifiers - 74006502 + 69210354 id - 48974257 + 45800460 mod_id - 303 + 284 @@ -16146,17 +16318,17 @@ 1 2 - 25150112 + 23520367 2 3 - 22619170 + 21153213 3 5 - 1204974 + 1126879 @@ -16172,72 +16344,72 @@ 123 124 - 21 + 20 426 427 - 21 + 20 2653 2654 - 21 + 20 106912 106913 - 21 + 20 118655 118656 - 21 + 20 131175 131176 - 21 + 20 137005 137006 - 21 + 20 137710 137711 - 21 + 20 152918 152919 - 21 + 20 201905 201906 - 21 + 20 244876 244877 - 21 + 20 278805 278806 - 21 + 20 - 451153 - 451154 - 21 + 451165 + 451166 + 20 1446933 1446934 - 21 + 20 @@ -16247,26 +16419,26 @@ compiler_generated - 786249 + 786271 id - 786249 + 786271 exprorstmt_name - 5183 + 5107 parent_id - 5183 + 5107 name - 558 + 550 @@ -16280,7 +16452,7 @@ 1 2 - 5183 + 5107 @@ -16301,17 +16473,17 @@ 2 3 - 167 + 164 3 4 - 71 + 70 4 5 - 68 + 67 5 @@ -16326,17 +16498,17 @@ 8 13 - 51 + 50 13 25 - 43 + 42 25 239 - 37 + 36 @@ -16346,19 +16518,19 @@ nested_types - 1588192 + 1485261 id - 1588192 + 1485261 declaring_type_id - 637372 + 596064 unbound_id - 1331867 + 1245549 @@ -16372,7 +16544,7 @@ 1 2 - 1588192 + 1485261 @@ -16388,7 +16560,7 @@ 1 2 - 1588192 + 1485261 @@ -16404,32 +16576,32 @@ 1 2 - 372999 + 348825 2 3 - 111186 + 103980 3 4 - 53434 + 49971 4 6 - 48119 + 45000 6 22 - 47988 + 44878 22 495 - 3644 + 3408 @@ -16445,32 +16617,32 @@ 1 2 - 374539 + 350265 2 3 - 111685 + 104446 3 4 - 52783 + 49362 4 6 - 48184 + 45061 6 26 - 47815 + 44716 26 495 - 2364 + 2211 @@ -16486,12 +16658,12 @@ 1 2 - 1283293 + 1200122 2 490 - 48574 + 45426 @@ -16507,12 +16679,12 @@ 1 2 - 1291081 + 1207406 2 490 - 40786 + 38142 @@ -16522,27 +16694,27 @@ properties - 4879885 + 4563618 id - 4879885 + 4563618 name - 1131841 + 1058486 declaring_type_id - 1362392 + 1274095 type_id - 541611 + 506509 unbound_id - 4365913 + 4082956 @@ -16556,7 +16728,7 @@ 1 2 - 4879885 + 4563618 @@ -16572,7 +16744,7 @@ 1 2 - 4879885 + 4563618 @@ -16588,7 +16760,7 @@ 1 2 - 4879885 + 4563618 @@ -16604,7 +16776,7 @@ 1 2 - 4879885 + 4563618 @@ -16620,27 +16792,27 @@ 1 2 - 714280 + 667988 2 3 - 182345 + 170527 3 4 - 69987 + 65451 4 8 - 91161 + 85253 8 8341 - 74066 + 69265 @@ -16656,27 +16828,27 @@ 1 2 - 714280 + 667988 2 3 - 182605 + 170770 3 4 - 69879 + 65350 4 8 - 91400 + 85476 8 4889 - 73675 + 68900 @@ -16692,17 +16864,17 @@ 1 2 - 989545 + 925412 2 3 - 81876 + 76569 3 1309 - 60420 + 56504 @@ -16718,27 +16890,27 @@ 1 2 - 720507 + 673810 2 3 - 186640 + 174544 3 4 - 70117 + 65573 4 8 - 88254 + 82534 8 7118 - 66321 + 62022 @@ -16754,37 +16926,37 @@ 1 2 - 484966 + 453535 2 3 - 319781 + 299056 3 4 - 181477 + 169715 4 5 - 115221 + 107753 5 7 - 114613 + 107185 7 14 - 104417 + 97649 14 2090 - 41914 + 39197 @@ -16800,37 +16972,37 @@ 1 2 - 560095 + 523795 2 3 - 245845 + 229912 3 4 - 181759 + 169979 4 5 - 117130 + 109539 5 7 - 114570 + 107145 7 14 - 102790 + 96128 14 2090 - 40200 + 37595 @@ -16846,32 +17018,32 @@ 1 2 - 562004 + 525581 2 3 - 389574 + 364325 3 4 - 167787 + 156913 4 5 - 90033 + 84198 5 9 - 113550 + 106191 9 54 - 39441 + 36885 @@ -16887,37 +17059,37 @@ 1 2 - 484966 + 453535 2 3 - 319781 + 299056 3 4 - 181477 + 169715 4 5 - 115221 + 107753 5 7 - 114613 + 107185 7 14 - 104417 + 97649 14 2090 - 41914 + 39197 @@ -16933,32 +17105,32 @@ 1 2 - 295874 + 276698 2 3 - 111685 + 104446 3 4 - 36273 + 33922 4 7 - 46687 + 43661 7 32 - 40656 + 38021 32 40789 - 10435 + 9758 @@ -16974,22 +17146,22 @@ 1 2 - 432812 + 404761 2 3 - 60571 + 56646 3 12 - 40959 + 38305 12 12163 - 7267 + 6796 @@ -17005,32 +17177,32 @@ 1 2 - 309845 + 289764 2 3 - 107064 + 100125 3 4 - 35384 + 33091 4 7 - 43324 + 40516 7 51 - 40699 + 38061 51 18897 - 5293 + 4950 @@ -17046,32 +17218,32 @@ 1 2 - 297479 + 278199 2 3 - 113333 + 105988 3 4 - 36577 + 34206 4 7 - 45971 + 42991 7 40 - 40699 + 38061 40 38842 - 7549 + 7060 @@ -17087,12 +17259,12 @@ 1 2 - 4291391 + 4013264 2 1206 - 74521 + 69691 @@ -17108,7 +17280,7 @@ 1 2 - 4365913 + 4082956 @@ -17124,12 +17296,12 @@ 1 2 - 4291391 + 4013264 2 1206 - 74521 + 69691 @@ -17145,12 +17317,12 @@ 1 2 - 4349923 + 4068003 2 1206 - 15989 + 14952 @@ -17160,15 +17332,15 @@ property_location - 4890667 + 4573701 id - 4879885 + 4563618 loc - 8027 + 7506 @@ -17182,12 +17354,12 @@ 1 2 - 4872118 + 4556354 2 15 - 7766 + 7263 @@ -17203,72 +17375,72 @@ 1 5 - 650 + 608 5 10 - 607 + 568 10 18 - 629 + 588 18 34 - 607 + 568 34 49 - 607 + 568 49 81 - 607 + 568 82 126 - 607 + 568 127 187 - 607 + 568 188 272 - 607 + 568 272 359 - 607 + 568 369 750 - 607 + 568 759 1795 - 607 + 568 1886 9614 - 607 + 568 9940 12699 - 65 + 60 @@ -17278,27 +17450,27 @@ indexers - 104631 + 95946 id - 104631 + 95946 name - 507 + 464 declaring_type_id - 82621 + 75828 type_id - 26242 + 23986 unbound_id - 56717 + 51842 @@ -17312,7 +17484,7 @@ 1 2 - 104631 + 95946 @@ -17328,7 +17500,7 @@ 1 2 - 104631 + 95946 @@ -17344,7 +17516,7 @@ 1 2 - 104631 + 95946 @@ -17360,7 +17532,7 @@ 1 2 - 104631 + 95946 @@ -17376,17 +17548,17 @@ 2 3 - 169 + 154 6 7 - 169 + 154 - 610 - 611 - 169 + 612 + 613 + 154 @@ -17402,17 +17574,17 @@ 2 3 - 169 + 154 4 5 - 169 + 154 - 484 - 485 - 169 + 486 + 487 + 154 @@ -17428,17 +17600,17 @@ 1 2 - 169 + 154 4 5 - 169 + 154 151 152 - 169 + 154 @@ -17454,17 +17626,17 @@ 2 3 - 169 + 154 6 7 - 169 + 154 327 328 - 169 + 154 @@ -17480,17 +17652,17 @@ 1 2 - 66706 + 61282 2 3 - 11512 + 10523 3 7 - 4401 + 4023 @@ -17506,12 +17678,12 @@ 1 2 - 82282 + 75519 2 3 - 338 + 309 @@ -17527,12 +17699,12 @@ 1 2 - 72462 + 66543 2 3 - 10158 + 9285 @@ -17548,17 +17720,17 @@ 1 2 - 66706 + 61282 2 3 - 11512 + 10523 3 7 - 4401 + 4023 @@ -17574,32 +17746,32 @@ 1 2 - 11682 + 10677 2 3 - 6264 + 5725 3 4 - 4063 + 3559 4 5 - 1862 + 1702 5 - 14 - 2031 + 12 + 1857 - 16 + 13 267 - 338 + 464 @@ -17615,12 +17787,12 @@ 1 2 - 26073 + 23831 2 3 - 169 + 154 @@ -17636,27 +17808,27 @@ 1 2 - 15745 + 14391 2 3 - 2878 + 2630 3 4 - 4571 + 4023 4 6 - 2200 + 2166 6 247 - 846 + 773 @@ -17672,32 +17844,32 @@ 1 2 - 11682 + 10677 2 3 - 6264 + 5725 3 4 - 4232 + 3714 4 5 - 1862 + 1702 5 - 17 - 2031 + 14 + 1857 - 110 + 16 111 - 169 + 309 @@ -17713,12 +17885,12 @@ 1 2 - 52992 + 48437 2 47 - 3724 + 3404 @@ -17734,7 +17906,7 @@ 1 2 - 56717 + 51842 @@ -17750,12 +17922,12 @@ 1 2 - 52992 + 48437 2 47 - 3724 + 3404 @@ -17771,12 +17943,12 @@ 1 2 - 55024 + 50294 2 - 41 - 1693 + 42 + 1547 @@ -17786,15 +17958,15 @@ indexer_location - 106324 + 97494 id - 104631 + 95946 loc - 6772 + 6190 @@ -17808,12 +17980,12 @@ 1 2 - 102938 + 94399 2 3 - 1693 + 1547 @@ -17829,57 +18001,57 @@ 1 2 - 338 + 309 2 3 - 1015 + 928 3 4 - 1523 + 1392 4 5 - 1015 + 928 5 7 - 507 + 464 7 8 - 169 + 154 10 11 - 507 + 464 12 14 - 338 + 309 17 20 - 507 + 464 21 25 - 507 + 464 55 - 310 - 338 + 312 + 309 @@ -17889,27 +18061,27 @@ accessors - 5815063 + 5438186 id - 5815063 + 5438186 kind - 43 + 40 name - 1544390 + 1444298 declaring_member_id - 4956663 + 4635420 unbound_id - 5171659 + 4836482 @@ -17923,7 +18095,7 @@ 1 2 - 5815063 + 5438186 @@ -17939,7 +18111,7 @@ 1 2 - 5815063 + 5438186 @@ -17955,7 +18127,7 @@ 1 2 - 5815063 + 5438186 @@ -17971,7 +18143,7 @@ 1 2 - 5815063 + 5438186 @@ -17987,12 +18159,12 @@ 39862 39863 - 21 + 20 228177 228178 - 21 + 20 @@ -18008,12 +18180,12 @@ 16327 16328 - 21 + 20 54860 54861 - 21 + 20 @@ -18029,12 +18201,12 @@ 39862 39863 - 21 + 20 228177 228178 - 21 + 20 @@ -18050,12 +18222,12 @@ 36177 36178 - 21 + 20 202205 202206 - 21 + 20 @@ -18071,27 +18243,27 @@ 1 2 - 1004406 + 939310 2 3 - 243047 + 227295 3 5 - 140799 + 131674 5 17 - 117976 + 110330 17 3385 - 38161 + 35687 @@ -18107,7 +18279,7 @@ 1 2 - 1544390 + 1444298 @@ -18123,27 +18295,27 @@ 1 2 - 1004406 + 939310 2 3 - 243047 + 227295 3 5 - 140799 + 131674 5 17 - 117976 + 110330 17 3385 - 38161 + 35687 @@ -18159,27 +18331,27 @@ 1 2 - 1015296 + 949495 2 3 - 249555 + 233381 3 5 - 139302 + 130274 5 24 - 116653 + 109092 24 3380 - 23582 + 22053 @@ -18195,12 +18367,12 @@ 1 2 - 4098263 + 3832653 2 3 - 858399 + 802766 @@ -18216,12 +18388,12 @@ 1 2 - 4098263 + 3832653 2 3 - 858399 + 802766 @@ -18237,12 +18409,12 @@ 1 2 - 4098263 + 3832653 2 3 - 858399 + 802766 @@ -18258,12 +18430,12 @@ 1 2 - 4098263 + 3832653 2 3 - 858399 + 802766 @@ -18279,12 +18451,12 @@ 1 2 - 5083708 + 4754231 2 1206 - 87950 + 82250 @@ -18300,7 +18472,7 @@ 1 2 - 5171659 + 4836482 @@ -18316,7 +18488,7 @@ 1 2 - 5171659 + 4836482 @@ -18332,12 +18504,12 @@ 1 2 - 5083708 + 4754231 2 1206 - 87950 + 82250 @@ -18347,26 +18519,26 @@ init_only_accessors - 5079 + 4642 id - 5079 + 4642 accessor_location - 5828080 + 5450359 id - 5815063 + 5438186 loc - 8027 + 7506 @@ -18380,12 +18552,12 @@ 1 2 - 5805192 + 5428955 2 15 - 9871 + 9231 @@ -18401,67 +18573,67 @@ 1 6 - 650 + 608 6 12 - 607 + 568 12 22 - 607 + 568 22 38 - 650 + 608 38 66 - 672 + 628 67 105 - 607 + 568 105 161 - 607 + 568 164 269 - 607 + 568 269 361 - 607 + 568 364 464 - 607 + 568 477 1105 - 607 + 568 1105 2387 - 607 + 568 2455 13984 - 585 + 547 @@ -18471,27 +18643,27 @@ events - 59075 + 55246 id - 59075 + 55246 name - 24667 + 23068 declaring_type_id - 24862 + 23250 type_id - 15555 + 14547 unbound_id - 51894 + 48530 @@ -18505,7 +18677,7 @@ 1 2 - 59075 + 55246 @@ -18521,7 +18693,7 @@ 1 2 - 59075 + 55246 @@ -18537,7 +18709,7 @@ 1 2 - 59075 + 55246 @@ -18553,7 +18725,7 @@ 1 2 - 59075 + 55246 @@ -18569,27 +18741,27 @@ 1 2 - 14405 + 13471 2 3 - 4707 + 4402 3 4 - 2776 + 2596 4 8 - 2061 + 1927 8 211 - 715 + 669 @@ -18605,27 +18777,27 @@ 1 2 - 14405 + 13471 2 3 - 4707 + 4402 3 4 - 2776 + 2596 4 8 - 2061 + 1927 8 200 - 715 + 669 @@ -18641,17 +18813,17 @@ 1 2 - 22389 + 20938 2 4 - 1865 + 1744 4 9 - 412 + 385 @@ -18667,27 +18839,27 @@ 1 2 - 14622 + 13674 2 3 - 4859 + 4544 3 4 - 2798 + 2617 4 8 - 1930 + 1805 8 145 - 455 + 426 @@ -18703,32 +18875,32 @@ 1 2 - 12973 + 12132 2 3 - 4946 + 4625 3 4 - 2690 + 2515 4 5 - 1735 + 1623 5 9 - 1930 + 1805 9 75 - 585 + 547 @@ -18744,32 +18916,32 @@ 1 2 - 13016 + 12173 2 3 - 5119 + 4788 3 4 - 2494 + 2333 4 5 - 1713 + 1602 5 9 - 1930 + 1805 9 75 - 585 + 547 @@ -18785,27 +18957,27 @@ 1 2 - 15576 + 14567 2 3 - 4794 + 4483 3 4 - 2408 + 2252 4 9 - 1930 + 1805 12 52 - 151 + 142 @@ -18821,32 +18993,32 @@ 1 2 - 12973 + 12132 2 3 - 4946 + 4625 3 4 - 2690 + 2515 4 5 - 1735 + 1623 5 9 - 1930 + 1805 9 75 - 585 + 547 @@ -18862,27 +19034,27 @@ 1 2 - 7679 + 7182 2 3 - 3210 + 3002 3 4 - 2581 + 2414 4 7 - 1236 + 1156 7 620 - 846 + 791 @@ -18898,17 +19070,17 @@ 1 2 - 12539 + 11726 2 3 - 1952 + 1825 3 262 - 1063 + 994 @@ -18924,27 +19096,27 @@ 1 2 - 8851 + 8277 2 3 - 2776 + 2596 3 4 - 2646 + 2475 4 26 - 1193 + 1115 40 347 - 86 + 81 @@ -18960,27 +19132,27 @@ 1 2 - 7701 + 7202 2 3 - 3319 + 3104 3 4 - 2494 + 2333 4 6 - 1171 + 1095 6 557 - 867 + 811 @@ -18996,12 +19168,12 @@ 1 2 - 50049 + 46806 2 23 - 1844 + 1724 @@ -19017,7 +19189,7 @@ 1 2 - 51894 + 48530 @@ -19033,12 +19205,12 @@ 1 2 - 50049 + 46806 2 23 - 1844 + 1724 @@ -19054,12 +19226,12 @@ 1 2 - 51546 + 48206 2 5 - 347 + 324 @@ -19069,15 +19241,15 @@ event_location - 59075 + 55246 id - 59075 + 55246 loc - 2429 + 2272 @@ -19091,7 +19263,7 @@ 1 2 - 59075 + 55246 @@ -19107,52 +19279,52 @@ 1 2 - 433 + 405 2 3 - 368 + 344 3 4 - 195 + 182 4 6 - 216 + 202 6 9 - 216 + 202 10 16 - 216 + 202 16 30 - 195 + 182 30 42 - 195 + 182 42 70 - 195 + 182 79 230 - 195 + 182 @@ -19162,27 +19334,27 @@ event_accessors - 118150 + 110492 id - 118150 + 110492 kind - 43 + 40 name - 50462 + 47191 declaring_event_id - 59075 + 55246 unbound_id - 103788 + 97061 @@ -19196,7 +19368,7 @@ 1 2 - 118150 + 110492 @@ -19212,7 +19384,7 @@ 1 2 - 118150 + 110492 @@ -19228,7 +19400,7 @@ 1 2 - 118150 + 110492 @@ -19244,7 +19416,7 @@ 1 2 - 118150 + 110492 @@ -19260,7 +19432,7 @@ 2723 2724 - 43 + 40 @@ -19276,7 +19448,7 @@ 1163 1164 - 43 + 40 @@ -19292,7 +19464,7 @@ 2723 2724 - 43 + 40 @@ -19308,7 +19480,7 @@ 2392 2393 - 43 + 40 @@ -19324,27 +19496,27 @@ 1 2 - 29591 + 27673 2 3 - 9502 + 8886 3 4 - 5597 + 5234 4 8 - 4208 + 3936 8 187 - 1562 + 1460 @@ -19360,7 +19532,7 @@ 1 2 - 50462 + 47191 @@ -19376,27 +19548,27 @@ 1 2 - 29591 + 27673 2 3 - 9502 + 8886 3 4 - 5597 + 5234 4 8 - 4208 + 3936 8 187 - 1562 + 1460 @@ -19412,27 +19584,27 @@ 1 2 - 30069 + 28120 2 3 - 10023 + 9373 3 4 - 5640 + 5275 4 8 - 3905 + 3651 8 128 - 824 + 770 @@ -19448,7 +19620,7 @@ 2 3 - 59075 + 55246 @@ -19464,7 +19636,7 @@ 2 3 - 59075 + 55246 @@ -19480,7 +19652,7 @@ 2 3 - 59075 + 55246 @@ -19496,7 +19668,7 @@ 2 3 - 59075 + 55246 @@ -19512,12 +19684,12 @@ 1 2 - 100099 + 93612 2 23 - 3688 + 3449 @@ -19533,7 +19705,7 @@ 1 2 - 103788 + 97061 @@ -19549,7 +19721,7 @@ 1 2 - 103788 + 97061 @@ -19565,12 +19737,12 @@ 1 2 - 100099 + 93612 2 23 - 3688 + 3449 @@ -19580,15 +19752,15 @@ event_accessor_location - 118150 + 110492 id - 118150 + 110492 loc - 2429 + 2272 @@ -19602,7 +19774,7 @@ 1 2 - 118150 + 110492 @@ -19618,52 +19790,52 @@ 2 3 - 433 + 405 4 5 - 368 + 344 6 7 - 195 + 182 8 11 - 216 + 202 12 17 - 216 + 202 20 31 - 216 + 202 32 59 - 195 + 182 60 83 - 195 + 182 84 139 - 195 + 182 158 459 - 195 + 182 @@ -19673,11 +19845,11 @@ operators - 807641 + 807663 id - 807641 + 807663 name @@ -19689,15 +19861,15 @@ declaring_type_id - 94479 + 94482 type_id - 37120 + 37121 unbound_id - 95783 + 95786 @@ -19711,7 +19883,7 @@ 1 2 - 807641 + 807663 @@ -19727,7 +19899,7 @@ 1 2 - 807641 + 807663 @@ -19743,7 +19915,7 @@ 1 2 - 807641 + 807663 @@ -19759,7 +19931,7 @@ 1 2 - 807641 + 807663 @@ -19775,7 +19947,7 @@ 1 2 - 807641 + 807663 @@ -20296,7 +20468,7 @@ 1 2 - 56653 + 56655 2 @@ -20342,7 +20514,7 @@ 1 2 - 92171 + 92174 2 @@ -20363,7 +20535,7 @@ 1 2 - 92171 + 92174 2 @@ -20384,7 +20556,7 @@ 1 2 - 93646 + 93649 2 @@ -20405,7 +20577,7 @@ 1 2 - 56653 + 56655 2 @@ -20451,12 +20623,12 @@ 1 7 - 3397 + 3398 7 12 - 3397 + 3398 12 @@ -20542,7 +20714,7 @@ 1 2 - 36437 + 36438 2 @@ -20563,7 +20735,7 @@ 1 2 - 36437 + 36438 2 @@ -20584,7 +20756,7 @@ 1 2 - 36244 + 36245 2 @@ -20605,12 +20777,12 @@ 1 7 - 3397 + 3398 7 12 - 3397 + 3398 12 @@ -20696,7 +20868,7 @@ 1 2 - 84350 + 84352 3 @@ -20722,7 +20894,7 @@ 1 2 - 95783 + 95786 @@ -20738,7 +20910,7 @@ 1 2 - 95783 + 95786 @@ -20754,7 +20926,7 @@ 1 2 - 84350 + 84352 3 @@ -20780,7 +20952,7 @@ 1 2 - 84350 + 84352 3 @@ -20800,15 +20972,15 @@ operator_location - 1510289 + 1510330 id - 751073 + 751094 loc - 23550 + 23551 @@ -20827,7 +20999,7 @@ 2 3 - 740024 + 740045 3 @@ -20866,9 +21038,9 @@ 1880 - 62 + 63 73 - 1880 + 1859 75 @@ -20882,8 +21054,8 @@ 96 - 18513 - 876 + 17756 + 897 @@ -20893,15 +21065,15 @@ constant_value - 2847100 + 2662578 id - 2845820 + 2661381 value - 965572 + 902993 @@ -20915,12 +21087,12 @@ 1 2 - 2844974 + 2660590 2 9 - 846 + 791 @@ -20936,22 +21108,22 @@ 1 2 - 780580 + 729990 2 3 - 96108 + 89879 3 10 - 74803 + 69955 10 7596 - 14079 + 13167 @@ -20961,27 +21133,27 @@ methods - 15027104 + 14053435 id - 15027104 + 14053435 name - 4232381 + 3958281 declaring_type_id - 3140805 + 2937248 type_id - 999546 + 934765 unbound_id - 12416391 + 11611923 @@ -20995,7 +21167,7 @@ 1 2 - 15027104 + 14053435 @@ -21011,7 +21183,7 @@ 1 2 - 15027104 + 14053435 @@ -21027,7 +21199,7 @@ 1 2 - 15027104 + 14053435 @@ -21043,7 +21215,7 @@ 1 2 - 15027104 + 14053435 @@ -21059,27 +21231,27 @@ 1 2 - 3032743 + 2836352 2 3 - 495705 + 463619 3 5 - 336877 + 315044 5 26 - 319391 + 298691 26 15936 - 47663 + 44574 @@ -21095,22 +21267,22 @@ 1 2 - 3164930 + 2959972 2 3 - 431662 + 403726 3 6 - 378509 + 353978 6 10142 - 257279 + 240604 @@ -21126,17 +21298,17 @@ 1 2 - 3856388 + 3606656 2 7 - 323513 + 302546 7 2905 - 52479 + 49078 @@ -21152,22 +21324,22 @@ 1 2 - 3079278 + 2879871 2 3 - 510240 + 477212 3 5 - 336443 + 314638 5 8458 - 306417 + 286558 @@ -21183,42 +21355,42 @@ 1 2 - 1095784 + 1024766 2 3 - 701524 + 656058 3 4 - 312514 + 292260 4 5 - 221699 + 207331 5 6 - 178613 + 167017 6 9 - 274634 + 256835 9 18 - 241658 + 226017 18 8066 - 114375 + 106962 @@ -21234,42 +21406,42 @@ 1 2 - 1137438 + 1063720 2 3 - 725800 + 678761 3 4 - 320844 + 300050 4 5 - 251595 + 235289 5 6 - 194537 + 181909 6 10 - 265566 + 248355 10 70 - 235692 + 220437 70 3734 - 9328 + 8724 @@ -21285,32 +21457,32 @@ 1 2 - 1500892 + 1403619 2 3 - 768951 + 719115 3 4 - 314705 + 294309 4 5 - 257669 + 240969 5 10 - 236235 + 220924 10 848 - 62350 + 58309 @@ -21326,42 +21498,42 @@ 1 2 - 1095806 + 1024786 2 3 - 701502 + 656037 3 4 - 312514 + 292260 4 5 - 221699 + 207331 5 6 - 178613 + 167017 6 9 - 274634 + 256835 9 18 - 241658 + 226017 18 8066 - 114375 + 106962 @@ -21377,32 +21549,32 @@ 1 2 - 566842 + 530105 2 3 - 164989 + 154296 3 4 - 72634 + 67926 4 7 - 88666 + 82920 7 23 - 75498 + 70604 23 - 192603 - 30915 + 192615 + 28911 @@ -21418,27 +21590,27 @@ 1 2 - 697076 + 651899 2 3 - 131904 + 123355 3 5 - 85499 + 79958 5 27 - 75107 + 70239 27 - 59265 - 9957 + 59275 + 9312 @@ -21454,27 +21626,27 @@ 1 2 - 648914 + 606857 2 3 - 158068 + 147824 3 4 - 65236 + 61008 4 9 - 79750 + 74581 9 61707 - 47576 + 44493 @@ -21490,32 +21662,32 @@ 1 2 - 568860 + 531992 2 3 - 166312 + 155533 3 4 - 72851 + 68129 4 7 - 89339 + 83549 7 24 - 75064 + 70199 24 - 167288 - 27118 + 167300 + 25360 @@ -21531,12 +21703,12 @@ 1 2 - 12025081 + 11245974 2 3017 - 391309 + 365948 @@ -21552,7 +21724,7 @@ 1 2 - 12416391 + 11611923 @@ -21568,12 +21740,12 @@ 1 2 - 12025167 + 11246055 2 3017 - 391223 + 365867 @@ -21589,12 +21761,12 @@ 1 2 - 12291906 + 11495506 2 1636 - 124484 + 116417 @@ -21604,15 +21776,15 @@ method_location - 15099522 + 14121159 id - 15027104 + 14053435 loc - 8504 + 7953 @@ -21626,12 +21798,12 @@ 1 2 - 14977184 + 14006750 2 70 - 49919 + 46684 @@ -21647,67 +21819,67 @@ 1 6 - 694 + 649 6 22 - 650 + 608 23 64 - 672 + 628 64 102 - 650 + 608 105 174 - 650 + 608 176 243 - 650 + 608 243 354 - 650 + 608 356 498 - 650 + 608 502 853 - 650 + 608 858 1303 - 650 + 608 1308 2060 - 650 + 608 2068 5869 - 650 + 608 6153 43327 - 629 + 588 @@ -21717,23 +21889,23 @@ constructors - 4401492 + 4116230 id - 4401492 + 4116230 name - 2051724 + 1918751 declaring_type_id - 3294773 + 3081238 unbound_id - 4086613 + 3821758 @@ -21747,7 +21919,7 @@ 1 2 - 4401492 + 4116230 @@ -21763,7 +21935,7 @@ 1 2 - 4401492 + 4116230 @@ -21779,7 +21951,7 @@ 1 2 - 4401492 + 4116230 @@ -21795,22 +21967,22 @@ 1 2 - 1486725 + 1390370 2 3 - 372999 + 348825 3 7 - 156766 + 146606 7 23610 - 35232 + 32948 @@ -21826,17 +21998,17 @@ 1 2 - 1877992 + 1756278 2 6 - 154597 + 144577 6 11806 - 19134 + 17894 @@ -21852,22 +22024,22 @@ 1 2 - 1508919 + 1411125 2 3 - 374192 + 349941 3 10 - 155226 + 145166 10 23610 - 13385 + 12518 @@ -21883,17 +22055,17 @@ 1 2 - 2455031 + 2295919 2 3 - 711699 + 665573 3 55 - 128042 + 119744 @@ -21909,7 +22081,7 @@ 1 2 - 3294773 + 3081238 @@ -21925,17 +22097,17 @@ 1 2 - 2455031 + 2295919 2 3 - 711699 + 665573 3 55 - 128042 + 119744 @@ -21951,12 +22123,12 @@ 1 2 - 4045046 + 3782885 2 1016 - 41567 + 38873 @@ -21972,7 +22144,7 @@ 1 2 - 4086613 + 3821758 @@ -21988,12 +22160,12 @@ 1 2 - 4045046 + 3782885 2 1016 - 41567 + 38873 @@ -22003,15 +22175,15 @@ constructor_location - 4437809 + 4150193 id - 4401492 + 4116230 loc - 8569 + 8014 @@ -22025,12 +22197,12 @@ 1 2 - 4386870 + 4102555 2 92 - 14622 + 13674 @@ -22046,67 +22218,67 @@ 1 4 - 737 + 689 4 13 - 715 + 669 13 25 - 650 + 608 25 46 - 650 + 608 46 64 - 650 + 608 64 93 - 650 + 608 94 135 - 650 + 608 135 184 - 650 + 608 184 302 - 650 + 608 302 472 - 650 + 608 483 740 - 650 + 608 788 1890 - 650 + 608 1890 8395 - 607 + 568 @@ -22116,23 +22288,23 @@ destructors - 6095 + 5571 id - 6095 + 5571 name - 5925 + 5416 declaring_type_id - 6095 + 5571 unbound_id - 6095 + 5571 @@ -22146,7 +22318,7 @@ 1 2 - 6095 + 5571 @@ -22162,7 +22334,7 @@ 1 2 - 6095 + 5571 @@ -22178,7 +22350,7 @@ 1 2 - 6095 + 5571 @@ -22194,12 +22366,12 @@ 1 2 - 5756 + 5261 2 3 - 169 + 154 @@ -22215,12 +22387,12 @@ 1 2 - 5756 + 5261 2 3 - 169 + 154 @@ -22236,12 +22408,12 @@ 1 2 - 5756 + 5261 2 3 - 169 + 154 @@ -22257,7 +22429,7 @@ 1 2 - 6095 + 5571 @@ -22273,7 +22445,7 @@ 1 2 - 6095 + 5571 @@ -22289,7 +22461,7 @@ 1 2 - 6095 + 5571 @@ -22305,7 +22477,7 @@ 1 2 - 6095 + 5571 @@ -22321,7 +22493,7 @@ 1 2 - 6095 + 5571 @@ -22337,7 +22509,7 @@ 1 2 - 6095 + 5571 @@ -22347,15 +22519,15 @@ destructor_location - 6264 + 5725 id - 6095 + 5571 loc - 3047 + 2785 @@ -22369,12 +22541,12 @@ 1 2 - 5925 + 5416 2 3 - 169 + 154 @@ -22390,27 +22562,27 @@ 1 2 - 1862 + 1702 2 3 - 507 + 464 3 4 - 169 + 154 4 5 - 338 + 309 9 10 - 169 + 154 @@ -22420,15 +22592,15 @@ overrides - 3549970 + 3319895 id - 3549970 + 3319895 base_id - 1153189 + 1078450 @@ -22442,7 +22614,7 @@ 1 2 - 3549970 + 3319895 @@ -22458,27 +22630,27 @@ 1 2 - 787088 + 736077 2 3 - 181585 + 169817 3 5 - 93548 + 87485 5 44 - 86497 + 80891 44 4471 - 4469 + 4179 @@ -22488,15 +22660,15 @@ explicitly_implements - 1340285 + 1253421 id - 1339873 + 1253035 interface_id - 99058 + 92638 @@ -22510,12 +22682,12 @@ 1 2 - 1339461 + 1252650 2 3 - 412 + 385 @@ -22531,37 +22703,37 @@ 1 2 - 50744 + 47455 2 3 - 15750 + 14729 3 4 - 6009 + 5619 4 6 - 9133 + 8541 6 10 - 7484 + 6999 10 35 - 7484 + 6999 35 10047 - 2451 + 2292 @@ -22862,15 +23034,15 @@ local_function_stmts - 3316 + 3256 fn - 3316 + 3256 stmt - 3316 + 3256 @@ -22884,7 +23056,7 @@ 1 2 - 3316 + 3256 @@ -22900,7 +23072,7 @@ 1 2 - 3316 + 3256 @@ -22910,31 +23082,31 @@ fields - 11002581 + 10289499 id - 11002581 + 10289499 kind - 43 + 40 name - 4569128 + 4273001 declaring_type_id - 2488007 + 2326758 type_id - 2180548 + 2039226 unbound_id - 10641861 + 9952158 @@ -22948,7 +23120,7 @@ 1 2 - 11002581 + 10289499 @@ -22964,7 +23136,7 @@ 1 2 - 11002581 + 10289499 @@ -22980,7 +23152,7 @@ 1 2 - 11002581 + 10289499 @@ -22996,7 +23168,7 @@ 1 2 - 11002581 + 10289499 @@ -23012,7 +23184,7 @@ 1 2 - 11002581 + 10289499 @@ -23028,12 +23200,12 @@ 131175 131176 - 21 + 20 375977 375978 - 21 + 20 @@ -23049,12 +23221,12 @@ 89638 89639 - 21 + 20 125803 125804 - 21 + 20 @@ -23070,12 +23242,12 @@ 17217 17218 - 21 + 20 104358 104359 - 21 + 20 @@ -23091,12 +23263,12 @@ 6833 6834 - 21 + 20 96595 96596 - 21 + 20 @@ -23112,12 +23284,12 @@ 130817 130818 - 21 + 20 359708 359709 - 21 + 20 @@ -23133,22 +23305,22 @@ 1 2 - 3598609 + 3365382 2 3 - 510457 + 477374 3 8 - 343494 + 321232 8 12308 - 116566 + 109011 @@ -23164,12 +23336,12 @@ 1 2 - 4464299 + 4174966 2 3 - 104829 + 98035 @@ -23185,22 +23357,22 @@ 1 2 - 3598609 + 3365382 2 3 - 510479 + 477395 3 8 - 343472 + 321212 8 12308 - 116566 + 109011 @@ -23216,17 +23388,17 @@ 1 2 - 4006538 + 3746872 2 3 - 343516 + 321252 3 12308 - 219074 + 204876 @@ -23242,22 +23414,22 @@ 1 2 - 3622821 + 3388024 2 3 - 511716 + 478551 3 10 - 352367 + 329530 10 12308 - 82223 + 76894 @@ -23273,42 +23445,42 @@ 1 2 - 686272 + 641795 2 3 - 636266 + 595029 3 4 - 353257 + 330362 4 5 - 217772 + 203658 5 6 - 146093 + 136624 6 8 - 181802 + 170020 8 15 - 193669 + 181118 15 6823 - 72872 + 68150 @@ -23324,12 +23496,12 @@ 1 2 - 2338465 + 2186908 2 3 - 149542 + 139850 @@ -23345,42 +23517,42 @@ 1 2 - 686272 + 641795 2 3 - 636287 + 595049 3 4 - 353235 + 330342 4 5 - 217772 + 203658 5 6 - 146093 + 136624 6 8 - 181802 + 170020 8 15 - 193669 + 181118 15 6823 - 72872 + 68150 @@ -23396,32 +23568,32 @@ 1 2 - 947999 + 886559 2 3 - 690980 + 646197 3 4 - 324945 + 303885 4 5 - 172257 + 161092 5 8 - 228446 + 213640 8 524 - 123378 + 115382 @@ -23437,42 +23609,42 @@ 1 2 - 686272 + 641795 2 3 - 636266 + 595029 3 4 - 353257 + 330362 4 5 - 217772 + 203658 5 6 - 146093 + 136624 6 8 - 181802 + 170020 8 15 - 193669 + 181118 15 6823 - 72872 + 68150 @@ -23488,27 +23660,27 @@ 1 2 - 1482495 + 1386414 2 3 - 268712 + 251296 3 5 - 200807 + 187793 5 14 - 165618 + 154884 14 57540 - 62915 + 58837 @@ -23524,12 +23696,12 @@ 1 2 - 2117242 + 1980023 2 3 - 63305 + 59202 @@ -23545,22 +23717,22 @@ 1 2 - 1587650 + 1484753 2 3 - 258949 + 242166 3 5 - 171671 + 160545 5 33041 - 162277 + 151760 @@ -23576,22 +23748,22 @@ 1 2 - 1645770 + 1539107 2 3 - 262399 + 245392 3 6 - 168677 + 157745 6 19141 - 103701 + 96980 @@ -23607,27 +23779,27 @@ 1 2 - 1486139 + 1389822 2 3 - 270686 + 253143 3 5 - 199353 + 186433 5 15 - 167961 + 157075 15 56593 - 56406 + 52750 @@ -23643,12 +23815,12 @@ 1 2 - 10580052 + 9894355 2 1016 - 61808 + 57802 @@ -23664,7 +23836,7 @@ 1 2 - 10641861 + 9952158 @@ -23680,7 +23852,7 @@ 1 2 - 10641861 + 9952158 @@ -23696,12 +23868,12 @@ 1 2 - 10580052 + 9894355 2 1016 - 61808 + 57802 @@ -23717,12 +23889,12 @@ 1 2 - 10622618 + 9934162 2 779 - 19243 + 17996 @@ -23732,15 +23904,15 @@ field_location - 10994315 + 10281769 id - 10929752 + 10221390 loc - 8244 + 7709 @@ -23754,12 +23926,12 @@ 1 2 - 10890853 + 10185012 2 22 - 38898 + 36377 @@ -23775,72 +23947,72 @@ 1 10 - 629 + 588 10 20 - 629 + 588 20 46 - 650 + 608 47 82 - 629 + 588 83 139 - 629 + 588 140 204 - 650 + 608 204 295 - 629 + 588 296 491 - 629 + 588 504 732 - 629 + 588 744 1130 - 629 + 588 1152 1951 - 629 + 588 2008 4744 - 629 + 588 5091 20299 - 629 + 588 22254 22255 - 21 + 20 @@ -23850,11 +24022,11 @@ localvars - 354446 + 354378 id - 354446 + 354378 kind @@ -23862,7 +24034,7 @@ name - 63800 + 63787 implicitly_typed @@ -23870,11 +24042,11 @@ type_id - 17979 + 17976 parent_id - 354446 + 354378 @@ -23888,7 +24060,7 @@ 1 2 - 354446 + 354378 @@ -23904,7 +24076,7 @@ 1 2 - 354446 + 354378 @@ -23920,7 +24092,7 @@ 1 2 - 354446 + 354378 @@ -23936,7 +24108,7 @@ 1 2 - 354446 + 354378 @@ -23952,7 +24124,7 @@ 1 2 - 354446 + 354378 @@ -24073,27 +24245,27 @@ 1 2 - 40179 + 40171 2 3 - 10096 + 10094 3 4 - 3736 + 3735 4 8 - 5319 + 5318 8 3773 - 4469 + 4468 @@ -24109,7 +24281,7 @@ 1 2 - 63668 + 63656 2 @@ -24130,12 +24302,12 @@ 1 2 - 55359 + 55349 2 3 - 8440 + 8438 @@ -24151,17 +24323,17 @@ 1 2 - 54993 + 54983 2 3 - 4850 + 4849 3 72 - 3956 + 3955 @@ -24177,27 +24349,27 @@ 1 2 - 40179 + 40171 2 3 - 10096 + 10094 3 4 - 3736 + 3735 4 8 - 5319 + 5318 8 3773 - 4469 + 4468 @@ -24318,7 +24490,7 @@ 1 2 - 7942 + 7940 2 @@ -24364,7 +24536,7 @@ 1 2 - 17906 + 17902 2 @@ -24385,7 +24557,7 @@ 1 2 - 10403 + 10401 2 @@ -24395,17 +24567,17 @@ 3 4 - 1216 + 1215 4 7 - 1509 + 1508 7 23 - 1392 + 1391 23 @@ -24426,12 +24598,12 @@ 1 2 - 13056 + 13053 2 3 - 4923 + 4922 @@ -24447,7 +24619,7 @@ 1 2 - 7942 + 7940 2 @@ -24493,7 +24665,7 @@ 1 2 - 354446 + 354378 @@ -24509,7 +24681,7 @@ 1 2 - 354446 + 354378 @@ -24525,7 +24697,7 @@ 1 2 - 354446 + 354378 @@ -24541,7 +24713,7 @@ 1 2 - 354446 + 354378 @@ -24557,7 +24729,7 @@ 1 2 - 354446 + 354378 @@ -24567,15 +24739,15 @@ localvar_location - 354446 + 354378 id - 354446 + 354378 loc - 354446 + 354378 @@ -24589,7 +24761,7 @@ 1 2 - 354446 + 354378 @@ -24605,7 +24777,7 @@ 1 2 - 354446 + 354378 @@ -24615,35 +24787,35 @@ params - 27466231 + 25686134 id - 27466231 + 25686134 name - 1613727 + 1509140 type_id - 2077562 + 1942915 index - 1193 + 1115 mode - 130 + 121 parent_id - 15223790 + 14237130 unbound_id - 22123530 + 20689695 @@ -24657,7 +24829,7 @@ 1 2 - 27466231 + 25686134 @@ -24673,7 +24845,7 @@ 1 2 - 27466231 + 25686134 @@ -24689,7 +24861,7 @@ 1 2 - 27466231 + 25686134 @@ -24705,7 +24877,7 @@ 1 2 - 27466231 + 25686134 @@ -24721,7 +24893,7 @@ 1 2 - 27466231 + 25686134 @@ -24737,7 +24909,7 @@ 1 2 - 27466231 + 25686134 @@ -24753,37 +24925,37 @@ 1 2 - 721136 + 674399 2 3 - 280297 + 262131 3 4 - 136265 + 127433 4 6 - 144422 + 135062 6 10 - 127739 + 119460 10 25 - 121708 + 113820 25 74292 - 82158 + 76833 @@ -24799,22 +24971,22 @@ 1 2 - 1310932 + 1225970 2 3 - 157330 + 147134 3 13 - 122684 + 114733 13 13366 - 22779 + 21303 @@ -24830,22 +25002,22 @@ 1 2 - 1115939 + 1043614 2 3 - 275199 + 257363 3 4 - 107476 + 100510 4 21 - 115112 + 107652 @@ -24861,17 +25033,17 @@ 1 2 - 1492257 + 1395544 2 6 - 121165 + 113312 6 7 - 303 + 284 @@ -24887,37 +25059,37 @@ 1 2 - 721136 + 674399 2 3 - 280297 + 262131 3 4 - 136265 + 127433 4 6 - 144422 + 135062 6 10 - 127739 + 119460 10 25 - 121708 + 113820 25 74292 - 82158 + 76833 @@ -24933,37 +25105,37 @@ 1 2 - 736236 + 688520 2 3 - 285417 + 266919 3 4 - 146895 + 137375 4 6 - 147741 + 138166 6 10 - 121990 + 114083 10 35 - 122445 + 114509 35 63585 - 53000 + 49565 @@ -24979,37 +25151,37 @@ 1 2 - 1018377 + 952376 2 3 - 301666 + 282115 3 4 - 173276 + 162046 4 5 - 129105 + 120738 5 8 - 158155 + 147905 8 19 - 161170 + 150725 19 90397 - 135809 + 127007 @@ -25025,27 +25197,27 @@ 1 2 - 1396974 + 1306435 2 3 - 350827 + 328090 3 4 - 149455 + 139769 4 13 - 156224 + 146099 13 9576 - 24081 + 22520 @@ -25061,22 +25233,22 @@ 1 2 - 1515536 + 1417313 2 3 - 354537 + 331559 3 6 - 176075 + 164663 6 54 - 31414 + 29378 @@ -25092,12 +25264,12 @@ 1 2 - 1956592 + 1829785 2 6 - 120970 + 113130 @@ -25113,37 +25285,37 @@ 1 2 - 1049357 + 981348 2 3 - 281902 + 263632 3 4 - 174122 + 162837 4 5 - 127392 + 119135 5 9 - 182084 + 170283 9 24 - 157482 + 147276 24 74138 - 105219 + 98400 @@ -25159,37 +25331,37 @@ 1 2 - 1024603 + 958198 2 3 - 302794 + 283170 3 4 - 185339 + 173327 4 5 - 128346 + 120028 5 8 - 165575 + 154844 8 19 - 157352 + 147154 19 84336 - 113550 + 106191 @@ -25205,52 +25377,52 @@ 1 2 - 282 + 263 2 5 - 108 + 101 5 11 - 108 + 101 14 25 - 108 + 101 30 60 - 108 + 101 68 128 - 108 + 101 172 587 - 108 + 101 902 5705 - 108 + 101 9457 127701 - 108 + 101 304936 701725 - 43 + 40 @@ -25266,52 +25438,52 @@ 1 2 - 282 + 263 2 4 - 108 + 101 4 9 - 108 + 101 11 20 - 108 + 101 24 48 - 108 + 101 52 93 - 108 + 101 129 355 - 108 + 101 503 2199 - 108 + 101 3339 19993 - 108 + 101 28824 33768 - 43 + 40 @@ -25327,52 +25499,52 @@ 1 2 - 282 + 263 2 4 - 86 + 81 4 8 - 108 + 101 9 14 - 108 + 101 18 34 - 108 + 101 41 74 - 108 + 101 82 225 - 108 + 101 306 988 - 108 + 101 1501 8856 - 108 + 101 17752 63582 - 65 + 60 @@ -25388,32 +25560,32 @@ 1 2 - 650 + 608 2 3 - 195 + 182 3 4 - 43 + 40 4 5 - 86 + 81 5 6 - 195 + 182 6 7 - 21 + 20 @@ -25429,52 +25601,52 @@ 1 2 - 282 + 263 2 5 - 108 + 101 5 11 - 108 + 101 14 25 - 108 + 101 30 60 - 108 + 101 68 128 - 108 + 101 172 587 - 108 + 101 902 5705 - 108 + 101 9457 127701 - 108 + 101 304936 701725 - 43 + 40 @@ -25490,52 +25662,52 @@ 1 2 - 282 + 263 2 5 - 108 + 101 5 11 - 108 + 101 14 25 - 108 + 101 30 60 - 108 + 101 68 128 - 108 + 101 172 569 - 108 + 101 875 5326 - 108 + 101 8782 108038 - 108 + 101 237530 555424 - 43 + 40 @@ -25551,32 +25723,32 @@ 774 775 - 21 + 20 4021 4022 - 21 + 20 11617 11618 - 21 + 20 17805 17806 - 21 + 20 22566 22567 - 21 + 20 1209240 1209241 - 21 + 20 @@ -25592,32 +25764,32 @@ 165 166 - 21 + 20 538 539 - 21 + 20 1968 1969 - 21 + 20 2333 2334 - 21 + 20 6498 6499 - 21 + 20 69882 69883 - 21 + 20 @@ -25633,32 +25805,32 @@ 240 241 - 21 + 20 618 619 - 21 + 20 2241 2242 - 21 + 20 3599 3600 - 21 + 20 5662 5663 - 21 + 20 89942 89943 - 21 + 20 @@ -25674,32 +25846,32 @@ 1 2 - 21 + 20 11 12 - 21 + 20 13 14 - 21 + 20 16 17 - 21 + 20 25 26 - 21 + 20 55 56 - 21 + 20 @@ -25715,32 +25887,32 @@ 635 636 - 21 + 20 4021 4022 - 21 + 20 9598 9599 - 21 + 20 16282 16283 - 21 + 20 17805 17806 - 21 + 20 685895 685896 - 21 + 20 @@ -25756,32 +25928,32 @@ 710 711 - 21 + 20 3669 3670 - 21 + 20 10322 10323 - 21 + 20 17803 17804 - 21 + 20 20567 20568 - 21 + 20 966689 966690 - 21 + 20 @@ -25797,27 +25969,27 @@ 1 2 - 8608252 + 8050348 2 3 - 3845106 + 3595903 3 4 - 1492843 + 1396091 4 8 - 1153840 + 1079059 8 56 - 123747 + 115727 @@ -25833,27 +26005,27 @@ 1 2 - 8608230 + 8050327 2 3 - 3845106 + 3595903 3 4 - 1492843 + 1396091 4 8 - 1153861 + 1079079 8 56 - 123747 + 115727 @@ -25869,22 +26041,22 @@ 1 2 - 9102178 + 8512262 2 3 - 3783493 + 3538283 3 4 - 1384347 + 1294627 4 43 - 953770 + 891956 @@ -25900,27 +26072,27 @@ 1 2 - 8608252 + 8050348 2 3 - 3845106 + 3595903 3 4 - 1492843 + 1396091 4 8 - 1153840 + 1079059 8 56 - 123747 + 115727 @@ -25936,12 +26108,12 @@ 1 2 - 14543505 + 13600934 2 5 - 680285 + 636195 @@ -25957,27 +26129,27 @@ 1 2 - 8608252 + 8050348 2 3 - 3845106 + 3595903 3 4 - 1492843 + 1396091 4 8 - 1153840 + 1079059 8 56 - 123747 + 115727 @@ -25993,12 +26165,12 @@ 1 2 - 21382825 + 19996995 2 17584 - 740705 + 692699 @@ -26014,12 +26186,12 @@ 1 2 - 22123465 + 20689634 2 3 - 65 + 60 @@ -26035,12 +26207,12 @@ 1 2 - 21899292 + 20479990 2 9835 - 224237 + 209704 @@ -26056,7 +26228,7 @@ 1 2 - 22123530 + 20689695 @@ -26072,7 +26244,7 @@ 1 2 - 22123530 + 20689695 @@ -26088,12 +26260,12 @@ 1 2 - 21382825 + 19996995 2 17584 - 740705 + 692699 @@ -26103,15 +26275,15 @@ param_location - 27592908 + 25804600 id - 27465884 + 25685809 loc - 9068 + 8480 @@ -26125,12 +26297,12 @@ 1 2 - 27379908 + 25605405 2 70 - 85976 + 80404 @@ -26146,67 +26318,67 @@ 1 2 - 759 + 710 2 25 - 694 + 649 25 62 - 715 + 669 66 134 - 694 + 649 135 214 - 694 + 649 215 384 - 694 + 649 392 552 - 694 + 649 563 857 - 694 + 649 858 1381 - 694 + 649 1388 2043 - 694 + 649 2050 3889 - 694 + 649 4077 10356 - 694 + 649 10618 96288 - 650 + 608 @@ -26570,11 +26742,11 @@ stmt_parent_top_level - 249937 + 247851 stmt - 249937 + 247851 index @@ -26582,7 +26754,7 @@ parent - 171226 + 234079 @@ -26596,7 +26768,7 @@ 1 2 - 249937 + 247851 @@ -26612,7 +26784,7 @@ 1 2 - 249937 + 247851 @@ -26626,8 +26798,8 @@ 12 - 161516 - 161517 + 247851 + 247852 1 @@ -26642,8 +26814,8 @@ 12 - 110651 - 110652 + 234079 + 234080 1 @@ -26660,22 +26832,12 @@ 1 2 - 106303 + 221368 2 - 3 - 51256 - - - 3 - 4 - 13555 - - - 4 - 6 - 111 + 5 + 12711 @@ -26691,7 +26853,7 @@ 1 2 - 171226 + 234079 @@ -26754,15 +26916,15 @@ catch_type - 19789 + 19348 catch_id - 19789 + 19348 type_id - 940 + 919 kind @@ -26780,7 +26942,7 @@ 1 2 - 19789 + 19348 @@ -26796,7 +26958,7 @@ 1 2 - 19789 + 19348 @@ -26812,57 +26974,57 @@ 1 2 - 251 + 246 2 3 - 88 + 86 3 4 - 88 + 86 4 6 - 74 + 72 6 8 - 51 + 50 8 11 - 66 + 65 11 16 - 66 + 65 16 27 - 81 + 79 30 64 - 74 + 72 65 88 - 74 + 72 98 588 - 22 + 21 @@ -26878,7 +27040,7 @@ 1 2 - 940 + 919 @@ -26930,11 +27092,11 @@ foreach_stmt_info - 20833 + 20368 id - 20833 + 20368 kind @@ -26952,7 +27114,7 @@ 1 2 - 20833 + 20368 @@ -26978,19 +27140,19 @@ foreach_stmt_desugar - 104145 + 101821 id - 20833 + 20368 symbol - 12933 + 12645 kind - 37 + 36 @@ -27004,12 +27166,12 @@ 4 5 - 22 + 21 5 6 - 20811 + 20346 @@ -27025,12 +27187,12 @@ 4 5 - 22 + 21 5 6 - 20811 + 20346 @@ -27046,37 +27208,37 @@ 1 2 - 5789 + 5660 2 3 - 2147 + 2099 3 4 - 1280 + 1252 4 5 - 1132 + 1107 5 8 - 1132 + 1107 8 17 - 1036 + 1013 17 2812 - 414 + 405 @@ -27092,7 +27254,7 @@ 1 2 - 12933 + 12645 @@ -27113,7 +27275,7 @@ 2814 2815 - 29 + 28 @@ -27159,11 +27321,11 @@ expressions - 6684202 + 6684385 id - 6684202 + 6684385 kind @@ -27171,7 +27333,7 @@ type_id - 65441 + 65428 @@ -27185,7 +27347,7 @@ 1 2 - 6684202 + 6684385 @@ -27201,7 +27363,7 @@ 1 2 - 6684202 + 6684385 @@ -27261,7 +27423,7 @@ 2916 - 12545 + 12547 102 @@ -27344,12 +27506,12 @@ 1 2 - 13085 + 13082 2 3 - 13275 + 13273 3 @@ -27359,37 +27521,37 @@ 4 5 - 4161 + 4160 5 7 - 4908 + 4907 7 10 - 4864 + 4863 10 15 - 5216 + 5215 15 26 - 5084 + 5083 26 52 - 4952 + 4951 52 235 - 4923 + 4922 236 @@ -27410,32 +27572,32 @@ 1 2 - 23152 + 23147 2 3 - 15766 + 15763 3 4 - 8806 + 8804 4 5 - 5231 + 5230 5 7 - 5949 + 5948 7 11 - 5509 + 5508 11 @@ -27450,11 +27612,11 @@ expr_parent - 6472322 + 6472428 expr - 6472322 + 6472428 index @@ -27462,7 +27624,7 @@ parent - 4333965 + 4334043 @@ -27476,7 +27638,7 @@ 1 2 - 6472322 + 6472428 @@ -27492,7 +27654,7 @@ 1 2 - 6472322 + 6472428 @@ -27537,7 +27699,7 @@ 66 - 3205672 + 3205696 489 @@ -27583,7 +27745,7 @@ 66 - 3205672 + 3205696 489 @@ -27600,17 +27762,17 @@ 1 2 - 2814626 + 2814681 2 3 - 1302935 + 1302956 3 22534 - 216404 + 216406 @@ -27626,17 +27788,17 @@ 1 2 - 2814626 + 2814681 2 3 - 1302935 + 1302956 3 22534 - 216404 + 216406 @@ -27646,19 +27808,19 @@ expr_parent_top_level - 4527920 + 4367428 expr - 4527920 + 4367428 index - 507 + 464 parent - 4069947 + 3948822 @@ -27672,7 +27834,7 @@ 1 2 - 4527920 + 4367428 @@ -27688,7 +27850,7 @@ 1 2 - 4527920 + 4367428 @@ -27704,17 +27866,17 @@ 599 600 - 169 + 154 2028 2029 - 169 + 154 - 24117 - 24118 - 169 + 25595 + 25596 + 154 @@ -27730,17 +27892,17 @@ 599 600 - 169 + 154 2028 2029 - 169 + 154 - 24038 - 24039 - 169 + 25516 + 25517 + 154 @@ -27756,17 +27918,17 @@ 1 2 - 3716436 + 3625699 2 4 - 352495 + 322194 5 6 - 1015 + 928 @@ -27782,12 +27944,12 @@ 1 2 - 3726764 + 3635139 2 4 - 343183 + 313683 @@ -27797,11 +27959,11 @@ implicitly_typed_array_creation - 19611 + 19252 id - 19611 + 19252 @@ -27819,37 +27981,37 @@ stackalloc_array_creation - 1237 + 1219 id - 1237 + 1219 implicitly_typed_object_creation - 5628 + 5534 id - 5628 + 5534 mutator_invocation_mode - 9 + 8 id - 9 + 8 mode - 9 + 8 @@ -27863,7 +28025,7 @@ 1 2 - 9 + 8 @@ -27879,7 +28041,7 @@ 1 2 - 9 + 8 @@ -27889,26 +28051,26 @@ expr_compiler_generated - 6677172 + 6677811 id - 6677172 + 6677811 expr_value - 5479081 + 5437697 id - 5479081 + 5437697 value - 203505 + 191893 @@ -27922,7 +28084,7 @@ 1 2 - 5479081 + 5437697 @@ -27938,32 +28100,32 @@ 1 2 - 105816 + 98577 2 3 - 27935 + 26153 3 4 - 36908 + 34355 4 - 10 - 16084 + 9 + 15320 - 10 - 284 - 15406 + 9 + 169 + 14546 - 362 - 8784 - 1354 + 169 + 9846 + 2940 @@ -27973,15 +28135,15 @@ expr_call - 1125744 + 1125775 caller_id - 1125744 + 1125775 target_id - 895582 + 895606 @@ -27995,7 +28157,7 @@ 1 2 - 1125744 + 1125775 @@ -28011,7 +28173,7 @@ 1 2 - 893787 + 893811 2 @@ -28026,11 +28188,11 @@ expr_access - 2484086 + 2484140 accesser_id - 2484086 + 2484140 target_id @@ -28048,7 +28210,7 @@ 1 2 - 2484086 + 2484140 @@ -28069,32 +28231,32 @@ 2 3 - 131063 + 131061 3 4 - 92421 + 92422 4 5 - 56715 + 56714 5 7 - 55161 + 55160 7 15 - 46728 + 46730 15 15109 - 18280 + 18281 @@ -28104,15 +28266,15 @@ expr_location - 6684202 + 6684385 id - 6684202 + 6684385 loc - 5325100 + 5324079 @@ -28126,7 +28288,7 @@ 1 2 - 6684202 + 6684385 @@ -28142,17 +28304,17 @@ 1 2 - 4609539 + 4608655 2 3 - 691471 + 691338 3 9205 - 24089 + 24085 @@ -28162,15 +28324,15 @@ dynamic_member_name - 6250 + 5970 id - 6250 + 5970 name - 1585 + 1514 @@ -28184,7 +28346,7 @@ 1 2 - 6250 + 5970 @@ -28200,37 +28362,37 @@ 1 2 - 663 + 634 2 3 - 285 + 273 3 4 - 165 + 158 4 5 - 147 + 140 5 7 - 119 + 114 7 18 - 119 + 114 19 35 - 82 + 79 @@ -28251,11 +28413,11 @@ expr_argument - 1381083 + 1355775 id - 1381083 + 1355775 mode @@ -28273,7 +28435,7 @@ 1 2 - 1381083 + 1355775 @@ -28302,8 +28464,8 @@ 1 - 1037143 - 1037144 + 1037144 + 1037145 1 @@ -28314,15 +28476,15 @@ expr_argument_name - 537619 + 502776 id - 537619 + 502776 name - 4338 + 4057 @@ -28336,7 +28498,7 @@ 1 2 - 537619 + 502776 @@ -28352,62 +28514,62 @@ 1 2 - 737 + 689 2 3 - 260 + 243 3 5 - 303 + 284 5 7 - 347 + 324 7 11 - 390 + 365 11 18 - 368 + 344 18 26 - 347 + 324 26 49 - 347 + 324 49 104 - 347 + 324 108 220 - 347 + 324 222 590 - 347 + 324 597 3491 - 195 + 182 @@ -28417,15 +28579,15 @@ xmlEncoding - 476427 + 435473 id - 476427 + 435473 encoding - 169 + 154 @@ -28439,7 +28601,7 @@ 1 2 - 476427 + 435473 @@ -28455,7 +28617,7 @@ 2814 2815 - 169 + 154 @@ -28933,27 +29095,27 @@ xmlElements - 1042732803 + 953100387 id - 1042732803 + 953100387 name - 273937 + 250389 parentid - 385731109 + 352573994 idx - 1630078 + 1489958 fileid - 476088 + 435164 @@ -28967,7 +29129,7 @@ 1 2 - 1042732803 + 953100387 @@ -28983,7 +29145,7 @@ 1 2 - 1042732803 + 953100387 @@ -28999,7 +29161,7 @@ 1 2 - 1042732803 + 953100387 @@ -29015,7 +29177,7 @@ 1 2 - 1042732803 + 953100387 @@ -29031,32 +29193,32 @@ 1 2 - 138492 + 126587 2 3 - 50453 + 46116 3 5 - 24041 + 21974 5 8 - 23364 + 21355 8 31 - 20655 + 18879 32 1318099 - 16930 + 15475 @@ -29072,32 +29234,32 @@ 1 2 - 159486 + 145776 2 3 - 43173 + 39461 3 5 - 20316 + 18570 5 9 - 22348 + 20427 9 112 - 20655 + 18879 116 939748 - 7957 + 7273 @@ -29113,22 +29275,22 @@ 1 2 - 180310 + 164811 2 3 - 50114 + 45806 3 6 - 23872 + 21820 6 9629 - 19639 + 17951 @@ -29144,32 +29306,32 @@ 1 2 - 171337 + 156609 2 3 - 40125 + 36676 3 5 - 17607 + 16094 5 8 - 21671 + 19808 8 606 - 20655 + 18879 703 1935 - 2539 + 2321 @@ -29185,32 +29347,32 @@ 1 2 - 187348633 + 171244305 2 3 - 87399665 + 79886865 3 4 - 39675851 + 36265349 4 5 - 25725373 + 23514042 5 8 - 33529873 + 30647674 8 9629 - 12051711 + 11015756 @@ -29226,27 +29388,27 @@ 1 2 - 244193809 + 223203119 2 3 - 69983493 + 63967772 3 4 - 32247719 + 29475732 4 5 - 25493085 + 23301722 5 110 - 13813001 + 12625647 @@ -29262,32 +29424,32 @@ 1 2 - 187348633 + 171244305 2 3 - 87399665 + 79886865 3 4 - 39675851 + 36265349 4 5 - 25725373 + 23514042 5 8 - 33529873 + 30647674 8 9629 - 12051711 + 11015756 @@ -29303,7 +29465,7 @@ 1 2 - 385731109 + 352573994 @@ -29319,47 +29481,47 @@ 2 3 - 117498 + 107398 3 4 - 626601 + 572739 4 5 - 217896 + 199166 6 8 - 71447 + 65305 8 12 - 139169 + 127206 13 124 - 98197 + 89756 126 140 - 123085 + 112505 141 322 - 123254 + 112659 322 2278308 - 112927 + 103220 @@ -29375,12 +29537,12 @@ 1 2 - 1566419 + 1431771 2 641 - 63659 + 58186 @@ -29396,47 +29558,47 @@ 2 3 - 117498 + 107398 3 4 - 626601 + 572739 4 5 - 217896 + 199166 6 8 - 71447 + 65305 8 12 - 139169 + 127206 13 124 - 98197 + 89756 126 140 - 123085 + 112505 141 322 - 123254 + 112659 322 2278308 - 112927 + 103220 @@ -29452,47 +29614,47 @@ 2 3 - 117498 + 107398 3 4 - 626601 + 572739 4 5 - 217896 + 199166 6 8 - 71447 + 65305 8 12 - 139169 + 127206 13 124 - 98197 + 89756 126 140 - 123085 + 112505 141 322 - 123254 + 112659 322 2813 - 112927 + 103220 @@ -29508,72 +29670,72 @@ 1 7 - 35723 + 32652 7 11 - 38771 + 35438 11 18 - 37247 + 34045 18 43 - 35892 + 32807 43 154 - 36400 + 33271 154 440 - 35892 + 32807 443 908 - 36062 + 32962 912 1196 - 36400 + 33271 1196 2067 - 37755 + 34509 2166 2404 - 36570 + 33426 2493 3963 - 31490 + 28783 3980 4614 - 41141 + 37604 4691 24665 - 35723 + 32652 25012 81509 - 1015 + 928 @@ -29589,52 +29751,52 @@ 1 5 - 25565 + 23367 5 7 - 43342 + 39616 7 9 - 24887 + 22748 9 11 - 43680 + 39926 11 12 - 67383 + 61591 12 13 - 62304 + 56948 13 14 - 94980 + 86816 14 15 - 19470 + 17796 15 16 - 58918 + 53853 16 207 - 35554 + 32498 @@ -29650,67 +29812,67 @@ 1 4 - 29628 + 27081 4 5 - 52823 + 48282 5 7 - 42495 + 38842 7 28 - 36062 + 32962 28 90 - 40802 + 37295 94 275 - 40633 + 37140 275 408 - 32845 + 30022 420 585 - 37247 + 34045 592 811 - 35723 + 32652 813 1209 - 35723 + 32652 1209 1642 - 35723 + 32652 1648 3457 - 35892 + 32807 3640 29092 - 20486 + 18725 @@ -29726,67 +29888,67 @@ 1 3 - 38771 + 35438 3 5 - 32845 + 30022 5 8 - 44019 + 40235 8 16 - 42834 + 39152 16 51 - 36231 + 33117 51 101 - 39278 + 35902 102 173 - 35723 + 32652 173 276 - 33014 + 30176 280 283 - 37247 + 34045 283 441 - 36570 + 33426 441 514 - 40802 + 37295 518 1521 - 36570 + 33426 1526 9629 - 22179 + 20272 @@ -29796,31 +29958,31 @@ xmlAttrs - 782956405 + 715654145 id - 782956405 + 715654145 elementid - 772811588 + 706381368 name - 62135 + 56794 value - 16557621 + 15134342 idx - 2031 + 1857 fileid - 469993 + 429593 @@ -29834,7 +29996,7 @@ 1 2 - 782956405 + 715654145 @@ -29850,7 +30012,7 @@ 1 2 - 782956405 + 715654145 @@ -29866,7 +30028,7 @@ 1 2 - 782956405 + 715654145 @@ -29882,7 +30044,7 @@ 1 2 - 782956405 + 715654145 @@ -29898,7 +30060,7 @@ 1 2 - 782956405 + 715654145 @@ -29914,12 +30076,12 @@ 1 2 - 767712937 + 701720992 2 13 - 5098651 + 4660375 @@ -29935,12 +30097,12 @@ 1 2 - 767712937 + 701720992 2 13 - 5098651 + 4660375 @@ -29956,12 +30118,12 @@ 1 2 - 767716323 + 701724087 2 13 - 5095264 + 4657280 @@ -29977,12 +30139,12 @@ 1 2 - 767712937 + 701720992 2 13 - 5098651 + 4660375 @@ -29998,7 +30160,7 @@ 1 2 - 772811588 + 706381368 @@ -30014,62 +30176,62 @@ 1 2 - 9311 + 8511 2 3 - 7449 + 6809 3 4 - 5587 + 5106 4 6 - 4909 + 4487 6 8 - 4232 + 3868 8 12 - 4740 + 4333 12 18 - 4909 + 4487 18 25 - 5079 + 4642 26 49 - 4740 + 4333 50 151 - 4740 + 4333 152 1240 - 4740 + 4333 1931 2721615 - 1693 + 1547 @@ -30085,62 +30247,62 @@ 1 2 - 9311 + 8511 2 3 - 7449 + 6809 3 4 - 5587 + 5106 4 6 - 4909 + 4487 6 8 - 4232 + 3868 8 12 - 4740 + 4333 12 18 - 4909 + 4487 18 25 - 5079 + 4642 26 49 - 4740 + 4333 50 151 - 4740 + 4333 152 1240 - 4740 + 4333 1931 2721615 - 1693 + 1547 @@ -30156,42 +30318,42 @@ 1 2 - 28612 + 26153 2 3 - 7618 + 6963 3 4 - 6095 + 5571 4 6 - 4571 + 4178 6 10 - 4909 + 4487 10 21 - 4740 + 4333 23 572 - 4740 + 4333 939 90061 - 846 + 773 @@ -30207,22 +30369,22 @@ 1 2 - 40802 + 37295 2 3 - 13883 + 12689 3 4 - 5417 + 4952 4 7 - 2031 + 1857 @@ -30238,52 +30400,52 @@ 1 2 - 20147 + 18415 2 3 - 10496 + 9594 3 4 - 6772 + 6190 4 5 - 2031 + 1857 5 6 - 4571 + 4178 6 7 - 3216 + 2940 7 13 - 5079 + 4642 14 27 - 4740 + 4333 28 626 - 4740 + 4333 1892 1995 - 338 + 309 @@ -30299,42 +30461,42 @@ 1 2 - 4011875 + 3667018 2 3 - 1419292 + 1297291 3 4 - 5374619 + 4912622 4 6 - 795907 + 727492 6 8 - 1488538 + 1360585 8 27 - 1245584 + 1138515 27 90 - 1243044 + 1136193 90 214809 - 978758 + 894624 @@ -30350,42 +30512,42 @@ 1 2 - 4012891 + 3667946 2 3 - 1419123 + 1297136 3 4 - 5374958 + 4912931 4 6 - 797092 + 728575 6 8 - 1488030 + 1360120 8 27 - 1244060 + 1137122 27 90 - 1242875 + 1136039 90 214809 - 978588 + 894470 @@ -30401,17 +30563,17 @@ 1 2 - 14765517 + 13496286 2 3 - 1766200 + 1614379 3 58 - 25903 + 23677 @@ -30427,12 +30589,12 @@ 1 2 - 16464672 + 15049383 2 11 - 92949 + 84959 @@ -30448,37 +30610,37 @@ 1 2 - 4652021 + 4252137 2 3 - 1284016 + 1173643 3 4 - 6041177 + 5521883 4 6 - 779992 + 712945 6 8 - 1312291 + 1199487 8 44 - 1256927 + 1148883 44 1527 - 1231193 + 1125361 @@ -30494,62 +30656,62 @@ 7 8 - 169 + 154 40 41 - 169 + 154 49 50 - 169 + 154 59 60 - 169 + 154 115 116 - 169 + 154 290 291 - 169 + 154 1094 1095 - 169 + 154 1293 1294 - 169 + 154 1835 1836 - 169 + 154 25023 25024 - 169 + 154 30115 30116 - 169 + 154 4564584 4564585 - 169 + 154 @@ -30565,62 +30727,62 @@ 7 8 - 169 + 154 40 41 - 169 + 154 49 50 - 169 + 154 59 60 - 169 + 154 115 116 - 169 + 154 290 291 - 169 + 154 1094 1095 - 169 + 154 1293 1294 - 169 + 154 1835 1836 - 169 + 154 25023 25024 - 169 + 154 30115 30116 - 169 + 154 4564584 4564585 - 169 + 154 @@ -30636,62 +30798,62 @@ 1 2 - 169 + 154 4 5 - 169 + 154 5 6 - 169 + 154 6 7 - 169 + 154 11 12 - 169 + 154 20 21 - 169 + 154 28 29 - 169 + 154 42 43 - 169 + 154 65 66 - 169 + 154 101 102 - 169 + 154 122 123 - 169 + 154 147 148 - 169 + 154 @@ -30707,62 +30869,62 @@ 4 5 - 169 + 154 9 10 - 169 + 154 12 13 - 169 + 154 17 18 - 169 + 154 19 20 - 169 + 154 32 33 - 169 + 154 51 52 - 169 + 154 101 102 - 169 + 154 163 164 - 169 + 154 582 583 - 169 + 154 1859 1860 - 169 + 154 95586 95587 - 169 + 154 @@ -30778,57 +30940,57 @@ 1 2 - 169 + 154 2 3 - 338 + 309 4 5 - 169 + 154 11 12 - 169 + 154 21 22 - 169 + 154 30 31 - 169 + 154 54 55 - 169 + 154 291 292 - 169 + 154 790 791 - 169 + 154 999 1000 - 169 + 154 2776 2777 - 169 + 154 @@ -30844,67 +31006,67 @@ 1 4 - 42326 + 38688 4 7 - 33691 + 30795 7 14 - 35554 + 32498 14 52 - 37416 + 34200 52 118 - 37078 + 33890 119 426 - 35892 + 32807 429 711 - 42157 + 38533 711 1058 - 35384 + 32343 1065 1732 - 41818 + 38223 1760 2645 - 39448 + 36057 2683 3223 - 42495 + 38842 3367 14933 - 28782 + 26307 14940 63855 - 17946 + 16403 @@ -30920,67 +31082,67 @@ 1 3 - 36908 + 33736 3 6 - 39956 + 36521 6 12 - 38601 + 35283 12 44 - 35384 + 32343 44 118 - 36570 + 33426 122 426 - 37755 + 34509 429 700 - 33522 + 30641 701 856 - 37078 + 33890 859 1729 - 32506 + 29712 1731 1901 - 37755 + 34509 1916 2997 - 43173 + 39461 3025 5540 - 37755 + 34509 5591 63855 - 23025 + 21046 @@ -30996,42 +31158,42 @@ 1 2 - 22179 + 20272 2 3 - 196225 + 179358 3 4 - 92102 + 84185 4 5 - 24887 + 22748 5 6 - 45881 + 41937 6 8 - 36570 + 33426 8 10 - 36062 + 32962 10 71 - 16084 + 14701 @@ -31047,67 +31209,67 @@ 1 4 - 43003 + 39307 4 7 - 35384 + 32343 7 14 - 37078 + 33890 14 31 - 35723 + 32652 31 67 - 35892 + 32807 67 131 - 37078 + 33890 131 209 - 35384 + 32343 210 339 - 34369 + 31414 339 366 - 38601 + 35283 368 522 - 35723 + 32652 527 622 - 41649 + 38069 625 1542 - 35554 + 32498 1581 10804 - 24549 + 22439 @@ -31123,27 +31285,27 @@ 1 2 - 300856 + 274995 2 3 - 35384 + 32343 3 4 - 84483 + 77221 4 5 - 40125 + 36676 5 13 - 9142 + 8356 @@ -31153,23 +31315,23 @@ xmlNs - 27088 + 24760 id - 3047 + 2785 prefixName - 1862 + 1702 URI - 3047 + 2785 fileid - 19470 + 17796 @@ -31183,12 +31345,12 @@ 1 2 - 2878 + 2630 2 3 - 169 + 154 @@ -31204,7 +31366,7 @@ 1 2 - 3047 + 2785 @@ -31220,52 +31382,52 @@ 1 2 - 507 + 464 2 3 - 1185 + 1083 3 4 - 169 + 154 6 7 - 169 + 154 8 9 - 169 + 154 9 10 - 169 + 154 15 16 - 169 + 154 18 19 - 169 + 154 32 33 - 169 + 154 49 50 - 169 + 154 @@ -31281,12 +31443,12 @@ 1 2 - 1693 + 1547 9 10 - 169 + 154 @@ -31302,12 +31464,12 @@ 1 2 - 1693 + 1547 9 10 - 169 + 154 @@ -31323,37 +31485,37 @@ 1 2 - 338 + 309 2 3 - 677 + 619 3 4 - 169 + 154 6 7 - 169 + 154 8 9 - 169 + 154 9 10 - 169 + 154 101 102 - 169 + 154 @@ -31369,7 +31531,7 @@ 1 2 - 3047 + 2785 @@ -31385,12 +31547,12 @@ 1 2 - 2878 + 2630 2 3 - 169 + 154 @@ -31406,52 +31568,52 @@ 1 2 - 507 + 464 2 3 - 1185 + 1083 3 4 - 169 + 154 6 7 - 169 + 154 8 9 - 169 + 154 9 10 - 169 + 154 15 16 - 169 + 154 18 19 - 169 + 154 32 33 - 169 + 154 49 50 - 169 + 154 @@ -31467,17 +31629,17 @@ 1 2 - 15068 + 13772 2 3 - 3894 + 3559 6 9 - 507 + 464 @@ -31493,17 +31655,17 @@ 1 2 - 17607 + 16094 2 6 - 1523 + 1392 6 7 - 338 + 309 @@ -31519,17 +31681,17 @@ 1 2 - 15068 + 13772 2 3 - 3894 + 3559 6 9 - 507 + 464 @@ -31539,19 +31701,19 @@ xmlHasNs - 513335 + 469209 elementId - 513335 + 469209 nsId - 2878 + 2630 fileid - 17607 + 16094 @@ -31565,7 +31727,7 @@ 1 2 - 513335 + 469209 @@ -31581,7 +31743,7 @@ 1 2 - 513335 + 469209 @@ -31597,77 +31759,77 @@ 2 3 - 338 + 309 3 4 - 169 + 154 4 5 - 338 + 309 6 7 - 169 + 154 8 9 - 169 + 154 12 13 - 169 + 154 14 15 - 169 + 154 15 16 - 169 + 154 16 17 - 169 + 154 24 25 - 169 + 154 48 49 - 169 + 154 136 137 - 169 + 154 420 421 - 169 + 154 719 720 - 169 + 154 1599 1600 - 169 + 154 @@ -31683,37 +31845,37 @@ 1 2 - 677 + 619 2 3 - 1185 + 1083 3 4 - 338 + 309 15 16 - 169 + 154 18 19 - 169 + 154 32 33 - 169 + 154 49 50 - 169 + 154 @@ -31729,62 +31891,62 @@ 1 2 - 677 + 619 2 3 - 1015 + 928 3 4 - 1185 + 1083 4 5 - 1862 + 1702 5 8 - 1354 + 1238 8 12 - 1354 + 1238 14 21 - 1354 + 1238 21 23 - 338 + 309 25 26 - 2878 + 2630 26 27 - 3047 + 2785 27 67 - 1354 + 1238 70 497 - 1185 + 1083 @@ -31800,17 +31962,17 @@ 1 2 - 14560 + 13308 2 3 - 2539 + 2321 6 9 - 507 + 464 @@ -31820,23 +31982,23 @@ xmlComments - 201474 + 184155 id - 201474 + 184155 text - 150513 + 137575 parentid - 105816 + 96720 fileid - 52484 + 47973 @@ -31850,7 +32012,7 @@ 1 2 - 201474 + 184155 @@ -31866,7 +32028,7 @@ 1 2 - 201474 + 184155 @@ -31882,7 +32044,7 @@ 1 2 - 201474 + 184155 @@ -31898,17 +32060,17 @@ 1 2 - 132058 + 120707 2 3 - 11512 + 10523 3 24 - 6941 + 6344 @@ -31924,17 +32086,17 @@ 1 2 - 132397 + 121016 2 3 - 11512 + 10523 3 24 - 6602 + 6035 @@ -31950,17 +32112,17 @@ 1 2 - 133243 + 121790 2 3 - 10835 + 9904 3 24 - 6433 + 5880 @@ -31976,27 +32138,27 @@ 1 2 - 74325 + 67936 2 3 - 14729 + 13463 3 4 - 5756 + 5261 4 7 - 8803 + 8047 7 107 - 2200 + 2011 @@ -32012,27 +32174,27 @@ 1 2 - 74663 + 68245 2 3 - 14560 + 13308 3 4 - 5587 + 5106 4 7 - 8803 + 8047 7 107 - 2200 + 2011 @@ -32048,7 +32210,7 @@ 1 2 - 105816 + 96720 @@ -32064,37 +32226,37 @@ 1 2 - 23533 + 21510 2 3 - 8126 + 7428 3 4 - 7280 + 6654 4 6 - 4232 + 3868 6 7 - 3894 + 3559 7 21 - 4232 + 3868 21 108 - 1185 + 1083 @@ -32110,37 +32272,37 @@ 1 2 - 23533 + 21510 2 3 - 8295 + 7582 3 4 - 7449 + 6809 4 6 - 3894 + 3559 6 7 - 3894 + 3559 7 17 - 4063 + 3714 19 108 - 1354 + 1238 @@ -32156,27 +32318,27 @@ 1 2 - 27935 + 25534 2 3 - 11174 + 10213 3 4 - 7788 + 7118 4 7 - 4063 + 3714 7 16 - 1523 + 1392 @@ -32186,31 +32348,31 @@ xmlChars - 808542609 + 739040981 id - 808542609 + 739040981 text - 49726704 + 45452239 parentid - 487105125 + 445233987 idx - 6264 + 5725 isCDATA - 338 + 309 fileid - 448830 + 410249 @@ -32224,7 +32386,7 @@ 1 2 - 808542609 + 739040981 @@ -32240,7 +32402,7 @@ 1 2 - 808542609 + 739040981 @@ -32256,7 +32418,7 @@ 1 2 - 808542609 + 739040981 @@ -32272,7 +32434,7 @@ 1 2 - 808542609 + 739040981 @@ -32288,7 +32450,7 @@ 1 2 - 808542609 + 739040981 @@ -32304,57 +32466,57 @@ 1 2 - 6839117 + 6251232 2 3 - 2738525 + 2503123 3 4 - 10689136 + 9770307 4 6 - 3529014 + 3225663 6 7 - 4911398 + 4489218 7 9 - 3937211 + 3598772 9 10 - 893258 + 816474 10 11 - 7086473 + 6477325 11 20 - 3458922 + 3161596 20 49 - 3805830 + 3478684 49 250680 - 1837816 + 1679839 @@ -32370,57 +32532,57 @@ 1 2 - 6839963 + 6252006 2 3 - 2739540 + 2504052 3 4 - 10692860 + 9773711 4 6 - 3530369 + 3226901 6 7 - 4916308 + 4493706 7 9 - 3942121 + 3603260 9 10 - 893935 + 817093 10 11 - 7101541 + 6491098 11 20 - 3452827 + 3156025 20 49 - 3788730 + 3463054 49 249267 - 1828505 + 1671328 @@ -32436,12 +32598,12 @@ 1 2 - 48571867 + 44396671 2 32 - 1154836 + 1055567 @@ -32457,7 +32619,7 @@ 1 2 - 49726704 + 45452239 @@ -32473,47 +32635,47 @@ 1 2 - 8926152 + 8158868 2 3 - 2072305 + 1894172 3 4 - 13690085 + 12513297 4 5 - 3843754 + 3513348 5 7 - 4406528 + 4027746 7 9 - 4286490 + 3918027 9 10 - 688059 + 628914 10 11 - 9242416 + 8447945 11 1537 - 2570912 + 2349918 @@ -32529,22 +32691,22 @@ 1 2 - 285652284 + 261097859 2 3 - 137381514 + 125572317 3 4 - 41081769 + 37550415 4 38 - 22989557 + 21013395 @@ -32560,22 +32722,22 @@ 1 2 - 285652284 + 261097859 2 3 - 137537614 + 125714999 3 4 - 41794886 + 38202233 4 28 - 22120340 + 20218895 @@ -32591,22 +32753,22 @@ 1 2 - 285652284 + 261097859 2 3 - 137381514 + 125572317 3 4 - 41081769 + 37550415 4 38 - 22989557 + 21013395 @@ -32622,12 +32784,12 @@ 1 2 - 487104109 + 445233059 2 3 - 1015 + 928 @@ -32643,7 +32805,7 @@ 1 2 - 487105125 + 445233987 @@ -32659,62 +32821,62 @@ 4 93 - 507 + 464 112 113 - 846 + 773 192 405 - 507 + 464 407 408 - 507 + 464 410 603 - 507 + 464 606 706 - 507 + 464 829 1318 - 507 + 464 1676 3066 - 507 + 464 4678 9764 - 507 + 464 15737 41748 - 507 + 464 72968 378436 - 507 + 464 1189874 2877070 - 338 + 309 @@ -32730,67 +32892,67 @@ 1 5 - 507 + 464 10 12 - 507 + 464 12 15 - 507 + 464 16 25 - 338 + 309 27 28 - 507 + 464 31 42 - 338 + 309 43 48 - 507 + 464 57 101 - 507 + 464 116 190 - 507 + 464 212 326 - 507 + 464 514 1287 - 507 + 464 1884 5896 - 507 + 464 14913 215009 - 507 + 464 @@ -32806,62 +32968,62 @@ 4 93 - 507 + 464 112 113 - 846 + 773 192 405 - 507 + 464 407 408 - 507 + 464 410 603 - 507 + 464 606 706 - 507 + 464 829 1318 - 507 + 464 1676 3066 - 507 + 464 4678 9764 - 507 + 464 15737 41748 - 507 + 464 72968 378436 - 507 + 464 1189874 2877070 - 338 + 309 @@ -32877,12 +33039,12 @@ 1 2 - 5756 + 5261 2 3 - 507 + 464 @@ -32898,52 +33060,52 @@ 4 85 - 507 + 464 104 105 - 846 + 773 184 185 - 169 + 154 187 188 - 1693 + 1547 195 208 - 507 + 464 237 306 - 507 + 464 314 464 - 507 + 464 577 902 - 507 + 464 1138 1614 - 507 + 464 1802 2652 - 507 + 464 @@ -32959,12 +33121,12 @@ 10 11 - 169 + 154 4775618 4775619 - 169 + 154 @@ -32980,12 +33142,12 @@ 6 7 - 169 + 154 293703 293704 - 169 + 154 @@ -33001,12 +33163,12 @@ 10 11 - 169 + 154 2877065 2877066 - 169 + 154 @@ -33022,12 +33184,12 @@ 3 4 - 169 + 154 37 38 - 169 + 154 @@ -33043,12 +33205,12 @@ 6 7 - 169 + 154 2651 2652 - 169 + 154 @@ -33064,72 +33226,72 @@ 1 2 - 25395 + 23212 2 4 - 36062 + 32962 4 8 - 39617 + 36212 8 38 - 33691 + 30795 38 131 - 34538 + 31569 131 418 - 33691 + 30795 418 703 - 34030 + 31105 712 997 - 34538 + 31569 997 1714 - 34199 + 31260 1728 1931 - 33691 + 30795 1934 2772 - 33861 + 30950 2780 3897 - 34369 + 31414 3910 16366 - 34877 + 31879 16370 65499 - 6264 + 5725 @@ -33145,72 +33307,72 @@ 1 2 - 26073 + 23831 2 4 - 39956 + 36521 4 7 - 39448 + 36057 7 37 - 35384 + 32343 37 90 - 35723 + 32652 90 221 - 34030 + 31105 221 363 - 33691 + 30795 367 493 - 33861 + 30950 494 651 - 34030 + 31105 652 779 - 34199 + 31260 783 1025 - 33861 + 30950 1027 1649 - 34199 + 31260 1649 6117 - 33691 + 30795 10014 18709 - 677 + 619 @@ -33226,67 +33388,67 @@ 1 2 - 25395 + 23212 2 4 - 36062 + 32962 4 8 - 39786 + 36366 8 34 - 34030 + 31105 34 102 - 36570 + 33426 103 304 - 35723 + 32652 317 471 - 34707 + 31724 478 643 - 35892 + 32807 645 976 - 37416 + 34200 1012 1449 - 33691 + 30795 1453 1973 - 39278 + 35902 1995 2720 - 33861 + 30950 2837 36365 - 26411 + 24141 @@ -33302,57 +33464,57 @@ 1 2 - 128503 + 117457 2 3 - 15237 + 13927 3 4 - 31998 + 29248 4 5 - 34877 + 31879 5 6 - 45543 + 41628 6 7 - 40125 + 36676 7 8 - 30475 + 27855 8 9 - 24380 + 22284 9 11 - 34707 + 31724 11 29 - 31829 + 29093 29 38 - 31152 + 28474 @@ -33368,12 +33530,12 @@ 1 2 - 447814 + 409320 2 3 - 1015 + 928 @@ -33383,15 +33545,15 @@ xmllocations - 46972668 + 45859062 xmlElement - 46969994 + 45856452 location - 39595172 + 38656468 @@ -33405,12 +33567,12 @@ 1 2 - 46969909 + 45856369 29 37 - 84 + 82 @@ -33426,17 +33588,17 @@ 1 2 - 32374448 + 31606930 2 3 - 7172682 + 7002635 3 13 - 48041 + 46902 @@ -33446,11 +33608,11 @@ commentline - 1227125 + 1225823 id - 1227125 + 1225823 kind @@ -33458,11 +33620,11 @@ text - 47658 + 47606 rawtext - 47747 + 47695 @@ -33476,7 +33638,7 @@ 1 2 - 1227125 + 1225823 @@ -33492,7 +33654,7 @@ 1 2 - 1227125 + 1225823 @@ -33508,7 +33670,7 @@ 1 2 - 1227125 + 1225823 @@ -33527,8 +33689,8 @@ 2 - 6153 - 6154 + 6150 + 6151 2 @@ -33553,8 +33715,8 @@ 2 - 661 - 662 + 660 + 661 2 @@ -33579,8 +33741,8 @@ 2 - 664 - 665 + 663 + 664 2 @@ -33602,27 +33764,27 @@ 1 2 - 19920 + 19899 2 3 - 14574 + 14559 3 5 - 4091 + 4084 5 6 - 6975 + 6967 6 170013 - 2097 + 2095 @@ -33638,7 +33800,7 @@ 1 2 - 47651 + 47599 2 @@ -33659,7 +33821,7 @@ 1 2 - 47595 + 47542 2 @@ -33680,27 +33842,27 @@ 1 2 - 19990 + 19969 2 3 - 14607 + 14592 3 5 - 4067 + 4061 5 6 - 6979 + 6972 6 170013 - 2101 + 2099 @@ -33716,7 +33878,7 @@ 1 2 - 47747 + 47695 @@ -33732,7 +33894,7 @@ 1 2 - 47747 + 47695 @@ -33742,15 +33904,15 @@ commentline_location - 1227125 + 1225823 id - 1227125 + 1225823 loc - 1227125 + 1225823 @@ -33764,7 +33926,7 @@ 1 2 - 1227125 + 1225823 @@ -33780,7 +33942,7 @@ 1 2 - 1227125 + 1225823 @@ -33790,26 +33952,26 @@ commentblock - 412295 + 411861 id - 412295 + 411861 commentblock_location - 412295 + 411861 id - 412295 + 411861 loc - 412295 + 411861 @@ -33823,7 +33985,7 @@ 1 2 - 412295 + 411861 @@ -33839,7 +34001,7 @@ 1 2 - 412295 + 411861 @@ -33849,15 +34011,15 @@ commentblock_binding - 1601076 + 1599388 id - 412295 + 411861 entity - 415903 + 415464 bindtype @@ -33875,12 +34037,12 @@ 1 3 - 23919 + 23894 3 4 - 388376 + 387966 @@ -33896,12 +34058,12 @@ 1 4 - 23919 + 23894 4 5 - 388376 + 387966 @@ -33917,17 +34079,17 @@ 1 2 - 29380 + 29349 2 3 - 379364 + 378964 3 6405 - 7158 + 7150 @@ -33943,22 +34105,22 @@ 1 2 - 20286 + 20265 2 3 - 46749 + 46700 3 4 - 345374 + 345010 4 5 - 3492 + 3488 @@ -34030,15 +34192,15 @@ commentblock_child - 1631670 + 1629942 id - 412295 + 411861 commentline - 1227125 + 1225823 index @@ -34056,17 +34218,17 @@ 1 3 - 11817 + 11805 3 4 - 397465 + 397045 4 40 - 3013 + 3009 @@ -34082,17 +34244,17 @@ 1 4 - 15521 + 15505 4 5 - 393789 + 393374 5 41 - 2984 + 2981 @@ -34108,7 +34270,7 @@ 1 2 - 1227125 + 1225823 @@ -34124,12 +34286,12 @@ 1 2 - 822579 + 821704 2 3 - 404545 + 404119 @@ -34179,7 +34341,7 @@ 110 - 180 + 177 7 @@ -34245,7 +34407,7 @@ 110 - 180 + 177 7 @@ -35906,23 +36068,23 @@ cil_instruction - 370457925 + 346448398 id - 370457925 + 346448398 opcode - 4469 + 4179 index - 1246867 + 1166057 impl - 17616232 + 16474516 @@ -35936,7 +36098,7 @@ 1 2 - 370457925 + 346448398 @@ -35952,7 +36114,7 @@ 1 2 - 370457925 + 346448398 @@ -35968,7 +36130,7 @@ 1 2 - 370457925 + 346448398 @@ -35984,67 +36146,67 @@ 1 16 - 368 + 344 17 69 - 347 + 324 70 213 - 347 + 324 224 594 - 347 + 324 636 1221 - 347 + 324 1221 2818 - 347 + 324 2880 5863 - 347 + 324 6467 11024 - 347 + 324 11313 24194 - 347 + 324 25681 54307 - 347 + 324 61088 131396 - 347 + 324 142955 338976 - 347 + 324 356037 1814450 - 282 + 263 @@ -36060,67 +36222,67 @@ 1 9 - 347 + 324 9 36 - 347 + 324 41 78 - 347 + 324 86 183 - 347 + 324 185 277 - 347 + 324 282 422 - 347 + 324 422 588 - 347 + 324 588 731 - 347 + 324 740 1050 - 347 + 324 1089 1464 - 347 + 324 1470 3025 - 347 + 324 3171 5912 - 347 + 324 6769 25364 - 303 + 284 @@ -36136,67 +36298,67 @@ 1 12 - 368 + 344 12 33 - 347 + 324 35 81 - 347 + 324 92 317 - 347 + 324 330 719 - 347 + 324 778 1306 - 347 + 324 1376 2365 - 347 + 324 2467 5519 - 347 + 324 6012 11497 - 347 + 324 14453 27062 - 347 + 324 27870 52923 - 347 + 324 58946 131744 - 347 + 324 142502 803354 - 282 + 263 @@ -36212,52 +36374,52 @@ 1 2 - 258602 + 241842 2 3 - 4252 + 3976 3 4 - 343038 + 320806 4 5 - 85369 + 79836 5 6 - 150670 + 140905 6 15 - 61179 + 57214 15 16 - 106651 + 99739 16 20 - 106283 + 99394 20 126 - 93591 + 87525 126 812002 - 37228 + 34815 @@ -36273,42 +36435,42 @@ 1 2 - 523930 + 489974 2 3 - 180783 + 169066 3 4 - 112097 + 104832 4 7 - 74847 + 69996 7 9 - 112032 + 104771 9 11 - 95544 + 89351 11 29 - 95110 + 88946 29 177 - 52523 + 49119 @@ -36324,52 +36486,52 @@ 1 2 - 258602 + 241842 2 3 - 4252 + 3976 3 4 - 343038 + 320806 4 5 - 85369 + 79836 5 6 - 150670 + 140905 6 15 - 61179 + 57214 15 16 - 106651 + 99739 16 20 - 106283 + 99394 20 126 - 93591 + 87525 126 812002 - 37228 + 34815 @@ -36385,57 +36547,57 @@ 1 3 - 1299000 + 1214811 3 4 - 3887975 + 3635994 4 5 - 1827117 + 1708701 5 6 - 1190309 + 1113164 6 8 - 1392721 + 1302459 8 11 - 1390270 + 1300166 11 16 - 1446286 + 1352552 16 23 - 1331976 + 1245650 23 35 - 1364214 + 1275799 35 67 - 1341326 + 1254394 67 57474 - 1145031 + 1070821 @@ -36451,52 +36613,52 @@ 1 3 - 1301668 + 1217307 3 4 - 4029621 + 3768459 4 5 - 2083919 + 1948859 5 6 - 1825208 + 1706916 6 7 - 1176164 + 1099936 7 9 - 1560900 + 1459737 9 12 - 1593160 + 1489907 12 16 - 1494535 + 1397674 16 24 - 1379835 + 1290407 24 77 - 1171217 + 1095310 @@ -36512,57 +36674,57 @@ 1 3 - 1299000 + 1214811 3 4 - 3887975 + 3635994 4 5 - 1827117 + 1708701 5 6 - 1190309 + 1113164 6 8 - 1392721 + 1302459 8 11 - 1390270 + 1300166 11 16 - 1446286 + 1352552 16 23 - 1331976 + 1245650 23 35 - 1364214 + 1275799 35 67 - 1341326 + 1254394 67 57474 - 1145031 + 1070821 @@ -36572,15 +36734,15 @@ cil_jump - 28397526 + 26557071 instruction - 28397526 + 26557071 target - 21559074 + 20161821 @@ -36594,7 +36756,7 @@ 1 2 - 28397526 + 26557071 @@ -36610,17 +36772,17 @@ 1 2 - 17986194 + 16820501 2 3 - 2350917 + 2198554 3 473 - 1221961 + 1142766 @@ -36630,15 +36792,15 @@ cil_access - 150867069 + 141089313 instruction - 150867069 + 141089313 target - 35942557 + 33613106 @@ -36652,7 +36814,7 @@ 1 2 - 150867069 + 141089313 @@ -36668,32 +36830,32 @@ 1 2 - 14815601 + 13855396 2 3 - 9023556 + 8438736 3 4 - 4374395 + 4090889 4 5 - 2253833 + 2107761 5 8 - 3030508 + 2834100 8 72956 - 2444661 + 2286221 @@ -36703,15 +36865,15 @@ cil_value - 14528513 + 13586915 instruction - 14528513 + 13586915 value - 3617224 + 3382790 @@ -36725,7 +36887,7 @@ 1 2 - 14528513 + 13586915 @@ -36741,22 +36903,22 @@ 1 2 - 2708882 + 2533319 2 3 - 497180 + 464958 3 7 - 273506 + 255780 7 182148 - 137653 + 128732 @@ -36766,19 +36928,19 @@ cil_switch - 2990395 + 2796586 instruction - 200330 + 187346 index - 103961 + 97223 target - 1319002 + 1233517 @@ -36792,52 +36954,52 @@ 2 3 - 5011 + 4686 3 4 - 55126 + 51553 4 5 - 33778 + 31589 5 6 - 23842 + 22297 6 7 - 13103 + 12254 7 8 - 11324 + 10590 8 11 - 17247 + 16129 11 16 - 15815 + 14790 16 32 - 15164 + 14181 32 4793 - 9914 + 9271 @@ -36853,42 +37015,42 @@ 1 2 - 4122 + 3854 2 3 - 24493 + 22906 3 4 - 71202 + 66587 4 5 - 40048 + 37453 5 6 - 18310 + 17123 6 8 - 17529 + 16393 8 15 - 15576 + 14567 15 2160 - 9046 + 8460 @@ -36904,32 +37066,32 @@ 1 6 - 2907 + 2718 6 7 - 51785 + 48429 7 8 - 32780 + 30656 8 15 - 8157 + 7628 15 655 - 7810 + 7303 688 9235 - 520 + 486 @@ -36945,32 +37107,32 @@ 1 6 - 2907 + 2718 6 7 - 51785 + 48429 7 8 - 32780 + 30656 8 15 - 8157 + 7628 15 645 - 7810 + 7303 675 8900 - 520 + 486 @@ -36986,12 +37148,12 @@ 1 2 - 1301581 + 1217225 2 18 - 17420 + 16291 @@ -37007,17 +37169,17 @@ 1 2 - 1172671 + 1096669 2 6 - 103896 + 97163 6 2934 - 42435 + 39684 @@ -37069,15 +37231,15 @@ cil_type_location - 3557541 + 3326975 id - 3557541 + 3326975 loc - 10717 + 10022 @@ -37091,7 +37253,7 @@ 1 2 - 3557541 + 3326975 @@ -37107,57 +37269,57 @@ 1 2 - 2429 + 2272 2 10 - 824 + 770 10 21 - 846 + 791 21 41 - 911 + 852 41 71 - 846 + 791 71 105 - 824 + 770 105 159 - 824 + 770 160 303 - 824 + 770 303 484 - 824 + 770 486 1178 - 824 + 770 1182 9017 - 737 + 689 @@ -37167,15 +37329,15 @@ cil_method_location - 21566732 + 20168983 id - 21566732 + 20168983 loc - 8287 + 7750 @@ -37189,7 +37351,7 @@ 1 2 - 21566732 + 20168983 @@ -37205,72 +37367,72 @@ 2 26 - 629 + 588 30 52 - 629 + 588 54 120 - 629 + 588 120 194 - 629 + 588 197 288 - 629 + 588 288 444 - 629 + 588 453 638 - 629 + 588 639 875 - 629 + 588 887 1378 - 629 + 588 1394 1994 - 629 + 588 2017 3547 - 629 + 588 3606 7233 - 629 + 588 7362 30109 - 629 + 588 30700 50470 - 108 + 101 @@ -37280,27 +37442,27 @@ cil_type - 9109554 + 8519161 id - 9109554 + 8519161 name - 2569536 + 2403004 kind - 108 + 101 parent - 1843605 + 1724121 sourceDecl - 5094751 + 4764558 @@ -37314,7 +37476,7 @@ 1 2 - 9109554 + 8519161 @@ -37330,7 +37492,7 @@ 1 2 - 9109554 + 8519161 @@ -37346,7 +37508,7 @@ 1 2 - 9109554 + 8519161 @@ -37362,7 +37524,7 @@ 1 2 - 9109554 + 8519161 @@ -37378,17 +37540,17 @@ 1 2 - 2257716 + 2111393 2 4 - 215147 + 201203 4 45085 - 96672 + 90406 @@ -37404,7 +37566,7 @@ 1 2 - 2569536 + 2403004 @@ -37420,17 +37582,17 @@ 1 2 - 2374652 + 2220749 2 48 - 192780 + 180286 48 45085 - 2104 + 1968 @@ -37446,17 +37608,17 @@ 1 2 - 2346600 + 2194516 2 5 - 199787 + 186839 5 45085 - 23148 + 21648 @@ -37472,27 +37634,27 @@ 92 93 - 21 + 20 493 494 - 21 + 20 6156 6157 - 21 + 20 60060 60061 - 21 + 20 353094 353095 - 21 + 20 @@ -37508,27 +37670,27 @@ 42 43 - 21 + 20 92 93 - 21 + 20 470 471 - 21 + 20 3045 3046 - 21 + 20 114791 114792 - 21 + 20 @@ -37544,22 +37706,22 @@ 1 2 - 43 + 40 80 81 - 21 + 20 41127 41128 - 21 + 20 45084 45085 - 21 + 20 @@ -37575,27 +37737,27 @@ 92 93 - 21 + 20 493 494 - 21 + 20 5383 5384 - 21 + 20 60060 60061 - 21 + 20 168809 168810 - 21 + 20 @@ -37611,27 +37773,27 @@ 1 2 - 1199269 + 1121543 2 3 - 338526 + 316586 3 5 - 144574 + 135204 5 28 - 138868 + 129868 28 56074 - 22367 + 20917 @@ -37647,27 +37809,27 @@ 1 2 - 1205690 + 1127549 2 3 - 343928 + 321638 3 5 - 144596 + 135224 5 38 - 138608 + 129625 38 3428 - 10782 + 10083 @@ -37683,12 +37845,12 @@ 1 2 - 1815142 + 1697502 2 4 - 28463 + 26618 @@ -37704,27 +37866,27 @@ 1 2 - 1205300 + 1127184 2 3 - 343798 + 321516 3 5 - 144596 + 135224 5 38 - 138630 + 129645 38 6279 - 11281 + 10550 @@ -37740,12 +37902,12 @@ 1 2 - 4875221 + 4559256 2 23276 - 219530 + 205302 @@ -37761,7 +37923,7 @@ 1 2 - 5094751 + 4764558 @@ -37777,7 +37939,7 @@ 1 2 - 5094751 + 4764558 @@ -37793,12 +37955,12 @@ 1 2 - 5022811 + 4697280 2 1652 - 71940 + 67277 @@ -37808,15 +37970,15 @@ cil_pointer_type - 10695 + 10002 id - 10695 + 10002 pointee - 10695 + 10002 @@ -37830,7 +37992,7 @@ 1 2 - 10695 + 10002 @@ -37846,7 +38008,7 @@ 1 2 - 10695 + 10002 @@ -37856,19 +38018,19 @@ cil_array_type - 133553 + 124897 id - 133553 + 124897 element_type - 133119 + 124492 rank - 65 + 60 @@ -37882,7 +38044,7 @@ 1 2 - 133553 + 124897 @@ -37898,7 +38060,7 @@ 1 2 - 133553 + 124897 @@ -37914,12 +38076,12 @@ 1 2 - 132729 + 124126 2 4 - 390 + 365 @@ -37935,12 +38097,12 @@ 1 2 - 132729 + 124126 2 4 - 390 + 365 @@ -37956,17 +38118,17 @@ 3 4 - 21 + 20 19 20 - 21 + 20 6134 6135 - 21 + 20 @@ -37982,17 +38144,17 @@ 3 4 - 21 + 20 19 20 - 21 + 20 6134 6135 - 21 + 20 @@ -38002,15 +38164,15 @@ cil_function_pointer_return_type - 28178 + 28172 id - 28178 + 28172 return_type - 5890 + 5889 @@ -38024,7 +38186,7 @@ 1 2 - 28178 + 28172 @@ -38045,7 +38207,7 @@ 2 3 - 1934 + 1933 3 @@ -38075,23 +38237,23 @@ cil_method - 28926164 + 27051448 id - 28926164 + 27051448 name - 5796080 + 5420434 parent - 5584859 + 5222902 return_type - 2472799 + 2312536 @@ -38105,7 +38267,7 @@ 1 2 - 28926164 + 27051448 @@ -38121,7 +38283,7 @@ 1 2 - 28926164 + 27051448 @@ -38137,7 +38299,7 @@ 1 2 - 28926164 + 27051448 @@ -38153,27 +38315,27 @@ 1 2 - 3864979 + 3614488 2 3 - 884650 + 827315 3 5 - 510718 + 477618 5 19 - 435545 + 407317 19 206309 - 100186 + 93693 @@ -38189,27 +38351,27 @@ 1 2 - 4034871 + 3773369 2 3 - 825141 + 771663 3 5 - 474032 + 443310 5 48 - 434873 + 406688 48 185857 - 27161 + 25401 @@ -38225,17 +38387,17 @@ 1 2 - 5227653 + 4888847 2 5 - 453075 + 423711 5 10798 - 115351 + 107875 @@ -38251,42 +38413,42 @@ 1 2 - 1766155 + 1651690 2 3 - 1281080 + 1198052 3 4 - 640778 + 599249 4 5 - 458715 + 428986 5 7 - 476613 + 445724 7 11 - 481234 + 450045 11 39 - 420879 + 393602 39 28806 - 59400 + 55550 @@ -38302,37 +38464,37 @@ 1 2 - 1806052 + 1689001 2 3 - 1302167 + 1217773 3 4 - 656702 + 614141 4 5 - 465441 + 435275 5 7 - 512866 + 479626 7 11 - 440383 + 411842 11 3640 - 401246 + 375241 @@ -38348,32 +38510,32 @@ 1 2 - 2382483 + 2228074 2 3 - 1477462 + 1381707 3 4 - 630603 + 589734 4 5 - 335684 + 313928 5 7 - 451122 + 421885 7 12757 - 307502 + 287573 @@ -38389,27 +38551,27 @@ 1 2 - 1493646 + 1396842 2 3 - 430599 + 402691 3 4 - 163514 + 152916 4 8 - 209789 + 196192 8 508819 - 175250 + 163892 @@ -38425,22 +38587,22 @@ 1 2 - 1692436 + 1582748 2 3 - 398620 + 372786 3 5 - 201132 + 188097 5 78481 - 180609 + 168904 @@ -38456,27 +38618,27 @@ 1 2 - 1616677 + 1511900 2 3 - 413308 + 386521 3 4 - 154185 + 144192 4 9 - 192346 + 179880 9 207300 - 96281 + 90041 @@ -38486,15 +38648,15 @@ cil_method_source_declaration - 25660895 + 23997802 method - 25660895 + 23997802 source - 22347768 + 20899400 @@ -38508,7 +38670,7 @@ 1 2 - 25660895 + 23997802 @@ -38524,12 +38686,12 @@ 1 2 - 21046706 + 19682661 2 981 - 1301061 + 1216738 @@ -38539,19 +38701,19 @@ cil_method_implementation - 19889330 + 18600295 id - 19889330 + 18600295 method - 19872408 + 18584469 location - 8135 + 7608 @@ -38565,7 +38727,7 @@ 1 2 - 19889330 + 18600295 @@ -38581,7 +38743,7 @@ 1 2 - 19889330 + 18600295 @@ -38597,12 +38759,12 @@ 1 2 - 19870282 + 18582481 2 27 - 2126 + 1988 @@ -38618,7 +38780,7 @@ 1 2 - 19872408 + 18584469 @@ -38634,67 +38796,67 @@ 2 18 - 629 + 588 22 47 - 629 + 588 48 113 - 629 + 588 116 188 - 650 + 608 199 281 - 629 + 588 288 423 - 629 + 588 429 577 - 629 + 588 591 869 - 629 + 588 876 1386 - 629 + 588 1410 2148 - 629 + 588 2282 3593 - 650 + 608 3704 9594 - 629 + 588 9763 45316 - 542 + 507 @@ -38710,67 +38872,67 @@ 2 18 - 629 + 588 22 47 - 629 + 588 48 113 - 629 + 588 116 188 - 650 + 608 199 281 - 629 + 588 288 423 - 629 + 588 429 577 - 629 + 588 591 869 - 629 + 588 876 1386 - 629 + 588 1410 2148 - 629 + 588 2282 3593 - 650 + 608 3704 9594 - 629 + 588 9763 45316 - 542 + 507 @@ -38780,15 +38942,15 @@ cil_implements - 1031394 + 964549 id - 1030960 + 964143 decl - 190675 + 178318 @@ -38802,12 +38964,12 @@ 1 2 - 1030526 + 963737 2 3 - 433 + 405 @@ -38823,27 +38985,27 @@ 1 2 - 124788 + 116701 2 3 - 31370 + 29337 3 4 - 12517 + 11706 4 10 - 14557 + 13613 10 3161 - 7441 + 6959 @@ -38853,23 +39015,23 @@ cil_field - 11684971 + 10927663 id - 11684971 + 10927663 parent - 2707928 + 2532426 name - 4586875 + 4289597 field_type - 2250188 + 2104353 @@ -38883,7 +39045,7 @@ 1 2 - 11684971 + 10927663 @@ -38899,7 +39061,7 @@ 1 2 - 11684971 + 10927663 @@ -38915,7 +39077,7 @@ 1 2 - 11684971 + 10927663 @@ -38931,42 +39093,42 @@ 1 2 - 796244 + 744639 2 3 - 670999 + 627511 3 4 - 357444 + 334278 4 5 - 241094 + 225469 5 6 - 162342 + 151821 6 8 - 192888 + 180387 8 15 - 209962 + 196354 15 6824 - 76951 + 71964 @@ -38982,42 +39144,42 @@ 1 2 - 796244 + 744639 2 3 - 670999 + 627511 3 4 - 357444 + 334278 4 5 - 241094 + 225469 5 6 - 162342 + 151821 6 8 - 192888 + 180387 8 15 - 209962 + 196354 15 6824 - 76951 + 71964 @@ -39033,32 +39195,32 @@ 1 2 - 917301 + 857850 2 3 - 895519 + 837480 3 4 - 342301 + 320116 4 5 - 181976 + 170182 5 8 - 237970 + 222547 8 524 - 132859 + 124248 @@ -39074,22 +39236,22 @@ 1 2 - 3517991 + 3289989 2 3 - 582506 + 544753 3 8 - 365970 + 342251 8 13940 - 120406 + 112602 @@ -39105,22 +39267,22 @@ 1 2 - 3517991 + 3289989 2 3 - 582506 + 544753 3 8 - 365970 + 342251 8 13940 - 120406 + 112602 @@ -39136,17 +39298,17 @@ 1 2 - 4006624 + 3746953 2 3 - 359223 + 335941 3 12921 - 221027 + 206702 @@ -39162,27 +39324,27 @@ 1 2 - 1354821 + 1267014 2 3 - 434330 + 406181 3 4 - 126177 + 117999 4 7 - 179438 + 167808 7 58308 - 155421 + 145348 @@ -39198,22 +39360,22 @@ 1 2 - 1515666 + 1417435 2 3 - 436131 + 407865 3 6 - 184991 + 173002 6 22697 - 113398 + 106049 @@ -39229,22 +39391,22 @@ 1 2 - 1648569 + 1541724 2 3 - 261769 + 244804 3 5 - 174838 + 163507 5 33056 - 165010 + 154316 @@ -39254,23 +39416,23 @@ cil_parameter - 55186618 + 51609951 id - 55186618 + 51609951 parameterizable - 27728414 + 25931324 index - 1214 + 1136 param_type - 7131245 + 6669066 @@ -39284,7 +39446,7 @@ 1 2 - 55186618 + 51609951 @@ -39300,7 +39462,7 @@ 1 2 - 55186618 + 51609951 @@ -39316,7 +39478,7 @@ 1 2 - 55186618 + 51609951 @@ -39332,27 +39494,27 @@ 1 2 - 12120690 + 11335143 2 3 - 8866290 + 8291662 3 4 - 4255182 + 3979402 4 7 - 2154037 + 2014433 7 57 - 332213 + 310682 @@ -39368,27 +39530,27 @@ 1 2 - 12120690 + 11335143 2 3 - 8866290 + 8291662 3 4 - 4255182 + 3979402 4 7 - 2154037 + 2014433 7 57 - 332213 + 310682 @@ -39404,22 +39566,22 @@ 1 2 - 12478850 + 11670091 2 3 - 9036465 + 8450808 3 4 - 4177081 + 3906362 4 43 - 2036017 + 1904062 @@ -39435,52 +39597,52 @@ 1 2 - 303 + 284 4 9 - 86 + 81 9 15 - 108 + 101 18 30 - 108 + 101 37 69 - 108 + 101 75 136 - 108 + 101 180 589 - 108 + 101 867 5193 - 108 + 101 8798 114907 - 108 + 101 311325 1275068 - 65 + 60 @@ -39496,52 +39658,52 @@ 1 2 - 303 + 284 4 9 - 86 + 81 9 15 - 108 + 101 18 30 - 108 + 101 37 69 - 108 + 101 75 136 - 108 + 101 180 589 - 108 + 101 867 5193 - 108 + 101 8798 114907 - 108 + 101 311325 1275068 - 65 + 60 @@ -39557,52 +39719,52 @@ 1 2 - 303 + 284 4 8 - 65 + 60 8 12 - 108 + 101 13 18 - 108 + 101 22 35 - 108 + 101 46 78 - 108 + 101 88 231 - 108 + 101 304 936 - 108 + 101 1418 9559 - 108 + 101 19688 276348 - 86 + 81 @@ -39618,42 +39780,42 @@ 1 2 - 2005297 + 1875333 2 3 - 2103423 + 1967099 3 4 - 781426 + 730781 4 5 - 480432 + 449295 5 7 - 544236 + 508964 7 11 - 540136 + 505129 11 36 - 538856 + 503932 36 108909 - 137436 + 128529 @@ -39669,42 +39831,42 @@ 1 2 - 2033869 + 1902053 2 3 - 2102121 + 1965882 3 4 - 775330 + 725080 4 5 - 473923 + 443208 5 7 - 543585 + 508355 7 11 - 537706 + 502857 11 37 - 535320 + 500625 37 89965 - 129388 + 121002 @@ -39720,22 +39882,22 @@ 1 2 - 5015000 + 4689976 2 3 - 1530484 + 1431292 3 6 - 535645 + 500930 6 55 - 50115 + 46867 @@ -39745,37 +39907,37 @@ cil_parameter_in - 263266 + 246204 id - 263266 + 246204 cil_parameter_out - 502430 + 469868 id - 502430 + 469868 cil_setter - 789279 + 738126 prop - 789279 + 738126 method - 789279 + 738126 @@ -39789,7 +39951,7 @@ 1 2 - 789279 + 738126 @@ -39805,7 +39967,7 @@ 1 2 - 789279 + 738126 @@ -39815,19 +39977,19 @@ cil_custom_modifiers - 160151 + 149771 id - 145312 + 135894 modifier - 390 + 365 kind - 43 + 40 @@ -39841,12 +40003,12 @@ 1 2 - 130581 + 122118 2 3 - 14730 + 13776 @@ -39862,12 +40024,12 @@ 1 2 - 144248 + 134900 2 3 - 1063 + 994 @@ -39883,82 +40045,82 @@ 1 2 - 43 + 40 2 3 - 21 + 20 11 12 - 21 + 20 13 14 - 43 + 40 15 16 - 21 + 20 18 19 - 21 + 20 23 24 - 21 + 20 25 26 - 21 + 20 27 28 - 21 + 20 28 29 - 21 + 20 35 36 - 21 + 20 47 48 - 21 + 20 94 95 - 21 + 20 411 412 - 21 + 20 836 837 - 21 + 20 5777 5778 - 21 + 20 @@ -39974,12 +40136,12 @@ 1 2 - 368 + 344 2 3 - 21 + 20 @@ -39995,12 +40157,12 @@ 676 677 - 21 + 20 6071 6072 - 21 + 20 @@ -40016,12 +40178,12 @@ 9 10 - 21 + 20 10 11 - 21 + 20 @@ -40031,15 +40193,15 @@ cil_type_annotation - 1287046 + 1203632 id - 1287046 + 1203632 annotation - 21 + 20 @@ -40053,7 +40215,7 @@ 1 2 - 1287046 + 1203632 @@ -40069,7 +40231,7 @@ 59325 59326 - 21 + 20 @@ -40079,15 +40241,15 @@ cil_getter - 4403792 + 4118380 prop - 4403792 + 4118380 method - 4403792 + 4118380 @@ -40101,7 +40263,7 @@ 1 2 - 4403792 + 4118380 @@ -40117,7 +40279,7 @@ 1 2 - 4403792 + 4118380 @@ -40127,15 +40289,15 @@ cil_adder - 52067 + 48693 event - 52067 + 48693 method - 52067 + 48693 @@ -40149,7 +40311,7 @@ 1 2 - 52067 + 48693 @@ -40165,7 +40327,7 @@ 1 2 - 52067 + 48693 @@ -40175,15 +40337,15 @@ cil_remover - 52067 + 48693 event - 52067 + 48693 method - 52067 + 48693 @@ -40197,7 +40359,7 @@ 1 2 - 52067 + 48693 @@ -40213,7 +40375,7 @@ 1 2 - 52067 + 48693 @@ -40223,15 +40385,15 @@ cil_raiser - 21 + 20 event - 21 + 20 method - 21 + 20 @@ -40245,7 +40407,7 @@ 1 2 - 21 + 20 @@ -40261,7 +40423,7 @@ 1 2 - 21 + 20 @@ -40271,23 +40433,23 @@ cil_property - 4409953 + 4124142 id - 4409953 + 4124142 parent - 1169156 + 1093383 name - 1132080 + 1058709 property_type - 519157 + 485510 @@ -40301,7 +40463,7 @@ 1 2 - 4409953 + 4124142 @@ -40317,7 +40479,7 @@ 1 2 - 4409953 + 4124142 @@ -40333,7 +40495,7 @@ 1 2 - 4409953 + 4124142 @@ -40349,37 +40511,37 @@ 1 2 - 383217 + 358381 2 3 - 288281 + 269597 3 4 - 158307 + 148047 4 5 - 100837 + 94302 5 7 - 102486 + 95844 7 13 - 91422 + 85496 13 2090 - 44604 + 41713 @@ -40395,37 +40557,37 @@ 1 2 - 459041 + 429290 2 3 - 214084 + 200209 3 4 - 158350 + 148087 4 5 - 100295 + 93795 5 7 - 102659 + 96006 7 13 - 91161 + 85253 13 2090 - 43563 + 40739 @@ -40441,32 +40603,32 @@ 1 2 - 452272 + 422960 2 3 - 353994 + 331052 3 4 - 148501 + 138876 4 5 - 74239 + 69428 5 8 - 92029 + 86065 8 54 - 48119 + 45000 @@ -40482,27 +40644,27 @@ 1 2 - 719379 + 672755 2 3 - 187161 + 175031 3 4 - 69879 + 65350 4 8 - 88341 + 82615 8 7161 - 67319 + 62956 @@ -40518,27 +40680,27 @@ 1 2 - 719379 + 672755 2 3 - 187486 + 175335 3 4 - 69922 + 65390 4 8 - 88319 + 82595 8 3695 - 66971 + 62631 @@ -40554,17 +40716,17 @@ 1 2 - 989479 + 925351 2 3 - 83134 + 77746 3 1330 - 59465 + 55611 @@ -40580,32 +40742,32 @@ 1 2 - 301363 + 281831 2 3 - 92007 + 86044 3 4 - 33822 + 31630 4 7 - 44018 + 41165 7 34 - 39007 + 36479 34 39145 - 8938 + 8358 @@ -40621,32 +40783,32 @@ 1 2 - 316028 + 295546 2 3 - 87300 + 81642 3 4 - 32607 + 30494 4 7 - 40721 + 38082 7 64 - 38942 + 36418 64 17546 - 3557 + 3327 @@ -40662,22 +40824,22 @@ 1 2 - 411269 + 384614 2 3 - 59899 + 56017 3 10 - 39159 + 36621 10 12159 - 8829 + 8257 @@ -40687,23 +40849,23 @@ cil_event - 51937 + 48571 id - 51937 + 48571 parent - 22085 + 20653 name - 24667 + 23068 event_type - 15707 + 14689 @@ -40717,7 +40879,7 @@ 1 2 - 51937 + 48571 @@ -40733,7 +40895,7 @@ 1 2 - 51937 + 48571 @@ -40749,7 +40911,7 @@ 1 2 - 51937 + 48571 @@ -40765,32 +40927,32 @@ 1 2 - 12105 + 11321 2 3 - 4317 + 4037 3 4 - 1930 + 1805 4 5 - 1366 + 1278 5 8 - 1692 + 1582 8 75 - 672 + 628 @@ -40806,32 +40968,32 @@ 1 2 - 12105 + 11321 2 3 - 4317 + 4037 3 4 - 1930 + 1805 4 5 - 1366 + 1278 5 8 - 1692 + 1582 8 75 - 672 + 628 @@ -40847,27 +41009,27 @@ 1 2 - 14557 + 13613 2 3 - 3883 + 3631 3 4 - 1627 + 1521 4 7 - 1692 + 1582 7 52 - 325 + 304 @@ -40883,27 +41045,27 @@ 1 2 - 14622 + 13674 2 3 - 4816 + 4504 3 4 - 2842 + 2657 4 8 - 1930 + 1805 8 141 - 455 + 426 @@ -40919,27 +41081,27 @@ 1 2 - 14622 + 13674 2 3 - 4816 + 4504 3 4 - 2842 + 2657 4 8 - 1930 + 1805 8 141 - 455 + 426 @@ -40955,17 +41117,17 @@ 1 2 - 22128 + 20694 2 4 - 2017 + 1886 4 10 - 520 + 486 @@ -40981,27 +41143,27 @@ 1 2 - 7896 + 7385 2 3 - 3189 + 2982 3 4 - 2581 + 2414 4 7 - 1345 + 1257 7 380 - 694 + 649 @@ -41017,22 +41179,22 @@ 1 2 - 9176 + 8582 2 3 - 2690 + 2515 3 4 - 2690 + 2515 4 203 - 1149 + 1075 @@ -41048,17 +41210,17 @@ 1 2 - 12604 + 11787 2 3 - 1909 + 1785 3 176 - 1193 + 1115 @@ -41068,23 +41230,23 @@ cil_local_variable - 16916551 + 15820183 id - 16916551 + 15820183 impl - 4885265 + 4568649 index - 8677 + 8115 var_type - 2173085 + 2032246 @@ -41098,7 +41260,7 @@ 1 2 - 16916551 + 15820183 @@ -41114,7 +41276,7 @@ 1 2 - 16916551 + 15820183 @@ -41130,7 +41292,7 @@ 1 2 - 16916551 + 15820183 @@ -41146,42 +41308,42 @@ 1 2 - 1994580 + 1865310 2 3 - 848506 + 793514 3 4 - 575585 + 538281 4 5 - 385690 + 360694 5 6 - 282987 + 264646 6 9 - 410509 + 383904 9 29 - 366447 + 342697 29 401 - 20957 + 19598 @@ -41197,42 +41359,42 @@ 1 2 - 1994580 + 1865310 2 3 - 848506 + 793514 3 4 - 575585 + 538281 4 5 - 385690 + 360694 5 6 - 282987 + 264646 6 9 - 410509 + 383904 9 29 - 366447 + 342697 29 401 - 20957 + 19598 @@ -41248,37 +41410,37 @@ 1 2 - 2184193 + 2042634 2 3 - 934201 + 873655 3 4 - 601576 + 562587 4 5 - 367423 + 343610 5 7 - 394759 + 369174 7 16 - 366469 + 342718 16 163 - 36642 + 34267 @@ -41294,42 +41456,42 @@ 1 2 - 3449 + 3225 2 9 - 585 + 547 9 10 - 1410 + 1318 11 21 - 781 + 730 22 33 - 737 + 689 35 224 - 672 + 628 237 3625 - 672 + 628 4237 225182 - 368 + 344 @@ -41345,42 +41507,42 @@ 1 2 - 3449 + 3225 2 9 - 585 + 547 9 10 - 1410 + 1318 11 21 - 781 + 730 22 33 - 737 + 689 35 224 - 672 + 628 237 3625 - 672 + 628 4237 225182 - 368 + 344 @@ -41396,47 +41558,47 @@ 1 2 - 3449 + 3225 2 6 - 715 + 669 6 8 - 802 + 750 8 13 - 694 + 649 13 18 - 737 + 689 18 27 - 672 + 628 28 164 - 672 + 628 168 3240 - 672 + 628 3729 56679 - 260 + 243 @@ -41452,32 +41614,32 @@ 1 2 - 1379206 + 1289819 2 3 - 276197 + 258296 3 4 - 128867 + 120515 4 7 - 171063 + 159977 7 29 - 164316 + 153667 29 72347 - 53434 + 49971 @@ -41493,27 +41655,27 @@ 1 2 - 1439669 + 1346364 2 3 - 263505 + 246427 3 5 - 196707 + 183958 5 12 - 163145 + 152571 12 44190 - 110057 + 102925 @@ -41529,27 +41691,27 @@ 1 2 - 1482929 + 1386819 2 3 - 287326 + 268704 3 4 - 136113 + 127291 4 8 - 175901 + 164501 8 217 - 90814 + 84928 @@ -41559,11 +41721,11 @@ cil_function_pointer_calling_conventions - 28676 + 28670 id - 28676 + 28670 kind @@ -41581,7 +41743,7 @@ 1 2 - 28676 + 28670 @@ -41612,35 +41774,35 @@ cil_handler - 1747389 + 1634140 id - 1747389 + 1634140 impl - 1140476 + 1066561 index - 1778 + 1663 kind - 86 + 81 try_start - 1706711 + 1596098 try_end - 1726063 + 1614196 handler_start - 1747389 + 1634140 @@ -41654,7 +41816,7 @@ 1 2 - 1747389 + 1634140 @@ -41670,7 +41832,7 @@ 1 2 - 1747389 + 1634140 @@ -41686,7 +41848,7 @@ 1 2 - 1747389 + 1634140 @@ -41702,7 +41864,7 @@ 1 2 - 1747389 + 1634140 @@ -41718,7 +41880,7 @@ 1 2 - 1747389 + 1634140 @@ -41734,7 +41896,7 @@ 1 2 - 1747389 + 1634140 @@ -41750,22 +41912,22 @@ 1 2 - 839568 + 785155 2 3 - 181759 + 169979 3 5 - 87907 + 82210 5 83 - 31240 + 29215 @@ -41781,22 +41943,22 @@ 1 2 - 839568 + 785155 2 3 - 181759 + 169979 3 5 - 87907 + 82210 5 83 - 31240 + 29215 @@ -41812,12 +41974,12 @@ 1 2 - 1067863 + 998654 2 4 - 72612 + 67906 @@ -41833,22 +41995,22 @@ 1 2 - 853171 + 797876 2 3 - 176769 + 165313 3 6 - 92506 + 86511 6 74 - 18028 + 16859 @@ -41864,22 +42026,22 @@ 1 2 - 847183 + 792277 2 3 - 179307 + 167686 3 6 - 94763 + 88621 6 83 - 19221 + 17975 @@ -41895,22 +42057,22 @@ 1 2 - 839568 + 785155 2 3 - 181759 + 169979 3 5 - 87907 + 82210 5 83 - 31240 + 29215 @@ -41926,52 +42088,52 @@ 3 5 - 130 + 121 6 7 - 86 + 81 7 8 - 130 + 121 9 10 - 564 + 527 10 18 - 151 + 142 19 34 - 151 + 142 36 71 - 151 + 142 86 166 - 151 + 142 178 946 - 151 + 142 1440 52570 - 108 + 101 @@ -41987,52 +42149,52 @@ 3 5 - 130 + 121 6 7 - 86 + 81 7 8 - 130 + 121 9 10 - 564 + 527 10 18 - 151 + 142 19 34 - 151 + 142 36 71 - 151 + 142 86 166 - 151 + 142 178 946 - 151 + 142 1440 52570 - 108 + 101 @@ -42048,22 +42210,22 @@ 1 2 - 781 + 730 2 3 - 368 + 344 3 4 - 433 + 405 4 5 - 195 + 182 @@ -42079,52 +42241,52 @@ 3 5 - 130 + 121 6 7 - 86 + 81 7 8 - 130 + 121 9 10 - 564 + 527 10 18 - 151 + 142 19 34 - 151 + 142 36 71 - 151 + 142 86 166 - 151 + 142 178 946 - 151 + 142 1440 52570 - 108 + 101 @@ -42140,52 +42302,52 @@ 3 5 - 130 + 121 6 7 - 86 + 81 7 8 - 130 + 121 9 10 - 564 + 527 10 18 - 151 + 142 19 34 - 151 + 142 36 71 - 151 + 142 86 166 - 151 + 142 178 946 - 151 + 142 1440 52570 - 108 + 101 @@ -42201,52 +42363,52 @@ 3 5 - 130 + 121 6 7 - 86 + 81 7 8 - 130 + 121 9 10 - 564 + 527 10 18 - 151 + 142 19 34 - 151 + 142 36 71 - 151 + 142 86 166 - 151 + 142 178 946 - 151 + 142 1440 52570 - 108 + 101 @@ -42262,22 +42424,22 @@ 332 333 - 21 + 20 10343 10344 - 21 + 20 13573 13574 - 21 + 20 56296 56297 - 21 + 20 @@ -42293,22 +42455,22 @@ 308 309 - 21 + 20 3817 3818 - 21 + 20 11336 11337 - 21 + 20 40556 40557 - 21 + 20 @@ -42324,22 +42486,22 @@ 9 10 - 21 + 20 29 30 - 21 + 20 46 47 - 21 + 20 82 83 - 21 + 20 @@ -42355,22 +42517,22 @@ 316 317 - 21 + 20 10038 10039 - 21 + 20 12652 12653 - 21 + 20 56253 56254 - 21 + 20 @@ -42386,22 +42548,22 @@ 316 317 - 21 + 20 10343 10344 - 21 + 20 12672 12673 - 21 + 20 56296 56297 - 21 + 20 @@ -42417,22 +42579,22 @@ 332 333 - 21 + 20 10343 10344 - 21 + 20 13573 13574 - 21 + 20 56296 56297 - 21 + 20 @@ -42448,12 +42610,12 @@ 1 2 - 1674733 + 1566193 2 9 - 31978 + 29905 @@ -42469,7 +42631,7 @@ 1 2 - 1706711 + 1596098 @@ -42485,12 +42647,12 @@ 1 2 - 1674733 + 1566193 2 9 - 31978 + 29905 @@ -42506,12 +42668,12 @@ 1 2 - 1694106 + 1584310 2 4 - 12604 + 11787 @@ -42527,12 +42689,12 @@ 1 2 - 1689507 + 1580009 2 9 - 17204 + 16089 @@ -42548,12 +42710,12 @@ 1 2 - 1674733 + 1566193 2 9 - 31978 + 29905 @@ -42569,12 +42731,12 @@ 1 2 - 1709423 + 1598634 2 8 - 16639 + 15561 @@ -42590,7 +42752,7 @@ 1 2 - 1726063 + 1614196 @@ -42606,12 +42768,12 @@ 1 2 - 1709423 + 1598634 2 8 - 16639 + 15561 @@ -42627,12 +42789,12 @@ 1 2 - 1724631 + 1612857 2 3 - 1431 + 1339 @@ -42648,7 +42810,7 @@ 1 2 - 1726063 + 1614196 @@ -42664,12 +42826,12 @@ 1 2 - 1709423 + 1598634 2 8 - 16639 + 15561 @@ -42685,7 +42847,7 @@ 1 2 - 1747389 + 1634140 @@ -42701,7 +42863,7 @@ 1 2 - 1747389 + 1634140 @@ -42717,7 +42879,7 @@ 1 2 - 1747389 + 1634140 @@ -42733,7 +42895,7 @@ 1 2 - 1747389 + 1634140 @@ -42749,7 +42911,7 @@ 1 2 - 1747389 + 1634140 @@ -42765,7 +42927,7 @@ 1 2 - 1747389 + 1634140 @@ -42775,15 +42937,15 @@ cil_handler_filter - 12190 + 11142 id - 12190 + 11142 filter_start - 12190 + 11142 @@ -42797,7 +42959,7 @@ 1 2 - 12190 + 11142 @@ -42813,7 +42975,7 @@ 1 2 - 12190 + 11142 @@ -42823,15 +42985,15 @@ cil_handler_type - 294464 + 275379 id - 294464 + 275379 catch_type - 7636 + 7141 @@ -42845,7 +43007,7 @@ 1 2 - 294464 + 275379 @@ -42861,42 +43023,42 @@ 1 2 - 2885 + 2698 2 3 - 1410 + 1318 3 4 - 911 + 852 4 6 - 542 + 507 6 11 - 607 + 568 11 21 - 607 + 568 21 246 - 585 + 547 788 6003 - 86 + 81 @@ -42906,15 +43068,15 @@ cil_method_stack_size - 19888809 + 18599808 method - 19888809 + 18599808 size - 2776 + 2596 @@ -42928,7 +43090,7 @@ 1 2 - 19888809 + 18599808 @@ -42944,52 +43106,52 @@ 1 2 - 650 + 608 2 3 - 498 + 466 3 6 - 216 + 202 6 11 - 238 + 223 11 18 - 238 + 223 21 40 - 216 + 202 43 109 - 216 + 202 130 842 - 216 + 202 958 40710 - 216 + 202 67239 634253 - 65 + 60 @@ -42999,169 +43161,169 @@ cil_public - 22449256 + 20994311 id - 22449256 + 20994311 cil_private - 11386254 + 10648307 id - 11386254 + 10648307 cil_protected - 21117106 + 19748498 id - 21117106 + 19748498 cil_internal - 725019 + 678031 id - 725019 + 678031 cil_static - 10668437 + 9977011 id - 10668437 + 9977011 cil_sealed - 4672352 + 4369535 id - 4672352 + 4369535 cil_virtual - 8620965 + 8062237 id - 8620965 + 8062237 cil_abstract - 2076282 + 1941718 id - 2076282 + 1941718 cil_class - 3287614 + 3074542 id - 3287614 + 3074542 cil_interface - 269970 + 252473 id - 269970 + 252473 cil_security - 35861 + 33537 id - 35861 + 33537 cil_requiresecobject - 607 + 568 id - 607 + 568 cil_specialname - 9198286 + 8602142 id - 9198286 + 8602142 cil_newslot - 5415097 + 5064142 id - 5415097 + 5064142 cil_base_class - 3276875 + 3064499 id - 3276875 + 3064499 base - 339589 + 317580 @@ -43175,7 +43337,7 @@ 1 2 - 3276875 + 3064499 @@ -43191,27 +43353,27 @@ 1 2 - 206144 + 192784 2 3 - 66169 + 61880 3 4 - 22519 + 21059 4 8 - 28094 + 26273 8 83448 - 16661 + 15581 @@ -43221,15 +43383,15 @@ cil_base_interface - 2149524 + 2010213 id - 914263 + 855010 base - 395713 + 370067 @@ -43243,32 +43405,32 @@ 1 2 - 516814 + 483319 2 3 - 146266 + 136787 3 4 - 70182 + 65634 4 5 - 34191 + 31975 5 6 - 90944 + 85050 6 32 - 55864 + 52243 @@ -43284,32 +43446,32 @@ 1 2 - 263483 + 246407 2 3 - 47012 + 43965 3 4 - 23387 + 21871 4 8 - 31739 + 29682 8 477 - 29678 + 27755 481 4267 - 412 + 385 @@ -43319,15 +43481,15 @@ cil_enum_underlying_type - 149759 + 140053 id - 149759 + 140053 underlying - 173 + 162 @@ -43341,7 +43503,7 @@ 1 2 - 149759 + 140053 @@ -43357,42 +43519,42 @@ 5 6 - 21 + 20 7 8 - 21 + 20 17 18 - 21 + 20 49 50 - 21 + 20 103 104 - 21 + 20 315 316 - 21 + 20 397 398 - 21 + 20 6010 6011 - 21 + 20 @@ -43402,19 +43564,19 @@ cil_type_parameter - 1302992 + 1218544 unbound - 978090 + 914699 index - 911 + 852 param - 1302992 + 1218544 @@ -43428,17 +43590,17 @@ 1 2 - 730573 + 683224 2 3 - 207511 + 194062 3 43 - 40005 + 37412 @@ -43454,17 +43616,17 @@ 1 2 - 730573 + 683224 2 3 - 207511 + 194062 3 43 - 40005 + 37412 @@ -43480,52 +43642,52 @@ 2 3 - 43 + 40 4 5 - 347 + 324 6 7 - 65 + 60 10 19 - 65 + 60 23 33 - 65 + 60 37 48 - 65 + 60 52 68 - 65 + 60 74 115 - 65 + 60 155 525 - 65 + 60 1844 45085 - 65 + 60 @@ -43541,52 +43703,52 @@ 2 3 - 43 + 40 4 5 - 347 + 324 6 7 - 65 + 60 10 19 - 65 + 60 23 33 - 65 + 60 37 48 - 65 + 60 52 68 - 65 + 60 74 115 - 65 + 60 155 525 - 65 + 60 1844 45085 - 65 + 60 @@ -43602,7 +43764,7 @@ 1 2 - 1302992 + 1218544 @@ -43618,7 +43780,7 @@ 1 2 - 1302992 + 1218544 @@ -43628,19 +43790,19 @@ cil_type_argument - 8232606 + 7699047 bound - 6158774 + 5759621 index - 911 + 852 t - 2057104 + 1923782 @@ -43654,17 +43816,17 @@ 1 2 - 4348535 + 4066705 2 3 - 1618413 + 1513523 3 43 - 191825 + 179393 @@ -43680,17 +43842,17 @@ 1 2 - 4430303 + 4143173 2 3 - 1586131 + 1483333 3 43 - 142339 + 133114 @@ -43706,47 +43868,47 @@ 1 2 - 43 + 40 2 3 - 347 + 324 3 4 - 65 + 60 6 8 - 65 + 60 8 9 - 151 + 142 15 33 - 65 + 60 155 277 - 65 + 60 669 8843 - 65 + 60 83441 283883 - 43 + 40 @@ -43762,52 +43924,52 @@ 1 2 - 65 + 60 2 3 - 390 + 365 5 6 - 43 + 40 6 7 - 43 + 40 7 8 - 43 + 40 8 9 - 86 + 81 14 29 - 65 + 60 135 185 - 65 + 60 351 3750 - 65 + 60 27498 82123 - 43 + 40 @@ -43823,32 +43985,32 @@ 1 2 - 889076 + 831454 2 3 - 538075 + 503202 3 4 - 217078 + 203009 4 6 - 174448 + 163142 6 12 - 158068 + 147824 12 14769 - 80357 + 75149 @@ -43864,17 +44026,17 @@ 1 2 - 1655945 + 1548622 2 3 - 368855 + 344949 3 10 - 32303 + 30210 @@ -43975,19 +44137,19 @@ cil_attribute - 4315754 + 4036048 attributeid - 4315754 + 4036048 element - 3808550 + 3561717 constructor - 20566 + 19233 @@ -44001,7 +44163,7 @@ 1 2 - 4315754 + 4036048 @@ -44017,7 +44179,7 @@ 1 2 - 4315754 + 4036048 @@ -44033,12 +44195,12 @@ 1 2 - 3532180 + 3303258 2 3520 - 276370 + 258458 @@ -44054,12 +44216,12 @@ 1 2 - 3535499 + 3306362 2 9 - 273051 + 255354 @@ -44075,62 +44237,62 @@ 1 2 - 2668 + 2495 2 3 - 2928 + 2738 3 4 - 1301 + 1217 4 5 - 1431 + 1339 5 8 - 1887 + 1765 8 13 - 1865 + 1744 13 22 - 1605 + 1501 22 46 - 1562 + 1460 46 91 - 1562 + 1460 92 174 - 1562 + 1460 174 920 - 1562 + 1460 935 72904 - 629 + 588 @@ -44146,62 +44308,62 @@ 1 2 - 2820 + 2637 2 3 - 2950 + 2759 3 4 - 1366 + 1278 4 5 - 1475 + 1379 5 7 - 1431 + 1339 7 11 - 1627 + 1521 11 19 - 1713 + 1602 19 39 - 1583 + 1481 39 74 - 1605 + 1501 74 143 - 1562 + 1460 144 521 - 1562 + 1460 523 72904 - 867 + 811 @@ -44211,19 +44373,19 @@ cil_attribute_named_argument - 221113 + 202106 attribute_id - 129011 + 117921 param - 2200 + 2011 value - 6264 + 5725 @@ -44237,12 +44399,12 @@ 1 2 - 36908 + 33736 2 3 - 92102 + 84185 @@ -44258,12 +44420,12 @@ 1 2 - 104461 + 95482 2 3 - 24549 + 22439 @@ -44279,42 +44441,42 @@ 1 2 - 507 + 464 5 6 - 338 + 309 8 9 - 338 + 309 10 11 - 169 + 154 13 14 - 169 + 154 53 54 - 338 + 309 559 560 - 169 + 154 589 590 - 169 + 154 @@ -44330,27 +44492,27 @@ 1 2 - 846 + 773 2 3 - 677 + 619 3 4 - 338 + 309 4 5 - 169 + 154 20 21 - 169 + 154 @@ -44366,37 +44528,37 @@ 1 2 - 2878 + 2630 2 3 - 1354 + 1238 3 4 - 338 + 309 4 5 - 507 + 464 5 15 - 507 + 464 15 117 - 507 + 464 642 643 - 169 + 154 @@ -44412,12 +44574,12 @@ 1 2 - 5756 + 5261 2 5 - 507 + 464 @@ -44427,19 +44589,19 @@ cil_attribute_positional_argument - 1300778 + 1207385 attribute_id - 1270980 + 1049904 index - 846 + 101 value - 103615 + 302627 @@ -44453,12 +44615,17 @@ 1 2 - 1243722 + 904839 2 + 3 + 133358 + + + 3 6 - 27258 + 11706 @@ -44474,12 +44641,17 @@ 1 2 - 1243891 + 905711 2 - 4 - 27088 + 3 + 133439 + + + 3 + 6 + 10753 @@ -44493,19 +44665,29 @@ 12 - 5 - 6 - 507 + 13 + 14 + 20 - 161 - 162 - 169 + 22 + 23 + 20 - 7507 - 7508 - 169 + 577 + 578 + 20 + + + 7150 + 7151 + 20 + + + 51748 + 51749 + 20 @@ -44519,24 +44701,24 @@ 12 - 2 - 3 - 338 + 11 + 12 + 40 - 3 - 4 - 169 + 188 + 189 + 20 - 55 - 56 - 169 + 3761 + 3762 + 20 - 559 - 560 - 169 + 12302 + 12303 + 20 @@ -44552,27 +44734,22 @@ 1 2 - 70600 + 223237 2 3 - 15745 + 51716 3 - 7 - 8973 + 11 + 23108 - 7 - 296 - 7788 - - - 1365 - 2071 - 507 + 11 + 10926 + 4564 @@ -44588,12 +44765,17 @@ 1 2 - 102768 + 275400 2 + 3 + 26984 + + + 3 6 - 846 + 243 @@ -44603,19 +44785,19 @@ metadata_handle - 80614512 + 75389853 entity - 80366908 + 75158297 location - 10717 + 10022 handle - 2025039 + 1893796 @@ -44629,12 +44811,12 @@ 1 2 - 80240796 + 75040358 2 495 - 126112 + 117938 @@ -44650,12 +44832,12 @@ 1 2 - 80243139 + 75042549 2 104 - 123769 + 115747 @@ -44671,62 +44853,62 @@ 2 3 - 2429 + 2272 10 139 - 824 + 770 139 352 - 824 + 770 356 715 - 824 + 770 736 1211 - 824 + 770 1213 1954 - 824 + 770 1962 3223 - 824 + 770 3237 5525 - 824 + 770 5587 9799 - 824 + 770 9811 23379 - 824 + 770 24980 128088 - 824 + 770 135385 182274 - 43 + 40 @@ -44742,62 +44924,62 @@ 1 2 - 2429 + 2272 5 70 - 824 + 770 70 179 - 846 + 791 179 371 - 824 + 770 372 608 - 824 + 770 612 989 - 824 + 770 995 1622 - 824 + 770 1623 2799 - 824 + 770 2799 4911 - 824 + 770 4937 12509 - 824 + 770 12740 68305 - 824 + 770 91205 91206 - 21 + 20 @@ -44813,72 +44995,72 @@ 1 2 - 390 + 365 2 3 - 274136 + 256369 3 4 - 1041 + 973 4 5 - 264980 + 247807 5 8 - 154315 + 144314 8 11 - 174383 + 163081 11 15 - 171193 + 160098 15 22 - 74890 + 70036 22 25 - 163904 + 153281 25 39 - 158762 + 148473 39 51 - 155118 + 145064 51 73 - 154510 + 144496 73 137 - 152666 + 142772 137 732 - 124745 + 116660 @@ -44894,62 +45076,62 @@ 1 2 - 274504 + 256714 2 3 - 266043 + 248801 3 4 - 150844 + 141067 4 6 - 177854 + 166327 6 8 - 171193 + 160098 8 11 - 74738 + 69894 11 13 - 163969 + 153342 13 20 - 158784 + 148493 20 26 - 154662 + 144638 26 37 - 155009 + 144963 37 70 - 154206 + 144212 70 495 - 123226 + 115240 diff --git a/csharp/ql/lib/tutorial.qll b/csharp/ql/lib/tutorial.qll index 8cb1797a532..190d054d5ac 100644 --- a/csharp/ql/lib/tutorial.qll +++ b/csharp/ql/lib/tutorial.qll @@ -6,122 +6,22 @@ */ class Person extends string { Person() { - this = "Ronil" or - this = "Dina" or - this = "Ravi" or - this = "Bruce" or - this = "Jo" or - this = "Aida" or - this = "Esme" or - this = "Charlie" or - this = "Fred" or - this = "Meera" or - this = "Maya" or - this = "Chad" or - this = "Tiana" or - this = "Laura" or - this = "George" or - this = "Will" or - this = "Mary" or - this = "Almira" or - this = "Susannah" or - this = "Rhoda" or - this = "Cynthia" or - this = "Eunice" or - this = "Olive" or - this = "Virginia" or - this = "Angeline" or - this = "Helen" or - this = "Cornelia" or - this = "Harriet" or - this = "Mahala" or - this = "Abby" or - this = "Margaret" or - this = "Deb" or - this = "Minerva" or - this = "Severus" or - this = "Lavina" or - this = "Adeline" or - this = "Cath" or - this = "Elisa" or - this = "Lucretia" or - this = "Anne" or - this = "Eleanor" or - this = "Joanna" or - this = "Adam" or - this = "Agnes" or - this = "Rosanna" or - this = "Clara" or - this = "Melissa" or - this = "Amy" or - this = "Isabel" or - this = "Jemima" or - this = "Cordelia" or - this = "Melinda" or - this = "Delila" or - this = "Jeremiah" or - this = "Elijah" or - this = "Hester" or - this = "Walter" or - this = "Oliver" or - this = "Hugh" or - this = "Aaron" or - this = "Reuben" or - this = "Eli" or - this = "Amos" or - this = "Augustus" or - this = "Theodore" or - this = "Ira" or - this = "Timothy" or - this = "Cyrus" or - this = "Horace" or - this = "Simon" or - this = "Asa" or - this = "Frank" or - this = "Nelson" or - this = "Leonard" or - this = "Harrison" or - this = "Anthony" or - this = "Louis" or - this = "Milton" or - this = "Noah" or - this = "Cornelius" or - this = "Abdul" or - this = "Warren" or - this = "Harvey" or - this = "Dennis" or - this = "Wesley" or - this = "Sylvester" or - this = "Gilbert" or - this = "Sullivan" or - this = "Edmund" or - this = "Wilson" or - this = "Perry" or - this = "Matthew" or - this = "Simba" or - this = "Nala" or - this = "Rafiki" or - this = "Shenzi" or - this = "Ernest" or - this = "Gertrude" or - this = "Oscar" or - this = "Lilian" or - this = "Raymond" or - this = "Elgar" or - this = "Elmer" or - this = "Herbert" or - this = "Maude" or - this = "Mae" or - this = "Otto" or - this = "Edwin" or - this = "Ophelia" or - this = "Parsley" or - this = "Sage" or - this = "Rosemary" or - this = "Thyme" or - this = "Garfunkel" or - this = "King Basil" or - this = "Stephen" + this = + [ + "Ronil", "Dina", "Ravi", "Bruce", "Jo", "Aida", "Esme", "Charlie", "Fred", "Meera", "Maya", + "Chad", "Tiana", "Laura", "George", "Will", "Mary", "Almira", "Susannah", "Rhoda", + "Cynthia", "Eunice", "Olive", "Virginia", "Angeline", "Helen", "Cornelia", "Harriet", + "Mahala", "Abby", "Margaret", "Deb", "Minerva", "Severus", "Lavina", "Adeline", "Cath", + "Elisa", "Lucretia", "Anne", "Eleanor", "Joanna", "Adam", "Agnes", "Rosanna", "Clara", + "Melissa", "Amy", "Isabel", "Jemima", "Cordelia", "Melinda", "Delila", "Jeremiah", "Elijah", + "Hester", "Walter", "Oliver", "Hugh", "Aaron", "Reuben", "Eli", "Amos", "Augustus", + "Theodore", "Ira", "Timothy", "Cyrus", "Horace", "Simon", "Asa", "Frank", "Nelson", + "Leonard", "Harrison", "Anthony", "Louis", "Milton", "Noah", "Cornelius", "Abdul", "Warren", + "Harvey", "Dennis", "Wesley", "Sylvester", "Gilbert", "Sullivan", "Edmund", "Wilson", + "Perry", "Matthew", "Simba", "Nala", "Rafiki", "Shenzi", "Ernest", "Gertrude", "Oscar", + "Lilian", "Raymond", "Elgar", "Elmer", "Herbert", "Maude", "Mae", "Otto", "Edwin", + "Ophelia", "Parsley", "Sage", "Rosemary", "Thyme", "Garfunkel", "King Basil", "Stephen" + ] } /** Gets the hair color of the person. If the person is bald, there is no result. */ @@ -936,25 +836,12 @@ class Person extends string { /** Holds if the person is deceased. */ predicate isDeceased() { - this = "Ernest" or - this = "Gertrude" or - this = "Oscar" or - this = "Lilian" or - this = "Edwin" or - this = "Raymond" or - this = "Elgar" or - this = "Elmer" or - this = "Herbert" or - this = "Maude" or - this = "Mae" or - this = "Otto" or - this = "Ophelia" or - this = "Parsley" or - this = "Sage" or - this = "Rosemary" or - this = "Thyme" or - this = "Garfunkel" or - this = "King Basil" + this = + [ + "Ernest", "Gertrude", "Oscar", "Lilian", "Edwin", "Raymond", "Elgar", "Elmer", "Herbert", + "Maude", "Mae", "Otto", "Ophelia", "Parsley", "Sage", "Rosemary", "Thyme", "Garfunkel", + "King Basil" + ] } /** Gets a parent of the person (alive or deceased). */ @@ -1195,12 +1082,7 @@ class Person extends string { } /** Holds if the person is allowed in the region. Initially, all villagers are allowed in every region. */ - predicate isAllowedIn(string region) { - region = "north" or - region = "south" or - region = "east" or - region = "west" - } + predicate isAllowedIn(string region) { region = ["north", "south", "east", "west"] } } /** Returns a parent of the person. */ diff --git a/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/attribute_kind.ql b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/attribute_kind.ql new file mode 100644 index 00000000000..807b549df98 --- /dev/null +++ b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/attribute_kind.ql @@ -0,0 +1,15 @@ +class Attribute extends @attribute { + string toString() { none() } +} + +class Attributable extends @attributable { + string toString() { none() } +} + +class TypeOrRef extends @type_or_ref { + string toString() { none() } +} + +from Attribute id, TypeOrRef type_id, Attributable target +where attributes(id, type_id, target) +select id, 0, type_id, target diff --git a/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/old.dbscheme b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/old.dbscheme new file mode 100644 index 00000000000..ba220124807 --- /dev/null +++ b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/old.dbscheme @@ -0,0 +1,2046 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | --cil + * 3 | f1.cs + * 4 | f2.cs + * 5 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/semmlecode.csharp.dbscheme b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/semmlecode.csharp.dbscheme new file mode 100644 index 00000000000..ab09ac82875 --- /dev/null +++ b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/semmlecode.csharp.dbscheme @@ -0,0 +1,2054 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | --cil + * 3 | f1.cs + * 4 | f2.cs + * 5 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/upgrade.properties b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/upgrade.properties new file mode 100644 index 00000000000..453be5a92ce --- /dev/null +++ b/csharp/ql/lib/upgrades/ba2201248071b2bf0bb52909b35014091d2e18a6/upgrade.properties @@ -0,0 +1,3 @@ +description: Add 'kind' to 'attributes'. +compatability: backwards +attributes.rel: run attribute_kind.ql \ No newline at end of file diff --git a/csharp/ql/src/Stubs/make_stubs_nuget.py b/csharp/ql/src/Stubs/make_stubs_nuget.py index a238c921585..c95ab3a0258 100644 --- a/csharp/ql/src/Stubs/make_stubs_nuget.py +++ b/csharp/ql/src/Stubs/make_stubs_nuget.py @@ -8,7 +8,7 @@ import shutil def write_csproj_prefix(ioWrapper): ioWrapper.write('\n') ioWrapper.write(' \n') - ioWrapper.write(' net5.0\n') + ioWrapper.write(' net6.0\n') ioWrapper.write(' true\n') ioWrapper.write(' bin\\n') ioWrapper.write( @@ -60,7 +60,7 @@ jsonFile = os.path.join(rawOutputDir, outputName + '.json') version = helpers.get_argv(2, "latest") print("\n* Creating new input project") -run_cmd(['dotnet', 'new', 'classlib', "-f", "net5.0", "--language", "C#", '--name', +run_cmd(['dotnet', 'new', 'classlib', "-f", "net6.0", "--language", "C#", '--name', projectNameIn, '--output', projectDirIn]) helpers.remove_files(projectDirIn, '.cs') @@ -71,7 +71,7 @@ if (version != "latest"): cmd.append(version) run_cmd(cmd) -sdk_version = '5.0.402' +sdk_version = '6.0.101' print("\n* Creating new global.json file and setting SDK to " + sdk_version) run_cmd(['dotnet', 'new', 'globaljson', '--force', '--sdk-version', sdk_version, '--output', workDir]) diff --git a/csharp/ql/test/TestUtilities/InlineExpectationsTest.qll b/csharp/ql/test/TestUtilities/InlineExpectationsTest.qll index 52a790cca28..7d605a491ee 100644 --- a/csharp/ql/test/TestUtilities/InlineExpectationsTest.qll +++ b/csharp/ql/test/TestUtilities/InlineExpectationsTest.qll @@ -93,7 +93,7 @@ private import InlineExpectationsTestPrivate /** - * Base class for tests with inline expectations. The test extends this class to provide the actual + * The base class for tests with inline expectations. The test extends this class to provide the actual * results of the query, which are then compared with the expected results in comments to produce a * list of failure messages that point out where the actual results differ from the expected * results. @@ -123,6 +123,15 @@ abstract class InlineExpectationsTest extends string { */ abstract predicate hasActualResult(Location location, string element, string tag, string value); + /** + * Like `hasActualResult`, but returns results that do not require a matching annotation. + * A failure will still arise if there is an annotation that does not match any results, but not vice versa. + * Override this predicate to specify optional results. + */ + predicate hasOptionalResult(Location location, string element, string tag, string value) { + none() + } + final predicate hasFailureMessage(FailureLocatable element, string message) { exists(ActualResult actualResult | actualResult.getTest() = this and @@ -134,7 +143,8 @@ abstract class InlineExpectationsTest extends string { ) or not exists(ValidExpectation expectation | expectation.matchesActualResult(actualResult)) and - message = "Unexpected result: " + actualResult.getExpectationText() + message = "Unexpected result: " + actualResult.getExpectationText() and + not actualResult.isOptional() ) ) or @@ -243,9 +253,13 @@ private string expectationPattern() { private newtype TFailureLocatable = TActualResult( - InlineExpectationsTest test, Location location, string element, string tag, string value + InlineExpectationsTest test, Location location, string element, string tag, string value, + boolean optional ) { - test.hasActualResult(location, element, tag, value) + test.hasActualResult(location, element, tag, value) and + optional = false + or + test.hasOptionalResult(location, element, tag, value) and optional = true } or TValidExpectation(ExpectationComment comment, string tag, string value, string knownFailure) { exists(TColumn column, string tags | @@ -277,8 +291,9 @@ class ActualResult extends FailureLocatable, TActualResult { string element; string tag; string value; + boolean optional; - ActualResult() { this = TActualResult(test, location, element, tag, value) } + ActualResult() { this = TActualResult(test, location, element, tag, value, optional) } override string toString() { result = element } @@ -289,6 +304,8 @@ class ActualResult extends FailureLocatable, TActualResult { override string getTag() { result = tag } override string getValue() { result = value } + + predicate isOptional() { optional = true } } abstract private class Expectation extends FailureLocatable { diff --git a/csharp/ql/test/library-tests/arguments/PrintAst.expected b/csharp/ql/test/library-tests/arguments/PrintAst.expected index fa42026085d..dc04a837b4b 100644 --- a/csharp/ql/test/library-tests/arguments/PrintAst.expected +++ b/csharp/ql/test/library-tests/arguments/PrintAst.expected @@ -222,14 +222,14 @@ arguments.cs: # 66| 14: [Method] f6 # 66| -1: [TypeMention] Void #-----| 0: (Attributes) -# 65| 1: [Attribute] [My(...)] +# 65| 1: [DefaultAttribute] [My(...)] # 65| -1: [TypeMention] MyAttribute # 65| 0: [BoolLiteral] false # 66| 4: [BlockStmt] {...} # 69| 15: [Method] f7 # 69| -1: [TypeMention] Void #-----| 0: (Attributes) -# 68| 1: [Attribute] [My(...)] +# 68| 1: [DefaultAttribute] [My(...)] # 68| -1: [TypeMention] MyAttribute # 68| 0: [BoolLiteral] true # 68| 1: [StringLiteral] "" diff --git a/csharp/ql/test/library-tests/assemblies/compilation.expected b/csharp/ql/test/library-tests/assemblies/compilation.expected index 9fbb90c90ef..20cacbb0efd 100644 --- a/csharp/ql/test/library-tests/assemblies/compilation.expected +++ b/csharp/ql/test/library-tests/assemblies/compilation.expected @@ -1,9 +1,9 @@ | Assembly1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | no compilation | | Locations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | has compilation | | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | -| System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | -| System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e | no compilation | -| System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | -| System.Runtime.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e | no compilation | +| System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Runtime.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | diff --git a/csharp/ql/test/library-tests/attributes/AttributeArguments.expected b/csharp/ql/test/library-tests/attributes/AttributeArguments.expected index 22bd3b71cda..fe29160c8e0 100644 --- a/csharp/ql/test/library-tests/attributes/AttributeArguments.expected +++ b/csharp/ql/test/library-tests/attributes/AttributeArguments.expected @@ -17,30 +17,36 @@ arguments | Assembly1.dll:0:0:0:0 | [Custom(...)] | 5 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | | Assembly1.dll:0:0:0:0 | [Custom(...)] | 5 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | | Assembly1.dll:0:0:0:0 | [Custom(...)] | 5 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | -| attributes.cs:10:12:10:24 | [AssemblyTitle(...)] | 0 | attributes.cs:10:26:10:45 | "C# attributes test" | -| attributes.cs:11:12:11:30 | [AssemblyDescription(...)] | 0 | attributes.cs:11:32:11:56 | "A test of C# attributes" | -| attributes.cs:12:12:12:32 | [AssemblyConfiguration(...)] | 0 | attributes.cs:12:34:12:35 | "" | -| attributes.cs:13:12:13:26 | [AssemblyCompany(...)] | 0 | attributes.cs:13:28:13:39 | "Semmle Plc" | -| attributes.cs:14:12:14:26 | [AssemblyProduct(...)] | 0 | attributes.cs:14:28:14:34 | "Odasa" | -| attributes.cs:15:12:15:28 | [AssemblyCopyright(...)] | 0 | attributes.cs:15:30:15:54 | "Copyright \u00a9 Semmle 2018" | -| attributes.cs:16:12:16:28 | [AssemblyTrademark(...)] | 0 | attributes.cs:16:30:16:31 | "" | -| attributes.cs:17:12:17:26 | [AssemblyCulture(...)] | 0 | attributes.cs:17:28:17:29 | "" | -| attributes.cs:22:12:22:21 | [ComVisible(...)] | 0 | attributes.cs:22:23:22:27 | false | -| attributes.cs:25:12:25:15 | [Guid(...)] | 0 | attributes.cs:25:17:25:54 | "2f70fdd6-14aa-4850-b053-d547adb1f476" | -| attributes.cs:37:12:37:26 | [AssemblyVersion(...)] | 0 | attributes.cs:37:28:37:36 | "1.0.0.0" | -| attributes.cs:38:12:38:30 | [AssemblyFileVersion(...)] | 0 | attributes.cs:38:32:38:40 | "1.0.0.0" | -| attributes.cs:40:12:40:15 | [Args(...)] | 0 | attributes.cs:40:17:40:17 | 0 | -| attributes.cs:40:12:40:15 | [Args(...)] | 1 | attributes.cs:40:20:40:46 | array creation of type Object[] | -| attributes.cs:40:12:40:15 | [Args(...)] | 2 | attributes.cs:40:49:40:69 | typeof(...) | -| attributes.cs:40:12:40:15 | [Args(...)] | 3 | attributes.cs:40:72:40:76 | (...) ... | -| attributes.cs:40:12:40:15 | [Args(...)] | 4 | attributes.cs:40:79:40:82 | null | -| attributes.cs:40:12:40:15 | [Args(...)] | 5 | attributes.cs:40:92:40:122 | array creation of type Object[] | -| attributes.cs:41:10:41:13 | [Args(...)] | 0 | attributes.cs:41:15:41:15 | 0 | -| attributes.cs:41:10:41:13 | [Args(...)] | 1 | attributes.cs:41:18:41:44 | array creation of type Object[] | -| attributes.cs:41:10:41:13 | [Args(...)] | 2 | attributes.cs:41:47:41:67 | typeof(...) | -| attributes.cs:41:10:41:13 | [Args(...)] | 3 | attributes.cs:41:70:41:74 | (...) ... | -| attributes.cs:41:10:41:13 | [Args(...)] | 4 | attributes.cs:41:77:41:80 | null | -| attributes.cs:41:10:41:13 | [Args(...)] | 5 | attributes.cs:41:90:41:120 | array creation of type Object[] | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 0 | Assembly1.dll:0:0:0:0 | 42 | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 1 | Assembly1.dll:0:0:0:0 | array creation of type Int32[] | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 2 | Assembly1.dll:0:0:0:0 | null | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 3 | Assembly1.dll:0:0:0:0 | (...) ... | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 4 | Assembly1.dll:0:0:0:0 | array creation of type Int32[] | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 5 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | +| attributes.cs:10:12:10:24 | [assembly: AssemblyTitle(...)] | 0 | attributes.cs:10:26:10:45 | "C# attributes test" | +| attributes.cs:11:12:11:30 | [assembly: AssemblyDescription(...)] | 0 | attributes.cs:11:32:11:56 | "A test of C# attributes" | +| attributes.cs:12:12:12:32 | [assembly: AssemblyConfiguration(...)] | 0 | attributes.cs:12:34:12:35 | "" | +| attributes.cs:13:12:13:26 | [assembly: AssemblyCompany(...)] | 0 | attributes.cs:13:28:13:39 | "Semmle Plc" | +| attributes.cs:14:12:14:26 | [assembly: AssemblyProduct(...)] | 0 | attributes.cs:14:28:14:34 | "Odasa" | +| attributes.cs:15:12:15:28 | [assembly: AssemblyCopyright(...)] | 0 | attributes.cs:15:30:15:54 | "Copyright \u00a9 Semmle 2018" | +| attributes.cs:16:12:16:28 | [assembly: AssemblyTrademark(...)] | 0 | attributes.cs:16:30:16:31 | "" | +| attributes.cs:17:12:17:26 | [assembly: AssemblyCulture(...)] | 0 | attributes.cs:17:28:17:29 | "" | +| attributes.cs:22:12:22:21 | [assembly: ComVisible(...)] | 0 | attributes.cs:22:23:22:27 | false | +| attributes.cs:25:12:25:15 | [assembly: Guid(...)] | 0 | attributes.cs:25:17:25:54 | "2f70fdd6-14aa-4850-b053-d547adb1f476" | +| attributes.cs:37:12:37:26 | [assembly: AssemblyVersion(...)] | 0 | attributes.cs:37:28:37:36 | "1.0.0.0" | +| attributes.cs:38:12:38:30 | [assembly: AssemblyFileVersion(...)] | 0 | attributes.cs:38:32:38:40 | "1.0.0.0" | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 0 | attributes.cs:40:17:40:17 | 0 | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 1 | attributes.cs:40:20:40:46 | array creation of type Object[] | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 2 | attributes.cs:40:49:40:69 | typeof(...) | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 3 | attributes.cs:40:72:40:76 | (...) ... | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 4 | attributes.cs:40:79:40:82 | null | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 5 | attributes.cs:40:92:40:122 | array creation of type Object[] | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 0 | attributes.cs:41:15:41:15 | 0 | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 1 | attributes.cs:41:18:41:44 | array creation of type Object[] | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 2 | attributes.cs:41:47:41:67 | typeof(...) | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 3 | attributes.cs:41:70:41:74 | (...) ... | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 4 | attributes.cs:41:77:41:80 | null | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 5 | attributes.cs:41:90:41:120 | array creation of type Object[] | | attributes.cs:43:2:43:22 | [AttributeUsage(...)] | 0 | attributes.cs:43:24:43:50 | access to constant All | | attributes.cs:46:6:46:16 | [Conditional(...)] | 0 | attributes.cs:46:18:46:25 | "DEBUG2" | | attributes.cs:54:6:54:16 | [My(...)] | 0 | attributes.cs:54:18:54:22 | false | @@ -64,6 +70,26 @@ arguments | attributes.cs:80:6:80:9 | [Args(...)] | 3 | attributes.cs:80:48:80:52 | (...) ... | | attributes.cs:80:6:80:9 | [Args(...)] | 4 | attributes.cs:80:55:80:58 | null | | attributes.cs:80:6:80:9 | [Args(...)] | 5 | attributes.cs:80:68:80:98 | array creation of type Object[] | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 0 | attributes.cs:81:19:81:24 | ... + ... | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 1 | attributes.cs:81:27:81:47 | array creation of type Int32[] | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 2 | attributes.cs:81:50:81:53 | null | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 3 | attributes.cs:81:56:81:60 | (...) ... | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 4 | attributes.cs:81:63:81:66 | null | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 5 | attributes.cs:81:76:81:106 | array creation of type Object[] | +| attributes.cs:96:2:96:13 | [My3(...)] | 0 | attributes.cs:96:15:96:15 | 1 | +| attributes.cs:97:10:97:21 | [return: My3(...)] | 0 | attributes.cs:97:23:97:23 | 2 | +| attributes.cs:100:10:100:21 | [return: My3(...)] | 0 | attributes.cs:100:23:100:23 | 3 | +| attributes.cs:101:8:101:19 | [My3(...)] | 0 | attributes.cs:101:21:101:21 | 4 | +| attributes.cs:106:6:106:17 | [My3(...)] | 0 | attributes.cs:106:19:106:19 | 5 | +| attributes.cs:107:14:107:25 | [return: My3(...)] | 0 | attributes.cs:107:27:107:27 | 6 | +| attributes.cs:112:10:112:21 | [My3(...)] | 0 | attributes.cs:112:23:112:23 | 7 | +| attributes.cs:113:18:113:29 | [return: My3(...)] | 0 | attributes.cs:113:31:113:31 | 8 | +| attributes.cs:116:18:116:29 | [My3(...)] | 0 | attributes.cs:116:31:116:31 | 9 | +| attributes.cs:117:17:117:28 | [My3(...)] | 0 | attributes.cs:117:30:117:31 | 10 | +| attributes.cs:124:18:124:29 | [My3(...)] | 0 | attributes.cs:124:31:124:32 | 11 | +| attributes.cs:125:18:125:29 | [return: My3(...)] | 0 | attributes.cs:125:31:125:32 | 12 | +| attributes.cs:128:10:128:21 | [My3(...)] | 0 | attributes.cs:128:23:128:24 | 13 | +| attributes.cs:129:17:129:28 | [My3(...)] | 0 | attributes.cs:129:30:129:31 | 14 | constructorArguments | Assembly1.dll:0:0:0:0 | [Custom(...)] | 0 | Assembly1.dll:0:0:0:0 | 1 | | Assembly1.dll:0:0:0:0 | [Custom(...)] | 0 | Assembly1.dll:0:0:0:0 | 3 | @@ -80,28 +106,33 @@ constructorArguments | Assembly1.dll:0:0:0:0 | [Custom(...)] | 4 | Assembly1.dll:0:0:0:0 | array creation of type Int32[] | | Assembly1.dll:0:0:0:0 | [Custom(...)] | 4 | Assembly1.dll:0:0:0:0 | null | | Assembly1.dll:0:0:0:0 | [Custom(...)] | 4 | Assembly1.dll:0:0:0:0 | null | -| attributes.cs:10:12:10:24 | [AssemblyTitle(...)] | 0 | attributes.cs:10:26:10:45 | "C# attributes test" | -| attributes.cs:11:12:11:30 | [AssemblyDescription(...)] | 0 | attributes.cs:11:32:11:56 | "A test of C# attributes" | -| attributes.cs:12:12:12:32 | [AssemblyConfiguration(...)] | 0 | attributes.cs:12:34:12:35 | "" | -| attributes.cs:13:12:13:26 | [AssemblyCompany(...)] | 0 | attributes.cs:13:28:13:39 | "Semmle Plc" | -| attributes.cs:14:12:14:26 | [AssemblyProduct(...)] | 0 | attributes.cs:14:28:14:34 | "Odasa" | -| attributes.cs:15:12:15:28 | [AssemblyCopyright(...)] | 0 | attributes.cs:15:30:15:54 | "Copyright \u00a9 Semmle 2018" | -| attributes.cs:16:12:16:28 | [AssemblyTrademark(...)] | 0 | attributes.cs:16:30:16:31 | "" | -| attributes.cs:17:12:17:26 | [AssemblyCulture(...)] | 0 | attributes.cs:17:28:17:29 | "" | -| attributes.cs:22:12:22:21 | [ComVisible(...)] | 0 | attributes.cs:22:23:22:27 | false | -| attributes.cs:25:12:25:15 | [Guid(...)] | 0 | attributes.cs:25:17:25:54 | "2f70fdd6-14aa-4850-b053-d547adb1f476" | -| attributes.cs:37:12:37:26 | [AssemblyVersion(...)] | 0 | attributes.cs:37:28:37:36 | "1.0.0.0" | -| attributes.cs:38:12:38:30 | [AssemblyFileVersion(...)] | 0 | attributes.cs:38:32:38:40 | "1.0.0.0" | -| attributes.cs:40:12:40:15 | [Args(...)] | 0 | attributes.cs:40:17:40:17 | 0 | -| attributes.cs:40:12:40:15 | [Args(...)] | 1 | attributes.cs:40:20:40:46 | array creation of type Object[] | -| attributes.cs:40:12:40:15 | [Args(...)] | 2 | attributes.cs:40:49:40:69 | typeof(...) | -| attributes.cs:40:12:40:15 | [Args(...)] | 3 | attributes.cs:40:72:40:76 | (...) ... | -| attributes.cs:40:12:40:15 | [Args(...)] | 4 | attributes.cs:40:79:40:82 | null | -| attributes.cs:41:10:41:13 | [Args(...)] | 0 | attributes.cs:41:15:41:15 | 0 | -| attributes.cs:41:10:41:13 | [Args(...)] | 1 | attributes.cs:41:18:41:44 | array creation of type Object[] | -| attributes.cs:41:10:41:13 | [Args(...)] | 2 | attributes.cs:41:47:41:67 | typeof(...) | -| attributes.cs:41:10:41:13 | [Args(...)] | 3 | attributes.cs:41:70:41:74 | (...) ... | -| attributes.cs:41:10:41:13 | [Args(...)] | 4 | attributes.cs:41:77:41:80 | null | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 0 | Assembly1.dll:0:0:0:0 | 42 | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 1 | Assembly1.dll:0:0:0:0 | array creation of type Int32[] | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 2 | Assembly1.dll:0:0:0:0 | null | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 3 | Assembly1.dll:0:0:0:0 | (...) ... | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | 4 | Assembly1.dll:0:0:0:0 | array creation of type Int32[] | +| attributes.cs:10:12:10:24 | [assembly: AssemblyTitle(...)] | 0 | attributes.cs:10:26:10:45 | "C# attributes test" | +| attributes.cs:11:12:11:30 | [assembly: AssemblyDescription(...)] | 0 | attributes.cs:11:32:11:56 | "A test of C# attributes" | +| attributes.cs:12:12:12:32 | [assembly: AssemblyConfiguration(...)] | 0 | attributes.cs:12:34:12:35 | "" | +| attributes.cs:13:12:13:26 | [assembly: AssemblyCompany(...)] | 0 | attributes.cs:13:28:13:39 | "Semmle Plc" | +| attributes.cs:14:12:14:26 | [assembly: AssemblyProduct(...)] | 0 | attributes.cs:14:28:14:34 | "Odasa" | +| attributes.cs:15:12:15:28 | [assembly: AssemblyCopyright(...)] | 0 | attributes.cs:15:30:15:54 | "Copyright \u00a9 Semmle 2018" | +| attributes.cs:16:12:16:28 | [assembly: AssemblyTrademark(...)] | 0 | attributes.cs:16:30:16:31 | "" | +| attributes.cs:17:12:17:26 | [assembly: AssemblyCulture(...)] | 0 | attributes.cs:17:28:17:29 | "" | +| attributes.cs:22:12:22:21 | [assembly: ComVisible(...)] | 0 | attributes.cs:22:23:22:27 | false | +| attributes.cs:25:12:25:15 | [assembly: Guid(...)] | 0 | attributes.cs:25:17:25:54 | "2f70fdd6-14aa-4850-b053-d547adb1f476" | +| attributes.cs:37:12:37:26 | [assembly: AssemblyVersion(...)] | 0 | attributes.cs:37:28:37:36 | "1.0.0.0" | +| attributes.cs:38:12:38:30 | [assembly: AssemblyFileVersion(...)] | 0 | attributes.cs:38:32:38:40 | "1.0.0.0" | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 0 | attributes.cs:40:17:40:17 | 0 | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 1 | attributes.cs:40:20:40:46 | array creation of type Object[] | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 2 | attributes.cs:40:49:40:69 | typeof(...) | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 3 | attributes.cs:40:72:40:76 | (...) ... | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | 4 | attributes.cs:40:79:40:82 | null | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 0 | attributes.cs:41:15:41:15 | 0 | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 1 | attributes.cs:41:18:41:44 | array creation of type Object[] | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 2 | attributes.cs:41:47:41:67 | typeof(...) | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 3 | attributes.cs:41:70:41:74 | (...) ... | +| attributes.cs:41:10:41:13 | [module: Args(...)] | 4 | attributes.cs:41:77:41:80 | null | | attributes.cs:43:2:43:22 | [AttributeUsage(...)] | 0 | attributes.cs:43:24:43:50 | access to constant All | | attributes.cs:46:6:46:16 | [Conditional(...)] | 0 | attributes.cs:46:18:46:25 | "DEBUG2" | | attributes.cs:54:6:54:16 | [My(...)] | 0 | attributes.cs:54:18:54:22 | false | @@ -120,14 +151,35 @@ constructorArguments | attributes.cs:80:6:80:9 | [Args(...)] | 2 | attributes.cs:80:42:80:45 | null | | attributes.cs:80:6:80:9 | [Args(...)] | 3 | attributes.cs:80:48:80:52 | (...) ... | | attributes.cs:80:6:80:9 | [Args(...)] | 4 | attributes.cs:80:55:80:58 | null | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 0 | attributes.cs:81:19:81:24 | ... + ... | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 1 | attributes.cs:81:27:81:47 | array creation of type Int32[] | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 2 | attributes.cs:81:50:81:53 | null | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 3 | attributes.cs:81:56:81:60 | (...) ... | +| attributes.cs:81:14:81:17 | [return: Args(...)] | 4 | attributes.cs:81:63:81:66 | null | +| attributes.cs:96:2:96:13 | [My3(...)] | 0 | attributes.cs:96:15:96:15 | 1 | +| attributes.cs:97:10:97:21 | [return: My3(...)] | 0 | attributes.cs:97:23:97:23 | 2 | +| attributes.cs:100:10:100:21 | [return: My3(...)] | 0 | attributes.cs:100:23:100:23 | 3 | +| attributes.cs:101:8:101:19 | [My3(...)] | 0 | attributes.cs:101:21:101:21 | 4 | +| attributes.cs:106:6:106:17 | [My3(...)] | 0 | attributes.cs:106:19:106:19 | 5 | +| attributes.cs:107:14:107:25 | [return: My3(...)] | 0 | attributes.cs:107:27:107:27 | 6 | +| attributes.cs:112:10:112:21 | [My3(...)] | 0 | attributes.cs:112:23:112:23 | 7 | +| attributes.cs:113:18:113:29 | [return: My3(...)] | 0 | attributes.cs:113:31:113:31 | 8 | +| attributes.cs:116:18:116:29 | [My3(...)] | 0 | attributes.cs:116:31:116:31 | 9 | +| attributes.cs:117:17:117:28 | [My3(...)] | 0 | attributes.cs:117:30:117:31 | 10 | +| attributes.cs:124:18:124:29 | [My3(...)] | 0 | attributes.cs:124:31:124:32 | 11 | +| attributes.cs:125:18:125:29 | [return: My3(...)] | 0 | attributes.cs:125:31:125:32 | 12 | +| attributes.cs:128:10:128:21 | [My3(...)] | 0 | attributes.cs:128:23:128:24 | 13 | +| attributes.cs:129:17:129:28 | [My3(...)] | 0 | attributes.cs:129:30:129:31 | 14 | namedArguments | Assembly1.dll:0:0:0:0 | [Custom(...)] | Prop2 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | | Assembly1.dll:0:0:0:0 | [Custom(...)] | Prop2 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | | Assembly1.dll:0:0:0:0 | [Custom(...)] | Prop2 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | -| attributes.cs:40:12:40:15 | [Args(...)] | Prop | attributes.cs:40:92:40:122 | array creation of type Object[] | -| attributes.cs:41:10:41:13 | [Args(...)] | Prop | attributes.cs:41:90:41:120 | array creation of type Object[] | +| Assembly1.dll:0:0:0:0 | [return: Custom(...)] | Prop2 | Assembly1.dll:0:0:0:0 | array creation of type Object[] | +| attributes.cs:40:12:40:15 | [assembly: Args(...)] | Prop | attributes.cs:40:92:40:122 | array creation of type Object[] | +| attributes.cs:41:10:41:13 | [module: Args(...)] | Prop | attributes.cs:41:90:41:120 | array creation of type Object[] | | attributes.cs:57:6:57:16 | [My(...)] | x | attributes.cs:57:36:57:36 | 0 | | attributes.cs:57:6:57:16 | [My(...)] | y | attributes.cs:57:28:57:29 | "" | | attributes.cs:58:6:58:8 | [My2(...)] | X | attributes.cs:58:39:58:40 | 42 | | attributes.cs:77:2:77:5 | [Args(...)] | Prop | attributes.cs:77:63:77:93 | array creation of type Object[] | | attributes.cs:80:6:80:9 | [Args(...)] | Prop | attributes.cs:80:68:80:98 | array creation of type Object[] | +| attributes.cs:81:14:81:17 | [return: Args(...)] | Prop | attributes.cs:81:76:81:106 | array creation of type Object[] | diff --git a/csharp/ql/test/library-tests/attributes/AttributeComments.expected b/csharp/ql/test/library-tests/attributes/AttributeComments.expected index 75ec635cc6a..55c71024afe 100644 --- a/csharp/ql/test/library-tests/attributes/AttributeComments.expected +++ b/csharp/ql/test/library-tests/attributes/AttributeComments.expected @@ -1,4 +1,4 @@ -| attributes.cs:10:12:10:24 | [AssemblyTitle(...)] | attributes.cs:7:1:9:31 | // ... | -| attributes.cs:22:12:22:21 | [ComVisible(...)] | attributes.cs:19:1:21:58 | // ... | -| attributes.cs:25:12:25:15 | [Guid(...)] | attributes.cs:24:1:24:84 | // ... | -| attributes.cs:37:12:37:26 | [AssemblyVersion(...)] | attributes.cs:27:1:36:39 | // ... | +| attributes.cs:10:12:10:24 | [assembly: AssemblyTitle(...)] | attributes.cs:7:1:9:31 | // ... | +| attributes.cs:22:12:22:21 | [assembly: ComVisible(...)] | attributes.cs:19:1:21:58 | // ... | +| attributes.cs:25:12:25:15 | [assembly: Guid(...)] | attributes.cs:24:1:24:84 | // ... | +| attributes.cs:37:12:37:26 | [assembly: AssemblyVersion(...)] | attributes.cs:27:1:36:39 | // ... | diff --git a/csharp/ql/test/library-tests/attributes/AttributeElements.expected b/csharp/ql/test/library-tests/attributes/AttributeElements.expected index b9e12f35bcf..ffdef293b70 100644 --- a/csharp/ql/test/library-tests/attributes/AttributeElements.expected +++ b/csharp/ql/test/library-tests/attributes/AttributeElements.expected @@ -17,17 +17,32 @@ | attributes.cs:59:10:59:11 | M2 | attributes.cs:58:6:58:8 | [My2(...)] | My2Attribute | | attributes.cs:78:14:78:14 | X | attributes.cs:77:2:77:5 | [Args(...)] | ArgsAttribute | | attributes.cs:82:9:82:18 | SomeMethod | attributes.cs:80:6:80:9 | [Args(...)] | ArgsAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:10:12:10:24 | [AssemblyTitle(...)] | System.Reflection.AssemblyTitleAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:11:12:11:30 | [AssemblyDescription(...)] | System.Reflection.AssemblyDescriptionAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:12:12:12:32 | [AssemblyConfiguration(...)] | System.Reflection.AssemblyConfigurationAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:13:12:13:26 | [AssemblyCompany(...)] | System.Reflection.AssemblyCompanyAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:14:12:14:26 | [AssemblyProduct(...)] | System.Reflection.AssemblyProductAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:15:12:15:28 | [AssemblyCopyright(...)] | System.Reflection.AssemblyCopyrightAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:16:12:16:28 | [AssemblyTrademark(...)] | System.Reflection.AssemblyTrademarkAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:17:12:17:26 | [AssemblyCulture(...)] | System.Reflection.AssemblyCultureAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:22:12:22:21 | [ComVisible(...)] | System.Runtime.InteropServices.ComVisibleAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:25:12:25:15 | [Guid(...)] | System.Runtime.InteropServices.GuidAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:37:12:37:26 | [AssemblyVersion(...)] | System.Reflection.AssemblyVersionAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:38:12:38:30 | [AssemblyFileVersion(...)] | System.Reflection.AssemblyFileVersionAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:40:12:40:15 | [Args(...)] | ArgsAttribute | -| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:41:10:41:13 | [Args(...)] | ArgsAttribute | +| attributes.cs:82:9:82:18 | SomeMethod | attributes.cs:81:14:81:17 | [return: Args(...)] | ArgsAttribute | +| attributes.cs:98:14:98:24 | Invoke | attributes.cs:97:10:97:21 | [return: My3(...)] | My3Attribute | +| attributes.cs:98:14:98:24 | My1Delegate | attributes.cs:96:2:96:13 | [My3(...)] | My3Attribute | +| attributes.cs:102:17:102:27 | Invoke | attributes.cs:100:10:100:21 | [return: My3(...)] | My3Attribute | +| attributes.cs:102:17:102:27 | My2Delegate | attributes.cs:101:8:101:19 | [My3(...)] | My3Attribute | +| attributes.cs:108:32:108:32 | + | attributes.cs:106:6:106:17 | [My3(...)] | My3Attribute | +| attributes.cs:108:32:108:32 | + | attributes.cs:107:14:107:25 | [return: My3(...)] | My3Attribute | +| attributes.cs:114:9:114:11 | get_Item | attributes.cs:112:10:112:21 | [My3(...)] | My3Attribute | +| attributes.cs:114:9:114:11 | get_Item | attributes.cs:113:18:113:29 | [return: My3(...)] | My3Attribute | +| attributes.cs:118:9:118:11 | set_Item | attributes.cs:116:18:116:29 | [My3(...)] | My3Attribute | +| attributes.cs:118:9:118:11 | value | attributes.cs:117:17:117:28 | [My3(...)] | My3Attribute | +| attributes.cs:126:9:126:11 | get_Prop1 | attributes.cs:124:18:124:29 | [My3(...)] | My3Attribute | +| attributes.cs:126:9:126:11 | get_Prop1 | attributes.cs:125:18:125:29 | [return: My3(...)] | My3Attribute | +| attributes.cs:130:9:130:11 | set_Prop1 | attributes.cs:128:10:128:21 | [My3(...)] | My3Attribute | +| attributes.cs:130:9:130:11 | value | attributes.cs:129:17:129:28 | [My3(...)] | My3Attribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:10:12:10:24 | [assembly: AssemblyTitle(...)] | System.Reflection.AssemblyTitleAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:11:12:11:30 | [assembly: AssemblyDescription(...)] | System.Reflection.AssemblyDescriptionAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:12:12:12:32 | [assembly: AssemblyConfiguration(...)] | System.Reflection.AssemblyConfigurationAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:13:12:13:26 | [assembly: AssemblyCompany(...)] | System.Reflection.AssemblyCompanyAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:14:12:14:26 | [assembly: AssemblyProduct(...)] | System.Reflection.AssemblyProductAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:15:12:15:28 | [assembly: AssemblyCopyright(...)] | System.Reflection.AssemblyCopyrightAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:16:12:16:28 | [assembly: AssemblyTrademark(...)] | System.Reflection.AssemblyTrademarkAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:17:12:17:26 | [assembly: AssemblyCulture(...)] | System.Reflection.AssemblyCultureAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:22:12:22:21 | [assembly: ComVisible(...)] | System.Runtime.InteropServices.ComVisibleAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:25:12:25:15 | [assembly: Guid(...)] | System.Runtime.InteropServices.GuidAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:37:12:37:26 | [assembly: AssemblyVersion(...)] | System.Reflection.AssemblyVersionAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:38:12:38:30 | [assembly: AssemblyFileVersion(...)] | System.Reflection.AssemblyFileVersionAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:40:12:40:15 | [assembly: Args(...)] | ArgsAttribute | +| attributes.dll:0:0:0:0 | attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | attributes.cs:41:10:41:13 | [module: Args(...)] | ArgsAttribute | diff --git a/csharp/ql/test/library-tests/attributes/AttributeElements.ql b/csharp/ql/test/library-tests/attributes/AttributeElements.ql index c0d62ed0e63..cbcfae12bda 100644 --- a/csharp/ql/test/library-tests/attributes/AttributeElements.ql +++ b/csharp/ql/test/library-tests/attributes/AttributeElements.ql @@ -3,5 +3,5 @@ import csharp from Attributable element, Attribute attribute where attribute = element.getAnAttribute() and - (element.(Element).fromSource() or element.(Assembly).getName() in ["attributes", "Assembly1"]) + (attribute.fromSource() or element.(Assembly).getName() in ["attributes", "Assembly1"]) select element, attribute, attribute.getType().getQualifiedName() diff --git a/csharp/ql/test/library-tests/attributes/PrintAst.expected b/csharp/ql/test/library-tests/attributes/PrintAst.expected index 5876e9521e9..4dd3f129651 100644 --- a/csharp/ql/test/library-tests/attributes/PrintAst.expected +++ b/csharp/ql/test/library-tests/attributes/PrintAst.expected @@ -1,41 +1,41 @@ attributes.cs: -# 10| [Attribute] [AssemblyTitle(...)] +# 10| [AssemblyAttribute] [assembly: AssemblyTitle(...)] # 10| -1: [TypeMention] AssemblyTitleAttribute # 10| 0: [StringLiteral] "C# attributes test" -# 11| [Attribute] [AssemblyDescription(...)] +# 11| [AssemblyAttribute] [assembly: AssemblyDescription(...)] # 11| -1: [TypeMention] AssemblyDescriptionAttribute # 11| 0: [StringLiteral] "A test of C# attributes" -# 12| [Attribute] [AssemblyConfiguration(...)] +# 12| [AssemblyAttribute] [assembly: AssemblyConfiguration(...)] # 12| -1: [TypeMention] AssemblyConfigurationAttribute # 12| 0: [StringLiteral] "" -# 13| [Attribute] [AssemblyCompany(...)] +# 13| [AssemblyAttribute] [assembly: AssemblyCompany(...)] # 13| -1: [TypeMention] AssemblyCompanyAttribute # 13| 0: [StringLiteral] "Semmle Plc" -# 14| [Attribute] [AssemblyProduct(...)] +# 14| [AssemblyAttribute] [assembly: AssemblyProduct(...)] # 14| -1: [TypeMention] AssemblyProductAttribute # 14| 0: [StringLiteral] "Odasa" -# 15| [Attribute] [AssemblyCopyright(...)] +# 15| [AssemblyAttribute] [assembly: AssemblyCopyright(...)] # 15| -1: [TypeMention] AssemblyCopyrightAttribute # 15| 0: [StringLiteral] "Copyright © Semmle 2018" -# 16| [Attribute] [AssemblyTrademark(...)] +# 16| [AssemblyAttribute] [assembly: AssemblyTrademark(...)] # 16| -1: [TypeMention] AssemblyTrademarkAttribute # 16| 0: [StringLiteral] "" -# 17| [Attribute] [AssemblyCulture(...)] +# 17| [AssemblyAttribute] [assembly: AssemblyCulture(...)] # 17| -1: [TypeMention] AssemblyCultureAttribute # 17| 0: [StringLiteral] "" -# 22| [Attribute] [ComVisible(...)] +# 22| [AssemblyAttribute] [assembly: ComVisible(...)] # 22| -1: [TypeMention] ComVisibleAttribute # 22| 0: [BoolLiteral] false -# 25| [Attribute] [Guid(...)] +# 25| [AssemblyAttribute] [assembly: Guid(...)] # 25| -1: [TypeMention] GuidAttribute # 25| 0: [StringLiteral] "2f70fdd6-14aa-4850-b053-d547adb1f476" -# 37| [Attribute] [AssemblyVersion(...)] +# 37| [AssemblyAttribute] [assembly: AssemblyVersion(...)] # 37| -1: [TypeMention] AssemblyVersionAttribute # 37| 0: [StringLiteral] "1.0.0.0" -# 38| [Attribute] [AssemblyFileVersion(...)] +# 38| [AssemblyAttribute] [assembly: AssemblyFileVersion(...)] # 38| -1: [TypeMention] AssemblyFileVersionAttribute # 38| 0: [StringLiteral] "1.0.0.0" -# 40| [Attribute] [Args(...)] +# 40| [AssemblyAttribute] [assembly: Args(...)] # 40| -1: [TypeMention] ArgsAttribute # 40| 0: [IntLiteral] 0 # 40| 1: [ArrayCreation] array creation of type Object[] @@ -64,7 +64,7 @@ attributes.cs: # 40| 1: [TypeofExpr] typeof(...) # 40| 0: [TypeAccess] access to type Int32 # 40| 0: [TypeMention] int -# 41| [Attribute] [Args(...)] +# 41| [ModuleAttribute] [module: Args(...)] # 41| -1: [TypeMention] ArgsAttribute # 41| 0: [IntLiteral] 0 # 41| 1: [ArrayCreation] array creation of type Object[] @@ -95,7 +95,7 @@ attributes.cs: # 41| 0: [TypeMention] int # 44| [Class] Foo #-----| 0: (Attributes) -# 43| 1: [Attribute] [AttributeUsage(...)] +# 43| 1: [DefaultAttribute] [AttributeUsage(...)] # 43| -1: [TypeMention] AttributeUsageAttribute # 43| 0: [MemberConstantAccess] access to constant All # 43| -1: [TypeAccess] access to type AttributeTargets @@ -105,7 +105,7 @@ attributes.cs: # 47| 5: [Method] foo # 47| -1: [TypeMention] Void #-----| 0: (Attributes) -# 46| 1: [Attribute] [Conditional(...)] +# 46| 1: [DefaultAttribute] [Conditional(...)] # 46| -1: [TypeMention] ConditionalAttribute # 46| 0: [StringLiteral] "DEBUG2" # 47| 4: [BlockStmt] {...} @@ -116,7 +116,7 @@ attributes.cs: # 52| 0: [Parameter] x # 52| -1: [TypeMention] int #-----| 0: (Attributes) -# 52| 1: [Attribute] [Foo(...)] +# 52| 1: [DefaultAttribute] [Foo(...)] # 52| 0: [TypeMention] Foo # 52| 4: [BlockStmt] {...} # 52| 0: [ReturnStmt] return ...; @@ -126,19 +126,19 @@ attributes.cs: # 55| 6: [Method] M1 # 55| -1: [TypeMention] Void #-----| 0: (Attributes) -# 54| 1: [Attribute] [My(...)] +# 54| 1: [DefaultAttribute] [My(...)] # 54| -1: [TypeMention] MyAttribute # 54| 0: [BoolLiteral] false # 55| 4: [BlockStmt] {...} # 59| 7: [Method] M2 # 59| -1: [TypeMention] Void #-----| 0: (Attributes) -# 57| 1: [Attribute] [My(...)] +# 57| 1: [DefaultAttribute] [My(...)] # 57| -1: [TypeMention] MyAttribute # 57| 0: [BoolLiteral] true # 57| 1: [StringLiteral] "" # 57| 2: [IntLiteral] 0 -# 58| 2: [Attribute] [My2(...)] +# 58| 2: [DefaultAttribute] [My2(...)] # 58| -1: [TypeMention] My2Attribute # 58| 0: [BoolLiteral] false # 58| 1: [BoolLiteral] true @@ -192,7 +192,7 @@ attributes.cs: # 74| 4: [BlockStmt] {...} # 78| [Class] X #-----| 0: (Attributes) -# 77| 1: [Attribute] [Args(...)] +# 77| 1: [DefaultAttribute] [Args(...)] # 77| -1: [TypeMention] ArgsAttribute # 77| 0: [IntLiteral] 42 # 77| 1: [NullLiteral] null @@ -221,7 +221,7 @@ attributes.cs: # 82| 5: [Method] SomeMethod # 82| -1: [TypeMention] int #-----| 0: (Attributes) -# 80| 1: [Attribute] [Args(...)] +# 80| 1: [DefaultAttribute] [Args(...)] # 80| -1: [TypeMention] ArgsAttribute # 80| 0: [AddExpr] ... + ... # 80| 0: [IntLiteral] 42 @@ -248,6 +248,33 @@ attributes.cs: # 80| 1: [TypeofExpr] typeof(...) # 80| 0: [TypeAccess] access to type Int32 # 80| 0: [TypeMention] int +# 81| 2: [ReturnAttribute] [return: Args(...)] +# 81| -1: [TypeMention] ArgsAttribute +# 81| 0: [AddExpr] ... + ... +# 81| 0: [IntLiteral] 42 +# 81| 1: [IntLiteral] 0 +# 81| 1: [ArrayCreation] array creation of type Int32[] +# 81| -2: [TypeMention] Int32[] +# 81| 1: [TypeMention] int +# 81| -1: [ArrayInitializer] { ..., ... } +# 81| 0: [IntLiteral] 1 +# 81| 1: [IntLiteral] 2 +# 81| 2: [IntLiteral] 3 +# 81| 2: [NullLiteral] null +# 81| 3: [CastExpr] (...) ... +# 81| 0: [TypeAccess] access to type E +# 81| 0: [TypeMention] E +# 81| 1: [IntLiteral] 12 +# 81| 4: [NullLiteral] null +# 81| 5: [ArrayCreation] array creation of type Object[] +# 81| -2: [TypeMention] Object[] +# 81| 1: [TypeMention] object +# 81| -1: [ArrayInitializer] { ..., ... } +# 81| 0: [CastExpr] (...) ... +# 81| 1: [IntLiteral] 1 +# 81| 1: [TypeofExpr] typeof(...) +# 81| 0: [TypeAccess] access to type Int32 +# 81| 0: [TypeMention] int # 82| 4: [BlockStmt] {...} # 82| 0: [ReturnStmt] return ...; # 82| 0: [IntLiteral] 1 @@ -273,3 +300,108 @@ attributes.cs: # 88| -1: [TypeMention] int # 88| 1: [IntLiteral] 13 # 88| 4: [BlockStmt] {...} +# 91| [Class] My3Attribute +#-----| 3: (Base types) +# 91| 0: [TypeMention] Attribute +# 93| 4: [InstanceConstructor] My3Attribute +#-----| 2: (Parameters) +# 93| 0: [Parameter] x +# 93| -1: [TypeMention] int +# 93| 4: [BlockStmt] {...} +# 98| [DelegateType] My1Delegate +#-----| 0: (Attributes) +# 96| 1: [DefaultAttribute] [My3(...)] +# 96| -1: [TypeMention] My3Attribute +# 96| 0: [IntLiteral] 1 +#-----| 2: (Parameters) +# 98| 0: [Parameter] message +# 98| -1: [TypeMention] string +# 102| [DelegateType] My2Delegate +#-----| 0: (Attributes) +# 101| 1: [DefaultAttribute] [My3(...)] +# 101| -1: [TypeMention] My3Attribute +# 101| 0: [IntLiteral] 4 +#-----| 2: (Parameters) +# 102| 0: [Parameter] message +# 102| -1: [TypeMention] string +# 104| [Class] MyAttributeUsage +# 108| 5: [AddOperator] + +# 108| -1: [TypeMention] int +#-----| 0: (Attributes) +# 106| 1: [DefaultAttribute] [My3(...)] +# 106| -1: [TypeMention] My3Attribute +# 106| 0: [IntLiteral] 5 +# 107| 2: [ReturnAttribute] [return: My3(...)] +# 107| -1: [TypeMention] My3Attribute +# 107| 0: [IntLiteral] 6 +#-----| 2: (Parameters) +# 108| 0: [Parameter] a +# 108| -1: [TypeMention] MyAttributeUsage +# 108| 1: [Parameter] b +# 108| -1: [TypeMention] MyAttributeUsage +# 108| 4: [IntLiteral] 0 +# 110| 6: [Indexer] Item +# 110| -1: [TypeMention] int +#-----| 1: (Parameters) +# 110| 0: [Parameter] x +# 110| -1: [TypeMention] int +# 114| 3: [Getter] get_Item +#-----| 0: (Attributes) +# 112| 1: [DefaultAttribute] [My3(...)] +# 112| -1: [TypeMention] My3Attribute +# 112| 0: [IntLiteral] 7 +# 113| 2: [ReturnAttribute] [return: My3(...)] +# 113| -1: [TypeMention] My3Attribute +# 113| 0: [IntLiteral] 8 +#-----| 2: (Parameters) +# 110| 0: [Parameter] x +# 114| 4: [BlockStmt] {...} +# 114| 0: [ReturnStmt] return ...; +# 114| 0: [AddExpr] ... + ... +# 114| 0: [ParameterAccess] access to parameter x +# 114| 1: [IntLiteral] 1 +# 118| 4: [Setter] set_Item +#-----| 0: (Attributes) +# 116| 1: [DefaultAttribute] [My3(...)] +# 116| -1: [TypeMention] My3Attribute +# 116| 0: [IntLiteral] 9 +#-----| 2: (Parameters) +# 110| 0: [Parameter] x +# 118| 1: [Parameter] value +#-----| 0: (Attributes) +# 117| 1: [DefaultAttribute] [My3(...)] +# 117| -1: [TypeMention] My3Attribute +# 117| 0: [IntLiteral] 10 +# 118| 4: [BlockStmt] {...} +# 118| 0: [ReturnStmt] return ...; +# 121| 7: [Field] p +# 121| -1: [TypeMention] int +# 122| 8: [Property] Prop1 +# 122| -1: [TypeMention] int +# 126| 3: [Getter] get_Prop1 +#-----| 0: (Attributes) +# 124| 1: [DefaultAttribute] [My3(...)] +# 124| -1: [TypeMention] My3Attribute +# 124| 0: [IntLiteral] 11 +# 125| 2: [ReturnAttribute] [return: My3(...)] +# 125| -1: [TypeMention] My3Attribute +# 125| 0: [IntLiteral] 12 +# 126| 4: [BlockStmt] {...} +# 126| 0: [ReturnStmt] return ...; +# 126| 0: [FieldAccess] access to field p +# 130| 4: [Setter] set_Prop1 +#-----| 0: (Attributes) +# 128| 1: [DefaultAttribute] [My3(...)] +# 128| -1: [TypeMention] My3Attribute +# 128| 0: [IntLiteral] 13 +#-----| 2: (Parameters) +# 130| 0: [Parameter] value +#-----| 0: (Attributes) +# 129| 1: [DefaultAttribute] [My3(...)] +# 129| -1: [TypeMention] My3Attribute +# 129| 0: [IntLiteral] 14 +# 130| 4: [BlockStmt] {...} +# 130| 0: [ExprStmt] ...; +# 130| 0: [AssignExpr] ... = ... +# 130| 0: [FieldAccess] access to field p +# 130| 1: [ParameterAccess] access to parameter value diff --git a/csharp/ql/test/library-tests/attributes/attributes.cs b/csharp/ql/test/library-tests/attributes/attributes.cs index 7f03eb9c941..6790d7ff02d 100644 --- a/csharp/ql/test/library-tests/attributes/attributes.cs +++ b/csharp/ql/test/library-tests/attributes/attributes.cs @@ -86,4 +86,47 @@ class My2Attribute : Attribute { public int X { get; set; } public My2Attribute(bool a, bool b, int i = 12, int j = 13) { } +} + +class My3Attribute : Attribute +{ + public My3Attribute(int x) { } +} + +[My3Attribute(1)] +[return: My3Attribute(2)] +delegate int My1Delegate(string message); + +[return: My3Attribute(3)] +[type: My3Attribute(4)] +delegate string My2Delegate(string message); + +public class MyAttributeUsage +{ + [My3Attribute(5)] + [return: My3Attribute(6)] + public static int operator +(MyAttributeUsage a, MyAttributeUsage b) => 0; + + public int this[int x] + { + [My3Attribute(7)] + [return: My3Attribute(8)] + get { return x + 1; } + + [method: My3Attribute(9)] + [param: My3Attribute(10)] + set { return; } + } + + private int p; + public int Prop1 + { + [method: My3Attribute(11)] + [return: My3Attribute(12)] + get { return p; } + + [My3Attribute(13)] + [param: My3Attribute(14)] + set { p = value; } + } } \ No newline at end of file diff --git a/csharp/ql/test/library-tests/cil/attributes/attribute.expected b/csharp/ql/test/library-tests/cil/attributes/attribute.expected index 7ced55cab61..8c2a9d89762 100644 --- a/csharp/ql/test/library-tests/cil/attributes/attribute.expected +++ b/csharp/ql/test/library-tests/cil/attributes/attribute.expected @@ -2,18 +2,22 @@ attrNoArg | !0 System.ReadOnlySpan`1.Enumerator.Current | [IsReadOnlyAttribute(...)] | | !0 System.ReadOnlySpan`1.Item | [IsReadOnlyAttribute(...)] | | | [CompilerGeneratedAttribute(...)] | -| Internal.Runtime.InteropServices.ComponentActivator.<>c__DisplayClass7_0 | [CompilerGeneratedAttribute(...)] | +| Internal.Runtime.InteropServices.ComponentActivator.<>c__DisplayClass13_0 | [CompilerGeneratedAttribute(...)] | +| Internal.Runtime.InteropServices.ComponentActivator.k__BackingField | [CompilerGeneratedAttribute(...)] | | Interop.HostPolicy.corehost_error_writer_fn | [UnmanagedFunctionPointerAttribute(...)] | | Interop.HostPolicy.corehost_resolve_component_dependencies_result_fn | [UnmanagedFunctionPointerAttribute(...)] | | Interop.PollEvents | [FlagsAttribute(...)] | -| Interop.Sys.<>c__DisplayClass37_0 | [CompilerGeneratedAttribute(...)] | +| Interop.Sys.<>c__DisplayClass67_0 | [CompilerGeneratedAttribute(...)] | | Interop.Sys.FileStatusFlags | [FlagsAttribute(...)] | | Interop.Sys.OpenFlags | [FlagsAttribute(...)] | +| Interop.Sys.Permissions | [FlagsAttribute(...)] | | InteropErrorExtensions | [ExtensionAttribute(...)] | | Microsoft.CodeAnalysis.EmbeddedAttribute | [CompilerGeneratedAttribute(...)] | | Microsoft.CodeAnalysis.EmbeddedAttribute | [EmbeddedAttribute(...)] | | Microsoft.Win32.SafeHandles.SafeFileHandle.<>c | [CompilerGeneratedAttribute(...)] | +| Microsoft.Win32.SafeHandles.SafeFileHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | | Microsoft.Win32.SafeHandles.SafeFileHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| Microsoft.Win32.SafeHandles.SafeFileHandle.ThreadPoolValueTaskSource.<>c | [CompilerGeneratedAttribute(...)] | | Microsoft.Win32.SafeHandles.SafeFileHandle.t_lastCloseErrorInfo | [ThreadStaticAttribute(...)] | | System.AppContext.FirstChanceException | [CompilerGeneratedAttribute(...)] | | System.AppContext.ProcessExit | [CompilerGeneratedAttribute(...)] | @@ -27,6 +31,7 @@ attrNoArg | System.ArgIterator | [IsByRefLikeAttribute(...)] | | System.Array.SorterGenericArray | [IsReadOnlyAttribute(...)] | | System.Array.SorterObjectArray | [IsReadOnlyAttribute(...)] | +| System.ArrayEnumerator._index | [NativeIntegerAttribute(...)] | | System.ArraySegment`1 | [IsReadOnlyAttribute(...)] | | System.ArraySegment`1.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.AssemblyLoadEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -36,10 +41,23 @@ attrNoArg | System.BitConverter.IsLittleEndian | [IntrinsicAttribute(...)] | | System.Buffers.StandardFormat | [IsReadOnlyAttribute(...)] | | System.Buffers.Text.Utf8Parser.ParseNumberOptions | [FlagsAttribute(...)] | +| System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1.<>c | [CompilerGeneratedAttribute(...)] | | System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1.t_tlsBuckets | [ThreadStaticAttribute(...)] | | System.ByReference`1 | [IsByRefLikeAttribute(...)] | | System.ByReference`1 | [IsReadOnlyAttribute(...)] | | System.ByReference`1 | [NonVersionableAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__22 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__36 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__37 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__38 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__39 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__40 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__58 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__59 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__60 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__61 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__62 | [CompilerGeneratedAttribute(...)] | +| System.CodeDom.Compiler.IndentedTextWriter.d__63 | [CompilerGeneratedAttribute(...)] | | System.Collections.Concurrent.ConcurrentQueue`1.d__26 | [CompilerGeneratedAttribute(...)] | | System.Collections.Generic.BitHelper | [IsByRefLikeAttribute(...)] | | System.Collections.Generic.Comparer`1.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -52,11 +70,12 @@ attrNoArg | System.ConsoleKeyInfo | [IsReadOnlyAttribute(...)] | | System.ConsoleModifiers | [FlagsAttribute(...)] | | System.ConsolePal.<>c | [CompilerGeneratedAttribute(...)] | -| System.ConsolePal.<>c__DisplayClass112_0 | [CompilerGeneratedAttribute(...)] | -| System.ConsolePal.ControlCHandlerRegistrar.<>c | [CompilerGeneratedAttribute(...)] | +| System.ConsolePal.<>c__DisplayClass113_0 | [CompilerGeneratedAttribute(...)] | | System.ConsolePal.TerminalFormatStrings.<>c | [CompilerGeneratedAttribute(...)] | | System.Convert | [ExtensionAttribute(...)] | | System.DTSubString | [IsByRefLikeAttribute(...)] | +| System.DateOnly | [IsReadOnlyAttribute(...)] | +| System.DateOnly.<>c | [CompilerGeneratedAttribute(...)] | | System.DateTime | [IsReadOnlyAttribute(...)] | | System.DateTimeOffset | [IsReadOnlyAttribute(...)] | | System.DateTimeResult | [IsByRefLikeAttribute(...)] | @@ -77,6 +96,8 @@ attrNoArg | System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -92,6 +113,8 @@ attrNoArg | System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.ConditionalAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | +| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | | System.Diagnostics.Debug.t_indentLevel | [ThreadStaticAttribute(...)] | | System.Diagnostics.DebuggableAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.DebuggableAttribute.DebuggingModes | [FlagsAttribute(...)] | @@ -106,8 +129,8 @@ attrNoArg | System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Diagnostics.StackFrameExtensions | [ExtensionAttribute(...)] | | System.Diagnostics.StackFrameHelper.t_reentrancy | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.CounterGroup.<>c__DisplayClass21_0 | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.CounterPayload | [EventDataAttribute(...)] | | System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -160,7 +183,6 @@ attrNoArg | System.Diagnostics.Tracing.EventProvider.s_returnCode | [ThreadStaticAttribute(...)] | | System.Diagnostics.Tracing.EventSource.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.EventSource.m_EventSourceExceptionRecurenceCount | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.EventSource.m_EventSourceInDecodeObject | [ThreadStaticAttribute(...)] | | System.Diagnostics.Tracing.EventSourceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.EventSourceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.EventSourceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -168,8 +190,8 @@ attrNoArg | System.Diagnostics.Tracing.EventSourceSettings | [FlagsAttribute(...)] | | System.Diagnostics.Tracing.EventTags | [FlagsAttribute(...)] | | System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.IncrementingCounterPayload | [EventDataAttribute(...)] | | System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -216,12 +238,8 @@ attrNoArg | System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass0_19 | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass0_20 | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.RuntimeEventSource.<>c | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.ScalarArrayTypeInfo.<>c | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.ScalarTypeInfo.<>c | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.TraceLoggingMetadataCollector.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Diagnostics.Tracing.TraceLoggingTypeInfo.threadCache | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.XplatEventLogger.<>c | [CompilerGeneratedAttribute(...)] | -| System.Environment.<>c | [CompilerGeneratedAttribute(...)] | | System.Environment.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Exception.DispatchState | [IsReadOnlyAttribute(...)] | | System.GCGenerationInfo | [IsReadOnlyAttribute(...)] | @@ -239,7 +257,9 @@ attrNoArg | System.Globalization.DateTimeStyles | [FlagsAttribute(...)] | | System.Globalization.DaylightTimeStruct | [IsReadOnlyAttribute(...)] | | System.Globalization.GlobalizationExtensions | [ExtensionAttribute(...)] | -| System.Globalization.GlobalizationMode.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Globalization.GlobalizationMode.Settings.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Globalization.GlobalizationMode.Settings.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Globalization.InvariantModeCasing.<>c | [CompilerGeneratedAttribute(...)] | | System.Globalization.MonthNameStyles | [FlagsAttribute(...)] | | System.Globalization.NumberStyles | [FlagsAttribute(...)] | | System.Globalization.OrdinalCasing | [ExtensionAttribute(...)] | @@ -252,16 +272,48 @@ attrNoArg | System.Globalization.TimeSpanParse.TimeSpanToken | [IsByRefLikeAttribute(...)] | | System.Globalization.TimeSpanParse.TimeSpanTokenizer | [IsByRefLikeAttribute(...)] | | System.Globalization.TimeSpanStyles | [FlagsAttribute(...)] | +| System.Guid | [IsReadOnlyAttribute(...)] | | System.Guid | [NonVersionableAttribute(...)] | | System.Half | [IsReadOnlyAttribute(...)] | | System.HexConverter.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__70 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__35 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__38 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__42 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__51 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__62 | [CompilerGeneratedAttribute(...)] | +| System.IO.BufferedStream.d__69 | [CompilerGeneratedAttribute(...)] | +| System.IO.BufferedStream.d__33 | [CompilerGeneratedAttribute(...)] | +| System.IO.BufferedStream.d__36 | [CompilerGeneratedAttribute(...)] | +| System.IO.BufferedStream.d__40 | [CompilerGeneratedAttribute(...)] | +| System.IO.BufferedStream.d__49 | [CompilerGeneratedAttribute(...)] | +| System.IO.BufferedStream.d__60 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEntry | [IsByRefLikeAttribute(...)] | +| System.IO.Enumeration.FileSystemEntry.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEntry.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEntry.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEntry.<_fileNameBuffer>e__FixedBuffer | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEntry.<_fileNameBuffer>e__FixedBuffer | [UnsafeValueTypeAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass3_0 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass4_0 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass5_0 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass6_0 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass7_0 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass8_0 | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerable`1.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.Enumeration.FileSystemEnumerable`1.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.File.<g__Core\|72_0>d | [CompilerGeneratedAttribute(...)] | +| System.IO.File.d__70 | [CompilerGeneratedAttribute(...)] | +| System.IO.File.d__71 | [CompilerGeneratedAttribute(...)] | +| System.IO.File.d__75 | [CompilerGeneratedAttribute(...)] | +| System.IO.File.d__66 | [CompilerGeneratedAttribute(...)] | +| System.IO.File.d__78 | [CompilerGeneratedAttribute(...)] | +| System.IO.File.d__79 | [CompilerGeneratedAttribute(...)] | | System.IO.FileAccess | [FlagsAttribute(...)] | | System.IO.FileAttributes | [FlagsAttribute(...)] | | System.IO.FileLoadException.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -270,22 +322,31 @@ attrNoArg | System.IO.FileNotFoundException.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.IO.FileOptions | [FlagsAttribute(...)] | | System.IO.FileShare | [FlagsAttribute(...)] | -| System.IO.FileStream.<>c | [CompilerGeneratedAttribute(...)] | +| System.IO.FileStatus.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.IO.Path.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.<g__FinishReadAsync\|46_0>d | [CompilerGeneratedAttribute(...)] | +| System.IO.Path.Join3Payload | [IsReadOnlyAttribute(...)] | +| System.IO.Path.Join4Payload | [IsReadOnlyAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__59 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__28 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__57 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__39 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__38 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__50 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.BufferedFileStreamStrategy.d__49 | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.FileStreamHelpers.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.IO.Strategies.Net5CompatFileStreamStrategy.<>c | [CompilerGeneratedAttribute(...)] | +| System.IO.Stream.<g__Core\|29_0>d | [CompilerGeneratedAttribute(...)] | +| System.IO.Stream.<g__FinishReadAsync\|44_0>d | [CompilerGeneratedAttribute(...)] | | System.IO.Stream.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.d__29 | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.d__59 | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.SynchronousAsyncResult.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__64 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__67 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__59 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__61 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__33 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__74 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__61 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__63 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__66 | [CompilerGeneratedAttribute(...)] | +| System.IO.Stream.d__57 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamReader.d__68 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamReader.d__71 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamReader.d__63 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamReader.d__65 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamWriter.<g__Core\|76_0>d | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamWriter.d__37 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamWriter.d__65 | [CompilerGeneratedAttribute(...)] | +| System.IO.StreamWriter.d__69 | [CompilerGeneratedAttribute(...)] | | System.IO.TextReader.<>c | [CompilerGeneratedAttribute(...)] | | System.IO.TextReader.d__20 | [CompilerGeneratedAttribute(...)] | | System.IO.TextReader.d__14 | [CompilerGeneratedAttribute(...)] | @@ -294,12 +355,22 @@ attrNoArg | System.IO.TextWriter.<>c | [CompilerGeneratedAttribute(...)] | | System.Index | [IsReadOnlyAttribute(...)] | | System.IntPtr | [IsReadOnlyAttribute(...)] | +| System.IntPtr System.IntPtr.AdditiveIdentity | [NativeIntegerAttribute(...)] | +| System.IntPtr System.IntPtr.MaxValue | [NativeIntegerAttribute(...)] | +| System.IntPtr System.IntPtr.MinValue | [NativeIntegerAttribute(...)] | +| System.IntPtr System.IntPtr.MultiplicativeIdentity | [NativeIntegerAttribute(...)] | +| System.IntPtr System.IntPtr.NegativeOne | [NativeIntegerAttribute(...)] | +| System.IntPtr System.IntPtr.One | [NativeIntegerAttribute(...)] | +| System.IntPtr System.IntPtr.Zero | [NativeIntegerAttribute(...)] | +| System.IntPtr System.Runtime.InteropServices.CLong.Value | [NativeIntegerAttribute(...)] | | System.IntPtr.Zero | [IntrinsicAttribute(...)] | | System.LazyHelper.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.LocalDataStoreSlot.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Marvin.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.MdUtf8String | [IsReadOnlyAttribute(...)] | | System.MemoryExtensions | [ExtensionAttribute(...)] | +| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | +| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [IsByRefLikeAttribute(...)] | | System.Memory`1 | [IsReadOnlyAttribute(...)] | | System.Nullable`1 | [NonVersionableAttribute(...)] | | System.Number.BigInteger | [IsByRefLikeAttribute(...)] | @@ -324,6 +395,7 @@ attrNoArg | System.Numerics.Matrix4x4 | [IntrinsicAttribute(...)] | | System.Numerics.Plane | [IntrinsicAttribute(...)] | | System.Numerics.Quaternion | [IntrinsicAttribute(...)] | +| System.Numerics.Vector | [ExtensionAttribute(...)] | | System.Numerics.Vector | [IntrinsicAttribute(...)] | | System.Numerics.Vector2 | [IntrinsicAttribute(...)] | | System.Numerics.Vector3 | [IntrinsicAttribute(...)] | @@ -336,7 +408,8 @@ attrNoArg | System.ParamsArray | [IsReadOnlyAttribute(...)] | | System.ParseFlags | [FlagsAttribute(...)] | | System.Progress`1.ProgressChanged | [CompilerGeneratedAttribute(...)] | -| System.Random.t_threadRandom | [ThreadStaticAttribute(...)] | +| System.Random.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Random.ThreadSafeRandom.t_random | [ThreadStaticAttribute(...)] | | System.Range | [IsReadOnlyAttribute(...)] | | System.Range.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Range.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -381,17 +454,9 @@ attrNoArg | System.Reflection.DefaultMemberAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.Emit.AssemblyBuilderAccess | [FlagsAttribute(...)] | | System.Reflection.Emit.DynamicResolver.SecurityControlFlags | [FlagsAttribute(...)] | -| System.Reflection.Emit.EventToken.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.Emit.ExceptionHandler | [IsReadOnlyAttribute(...)] | -| System.Reflection.Emit.FieldToken.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.Emit.Label | [IsReadOnlyAttribute(...)] | -| System.Reflection.Emit.MethodToken.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.Emit.OpCode | [IsReadOnlyAttribute(...)] | -| System.Reflection.Emit.ParameterToken.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Emit.PropertyToken.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Emit.SignatureToken.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Emit.StringToken.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Emit.TypeToken.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.EventAttributes | [FlagsAttribute(...)] | | System.Reflection.ExceptionHandlingClauseOptions | [FlagsAttribute(...)] | | System.Reflection.FieldAttributes | [FlagsAttribute(...)] | @@ -404,12 +469,21 @@ attrNoArg | System.Reflection.MdSigCallingConvention | [FlagsAttribute(...)] | | System.Reflection.MemberTypes | [FlagsAttribute(...)] | | System.Reflection.Metadata.AssemblyExtensions | [ExtensionAttribute(...)] | +| System.Reflection.Metadata.MetadataUpdateHandlerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.Metadata.MetadataUpdater.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.MetadataEnumResult.e__FixedBuffer | [CompilerGeneratedAttribute(...)] | | System.Reflection.MetadataEnumResult.e__FixedBuffer | [UnsafeValueTypeAttribute(...)] | | System.Reflection.MetadataImport | [IsReadOnlyAttribute(...)] | | System.Reflection.MethodAttributes | [FlagsAttribute(...)] | | System.Reflection.MethodSemanticsAttributes | [FlagsAttribute(...)] | | System.Reflection.Module.<>c | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfoContext.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Reflection.NullabilityInfoContext.NotAnnotatedStatus | [FlagsAttribute(...)] | | System.Reflection.ObfuscateAssemblyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.ObfuscateAssemblyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Reflection.ObfuscationAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -436,8 +510,11 @@ attrNoArg | System.Resources.NeutralResourcesLanguageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Resources.NeutralResourcesLanguageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Resources.ResourceFallbackManager.d__5 | [CompilerGeneratedAttribute(...)] | -| System.Resources.ResourceReader.<>c | [CompilerGeneratedAttribute(...)] | +| System.Resources.ResourceLocator | [IsReadOnlyAttribute(...)] | +| System.Resources.ResourceLocator.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Resources.ResourceLocator.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Resources.ResourceReader.<>c__DisplayClass7_0`1 | [CompilerGeneratedAttribute(...)] | +| System.Resources.ResourceReader.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Resources.SatelliteContractVersionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.AssemblyTargetedPatchBandAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.AccessedThroughPropertyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -461,12 +538,15 @@ attrNoArg | System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter | [IsReadOnlyAttribute(...)] | | System.Runtime.CompilerServices.ContractHelper.InternalContractFailed | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.DefaultDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | +| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [IsByRefLikeAttribute(...)] | | System.Runtime.CompilerServices.DependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.DependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.FixedBufferAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.FixedBufferAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.InternalsVisibleToAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.InternalsVisibleToAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.IsUnmanagedAttribute | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.IsUnmanagedAttribute | [EmbeddedAttribute(...)] | | System.Runtime.CompilerServices.MethodImplAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -480,6 +560,7 @@ attrNoArg | System.Runtime.CompilerServices.NullablePublicOnlyAttribute | [CompilerGeneratedAttribute(...)] | | System.Runtime.CompilerServices.NullablePublicOnlyAttribute | [EmbeddedAttribute(...)] | | System.Runtime.CompilerServices.ObjectHandleOnStack | [IsByRefLikeAttribute(...)] | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.t_tlsCache | [ThreadStaticAttribute(...)] | | System.Runtime.CompilerServices.QCallAssembly | [IsByRefLikeAttribute(...)] | | System.Runtime.CompilerServices.QCallModule | [IsByRefLikeAttribute(...)] | | System.Runtime.CompilerServices.QCallTypeHandle | [IsByRefLikeAttribute(...)] | @@ -505,8 +586,13 @@ attrNoArg | System.Runtime.ConstrainedExecution.ReliabilityContractAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.ConstrainedExecution.ReliabilityContractAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.ArrayWithOffset | [IsReadOnlyAttribute(...)] | | System.Runtime.InteropServices.BStrWrapper.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.BestFitMappingAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.CLong | [IntrinsicAttribute(...)] | +| System.Runtime.InteropServices.CLong | [IsReadOnlyAttribute(...)] | +| System.Runtime.InteropServices.CULong | [IntrinsicAttribute(...)] | +| System.Runtime.InteropServices.CULong | [IsReadOnlyAttribute(...)] | | System.Runtime.InteropServices.ClassInterfaceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.CoClassAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.ComDefaultInterfaceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -540,7 +626,14 @@ attrNoArg | System.Runtime.InteropServices.LCIDConversionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.Marshal.<>c | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.MarshalAsAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.MemoryMarshal.d__15`1 | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.MemoryMarshal.d__18`1 | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.NFloat | [IntrinsicAttribute(...)] | +| System.Runtime.InteropServices.NFloat | [IsReadOnlyAttribute(...)] | +| System.Runtime.InteropServices.PosixSignalContext.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.PosixSignalContext.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.PosixSignalRegistration.Token.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.PosixSignalRegistration.Token.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.InteropServices.PosixSignalRegistration.Token.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.ProgIdAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.InteropServices.SafeBuffer._numBytes | [NativeIntegerAttribute(...)] | | System.Runtime.InteropServices.StructLayoutAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -569,6 +662,8 @@ attrNoArg | System.Runtime.Intrinsics.X86.Avx2 | [IntrinsicAttribute(...)] | | System.Runtime.Intrinsics.X86.Avx2.X64 | [IntrinsicAttribute(...)] | | System.Runtime.Intrinsics.X86.Avx.X64 | [IntrinsicAttribute(...)] | +| System.Runtime.Intrinsics.X86.AvxVnni | [IntrinsicAttribute(...)] | +| System.Runtime.Intrinsics.X86.AvxVnni.X64 | [IntrinsicAttribute(...)] | | System.Runtime.Intrinsics.X86.Bmi1 | [IntrinsicAttribute(...)] | | System.Runtime.Intrinsics.X86.Bmi1.X64 | [IntrinsicAttribute(...)] | | System.Runtime.Intrinsics.X86.Bmi2 | [IntrinsicAttribute(...)] | @@ -596,8 +691,8 @@ attrNoArg | System.Runtime.Intrinsics.X86.X86Base | [IntrinsicAttribute(...)] | | System.Runtime.Intrinsics.X86.X86Base.X64 | [IntrinsicAttribute(...)] | | System.Runtime.Loader.AssemblyDependencyResolver.<>c__DisplayClass6_0 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.d__83 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.d__53 | [CompilerGeneratedAttribute(...)] | +| System.Runtime.Loader.AssemblyLoadContext.d__85 | [CompilerGeneratedAttribute(...)] | +| System.Runtime.Loader.AssemblyLoadContext.d__55 | [CompilerGeneratedAttribute(...)] | | System.Runtime.Loader.AssemblyLoadContext.AssemblyLoad | [CompilerGeneratedAttribute(...)] | | System.Runtime.Loader.AssemblyLoadContext.AssemblyResolve | [CompilerGeneratedAttribute(...)] | | System.Runtime.Loader.AssemblyLoadContext.ResourceResolve | [CompilerGeneratedAttribute(...)] | @@ -613,19 +708,25 @@ attrNoArg | System.Runtime.Serialization.SerializationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Serialization.SerializationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Serialization.SerializationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.Serialization.SerializationInfo.t_deserializationTracker | [ThreadStaticAttribute(...)] | | System.Runtime.Serialization.StreamingContext | [IsReadOnlyAttribute(...)] | | System.Runtime.Serialization.StreamingContextStates | [FlagsAttribute(...)] | | System.Runtime.TargetedPatchingOptOutAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Versioning.ComponentGuaranteesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Versioning.ComponentGuaranteesOptions | [FlagsAttribute(...)] | | System.Runtime.Versioning.OSPlatformAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Versioning.ResourceConsumptionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Versioning.ResourceConsumptionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Versioning.ResourceExposureAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Runtime.Versioning.ResourceScope | [FlagsAttribute(...)] | | System.Runtime.Versioning.SxSRequirements | [FlagsAttribute(...)] | | System.RuntimeArgumentHandle | [IsByRefLikeAttribute(...)] | +| System.RuntimeFieldHandle | [NonVersionableAttribute(...)] | +| System.RuntimeMethodHandle | [NonVersionableAttribute(...)] | | System.RuntimeType.RuntimeTypeCache.Filter | [IsReadOnlyAttribute(...)] | +| System.RuntimeTypeHandle | [NonVersionableAttribute(...)] | | System.Security.AllowPartiallyTrustedCallersAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Security.Permissions.SecurityAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Security.Permissions.SecurityAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -667,6 +768,7 @@ attrNoArg | System.Span`1.Enumerator | [IsByRefLikeAttribute(...)] | | System.StringNormalizationExtensions | [ExtensionAttribute(...)] | | System.StringSplitOptions | [FlagsAttribute(...)] | +| System.StubHelpers.StubHelpers.s_pendingExceptionObject | [ThreadStaticAttribute(...)] | | System.TermInfo.ParameterizedStrings.FormatParam | [IsReadOnlyAttribute(...)] | | System.TermInfo.ParameterizedStrings.t_cachedOneElementArgsArray | [ThreadStaticAttribute(...)] | | System.TermInfo.ParameterizedStrings.t_cachedStack | [ThreadStaticAttribute(...)] | @@ -684,9 +786,10 @@ attrNoArg | System.Text.EncodingInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Text.Latin1Encoding.<>c | [CompilerGeneratedAttribute(...)] | | System.Text.Rune | [IsReadOnlyAttribute(...)] | +| System.Text.SpanLineEnumerator | [IsByRefLikeAttribute(...)] | | System.Text.SpanRuneEnumerator | [IsByRefLikeAttribute(...)] | +| System.Text.StringBuilder.AppendInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | | System.Text.StringBuilderCache.t_cachedInstance | [ThreadStaticAttribute(...)] | -| System.Text.StringOrCharArray | [IsReadOnlyAttribute(...)] | | System.Text.TranscodingStream.<g__DisposeAsyncCore\|30_0>d | [CompilerGeneratedAttribute(...)] | | System.Text.TranscodingStream.<g__ReadAsyncCore\|41_0>d | [CompilerGeneratedAttribute(...)] | | System.Text.TranscodingStream.<g__WriteAsyncCore\|50_0>d | [CompilerGeneratedAttribute(...)] | @@ -695,6 +798,7 @@ attrNoArg | System.Text.Unicode.TextSegmentationUtility.Processor`1.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Text.Unicode.TextSegmentationUtility.Processor`1.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Text.ValueStringBuilder | [IsByRefLikeAttribute(...)] | +| System.Text.ValueUtf8Converter | [IsByRefLikeAttribute(...)] | | System.Threading.AsyncLocalValueChangedArgs`1 | [IsReadOnlyAttribute(...)] | | System.Threading.AsyncLocalValueChangedArgs`1.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Threading.AsyncLocalValueChangedArgs`1.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -706,15 +810,33 @@ attrNoArg | System.Threading.CancellationTokenSource.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.CancellationTokenSource.CallbackNode.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.CancellationTokenSource.LinkedNCancellationTokenSource.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.CancellationTokenSource.Registrations.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.PeriodicTimer.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.PeriodicTimer.State.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.PortableThreadPool.HillClimbing.Complex.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.PortableThreadPool.HillClimbing.Complex.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.PortableThreadPool.WaitThreadNode.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.PortableThreadPool.WaitThreadNode.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.PortableThreadPool.WorkerThread.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.PortableThreadPool.t_completionCountObject | [ThreadStaticAttribute(...)] | | System.Threading.ProcessorIdCache.t_currentProcessorIdCache | [ThreadStaticAttribute(...)] | | System.Threading.QueueUserWorkItemCallback.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.ReaderWriterLockSlim.WaiterStates | [FlagsAttribute(...)] | | System.Threading.ReaderWriterLockSlim.t_rwc | [ThreadStaticAttribute(...)] | -| System.Threading.SemaphoreSlim.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.SemaphoreSlim.d__33 | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.RegisteredWaitHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.SemaphoreSlim.d__31 | [CompilerGeneratedAttribute(...)] | +| System.Threading.SemaphoreSlim.ConfiguredNoThrowAwaiter`1 | [IsReadOnlyAttribute(...)] | | System.Threading.SynchronizationContext.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.AwaitTaskContinuation.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ProcessingMode | [FlagsAttribute(...)] | | System.Threading.Tasks.GenericDelegateCache`2.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.InternalTaskOptions | [FlagsAttribute(...)] | @@ -727,8 +849,9 @@ attrNoArg | System.Threading.Tasks.SynchronizationContextTaskScheduler.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.Task.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.Task.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.DelayPromise.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.Tasks.Task.CancellationPromise`1.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.Task.DelayPromiseWithCancellation.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.Tasks.Task.TaskStateFlags | [FlagsAttribute(...)] | | System.Threading.Tasks.Task.t_currentTask | [ThreadStaticAttribute(...)] | | System.Threading.Tasks.TaskAsyncEnumerableExtensions | [ExtensionAttribute(...)] | | System.Threading.Tasks.TaskContinuationOptions | [FlagsAttribute(...)] | @@ -740,6 +863,8 @@ attrNoArg | System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass38_0`1 | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass41_0`2 | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass44_0`3 | [CompilerGeneratedAttribute(...)] | +| System.Threading.Tasks.TaskScheduler.TaskSchedulerAwaiter | [IsReadOnlyAttribute(...)] | +| System.Threading.Tasks.TaskScheduler.TaskSchedulerAwaiter.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.TaskScheduler.UnobservedTaskException | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.TaskSchedulerAwaitTaskContinuation.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.TaskToApm.TaskAsyncResult.k__BackingField | [CompilerGeneratedAttribute(...)] | @@ -752,24 +877,32 @@ attrNoArg | System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.Tasks.ValueTask`1 | [IsReadOnlyAttribute(...)] | | System.Threading.Tasks.ValueTask`1.ValueTaskSourceAsTask.<>c | [CompilerGeneratedAttribute(...)] | +| System.Threading.Thread.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Threading.Thread.t_currentThread | [ThreadStaticAttribute(...)] | | System.Threading.ThreadHandle | [IsReadOnlyAttribute(...)] | +| System.Threading.ThreadInt64PersistentCounter.t_nodeFinalizationHelpers | [ThreadStaticAttribute(...)] | | System.Threading.ThreadLocal`1.ts_finalizationHelper | [ThreadStaticAttribute(...)] | | System.Threading.ThreadLocal`1.ts_slotArray | [ThreadStaticAttribute(...)] | | System.Threading.ThreadPool.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.ThreadPool.d__52 | [CompilerGeneratedAttribute(...)] | -| System.Threading.ThreadPool.d__51 | [CompilerGeneratedAttribute(...)] | +| System.Threading.ThreadPool.d__79 | [CompilerGeneratedAttribute(...)] | +| System.Threading.ThreadPool.d__78 | [CompilerGeneratedAttribute(...)] | +| System.Threading.ThreadPool.d__77 | [CompilerGeneratedAttribute(...)] | | System.Threading.ThreadPoolWorkQueueThreadLocals.threadLocals | [ThreadStaticAttribute(...)] | | System.Threading.ThreadState | [FlagsAttribute(...)] | +| System.Threading.Timer.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.TimerQueue.k__BackingField | [CompilerGeneratedAttribute(...)] | +| System.Threading.TimerQueue.d__16 | [CompilerGeneratedAttribute(...)] | | System.Threading.TimerQueue.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.Threading.TimerQueueTimer.<>c | [CompilerGeneratedAttribute(...)] | | System.Threading.WaitHandle.t_safeWaitHandlesForRent | [ThreadStaticAttribute(...)] | | System.Threading.WaitHandleExtensions | [ExtensionAttribute(...)] | | System.ThrowHelper | [StackTraceHiddenAttribute(...)] | +| System.TimeOnly | [IsReadOnlyAttribute(...)] | +| System.TimeOnly.<>c | [CompilerGeneratedAttribute(...)] | | System.TimeSpan | [IsReadOnlyAttribute(...)] | | System.TimeZoneInfo.<>c | [CompilerGeneratedAttribute(...)] | -| System.TimeZoneInfo.<>c__DisplayClass124_0 | [CompilerGeneratedAttribute(...)] | +| System.TimeZoneInfo.<>c__DisplayClass171_0 | [CompilerGeneratedAttribute(...)] | +| System.TimeZoneInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | | System.TimeZoneInfo.TransitionTime | [IsReadOnlyAttribute(...)] | | System.TimeZoneInfoOptions | [FlagsAttribute(...)] | | System.TupleExtensions | [ExtensionAttribute(...)] | @@ -777,7 +910,15 @@ attrNoArg | System.TypedReference | [IsByRefLikeAttribute(...)] | | System.TypedReference | [NonVersionableAttribute(...)] | | System.UIntPtr | [IsReadOnlyAttribute(...)] | +| System.UIntPtr System.Array.NativeLength | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.Runtime.InteropServices.CULong.Value | [NativeIntegerAttribute(...)] | | System.UIntPtr System.Runtime.InteropServices.SafeBuffer.Uninitialized | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.UIntPtr.AdditiveIdentity | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.UIntPtr.MaxValue | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.UIntPtr.MinValue | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.UIntPtr.MultiplicativeIdentity | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.UIntPtr.One | [NativeIntegerAttribute(...)] | +| System.UIntPtr System.UIntPtr.Zero | [NativeIntegerAttribute(...)] | | System.UIntPtr.Zero | [IntrinsicAttribute(...)] | | System.__DTString | [IsByRefLikeAttribute(...)] | | bool | [IsReadOnlyAttribute(...)] | @@ -807,6 +948,12 @@ attrArgNamed | System.CodeDom.Compiler.GeneratedCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Collections.KeyValuePairs | [DebuggerDisplayAttribute(...)] | Name | [{_key}] | | System.ContextStaticAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.DateOnly System.DateOnly.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.DateOnly System.DateOnly.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.DateTime System.DateTime.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.DateTime System.DateTime.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.DateTimeOffset System.DateTimeOffset.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.DateTimeOffset System.DateTimeOffset.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | | System.Diagnostics.CodeAnalysis.AllowNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Diagnostics.CodeAnalysis.DisallowNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute | [AttributeUsageAttribute(...)] | Inherited | False | @@ -826,6 +973,8 @@ attrArgNamed | System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Diagnostics.CodeAnalysis.NotNullWhenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [AttributeUsageAttribute(...)] | Inherited | False | @@ -857,15 +1006,66 @@ attrArgNamed | System.Diagnostics.DebuggerVisualizerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Diagnostics.StackTraceHiddenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Diagnostics.Tracing.EventDataAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Diagnostics.Tracing.EventSource | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves methods on Delegate and MulticastDelegate because the nested type OverrideEventProvider's base type EventProvider defines a delegate. This includes Delegate and MulticastDelegate methods which have dynamically accessed members requirements, but EnsureDescriptorsInitialized does not access these members and is safe to call. | +| System.Diagnostics.Tracing.EventSource | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves methods on Delegate and MulticastDelegate because the nested type OverrideEventProvider's base type EventProvider defines a delegate. This includes Delegate and MulticastDelegate methods which require unreferenced code, but EnsureDescriptorsInitialized does not access these members and is safe to call. | | System.Diagnostics.Tracing.FrameworkEventSource | [EventSourceAttribute(...)] | Guid | 8E9F5090-2D75-4d03-8A81-E5AFBF85DAF1 | | System.Diagnostics.Tracing.FrameworkEventSource | [EventSourceAttribute(...)] | Name | System.Diagnostics.Eventing.FrameworkEventSource | -| System.Diagnostics.Tracing.NativeRuntimeEventSource | [EventSourceAttribute(...)] | Guid | 5E5BB766-BBFC-5662-0548-1D44FAD9BB56 | +| System.Diagnostics.Tracing.NativeRuntimeEventSource | [EventSourceAttribute(...)] | Guid | E13C0D23-CCBC-4E12-931B-D9CC2EEE27E4 | | System.Diagnostics.Tracing.NativeRuntimeEventSource | [EventSourceAttribute(...)] | Name | Microsoft-Windows-DotNETRuntime | | System.Diagnostics.Tracing.RuntimeEventSource | [EventSourceAttribute(...)] | Guid | 49592C0F-5A05-516D-AA4B-A64E02026C89 | | System.Diagnostics.Tracing.RuntimeEventSource | [EventSourceAttribute(...)] | Name | System.Runtime | +| System.Exception.SerializeObjectState | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0011 | +| System.Exception.SerializeObjectState | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | System.FlagsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Globalization.CompareInfo.m_SortVersion | [OptionalFieldAttribute(...)] | VersionAdded | 3 | | System.Globalization.CompareInfo.m_name | [OptionalFieldAttribute(...)] | VersionAdded | 2 | +| System.Half System.Half.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.E | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.Epsilon | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.NaN | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.NegativeInfinity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.NegativeZero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.Pi | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.PositiveInfinity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.Tau | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.Half System.Half.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IAdditionOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IAdditiveIdentity`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IBinaryFloatingPoint`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IBinaryInteger`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IBinaryNumber`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IBitwiseOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IComparisonOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IDecrementOperators`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IDivisionOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IEqualityOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IFloatingPoint`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IIncrementOperators`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IMinMaxValue`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IModulusOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IMultiplicativeIdentity`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IMultiplyOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.INumber`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IParseable`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IShiftOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.ISignedNumber`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.ISpanParseable`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.ISubtractionOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IUnaryNegationOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IUnaryPlusOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IUnsignedNumber`1 | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.IntPtr System.IntPtr.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | | System.NonSerializedAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.ObsoleteAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.ParamArrayAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | @@ -891,10 +1091,15 @@ attrArgNamed | System.Reflection.AssemblyTitleAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Reflection.AssemblyTrademarkAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Reflection.AssemblyVersionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Reflection.ObfuscateAssemblyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Reflection.ObfuscateAssemblyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Reflection.ObfuscationAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Reflection.ObfuscationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Reflection.StrongNameKeyPair | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0017 | +| System.Reflection.StrongNameKeyPair | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | +| System.Reflection.StrongNameKeyPair System.Reflection.AssemblyName.KeyPair | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0017 | +| System.Reflection.StrongNameKeyPair System.Reflection.AssemblyName.KeyPair | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | System.Resources.NeutralResourcesLanguageAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Resources.SatelliteContractVersionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.AssemblyTargetedPatchBandAttribute | [AttributeUsageAttribute(...)] | Inherited | False | @@ -910,17 +1115,24 @@ attrArgNamed | System.Runtime.CompilerServices.CallerLineNumberAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.CallerMemberNameAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.CompilerGeneratedAttribute | [AttributeUsageAttribute(...)] | Inherited | True | +| System.Runtime.CompilerServices.CreateNewOnMetadataUpdateAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.CompilerServices.CustomConstantAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.DateTimeConstantAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.DecimalConstantAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.DependencyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0015 | +| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | System.Runtime.CompilerServices.EnumeratorCancellationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.FixedBufferAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.IndexerNameAttribute | [AttributeUsageAttribute(...)] | Inherited | True | | System.Runtime.CompilerServices.InternalsVisibleToAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Runtime.CompilerServices.InternalsVisibleToAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | +| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | +| System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.IntrinsicAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.IsReadOnlyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.IteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | @@ -940,10 +1152,13 @@ attrArgNamed | System.Runtime.CompilerServices.ReferenceAssemblyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.CompilerServices.RuntimeCompatibilityAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.CompilerServices.RuntimeCompatibilityAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.CompilerServices.RuntimeFeature.VirtualStaticsInInterfaces | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | | System.Runtime.CompilerServices.SkipLocalsInitAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.StateMachineAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.CompilerServices.StateMachineAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.StringFreezingAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.CompilerServices.SuppressIldasmAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0025 | +| System.Runtime.CompilerServices.SuppressIldasmAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | System.Runtime.CompilerServices.TypeDependencyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Runtime.CompilerServices.TypeDependencyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.CompilerServices.TypeForwardedFromAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | @@ -962,6 +1177,8 @@ attrArgNamed | System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0032 | +| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | @@ -986,6 +1203,8 @@ attrArgNamed | System.Runtime.InteropServices.InterfaceTypeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.LCIDConversionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.MarshalAsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [AttributeUsageAttribute(...)] | Inherited | True | | System.Runtime.InteropServices.OptionalAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.OutAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.PreserveSigAttribute | [AttributeUsageAttribute(...)] | Inherited | False | @@ -994,6 +1213,8 @@ attrArgNamed | System.Runtime.InteropServices.SuppressGCTransitionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.TypeIdentifierAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.InteropServices.TypeIdentifierAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.InteropServices.UnmanagedCallConvAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | +| System.Runtime.InteropServices.UnmanagedCallConvAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute | [AttributeUsageAttribute(...)] | Inherited | False | @@ -1008,16 +1229,21 @@ attrArgNamed | System.Runtime.Versioning.ComponentGuaranteesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.NonVersionableAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.Versioning.NonVersionableAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.ResourceConsumptionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.ResourceExposureAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.Versioning.SupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | +| System.Runtime.Versioning.SupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.TargetFrameworkAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.Versioning.TargetFrameworkAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.TargetPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Runtime.Versioning.TargetPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | | System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | +| System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | +| System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Security.AllowPartiallyTrustedCallersAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | | System.Security.AllowPartiallyTrustedCallersAttribute | [AttributeUsageAttribute(...)] | Inherited | False | | System.Security.IPermission | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | @@ -1067,12 +1293,119 @@ attrArgNamed | System.Threading.Tasks.TplEventSource | [EventSourceAttribute(...)] | Guid | 2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5 | | System.Threading.Tasks.TplEventSource | [EventSourceAttribute(...)] | LocalizationResources | System.Private.CoreLib.Strings | | System.Threading.Tasks.TplEventSource | [EventSourceAttribute(...)] | Name | System.Threading.Tasks.TplEventSource | +| System.TimeOnly System.TimeOnly.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.TimeOnly System.TimeOnly.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.TimeSpan System.DateTime.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.TimeSpan System.DateTimeOffset.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.TimeSpan System.TimeSpan.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.TimeSpan System.TimeSpan.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.TimeSpan System.TimeSpan.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.UIntPtr System.UIntPtr.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.UIntPtr System.UIntPtr.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.UIntPtr System.UIntPtr.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.UIntPtr System.UIntPtr.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.UIntPtr System.UIntPtr.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| System.UIntPtr System.UIntPtr.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | | bool System.Reflection.Assembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0005 | | bool System.Reflection.Assembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| bool System.Reflection.Emit.AssemblyBuilder.GlobalAssemblyCache | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0005 | -| bool System.Reflection.Emit.AssemblyBuilder.GlobalAssemblyCache | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | | bool System.Reflection.RuntimeAssembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0005 | | bool System.Reflection.RuntimeAssembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | +| byte byte.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| byte byte.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| byte byte.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| byte byte.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| byte byte.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| byte byte.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| char char.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| char char.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| char char.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| char char.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| char char.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| char char.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| decimal decimal.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double System.TimeSpan.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.E | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.Epsilon | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.NaN | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.NegativeInfinity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.NegativeZero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.Pi | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.PositiveInfinity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.Tau | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| double double.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.E | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.Epsilon | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.NaN | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.NegativeInfinity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.NegativeZero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.Pi | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.PositiveInfinity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.Tau | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| float float.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| int int.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| long long.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| sbyte sbyte.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| short short.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| uint uint.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| uint uint.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| uint uint.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| uint uint.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| uint uint.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| uint uint.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ulong ulong.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ulong ulong.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ulong ulong.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ulong ulong.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ulong ulong.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ulong ulong.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ushort ushort.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ushort ushort.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ushort ushort.MinValue | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ushort ushort.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ushort ushort.One | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | +| ushort ushort.Zero | [RequiresPreviewFeaturesAttribute(...)] | Url | https://aka.ms/dotnet-warnings/generic-math-preview | attrArgPositional | !0 System.ArraySegment`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | | !0 System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | @@ -1080,6 +1413,9 @@ attrArgPositional | !0 System.Collections.Generic.IAsyncEnumerator`1.Current | [NullableAttribute(...)] | 0 | 1 | | !0 System.Collections.Generic.IEnumerator`1.Current | [NullableAttribute(...)] | 0 | 1 | | !0 System.Collections.Generic.List`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | +| !0 System.Collections.Generic.Queue`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | +| !0 System.IO.Enumeration.FileSystemEnumerator`1.Current | [NullableAttribute(...)] | 0 | 1 | +| !0 System.ISignedNumber`1.NegativeOne | [NullableAttribute(...)] | 0 | 1 | | !0 System.Lazy`1.Value | [DebuggerBrowsableAttribute(...)] | 0 | 0 | | !0 System.Lazy`1.ValueForDebugDisplay | [NullableAttribute(...)] | 0 | 2 | | !0 System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | @@ -1093,6 +1429,7 @@ attrArgPositional | !0[] System.Collections.Concurrent.IProducerConsumerCollectionDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | !0[] System.Collections.Generic.DictionaryKeyCollectionDebugView`2.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | !0[] System.Collections.Generic.ICollectionDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | +| !0[] System.Collections.Generic.QueueDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | !0[] System.MemoryDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | !0[] System.SpanDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | !1 System.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | @@ -1108,10 +1445,10 @@ attrArgPositional | Internal.Runtime.InteropServices.IClassFactory | [GuidAttribute(...)] | 0 | 00000001-0000-0000-C000-000000000046 | | Internal.Runtime.InteropServices.IClassFactory | [InterfaceTypeAttribute(...)] | 0 | 1 | | Internal.Runtime.InteropServices.IClassFactory | [NullableContextAttribute(...)] | 0 | 2 | -| Internal.Runtime.InteropServices.IClassFactory2 | [ComVisibleAttribute(...)] | 0 | False | -| Internal.Runtime.InteropServices.IClassFactory2 | [GuidAttribute(...)] | 0 | B196B28F-BAB4-101A-B69C-00AA00341D07 | -| Internal.Runtime.InteropServices.IClassFactory2 | [InterfaceTypeAttribute(...)] | 0 | 1 | | Interop.Sys.MountPointFound | [UnmanagedFunctionPointerAttribute(...)] | 0 | 2 | +| Microsoft.Win32.SafeHandles.SafeFileHandle | [NullableAttribute(...)] | 0 | 0 | +| Microsoft.Win32.SafeHandles.SafeFileHandle | [NullableContextAttribute(...)] | 0 | 2 | +| Microsoft.Win32.SafeHandles.SafeWaitHandle System.Threading.RegisteredWaitHandle.UserUnregisterWaitHandle | [NullableAttribute(...)] | 0 | 2 | | System.AccessViolationException | [NullableAttribute(...)] | 0 | 0 | | System.AccessViolationException | [NullableContextAttribute(...)] | 0 | 2 | | System.AccessViolationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1208,7 +1545,7 @@ attrArgPositional | System.BadImageFormatException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.BitConverter | [NullableAttribute(...)] | 0 | 0 | | System.BitConverter | [NullableContextAttribute(...)] | 0 | 1 | -| System.BitConverter.<>c.<>9__39_0 | [TupleElementNamesAttribute(...)] | 0 | [value,startIndex,length] | +| System.BitConverter.<>c.<>9__43_0 | [TupleElementNamesAttribute(...)] | 0 | [value,startIndex,length] | | System.Buffer | [NullableAttribute(...)] | 0 | 0 | | System.Buffer | [NullableContextAttribute(...)] | 0 | 1 | | System.Buffers.ArrayPool`1 | [NullableAttribute(...)] | 0 | 0 | @@ -1264,6 +1601,7 @@ attrArgPositional | System.Collections.Generic.Comparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.Collections.Generic.Dictionary.KeyCollection System.Collections.Generic.Dictionary`2.Keys | [NullableAttribute(...)] | 0 | [1,0,0] | | System.Collections.Generic.Dictionary.ValueCollection System.Collections.Generic.Dictionary`2.Values | [NullableAttribute(...)] | 0 | [1,0,0] | +| System.Collections.Generic.Dictionary> System.Runtime.Loader.AssemblyLoadContext.AllContexts | [MemberNotNullAttribute(...)] | 0 | s_allContexts | | System.Collections.Generic.Dictionary`2 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | | System.Collections.Generic.Dictionary`2 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.IDictionaryDebugView`2 | | System.Collections.Generic.Dictionary`2 | [DefaultMemberAttribute(...)] | 0 | Item | @@ -1336,6 +1674,12 @@ attrArgPositional | System.Collections.Generic.ObjectEqualityComparer`1 | [NullableAttribute(...)] | 0 | [0,1] | | System.Collections.Generic.ObjectEqualityComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | | System.Collections.Generic.ObjectEqualityComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.Collections.Generic.Queue`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | +| System.Collections.Generic.Queue`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.QueueDebugView`1 | +| System.Collections.Generic.Queue`1 | [NullableAttribute(...)] | 0 | 0 | +| System.Collections.Generic.Queue`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.Collections.Generic.Queue`1 | [TypeForwardedFromAttribute(...)] | 0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.Collections.Generic.Queue`1.Enumerator | [NullableContextAttribute(...)] | 0 | 0 | | System.Collections.Generic.ReferenceEqualityComparer System.Collections.Generic.ReferenceEqualityComparer.Instance | [NullableAttribute(...)] | 0 | 1 | | System.Collections.Generic.ValueListBuilder`1 | [DefaultMemberAttribute(...)] | 0 | Item | | System.Collections.Generic.ValueListBuilder`1 | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | @@ -1350,7 +1694,7 @@ attrArgPositional | System.Collections.ICollection | [NullableContextAttribute(...)] | 0 | 1 | | System.Collections.IComparer | [NullableContextAttribute(...)] | 0 | 2 | | System.Collections.IComparer System.Collections.Hashtable.comparer | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IComparer System.Collections.Hashtable.comparer | [ObsoleteAttribute(...)] | 0 | Please use KeyComparer properties. | +| System.Collections.IComparer System.Collections.Hashtable.comparer | [ObsoleteAttribute(...)] | 0 | Hashtable.comparer has been deprecated. Use the KeyComparer properties instead. | | System.Collections.IDictionary | [DefaultMemberAttribute(...)] | 0 | Item | | System.Collections.IDictionary | [NullableContextAttribute(...)] | 0 | 1 | | System.Collections.IDictionary System.Exception.Data | [NullableAttribute(...)] | 0 | 1 | @@ -1361,10 +1705,10 @@ attrArgPositional | System.Collections.IEqualityComparer | [NullableContextAttribute(...)] | 0 | 1 | | System.Collections.IEqualityComparer System.Collections.Hashtable.EqualityComparer | [NullableAttribute(...)] | 0 | 2 | | System.Collections.IHashCodeProvider | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IHashCodeProvider | [ObsoleteAttribute(...)] | 0 | Please use IEqualityComparer instead. | +| System.Collections.IHashCodeProvider | [ObsoleteAttribute(...)] | 0 | IHashCodeProvider has been deprecated. Use IEqualityComparer instead. | | System.Collections.IHashCodeProvider | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.Collections.IHashCodeProvider System.Collections.Hashtable.hcp | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IHashCodeProvider System.Collections.Hashtable.hcp | [ObsoleteAttribute(...)] | 0 | Please use EqualityComparer property. | +| System.Collections.IHashCodeProvider System.Collections.Hashtable.hcp | [ObsoleteAttribute(...)] | 0 | Hashtable.hcp has been deprecated. Use the EqualityComparer property instead. | | System.Collections.IList | [DefaultMemberAttribute(...)] | 0 | Item | | System.Collections.IList | [NullableContextAttribute(...)] | 0 | 2 | | System.Collections.IStructuralComparable | [NullableContextAttribute(...)] | 0 | 1 | @@ -1397,9 +1741,18 @@ attrArgPositional | System.Console | [NullableAttribute(...)] | 0 | 0 | | System.Console | [NullableContextAttribute(...)] | 0 | 1 | | System.Console.CancelKeyPress | [NullableAttribute(...)] | 0 | 2 | +| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | +| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | +| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | | System.ContextMarshalException | [NullableAttribute(...)] | 0 | 0 | | System.ContextMarshalException | [NullableContextAttribute(...)] | 0 | 2 | | System.ContextMarshalException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1410,7 +1763,7 @@ attrArgPositional | System.CultureAwareComparer | [NullableAttribute(...)] | 0 | 0 | | System.CultureAwareComparer | [NullableContextAttribute(...)] | 0 | 2 | | System.CultureAwareComparer | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.CurrentSystemTimeZone | [ObsoleteAttribute(...)] | 0 | System.CurrentSystemTimeZone has been deprecated. Please investigate the use of System.TimeZoneInfo.Local instead. | +| System.CurrentSystemTimeZone | [ObsoleteAttribute(...)] | 0 | System.CurrentSystemTimeZone has been deprecated. Investigate the use of System.TimeZoneInfo.Local instead. | | System.DBNull | [NullableAttribute(...)] | 0 | 0 | | System.DBNull | [NullableContextAttribute(...)] | 0 | 1 | | System.DTSubString | [DefaultMemberAttribute(...)] | 0 | Item | @@ -1419,10 +1772,14 @@ attrArgPositional | System.DataMisalignedException | [NullableAttribute(...)] | 0 | 0 | | System.DataMisalignedException | [NullableContextAttribute(...)] | 0 | 2 | | System.DataMisalignedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.DateTime | [NullableAttribute(...)] | 0 | 0 | -| System.DateTime | [NullableContextAttribute(...)] | 0 | 1 | +| System.DateOnly System.DateOnly.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.DateOnly System.DateOnly.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.DateTime | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.DateTime System.DateTime.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.DateTime System.DateTime.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.DateTimeOffset | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.DateTimeOffset System.DateTimeOffset.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.DateTimeOffset System.DateTimeOffset.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.DateTimeResult | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | | System.DateTimeResult | [ObsoleteAttribute(...)] | 1 | True | | System.Delegate | [ClassInterfaceAttribute(...)] | 0 | 0 | @@ -1436,7 +1793,7 @@ attrArgPositional | System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [AttributeUsageAttribute(...)] | 0 | 352 | | System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute | [AttributeUsageAttribute(...)] | 0 | 27072 | +| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute | [AttributeUsageAttribute(...)] | 0 | 28108 | | System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [AttributeUsageAttribute(...)] | 0 | 749 | | System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [NullableContextAttribute(...)] | 0 | 2 | @@ -1453,7 +1810,10 @@ attrArgPositional | System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Diagnostics.CodeAnalysis.NotNullWhenAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 96 | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [AttributeUsageAttribute(...)] | 0 | 736 | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [NullableAttribute(...)] | 0 | 0 | +| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [NullableContextAttribute(...)] | 0 | 2 | +| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 100 | | System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | @@ -1507,6 +1867,10 @@ attrArgPositional | System.Diagnostics.Contracts.PureAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | | System.Diagnostics.Debug | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Debug | [NullableContextAttribute(...)] | 0 | 2 | +| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | +| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | +| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | +| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.DebugProvider | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.DebugProvider | [NullableContextAttribute(...)] | 0 | 2 | | System.Diagnostics.DebuggableAttribute | [AttributeUsageAttribute(...)] | 0 | 3 | @@ -1528,18 +1892,23 @@ attrArgPositional | System.Diagnostics.DebuggerVisualizerAttribute | [NullableContextAttribute(...)] | 0 | 2 | | System.Diagnostics.StackFrame | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.StackFrame | [NullableContextAttribute(...)] | 0 | 2 | +| System.Diagnostics.StackFrameExtensions | [NullableAttribute(...)] | 0 | 0 | +| System.Diagnostics.StackFrameExtensions | [NullableContextAttribute(...)] | 0 | 1 | | System.Diagnostics.StackTrace | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.StackTrace | [NullableContextAttribute(...)] | 0 | 1 | | System.Diagnostics.StackTraceHiddenAttribute | [AttributeUsageAttribute(...)] | 0 | 108 | | System.Diagnostics.SymbolStore.ISymbolDocumentWriter | [NullableContextAttribute(...)] | 0 | 1 | +| System.Diagnostics.Tracing.CounterGroup | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Diagnostics.Tracing.DiagnosticCounter | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.DiagnosticCounter | [NullableContextAttribute(...)] | 0 | 1 | +| System.Diagnostics.Tracing.DiagnosticCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Diagnostics.Tracing.EventAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.Diagnostics.Tracing.EventAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.EventAttribute | [NullableContextAttribute(...)] | 0 | 2 | | System.Diagnostics.Tracing.EventChannelAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | | System.Diagnostics.Tracing.EventCounter | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.EventCounter | [NullableContextAttribute(...)] | 0 | 1 | +| System.Diagnostics.Tracing.EventCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Diagnostics.Tracing.EventDataAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | | System.Diagnostics.Tracing.EventDataAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.EventDataAttribute | [NullableContextAttribute(...)] | 0 | 2 | @@ -1550,8 +1919,12 @@ attrArgPositional | System.Diagnostics.Tracing.EventListener.EventSourceCreated | [NullableAttribute(...)] | 0 | [2,1] | | System.Diagnostics.Tracing.EventListener.EventWritten | [NullableAttribute(...)] | 0 | [2,1] | | System.Diagnostics.Tracing.EventPayload | [DefaultMemberAttribute(...)] | 0 | Item | +| System.Diagnostics.Tracing.EventSource | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | | System.Diagnostics.Tracing.EventSource | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.EventSource | [NullableContextAttribute(...)] | 0 | 2 | +| System.Diagnostics.Tracing.EventSource | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | +| System.Diagnostics.Tracing.EventSource | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2113:ReflectionToRequiresUnreferencedCode | +| System.Diagnostics.Tracing.EventSource | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2115:ReflectionToDynamicallyAccessedMembers | | System.Diagnostics.Tracing.EventSource System.Diagnostics.Tracing.EventWrittenEventArgs.EventSource | [NullableAttribute(...)] | 0 | 1 | | System.Diagnostics.Tracing.EventSource.EventCommandExecuted | [NullableAttribute(...)] | 0 | [2,1] | | System.Diagnostics.Tracing.EventSource.EventData | [NullableContextAttribute(...)] | 0 | 0 | @@ -1564,13 +1937,17 @@ attrArgPositional | System.Diagnostics.Tracing.EventSourceException | [NullableContextAttribute(...)] | 0 | 2 | | System.Diagnostics.Tracing.EventWrittenEventArgs | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.EventWrittenEventArgs | [NullableContextAttribute(...)] | 0 | 2 | +| System.Diagnostics.Tracing.EventWrittenEventArgs.MoreEventInfo System.Diagnostics.Tracing.EventWrittenEventArgs.MoreInfo | [NullableAttribute(...)] | 0 | 1 | | System.Diagnostics.Tracing.IncrementingEventCounter | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.IncrementingEventCounter | [NullableContextAttribute(...)] | 0 | 1 | +| System.Diagnostics.Tracing.IncrementingEventCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Diagnostics.Tracing.IncrementingPollingCounter | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.IncrementingPollingCounter | [NullableContextAttribute(...)] | 0 | 1 | +| System.Diagnostics.Tracing.IncrementingPollingCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Diagnostics.Tracing.NonEventAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.Diagnostics.Tracing.PollingCounter | [NullableAttribute(...)] | 0 | 0 | | System.Diagnostics.Tracing.PollingCounter | [NullableContextAttribute(...)] | 0 | 1 | +| System.Diagnostics.Tracing.PollingCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Diagnostics.Tracing.SessionMask | [DefaultMemberAttribute(...)] | 0 | Item | | System.Diagnostics.Tracing.TraceLoggingEventHandleTable | [DefaultMemberAttribute(...)] | 0 | Item | | System.DivideByZeroException | [NullableAttribute(...)] | 0 | 0 | @@ -1598,10 +1975,11 @@ attrArgPositional | System.Exception | [NullableContextAttribute(...)] | 0 | 2 | | System.Exception | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.Exception.SerializeObjectState | [NullableAttribute(...)] | 0 | [2,1] | +| System.Exception.SerializeObjectState | [ObsoleteAttribute(...)] | 0 | BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information. | | System.Exception[] System.Reflection.ReflectionTypeLoadException.LoaderExceptions | [NullableAttribute(...)] | 0 | [1,2] | | System.ExecutionEngineException | [NullableAttribute(...)] | 0 | 0 | | System.ExecutionEngineException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ExecutionEngineException | [ObsoleteAttribute(...)] | 0 | This type previously indicated an unspecified fatal error in the runtime. The runtime no longer raises this exception so this type is obsolete. | +| System.ExecutionEngineException | [ObsoleteAttribute(...)] | 0 | ExecutionEngineException previously indicated an unspecified fatal error in the runtime. The runtime no longer raises this exception so this type is obsolete. | | System.ExecutionEngineException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.FieldAccessException | [NullableAttribute(...)] | 0 | 0 | | System.FieldAccessException | [NullableContextAttribute(...)] | 0 | 2 | @@ -1654,8 +2032,8 @@ attrArgPositional | System.Globalization.CultureNotFoundException | [NullableAttribute(...)] | 0 | 0 | | System.Globalization.CultureNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | | System.Globalization.CultureNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Globalization.CultureTypes.FrameworkCultures | [ObsoleteAttribute(...)] | 0 | This value has been deprecated. Please use other values in CultureTypes. | -| System.Globalization.CultureTypes.WindowsOnlyCultures | [ObsoleteAttribute(...)] | 0 | This value has been deprecated. Please use other values in CultureTypes. | +| System.Globalization.CultureTypes.FrameworkCultures | [ObsoleteAttribute(...)] | 0 | CultureTypes.FrameworkCultures has been deprecated. Use other values in CultureTypes instead. | +| System.Globalization.CultureTypes.WindowsOnlyCultures | [ObsoleteAttribute(...)] | 0 | CultureTypes.WindowsOnlyCultures has been deprecated. Use other values in CultureTypes instead. | | System.Globalization.DateTimeFormatInfo | [NullableAttribute(...)] | 0 | 0 | | System.Globalization.DateTimeFormatInfo | [NullableContextAttribute(...)] | 0 | 1 | | System.Globalization.EraInfo[] System.Globalization.ChineseLunisolarCalendar.CalEraInfo | [NullableAttribute(...)] | 0 | [2,1] | @@ -1669,6 +2047,8 @@ attrArgPositional | System.Globalization.HijriCalendar | [NullableContextAttribute(...)] | 0 | 1 | | System.Globalization.IdnMapping | [NullableAttribute(...)] | 0 | 0 | | System.Globalization.IdnMapping | [NullableContextAttribute(...)] | 0 | 1 | +| System.Globalization.InvariantModeCasing.<>c.<>9__2_0 | [TupleElementNamesAttribute(...)] | 0 | [s,i] | +| System.Globalization.InvariantModeCasing.<>c.<>9__3_0 | [TupleElementNamesAttribute(...)] | 0 | [s,i] | | System.Globalization.JapaneseCalendar | [NullableAttribute(...)] | 0 | 0 | | System.Globalization.JapaneseCalendar | [NullableContextAttribute(...)] | 0 | 1 | | System.Globalization.JapaneseLunisolarCalendar | [NullableAttribute(...)] | 0 | 0 | @@ -1715,31 +2095,97 @@ attrArgPositional | System.Globalization.UmAlQuraCalendar | [NullableAttribute(...)] | 0 | 0 | | System.Globalization.UmAlQuraCalendar | [NullableContextAttribute(...)] | 0 | 1 | | System.Guid | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.Half System.Half.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.E | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.Epsilon | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.NaN | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.NegativeInfinity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.NegativeZero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.Pi | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.PositiveInfinity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.Tau | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.Half System.Half.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.HashCode | [NullableAttribute(...)] | 0 | 0 | | System.HashCode | [NullableContextAttribute(...)] | 0 | 1 | -| System.HexConverter.<>c.<>9__4_0 | [TupleElementNamesAttribute(...)] | 0 | [Ptr,Length,casing] | +| System.HexConverter.<>c.<>9__5_0 | [TupleElementNamesAttribute(...)] | 0 | [Ptr,Length,casing] | +| System.IAdditionOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IAdditionOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IAdditiveIdentity`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IAdditiveIdentity`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IAsyncResult | [NullableContextAttribute(...)] | 0 | 1 | +| System.IBinaryFloatingPoint`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IBinaryInteger`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IBinaryInteger`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IBinaryNumber`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IBitwiseOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IBitwiseOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.ICloneable | [NullableContextAttribute(...)] | 0 | 1 | | System.IComparable | [NullableContextAttribute(...)] | 0 | 2 | | System.IComparable`1 | [NullableContextAttribute(...)] | 0 | 2 | +| System.IComparisonOperators`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IComparisonOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IConvertible | [CLSCompliantAttribute(...)] | 0 | False | | System.IConvertible | [NullableContextAttribute(...)] | 0 | 2 | | System.ICustomFormatter | [NullableContextAttribute(...)] | 0 | 2 | +| System.IDecrementOperators`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IDecrementOperators`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IDivisionOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IDivisionOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IEqualityOperators`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IEqualityOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IEquatable`1 | [NullableContextAttribute(...)] | 0 | 2 | +| System.IFloatingPoint`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IFloatingPoint`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IFormatProvider | [NullableContextAttribute(...)] | 0 | 2 | | System.IFormattable | [NullableContextAttribute(...)] | 0 | 2 | +| System.IIncrementOperators`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IIncrementOperators`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IMinMaxValue`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IMinMaxValue`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IModulusOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IModulusOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IMultiplicativeIdentity`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IMultiplicativeIdentity`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IMultiplyOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IMultiplyOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.INumber`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.INumber`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IO.BinaryReader | [NullableAttribute(...)] | 0 | 0 | | System.IO.BinaryReader | [NullableContextAttribute(...)] | 0 | 1 | | System.IO.BinaryWriter | [NullableAttribute(...)] | 0 | 0 | | System.IO.BinaryWriter | [NullableContextAttribute(...)] | 0 | 1 | | System.IO.BufferedStream | [NullableAttribute(...)] | 0 | 0 | | System.IO.BufferedStream | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.Directory | [NullableAttribute(...)] | 0 | 0 | +| System.IO.Directory | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.DirectoryInfo | [NullableAttribute(...)] | 0 | 0 | +| System.IO.DirectoryInfo | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.DirectoryInfo System.IO.DirectoryInfo.Parent | [NullableAttribute(...)] | 0 | 2 | +| System.IO.DirectoryInfo System.IO.FileInfo.Directory | [NullableAttribute(...)] | 0 | 2 | | System.IO.DirectoryNotFoundException | [NullableAttribute(...)] | 0 | 0 | | System.IO.DirectoryNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | | System.IO.DirectoryNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.IO.EndOfStreamException | [NullableAttribute(...)] | 0 | 0 | | System.IO.EndOfStreamException | [NullableContextAttribute(...)] | 0 | 2 | | System.IO.EndOfStreamException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.IO.Enumeration.FileSystemEntry | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | +| System.IO.Enumeration.FileSystemEntry | [ObsoleteAttribute(...)] | 1 | True | +| System.IO.Enumeration.FileSystemEntry._fileNameBuffer | [FixedBufferAttribute(...)] | 0 | System.Char | +| System.IO.Enumeration.FileSystemEntry._fileNameBuffer | [FixedBufferAttribute(...)] | 1 | 256 | +| System.IO.Enumeration.FileSystemEnumerable.FindPredicate System.IO.Enumeration.FileSystemEnumerable`1.ShouldIncludePredicate | [NullableAttribute(...)] | 0 | [2,0] | +| System.IO.Enumeration.FileSystemEnumerable.FindPredicate System.IO.Enumeration.FileSystemEnumerable`1.ShouldRecursePredicate | [NullableAttribute(...)] | 0 | [2,0] | +| System.IO.Enumeration.FileSystemEnumerator`1._pending | [TupleElementNamesAttribute(...)] | 0 | [Path,RemainingDepth] | +| System.IO.EnumerationOptions | [NullableAttribute(...)] | 0 | 0 | +| System.IO.EnumerationOptions | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.File | [NullableAttribute(...)] | 0 | 0 | +| System.IO.File | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.FileInfo | [NullableAttribute(...)] | 0 | 0 | +| System.IO.FileInfo | [NullableContextAttribute(...)] | 0 | 1 | | System.IO.FileLoadException | [NullableAttribute(...)] | 0 | 0 | | System.IO.FileLoadException | [NullableContextAttribute(...)] | 0 | 2 | | System.IO.FileLoadException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1748,6 +2194,8 @@ attrArgPositional | System.IO.FileNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.IO.FileStream | [NullableAttribute(...)] | 0 | 0 | | System.IO.FileStream | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.FileSystemInfo | [NullableAttribute(...)] | 0 | 0 | +| System.IO.FileSystemInfo | [NullableContextAttribute(...)] | 0 | 1 | | System.IO.IOException | [NullableAttribute(...)] | 0 | 0 | | System.IO.IOException | [NullableContextAttribute(...)] | 0 | 2 | | System.IO.IOException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1756,11 +2204,9 @@ attrArgPositional | System.IO.InvalidDataException | [TypeForwardedFromAttribute(...)] | 0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.IO.MemoryStream | [NullableAttribute(...)] | 0 | 0 | | System.IO.MemoryStream | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.Path.<>c.<>9__37_0 | [TupleElementNamesAttribute(...)] | 0 | [First,FirstLength,Second,SecondLength,HasSeparator] | -| System.IO.Path.<>c.<>9__38_0 | [TupleElementNamesAttribute(...)] | 0 | [First,FirstLength,Second,SecondLength,Third,ThirdLength,FirstHasSeparator,ThirdHasSeparator,null] | -| System.IO.Path.<>c.<>9__39_0 | [TupleElementNamesAttribute(...)] | 0 | [First,FirstLength,Second,SecondLength,Third,ThirdLength,Fourth,FourthLength,FirstHasSeparator,ThirdHasSeparator,FourthHasSeparator,null,null,null,null] | -| System.IO.Path.InvalidPathChars | [NullableAttribute(...)] | 0 | 1 | -| System.IO.Path.InvalidPathChars | [ObsoleteAttribute(...)] | 0 | Please use GetInvalidPathChars or GetInvalidFileNameChars instead. | +| System.IO.Path | [NullableAttribute(...)] | 0 | 0 | +| System.IO.Path | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.Path.InvalidPathChars | [ObsoleteAttribute(...)] | 0 | Path.InvalidPathChars has been deprecated. Use GetInvalidPathChars or GetInvalidFileNameChars instead. | | System.IO.PathTooLongException | [NullableAttribute(...)] | 0 | 0 | | System.IO.PathTooLongException | [NullableContextAttribute(...)] | 0 | 2 | | System.IO.PathTooLongException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1776,12 +2222,28 @@ attrArgPositional | System.IO.StringWriter | [NullableContextAttribute(...)] | 0 | 1 | | System.IO.TextReader | [NullableAttribute(...)] | 0 | 0 | | System.IO.TextReader | [NullableContextAttribute(...)] | 0 | 1 | +| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | | System.IO.TextWriter | [NullableAttribute(...)] | 0 | 0 | | System.IO.TextWriter | [NullableContextAttribute(...)] | 0 | 1 | | System.IObservable`1 | [NullableContextAttribute(...)] | 0 | 1 | | System.IObserver`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IParseable`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IParseable`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IProgress`1 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IShiftOperators`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IShiftOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.ISignedNumber`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.ISpanParseable`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.ISubtractionOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | +| System.ISubtractionOperators`3 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IUnaryNegationOperators`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IUnaryNegationOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IUnaryPlusOperators`2 | [NullableContextAttribute(...)] | 0 | 1 | +| System.IUnaryPlusOperators`2 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IUnsignedNumber`1 | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.IndexOutOfRangeException | [NullableAttribute(...)] | 0 | 0 | | System.IndexOutOfRangeException | [NullableContextAttribute(...)] | 0 | 2 | | System.IndexOutOfRangeException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1792,8 +2254,15 @@ attrArgPositional | System.InsufficientMemoryException | [NullableContextAttribute(...)] | 0 | 2 | | System.InsufficientMemoryException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.IntPtr | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IntPtr System.IO.FileStream.Handle | [ObsoleteAttribute(...)] | 0 | This property has been deprecated. Please use FileStream's SafeFileHandle property instead. https://go.microsoft.com/fwlink/?linkid=14202 | -| System.IntPtr System.Threading.WaitHandle.Handle | [ObsoleteAttribute(...)] | 0 | Use the SafeWaitHandle property instead. | +| System.IntPtr System.IO.FileStream.Handle | [ObsoleteAttribute(...)] | 0 | FileStream.Handle has been deprecated. Use FileStream's SafeFileHandle property instead. | +| System.IntPtr System.IntPtr.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.IntPtr.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.IntPtr.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.IntPtr.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.IntPtr.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.IntPtr.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.IntPtr.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.IntPtr System.Threading.WaitHandle.Handle | [ObsoleteAttribute(...)] | 0 | WaitHandleHandle has been deprecated. Use the SafeWaitHandle property instead. | | System.InvalidCastException | [NullableAttribute(...)] | 0 | 0 | | System.InvalidCastException | [NullableContextAttribute(...)] | 0 | 2 | | System.InvalidCastException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1812,8 +2281,8 @@ attrArgPositional | System.Lazy`1 | [NullableContextAttribute(...)] | 0 | 1 | | System.Lazy`2 | [NullableAttribute(...)] | 0 | [0,1] | | System.Lazy`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.LoaderOptimization.DisallowBindings | [ObsoleteAttribute(...)] | 0 | This method has been deprecated. Please use Assembly.Load() instead. https://go.microsoft.com/fwlink/?linkid=14202 | -| System.LoaderOptimization.DomainMask | [ObsoleteAttribute(...)] | 0 | This method has been deprecated. Please use Assembly.Load() instead. https://go.microsoft.com/fwlink/?linkid=14202 | +| System.LoaderOptimization.DisallowBindings | [ObsoleteAttribute(...)] | 0 | LoaderOptimization.DisallowBindings has been deprecated and is not supported. | +| System.LoaderOptimization.DomainMask | [ObsoleteAttribute(...)] | 0 | LoaderOptimization.DomainMask has been deprecated and is not supported. | | System.LoaderOptimizationAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.MTAThreadAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.MarshalByRefObject | [ClassInterfaceAttribute(...)] | 0 | 1 | @@ -1826,6 +2295,9 @@ attrArgPositional | System.Memory System.Buffers.IMemoryOwner`1.Memory | [NullableAttribute(...)] | 0 | [0,1] | | System.Memory System.Buffers.MemoryManager`1.Memory | [NullableAttribute(...)] | 0 | [0,1] | | System.Memory System.Memory`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | +| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | +| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | +| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [ObsoleteAttribute(...)] | 1 | True | | System.Memory`1 | [DebuggerDisplayAttribute(...)] | 0 | {ToString(),raw} | | System.Memory`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.MemoryDebugView`1 | | System.Memory`1 | [NullableAttribute(...)] | 0 | 0 | @@ -1875,12 +2347,6 @@ attrArgPositional | System.Number.DiyFp | [ObsoleteAttribute(...)] | 1 | True | | System.Number.NumberBuffer | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | | System.Number.NumberBuffer | [ObsoleteAttribute(...)] | 1 | True | -| System.Numerics.Vector2 | [NullableAttribute(...)] | 0 | 0 | -| System.Numerics.Vector2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector3 | [NullableAttribute(...)] | 0 | 0 | -| System.Numerics.Vector3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector4 | [NullableAttribute(...)] | 0 | 0 | -| System.Numerics.Vector4 | [NullableContextAttribute(...)] | 0 | 1 | | System.Numerics.Vector`1 | [DefaultMemberAttribute(...)] | 0 | Item | | System.ObjectDisposedException | [NullableAttribute(...)] | 0 | 0 | | System.ObjectDisposedException | [NullableContextAttribute(...)] | 0 | 1 | @@ -1915,6 +2381,8 @@ attrArgPositional | System.Progress`1 | [NullableAttribute(...)] | 0 | 0 | | System.Progress`1 | [NullableContextAttribute(...)] | 0 | 1 | | System.Progress`1.ProgressChanged | [NullableAttribute(...)] | 0 | [2,1] | +| System.Random | [NullableAttribute(...)] | 0 | 0 | +| System.Random | [NullableContextAttribute(...)] | 0 | 1 | | System.RankException | [NullableAttribute(...)] | 0 | 0 | | System.RankException | [NullableContextAttribute(...)] | 0 | 2 | | System.RankException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -1926,10 +2394,12 @@ attrArgPositional | System.ReadOnlySpan System.ReadOnlyMemory`1.Span | [NullableAttribute(...)] | 0 | [0,1] | | System.ReadOnlySpan System.ReadOnlySpan`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | | System.ReadOnlySpan System.Globalization.CompareInfo.HighCharTable | [NullableAttribute(...)] | 0 | 0 | +| System.ReadOnlySpan System.Diagnostics.Tracing.EventSource.ProviderMetadata | [NullableAttribute(...)] | 0 | 0 | +| System.ReadOnlySpan System.IO.Path.Base32Char | [NullableAttribute(...)] | 0 | 0 | | System.ReadOnlySpan System.Text.Encoding.Preamble | [NullableAttribute(...)] | 0 | 0 | | System.ReadOnlySpan System.Text.UTF32Encoding.Preamble | [NullableAttribute(...)] | 0 | 0 | | System.ReadOnlySpan System.Text.UnicodeEncoding.Preamble | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan char.Latin1CharInfo | [NullableAttribute(...)] | 0 | 0 | +| System.ReadOnlySpan System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.Text | [NullableAttribute(...)] | 0 | 0 | | System.ReadOnlySpan System.Convert.DecodingMap | [NullableAttribute(...)] | 0 | 0 | | System.ReadOnlySpan`1 | [DebuggerDisplayAttribute(...)] | 0 | {ToString(),raw} | | System.ReadOnlySpan`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.SpanDebugView`1 | @@ -2042,7 +2512,7 @@ attrArgPositional | System.Reflection.Emit.EventBuilder | [NullableContextAttribute(...)] | 0 | 1 | | System.Reflection.Emit.FieldBuilder | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.Emit.FieldBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.FlowControl.Phi | [ObsoleteAttribute(...)] | 0 | This API has been deprecated. https://go.microsoft.com/fwlink/?linkid=14202 | +| System.Reflection.Emit.FlowControl.Phi | [ObsoleteAttribute(...)] | 0 | FlowControl.Phi has been deprecated and is not supported. | | System.Reflection.Emit.GenericTypeParameterBuilder | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.Emit.GenericTypeParameterBuilder | [NullableContextAttribute(...)] | 0 | 1 | | System.Reflection.Emit.ILGenerator | [NullableAttribute(...)] | 0 | 0 | @@ -2056,8 +2526,8 @@ attrArgPositional | System.Reflection.Emit.ModuleBuilder | [NullableContextAttribute(...)] | 0 | 1 | | System.Reflection.Emit.OpCode | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.Emit.OpCode | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.OpCodeType.Annotation | [ObsoleteAttribute(...)] | 0 | This API has been deprecated. https://go.microsoft.com/fwlink/?linkid=14202 | -| System.Reflection.Emit.OperandType.InlinePhi | [ObsoleteAttribute(...)] | 0 | This API has been deprecated. https://go.microsoft.com/fwlink/?linkid=14202 | +| System.Reflection.Emit.OpCodeType.Annotation | [ObsoleteAttribute(...)] | 0 | OpCodeType.Annotation has been deprecated and is not supported. | +| System.Reflection.Emit.OperandType.InlinePhi | [ObsoleteAttribute(...)] | 0 | OperandType.InlinePhi has been deprecated and is not supported. | | System.Reflection.Emit.ParameterBuilder | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.Emit.ParameterBuilder | [NullableContextAttribute(...)] | 0 | 2 | | System.Reflection.Emit.PropertyBuilder | [NullableAttribute(...)] | 0 | 0 | @@ -2089,6 +2559,9 @@ attrArgPositional | System.Reflection.ManifestResourceInfo | [NullableContextAttribute(...)] | 0 | 2 | | System.Reflection.MemberInfo | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.MemberInfo | [NullableContextAttribute(...)] | 0 | 1 | +| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | +| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [NullableAttribute(...)] | 0 | 0 | +| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Reflection.MetadataEnumResult | [DefaultMemberAttribute(...)] | 0 | Item | | System.Reflection.MetadataEnumResult.smallResult | [FixedBufferAttribute(...)] | 0 | System.Int32 | | System.Reflection.MetadataEnumResult.smallResult | [FixedBufferAttribute(...)] | 1 | 16 | @@ -2106,6 +2579,11 @@ attrArgPositional | System.Reflection.Missing.Value | [NullableAttribute(...)] | 0 | 1 | | System.Reflection.Module | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.Module | [NullableContextAttribute(...)] | 0 | 1 | +| System.Reflection.NullabilityInfo | [NullableAttribute(...)] | 0 | 0 | +| System.Reflection.NullabilityInfo | [NullableContextAttribute(...)] | 0 | 1 | +| System.Reflection.NullabilityInfo System.Reflection.NullabilityInfo.ElementType | [NullableAttribute(...)] | 0 | 2 | +| System.Reflection.NullabilityInfoContext | [NullableAttribute(...)] | 0 | 0 | +| System.Reflection.NullabilityInfoContext | [NullableContextAttribute(...)] | 0 | 1 | | System.Reflection.ObfuscateAssemblyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | | System.Reflection.ObfuscationAttribute | [AttributeUsageAttribute(...)] | 0 | 8157 | | System.Reflection.ObfuscationAttribute | [NullableAttribute(...)] | 0 | 0 | @@ -2128,6 +2606,8 @@ attrArgPositional | System.Reflection.RuntimeReflectionExtensions | [NullableContextAttribute(...)] | 0 | 1 | | System.Reflection.StrongNameKeyPair | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.StrongNameKeyPair | [NullableContextAttribute(...)] | 0 | 1 | +| System.Reflection.StrongNameKeyPair | [ObsoleteAttribute(...)] | 0 | Strong name signing is not supported and throws PlatformNotSupportedException. | +| System.Reflection.StrongNameKeyPair System.Reflection.AssemblyName.KeyPair | [ObsoleteAttribute(...)] | 0 | Strong name signing is not supported and throws PlatformNotSupportedException. | | System.Reflection.TargetException | [NullableAttribute(...)] | 0 | 0 | | System.Reflection.TargetException | [NullableContextAttribute(...)] | 0 | 2 | | System.Reflection.TargetException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -2157,6 +2637,7 @@ attrArgPositional | System.Resources.ResourceManager | [NullableContextAttribute(...)] | 0 | 1 | | System.Resources.ResourceManager.MainAssembly | [NullableAttribute(...)] | 0 | 2 | | System.Resources.ResourceManager._userResourceSet | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | +| System.Resources.ResourceReader.s_binaryFormatterType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1 | | System.Resources.ResourceSet | [NullableAttribute(...)] | 0 | 0 | | System.Resources.ResourceSet | [NullableContextAttribute(...)] | 0 | 1 | | System.Resources.SatelliteContractVersionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | @@ -2174,7 +2655,7 @@ attrArgPositional | System.Runtime.CompilerServices.AsyncIteratorMethodBuilder | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.AsyncIteratorMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [AttributeUsageAttribute(...)] | 0 | 5148 | +| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [AttributeUsageAttribute(...)] | 0 | 5212 | | System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.AsyncStateMachineAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | @@ -2204,6 +2685,7 @@ attrArgPositional | System.Runtime.CompilerServices.ContractHelper | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.ContractHelper | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.CompilerServices.ContractHelper.InternalContractFailed | [NullableAttribute(...)] | 0 | [2,1] | +| System.Runtime.CompilerServices.CreateNewOnMetadataUpdateAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | | System.Runtime.CompilerServices.CustomConstantAttribute | [AttributeUsageAttribute(...)] | 0 | 2304 | | System.Runtime.CompilerServices.CustomConstantAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.CustomConstantAttribute | [NullableContextAttribute(...)] | 0 | 2 | @@ -2212,10 +2694,15 @@ attrArgPositional | System.Runtime.CompilerServices.DateTimeConstantAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.DecimalConstantAttribute | [AttributeUsageAttribute(...)] | 0 | 2304 | | System.Runtime.CompilerServices.DefaultDependencyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | +| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [NullableContextAttribute(...)] | 0 | 2 | +| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | +| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [ObsoleteAttribute(...)] | 1 | True | | System.Runtime.CompilerServices.DependencyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.DependencyAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.DependencyAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | +| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [ObsoleteAttribute(...)] | 0 | DisablePrivateReflectionAttribute has no effect in .NET 6.0+. | | System.Runtime.CompilerServices.DiscardableAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | | System.Runtime.CompilerServices.EnumeratorCancellationAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | | System.Runtime.CompilerServices.ExtensionAttribute | [AttributeUsageAttribute(...)] | 0 | 69 | @@ -2233,6 +2720,10 @@ attrArgPositional | System.Runtime.CompilerServices.InternalsVisibleToAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.InternalsVisibleToAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.InternalsVisibleToAttribute | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | +| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | | System.Runtime.CompilerServices.IntrinsicAttribute | [AttributeUsageAttribute(...)] | 0 | 364 | | System.Runtime.CompilerServices.IsByRefLikeAttribute | [AttributeUsageAttribute(...)] | 0 | 8 | | System.Runtime.CompilerServices.IsByRefLikeAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | @@ -2248,6 +2739,10 @@ attrArgPositional | System.Runtime.CompilerServices.NullablePublicOnlyAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | | System.Runtime.CompilerServices.ObjectHandleOnStack | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | | System.Runtime.CompilerServices.ObjectHandleOnStack | [ObsoleteAttribute(...)] | 1 | True | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1 | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1 | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.PreserveBaseOverridesAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.Runtime.CompilerServices.QCallAssembly | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | | System.Runtime.CompilerServices.QCallAssembly | [ObsoleteAttribute(...)] | 1 | True | @@ -2261,6 +2756,7 @@ attrArgPositional | System.Runtime.CompilerServices.RuntimeCompatibilityAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.RuntimeFeature | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.RuntimeFeature | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.CompilerServices.RuntimeFeature.VirtualStaticsInInterfaces | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.Runtime.CompilerServices.RuntimeHelpers | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.RuntimeHelpers | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode | [NullableContextAttribute(...)] | 0 | 0 | @@ -2280,6 +2776,7 @@ attrArgPositional | System.Runtime.CompilerServices.StringHandleOnStack | [ObsoleteAttribute(...)] | 1 | True | | System.Runtime.CompilerServices.StrongBox`1.Value | [NullableAttribute(...)] | 0 | 1 | | System.Runtime.CompilerServices.SuppressIldasmAttribute | [AttributeUsageAttribute(...)] | 0 | 3 | +| System.Runtime.CompilerServices.SuppressIldasmAttribute | [ObsoleteAttribute(...)] | 0 | SuppressIldasmAttribute has no effect in .NET 6.0+. | | System.Runtime.CompilerServices.SwitchExpressionException | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.CompilerServices.SwitchExpressionException | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.CompilerServices.SwitchExpressionException | [TypeForwardedFromAttribute(...)] | 0 | System.Runtime.Extensions, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | @@ -2299,11 +2796,14 @@ attrArgPositional | System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | | System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [AttributeUsageAttribute(...)] | 0 | 1133 | | System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | +| System.Runtime.DependentHandle | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.DependentHandle | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.ExceptionServices.ExceptionDispatchInfo | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.ExceptionServices.ExceptionDispatchInfo | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | +| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [ObsoleteAttribute(...)] | 0 | Recovery from corrupted process state exceptions is not supported; HandleProcessCorruptedStateExceptionsAttribute is ignored. | | System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | | System.Runtime.InteropServices.ArrayWithOffset | [NullableAttribute(...)] | 0 | 0 | @@ -2311,13 +2811,17 @@ attrArgPositional | System.Runtime.InteropServices.BStrWrapper | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.BStrWrapper | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.InteropServices.BestFitMappingAttribute | [AttributeUsageAttribute(...)] | 0 | 1037 | +| System.Runtime.InteropServices.CLong | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.InteropServices.COMException | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.COMException | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.InteropServices.COMException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.Runtime.InteropServices.CULong | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.InteropServices.ClassInterfaceAttribute | [AttributeUsageAttribute(...)] | 0 | 5 | | System.Runtime.InteropServices.CoClassAttribute | [AttributeUsageAttribute(...)] | 0 | 1024 | | System.Runtime.InteropServices.CoClassAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.CoClassAttribute | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.InteropServices.CollectionsMarshal | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.InteropServices.CollectionsMarshal | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | | System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [NullableContextAttribute(...)] | 0 | 1 | @@ -2393,7 +2897,10 @@ attrArgPositional | System.Runtime.InteropServices.ComWrappers | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.InteropServices.ComWrappers | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.ComWrappers | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComWrappers | [SupportedOSPlatformAttribute(...)] | 0 | windows | +| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | android | +| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | | System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch | [NullableContextAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry | [NullableContextAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.DefaultCharSetAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | @@ -2412,7 +2919,6 @@ attrArgPositional | System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute | [AttributeUsageAttribute(...)] | 0 | 1024 | | System.Runtime.InteropServices.ErrorWrapper | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.ErrorWrapper | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.Expando.IExpando | [GuidAttribute(...)] | 0 | AFBF15E6-C37C-11d2-B88E-00A0C9B471B8 | | System.Runtime.InteropServices.ExternalException | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.ExternalException | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.InteropServices.ExternalException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -2446,8 +2952,18 @@ attrArgPositional | System.Runtime.InteropServices.MarshalDirectiveException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.Runtime.InteropServices.NativeLibrary | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.NativeLibrary | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal | [CLSCompliantAttribute(...)] | 0 | False | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal | [SupportedOSPlatformAttribute(...)] | 0 | macos | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [SupportedOSPlatformAttribute(...)] | 0 | macos | | System.Runtime.InteropServices.OptionalAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | | System.Runtime.InteropServices.OutAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | +| System.Runtime.InteropServices.PosixSignal.SIGCHLD | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | +| System.Runtime.InteropServices.PosixSignal.SIGCONT | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | +| System.Runtime.InteropServices.PosixSignal.SIGTSTP | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | +| System.Runtime.InteropServices.PosixSignal.SIGTTIN | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | +| System.Runtime.InteropServices.PosixSignal.SIGTTOU | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | +| System.Runtime.InteropServices.PosixSignal.SIGWINCH | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | | System.Runtime.InteropServices.PreserveSigAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.Runtime.InteropServices.ProgIdAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | | System.Runtime.InteropServices.ProgIdAttribute | [NullableAttribute(...)] | 0 | 0 | @@ -2470,6 +2986,8 @@ attrArgPositional | System.Runtime.InteropServices.TypeIdentifierAttribute | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.InteropServices.UnknownWrapper | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.InteropServices.UnknownWrapper | [NullableContextAttribute(...)] | 0 | 2 | +| System.Runtime.InteropServices.UnmanagedCallConvAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | +| System.Runtime.InteropServices.UnmanagedCallConvAttribute.CallConvs | [NullableAttribute(...)] | 0 | [2,1] | | System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | | System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.CallConvs | [NullableAttribute(...)] | 0 | [2,1] | | System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.EntryPoint | [NullableAttribute(...)] | 0 | 2 | @@ -2493,6 +3011,8 @@ attrArgPositional | System.Runtime.Intrinsics.X86.Aes | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.Intrinsics.X86.Avx | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.Intrinsics.X86.Avx2 | [CLSCompliantAttribute(...)] | 0 | False | +| System.Runtime.Intrinsics.X86.AvxVnni | [CLSCompliantAttribute(...)] | 0 | False | +| System.Runtime.Intrinsics.X86.AvxVnni | [RequiresPreviewFeaturesAttribute(...)] | 0 | AvxVnni is in preview. | | System.Runtime.Intrinsics.X86.Bmi1 | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.Intrinsics.X86.Bmi2 | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.Intrinsics.X86.Fma | [CLSCompliantAttribute(...)] | 0 | False | @@ -2507,6 +3027,10 @@ attrArgPositional | System.Runtime.Intrinsics.X86.Ssse3 | [CLSCompliantAttribute(...)] | 0 | False | | System.Runtime.Loader.AssemblyDependencyResolver | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.Loader.AssemblyDependencyResolver | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | android | +| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | | System.Runtime.Loader.AssemblyLoadContext | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.Loader.AssemblyLoadContext | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.Loader.AssemblyLoadContext System.Runtime.Loader.AssemblyLoadContext.CurrentContextualReflectionContext | [NullableAttribute(...)] | 0 | 2 | @@ -2555,16 +3079,21 @@ attrArgPositional | System.Runtime.Versioning.NonVersionableAttribute | [AttributeUsageAttribute(...)] | 0 | 108 | | System.Runtime.Versioning.OSPlatformAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.Versioning.OSPlatformAttribute | [NullableContextAttribute(...)] | 0 | 1 | +| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [AttributeUsageAttribute(...)] | 0 | 6143 | +| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [NullableAttribute(...)] | 0 | 0 | +| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [NullableContextAttribute(...)] | 0 | 2 | | System.Runtime.Versioning.ResourceConsumptionAttribute | [AttributeUsageAttribute(...)] | 0 | 224 | | System.Runtime.Versioning.ResourceConsumptionAttribute | [ConditionalAttribute(...)] | 0 | RESOURCE_ANNOTATION_WORK | | System.Runtime.Versioning.ResourceExposureAttribute | [AttributeUsageAttribute(...)] | 0 | 480 | | System.Runtime.Versioning.ResourceExposureAttribute | [ConditionalAttribute(...)] | 0 | RESOURCE_ANNOTATION_WORK | -| System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 1023 | +| System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 2047 | +| System.Runtime.Versioning.SupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | 0 | 448 | | System.Runtime.Versioning.TargetFrameworkAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | | System.Runtime.Versioning.TargetFrameworkAttribute | [NullableAttribute(...)] | 0 | 0 | | System.Runtime.Versioning.TargetFrameworkAttribute | [NullableContextAttribute(...)] | 0 | 1 | | System.Runtime.Versioning.TargetPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 1023 | +| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 2047 | +| System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | 0 | 448 | | System.RuntimeType.ListBuilder`1 | [DefaultMemberAttribute(...)] | 0 | Item | | System.RuntimeTypeHandle | [NullableAttribute(...)] | 0 | 0 | | System.RuntimeTypeHandle | [NullableContextAttribute(...)] | 0 | 2 | @@ -2605,7 +3134,7 @@ attrArgPositional | System.Security.SecuritySafeCriticalAttribute | [AttributeUsageAttribute(...)] | 0 | 5500 | | System.Security.SecurityTransparentAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | | System.Security.SecurityTreatAsSafeAttribute | [AttributeUsageAttribute(...)] | 0 | 5501 | -| System.Security.SecurityTreatAsSafeAttribute | [ObsoleteAttribute(...)] | 0 | SecurityTreatAsSafe is only used for .NET 2.0 transparency compatibility. Please use the SecuritySafeCriticalAttribute instead. | +| System.Security.SecurityTreatAsSafeAttribute | [ObsoleteAttribute(...)] | 0 | SecurityTreatAsSafe is only used for .NET 2.0 transparency compatibility. Use the SecuritySafeCriticalAttribute instead. | | System.Security.SuppressUnmanagedCodeSecurityAttribute | [AttributeUsageAttribute(...)] | 0 | 5188 | | System.Security.UnverifiableCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | | System.Security.VerificationException | [NullableAttribute(...)] | 0 | 0 | @@ -2658,7 +3187,10 @@ attrArgPositional | System.Text.EncoderReplacementFallback | [NullableContextAttribute(...)] | 0 | 1 | | System.Text.Encoding | [NullableAttribute(...)] | 0 | 0 | | System.Text.Encoding | [NullableContextAttribute(...)] | 0 | 1 | +| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | | System.Text.Encoding System.Text.Encoding.UTF7 | [ObsoleteAttribute(...)] | 0 | The UTF-7 encoding is insecure and should not be used. Consider using UTF-8 instead. | | System.Text.EncodingInfo | [NullableAttribute(...)] | 0 | 0 | | System.Text.EncodingInfo | [NullableContextAttribute(...)] | 0 | 1 | @@ -2667,13 +3199,19 @@ attrArgPositional | System.Text.EncodingProvider System.Text.EncodingInfo.Provider | [NullableAttribute(...)] | 0 | 2 | | System.Text.Latin1Encoding.<>c.<>9__29_0 | [TupleElementNamesAttribute(...)] | 0 | [encoding,bytes] | | System.Text.Latin1Encoding.<>c.<>9__30_0 | [TupleElementNamesAttribute(...)] | 0 | [encoding,bytes,index] | +| System.Text.NormalizationForm.FormKC | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| System.Text.NormalizationForm.FormKD | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Text.Rune | [DebuggerDisplayAttribute(...)] | 0 | {DebuggerDisplay,nq} | +| System.Text.SpanLineEnumerator | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | +| System.Text.SpanLineEnumerator | [ObsoleteAttribute(...)] | 1 | True | | System.Text.SpanRuneEnumerator | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | | System.Text.SpanRuneEnumerator | [ObsoleteAttribute(...)] | 1 | True | | System.Text.StringBuilder | [DefaultMemberAttribute(...)] | 0 | Chars | | System.Text.StringBuilder | [NullableAttribute(...)] | 0 | 0 | | System.Text.StringBuilder | [NullableContextAttribute(...)] | 0 | 1 | | System.Text.StringBuilder | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.Text.StringBuilder.AppendInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | +| System.Text.StringBuilder.AppendInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | | System.Text.StringBuilder.ChunkEnumerator | [NullableContextAttribute(...)] | 0 | 0 | | System.Text.UTF7Encoding | [NullableAttribute(...)] | 0 | 0 | | System.Text.UTF7Encoding | [NullableContextAttribute(...)] | 0 | 1 | @@ -2686,19 +3224,20 @@ attrArgPositional | System.Text.ValueStringBuilder | [DefaultMemberAttribute(...)] | 0 | Item | | System.Text.ValueStringBuilder | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | | System.Text.ValueStringBuilder | [ObsoleteAttribute(...)] | 1 | True | +| System.Text.ValueUtf8Converter | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | +| System.Text.ValueUtf8Converter | [ObsoleteAttribute(...)] | 1 | True | | System.ThreadStaticAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | | System.Threading.AbandonedMutexException | [NullableAttribute(...)] | 0 | 0 | | System.Threading.AbandonedMutexException | [NullableContextAttribute(...)] | 0 | 2 | | System.Threading.AbandonedMutexException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.ApartmentState System.Threading.Thread.ApartmentState | [ObsoleteAttribute(...)] | 0 | The ApartmentState property has been deprecated. Use GetApartmentState, SetApartmentState or TrySetApartmentState instead. | -| System.Threading.ApartmentState System.Threading.Thread.ApartmentState | [ObsoleteAttribute(...)] | 1 | False | +| System.Threading.ApartmentState System.Threading.Thread.ApartmentState | [ObsoleteAttribute(...)] | 0 | The ApartmentState property has been deprecated. Use GetApartmentState, SetApartmentState or TrySetApartmentState. | | System.Threading.AsyncLocalValueChangedArgs`1 | [NullableAttribute(...)] | 0 | 0 | | System.Threading.AsyncLocalValueChangedArgs`1 | [NullableContextAttribute(...)] | 0 | 2 | | System.Threading.AsyncLocal`1 | [NullableAttribute(...)] | 0 | 0 | | System.Threading.AsyncLocal`1 | [NullableContextAttribute(...)] | 0 | 1 | | System.Threading.CancellationToken | [DebuggerDisplayAttribute(...)] | 0 | IsCancellationRequested = {IsCancellationRequested} | | System.Threading.CancellationToken | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.CancellationToken | [NullableContextAttribute(...)] | 0 | 1 | +| System.Threading.CancellationToken | [NullableContextAttribute(...)] | 0 | 2 | | System.Threading.CancellationTokenSource | [NullableAttribute(...)] | 0 | 0 | | System.Threading.CancellationTokenSource | [NullableContextAttribute(...)] | 0 | 1 | | System.Threading.CompressedStack | [NullableAttribute(...)] | 0 | 0 | @@ -2724,6 +3263,9 @@ attrArgPositional | System.Threading.Mutex | [NullableContextAttribute(...)] | 0 | 1 | | System.Threading.Overlapped | [NullableAttribute(...)] | 0 | 0 | | System.Threading.Overlapped | [NullableContextAttribute(...)] | 0 | 2 | +| System.Threading.PortableThreadPool.WaitThread System.Threading.RegisteredWaitHandle.WaitThread | [NullableAttribute(...)] | 0 | 2 | +| System.Threading.RegisteredWaitHandle | [NullableAttribute(...)] | 0 | 0 | +| System.Threading.RegisteredWaitHandle | [NullableContextAttribute(...)] | 0 | 1 | | System.Threading.RegisteredWaitHandle | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | | System.Threading.Semaphore | [NullableAttribute(...)] | 0 | 0 | | System.Threading.Semaphore | [NullableContextAttribute(...)] | 0 | 1 | @@ -2800,6 +3342,7 @@ attrArgPositional | System.Threading.Tasks.ValueTask | [NullableAttribute(...)] | 0 | 0 | | System.Threading.Tasks.ValueTask | [NullableContextAttribute(...)] | 0 | 1 | | System.Threading.Tasks.ValueTask System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task | [NullableAttribute(...)] | 0 | [0,1] | +| System.Threading.Tasks.ValueTask System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.Task | [NullableAttribute(...)] | 0 | [0,1] | | System.Threading.Tasks.ValueTask`1 | [AsyncMethodBuilderAttribute(...)] | 0 | System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1 | | System.Threading.Tasks.ValueTask`1 | [NullableAttribute(...)] | 0 | 0 | | System.Threading.Tasks.ValueTask`1 | [NullableContextAttribute(...)] | 0 | 1 | @@ -2824,21 +3367,37 @@ attrArgPositional | System.Threading.ThreadStateException | [NullableAttribute(...)] | 0 | 0 | | System.Threading.ThreadStateException | [NullableContextAttribute(...)] | 0 | 2 | | System.Threading.ThreadStateException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.Threading.Timer | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | +| System.Threading.Timer | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.TimerQueueTimer.TimerDebuggerTypeProxy | | System.Threading.Timer | [NullableAttribute(...)] | 0 | 0 | | System.Threading.Timer | [NullableContextAttribute(...)] | 0 | 1 | +| System.Threading.TimerQueue | [DebuggerDisplayAttribute(...)] | 0 | Count = {CountForDebugger} | +| System.Threading.TimerQueue | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.TimerQueue.TimerQueueDebuggerTypeProxy | +| System.Threading.TimerQueue.s_tickCountToTimeMap | [TupleElementNamesAttribute(...)] | 0 | [TickCount,Time] | +| System.Threading.TimerQueueTimer | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | +| System.Threading.TimerQueueTimer | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.TimerQueueTimer.TimerDebuggerTypeProxy | +| System.Threading.TimerQueueTimer[] System.Threading.TimerQueue.TimerQueueDebuggerTypeProxy.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | System.Threading.Volatile | [NullableAttribute(...)] | 0 | 0 | | System.Threading.Volatile | [NullableContextAttribute(...)] | 0 | 1 | | System.Threading.WaitHandle | [NullableAttribute(...)] | 0 | 0 | | System.Threading.WaitHandle | [NullableContextAttribute(...)] | 0 | 1 | +| System.Threading.WaitHandle System.Threading.CancellationToken.WaitHandle | [NullableAttribute(...)] | 0 | 1 | | System.Threading.WaitHandle System.Threading.ManualResetEventSlim.WaitHandle | [NullableAttribute(...)] | 0 | 1 | | System.Threading.WaitHandleCannotBeOpenedException | [NullableAttribute(...)] | 0 | 0 | | System.Threading.WaitHandleCannotBeOpenedException | [NullableContextAttribute(...)] | 0 | 2 | | System.Threading.WaitHandleCannotBeOpenedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.Threading.WaitHandleExtensions | [NullableAttribute(...)] | 0 | 0 | | System.Threading.WaitHandleExtensions | [NullableContextAttribute(...)] | 0 | 1 | +| System.TimeOnly System.TimeOnly.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.TimeOnly System.TimeOnly.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.TimeSpan System.DateTime.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.TimeSpan System.DateTimeOffset.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.TimeSpan System.TimeSpan.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.TimeSpan System.TimeSpan.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.TimeSpan System.TimeSpan.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.TimeZone | [NullableAttribute(...)] | 0 | 0 | | System.TimeZone | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeZone | [ObsoleteAttribute(...)] | 0 | System.TimeZone has been deprecated. Please investigate the use of System.TimeZoneInfo instead. | +| System.TimeZone | [ObsoleteAttribute(...)] | 0 | System.TimeZone has been deprecated. Investigate the use of System.TimeZoneInfo instead. | | System.TimeZoneInfo | [NullableAttribute(...)] | 0 | 0 | | System.TimeZoneInfo | [NullableContextAttribute(...)] | 0 | 1 | | System.TimeZoneInfo | [TypeForwardedFromAttribute(...)] | 0 | System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -2898,10 +3457,13 @@ attrArgPositional | System.Type System.Reflection.FieldInfo.FieldType | [NullableAttribute(...)] | 0 | 1 | | System.Type System.Reflection.MemberInfo.DeclaringType | [NullableAttribute(...)] | 0 | 2 | | System.Type System.Reflection.MemberInfo.ReflectedType | [NullableAttribute(...)] | 0 | 2 | +| System.Type System.Reflection.Metadata.MetadataUpdateHandlerAttribute.HandlerType | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | | System.Type System.Reflection.PropertyInfo.PropertyType | [NullableAttribute(...)] | 0 | 1 | | System.Type System.Reflection.TypeDelegator.BaseType | [NullableAttribute(...)] | 0 | 2 | | System.Type System.Resources.ResourceManager.ResourceManagerMediator.UserResourceSet | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | | System.Type System.Resources.ResourceManager.ResourceSetType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | +| System.Type System.Runtime.InteropServices.ComEventInterfaceAttribute.EventProvider | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2607 | +| System.Type System.Runtime.InteropServices.ComEventInterfaceAttribute.SourceInterface | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | | System.Type System.Type.BaseType | [NullableAttribute(...)] | 0 | 2 | | System.Type System.Type.DeclaringType | [NullableAttribute(...)] | 0 | 2 | | System.Type System.Type.ReflectedType | [NullableAttribute(...)] | 0 | 2 | @@ -2923,6 +3485,12 @@ attrArgPositional | System.TypedReference | [NullableContextAttribute(...)] | 0 | 1 | | System.UIntPtr | [CLSCompliantAttribute(...)] | 0 | False | | System.UIntPtr | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.UIntPtr System.UIntPtr.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.UIntPtr System.UIntPtr.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.UIntPtr System.UIntPtr.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.UIntPtr System.UIntPtr.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.UIntPtr System.UIntPtr.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| System.UIntPtr System.UIntPtr.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | System.UnauthorizedAccessException | [NullableAttribute(...)] | 0 | 0 | | System.UnauthorizedAccessException | [NullableContextAttribute(...)] | 0 | 2 | | System.UnauthorizedAccessException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -2931,6 +3499,8 @@ attrArgPositional | System.ValueTuple | [NullableAttribute(...)] | 0 | 0 | | System.ValueTuple | [NullableContextAttribute(...)] | 0 | 1 | | System.ValueTuple | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| System.ValueTuple System.Runtime.DependentHandle.TargetAndDependent | [NullableAttribute(...)] | 0 | [0,2,2] | +| System.ValueTuple System.Runtime.DependentHandle.TargetAndDependent | [TupleElementNamesAttribute(...)] | 0 | [Target,Dependent] | | System.ValueTuple`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | System.ValueTuple`1.Item1 | [NullableAttribute(...)] | 0 | 1 | | System.ValueTuple`2 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | @@ -2977,18 +3547,38 @@ attrArgPositional | bool | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | bool System.Console.CapsLock | [SupportedOSPlatformAttribute(...)] | 0 | windows | | bool System.Console.NumberLock | [SupportedOSPlatformAttribute(...)] | 0 | windows | +| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | | bool System.Reflection.Assembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | 0 | The Global Assembly Cache is not supported. | -| bool System.Reflection.Emit.AssemblyBuilder.GlobalAssemblyCache | [ObsoleteAttribute(...)] | 0 | The Global Assembly Cache is not supported. | | bool System.Reflection.RuntimeAssembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | 0 | The Global Assembly Cache is not supported. | +| bool System.Threading.Thread.IsThreadStartSupported | [UnsupportedOSPlatformGuardAttribute(...)] | 0 | browser | | bool.FalseString | [NullableAttribute(...)] | 0 | 1 | | bool.TrueString | [NullableAttribute(...)] | 0 | 1 | | byte | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| byte byte.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| byte byte.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| byte byte.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| byte byte.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| byte byte.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| byte byte.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | byte* System.IO.UnmanagedMemoryStream.PositionPointer | [CLSCompliantAttribute(...)] | 0 | False | -| char | [NullableAttribute(...)] | 0 | 0 | -| char | [NullableContextAttribute(...)] | 0 | 1 | | char | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| char char.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| char char.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| char char.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| char char.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| char char.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| char char.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | decimal | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| decimal decimal.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| decimal decimal.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| decimal decimal.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| decimal decimal.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| decimal decimal.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| decimal decimal.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| decimal decimal.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | decimal.MaxValue | [DecimalConstantAttribute(...)] | 0 | 0 | | decimal.MaxValue | [DecimalConstantAttribute(...)] | 1 | 0 | | decimal.MaxValue | [DecimalConstantAttribute(...)] | 2 | 4294967295 | @@ -3015,16 +3605,73 @@ attrArgPositional | decimal.Zero | [DecimalConstantAttribute(...)] | 3 | 0 | | decimal.Zero | [DecimalConstantAttribute(...)] | 4 | 0 | | double | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| double System.TimeSpan.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.E | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.Epsilon | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.NaN | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.NegativeInfinity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.NegativeZero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.Pi | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.PositiveInfinity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.Tau | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| double double.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | float | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| float float.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.E | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.Epsilon | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.NaN | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.NegativeInfinity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.NegativeZero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.Pi | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.PositiveInfinity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.Tau | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| float float.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | int | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | +| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | +| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | +| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | +| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | android | | int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Threading.Overlapped.EventHandle | [ObsoleteAttribute(...)] | 0 | This property is not 64-bit compatible. Use EventHandleIntPtr instead. http://go.microsoft.com/fwlink/?linkid=14202 | +| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | +| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | +| int System.Threading.Overlapped.EventHandle | [ObsoleteAttribute(...)] | 0 | Overlapped.EventHandle is not 64-bit compatible and has been deprecated. Use EventHandleIntPtr instead. | +| int int.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| int int.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| int int.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| int int.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| int int.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| int int.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| int int.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | int[] System.Globalization.HebrewCalendar.Eras | [NullableAttribute(...)] | 0 | 1 | | int[] System.Globalization.StringInfo.Indexes | [NullableAttribute(...)] | 0 | 2 | | long | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| long long.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| long long.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| long long.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| long long.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| long long.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| long long.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| long long.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | object | [ClassInterfaceAttribute(...)] | 0 | 1 | | object | [ComVisibleAttribute(...)] | 0 | True | | object | [NullableContextAttribute(...)] | 0 | 2 | @@ -3045,6 +3692,7 @@ attrArgPositional | object System.Collections.Generic.HashSet`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | | object System.Collections.Generic.List`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | | object System.Collections.Generic.List`1.Item | [NullableAttribute(...)] | 0 | 2 | +| object System.Collections.Generic.Queue`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | | object System.Collections.Hashtable.Item | [NullableAttribute(...)] | 0 | 2 | | object System.Collections.IDictionary.Item | [NullableAttribute(...)] | 0 | 2 | | object System.Collections.IDictionaryEnumerator.Value | [NullableAttribute(...)] | 0 | 2 | @@ -3053,6 +3701,7 @@ attrArgPositional | object System.Collections.ObjectModel.ReadOnlyCollection`1.Item | [NullableAttribute(...)] | 0 | 2 | | object System.Delegate.Target | [NullableAttribute(...)] | 0 | 2 | | object System.IAsyncResult.AsyncState | [NullableAttribute(...)] | 0 | 2 | +| object System.IO.Enumeration.FileSystemEnumerator`1.Current | [NullableAttribute(...)] | 0 | 2 | | object System.Reflection.CustomAttributeTypedArgument.Value | [NullableAttribute(...)] | 0 | 2 | | object System.Reflection.ParameterInfo.DefaultValue | [NullableAttribute(...)] | 0 | 2 | | object System.Reflection.ParameterInfo.RawDefaultValue | [NullableAttribute(...)] | 0 | 2 | @@ -3083,7 +3732,21 @@ attrArgPositional | object[] System.Collections.ArrayList.ArrayListDebugView.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | | sbyte | [CLSCompliantAttribute(...)] | 0 | False | | sbyte | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| sbyte sbyte.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| sbyte sbyte.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| sbyte sbyte.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| sbyte sbyte.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| sbyte sbyte.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| sbyte sbyte.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| sbyte sbyte.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | short | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| short short.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| short short.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| short short.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| short short.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| short short.NegativeOne | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| short short.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| short short.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | string | [DefaultMemberAttribute(...)] | 0 | Chars | | string | [NullableAttribute(...)] | 0 | 0 | | string | [NullableContextAttribute(...)] | 0 | 1 | @@ -3106,21 +3769,30 @@ attrArgPositional | string System.Diagnostics.DebuggerDisplayAttribute.Value | [NullableAttribute(...)] | 0 | 1 | | string System.Diagnostics.DebuggerTypeProxyAttribute.ProxyTypeName | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | | string System.Diagnostics.DebuggerTypeProxyAttribute.ProxyTypeName | [NullableAttribute(...)] | 0 | 1 | +| string System.Diagnostics.DebuggerVisualizerAttribute.VisualizerObjectSourceTypeName | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | +| string System.Diagnostics.DebuggerVisualizerAttribute.VisualizerTypeName | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | | string System.Diagnostics.DebuggerVisualizerAttribute.VisualizerTypeName | [NullableAttribute(...)] | 0 | 1 | | string System.Diagnostics.Tracing.EventFieldAttribute.Name | [NullableAttribute(...)] | 0 | 2 | | string System.Diagnostics.Tracing.EventSource.Name | [NullableAttribute(...)] | 0 | 1 | | string System.Diagnostics.Tracing.TraceLoggingEventTypes.Name | [NullableAttribute(...)] | 0 | 1 | +| string System.Environment.ProcessPath | [NullableAttribute(...)] | 0 | 2 | | string System.Exception.Message | [NullableAttribute(...)] | 0 | 1 | | string System.Globalization.CultureNotFoundException.DefaultMessage | [NullableAttribute(...)] | 0 | 1 | | string System.Globalization.CultureNotFoundException.Message | [NullableAttribute(...)] | 0 | 1 | +| string System.IO.FileInfo.DirectoryName | [NullableAttribute(...)] | 0 | 2 | | string System.IO.FileLoadException.Message | [NullableAttribute(...)] | 0 | 1 | | string System.IO.FileNotFoundException.Message | [NullableAttribute(...)] | 0 | 1 | +| string System.IO.FileSystemInfo.LinkTarget | [NullableAttribute(...)] | 0 | 2 | | string System.MissingMemberException.Message | [NullableAttribute(...)] | 0 | 1 | | string System.Reflection.Assembly.CodeBase | [NullableAttribute(...)] | 0 | 2 | +| string System.Reflection.Assembly.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | +| string System.Reflection.Assembly.EscapedCodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | | string System.Reflection.Assembly.FullName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.AssemblyMetadataAttribute.Value | [NullableAttribute(...)] | 0 | 2 | +| string System.Reflection.AssemblyName.EscapedCodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | The code will return an empty string for assemblies embedded in a single-file app | | string System.Reflection.AssemblyName.FullName | [NullableAttribute(...)] | 0 | 1 | | string System.Reflection.Emit.AssemblyBuilder.CodeBase | [NullableAttribute(...)] | 0 | 2 | +| string System.Reflection.Emit.AssemblyBuilder.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | | string System.Reflection.Emit.AssemblyBuilder.FullName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.Emit.EnumBuilder.AssemblyQualifiedName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.Emit.EnumBuilder.FullName | [NullableAttribute(...)] | 0 | 2 | @@ -3128,10 +3800,18 @@ attrArgPositional | string System.Reflection.Emit.GenericTypeParameterBuilder.AssemblyQualifiedName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.Emit.GenericTypeParameterBuilder.FullName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.Emit.GenericTypeParameterBuilder.Namespace | [NullableAttribute(...)] | 0 | 2 | +| string System.Reflection.Emit.InternalAssemblyBuilder.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | +| string System.Reflection.Emit.ModuleBuilder.FullyQualifiedName | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns for modules with no file path | +| string System.Reflection.Emit.ModuleBuilder.Name | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns for modules with no file path | | string System.Reflection.Emit.TypeBuilder.AssemblyQualifiedName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.Emit.TypeBuilder.FullName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.Emit.TypeBuilder.Namespace | [NullableAttribute(...)] | 0 | 2 | +| string System.Reflection.Module.FullyQualifiedName | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns for modules with no file path | +| string System.Reflection.Module.Name | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns for modules with no file path | | string System.Reflection.ParameterInfo.Name | [NullableAttribute(...)] | 0 | 2 | +| string System.Reflection.RuntimeAssembly.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | +| string System.Reflection.RuntimeModule.FullyQualifiedName | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns for modules with no file path | +| string System.Reflection.RuntimeModule.Name | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns for modules with no file path | | string System.Reflection.TypeDelegator.AssemblyQualifiedName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.TypeDelegator.FullName | [NullableAttribute(...)] | 0 | 2 | | string System.Reflection.TypeDelegator.Namespace | [NullableAttribute(...)] | 0 | 2 | @@ -3151,10 +3831,28 @@ attrArgPositional | uint | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | uint System.Reflection.AssemblyAlgorithmIdAttribute.AlgorithmId | [CLSCompliantAttribute(...)] | 0 | False | | uint System.Reflection.AssemblyFlagsAttribute.Flags | [CLSCompliantAttribute(...)] | 0 | False | -| uint System.Reflection.AssemblyFlagsAttribute.Flags | [ObsoleteAttribute(...)] | 0 | This property has been deprecated. Please use AssemblyFlags instead. https://go.microsoft.com/fwlink/?linkid=14202 | +| uint System.Reflection.AssemblyFlagsAttribute.Flags | [ObsoleteAttribute(...)] | 0 | AssemblyFlagsAttribute.Flags has been deprecated. Use AssemblyFlags instead. | +| uint uint.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| uint uint.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| uint uint.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| uint uint.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| uint uint.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| uint uint.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | ulong | [CLSCompliantAttribute(...)] | 0 | False | | ulong | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | | ulong System.Runtime.InteropServices.SafeBuffer.ByteLength | [CLSCompliantAttribute(...)] | 0 | False | +| ulong ulong.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ulong ulong.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ulong ulong.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ulong ulong.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ulong ulong.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ulong ulong.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | ushort | [CLSCompliantAttribute(...)] | 0 | False | | ushort | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| ushort ushort.AdditiveIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ushort ushort.MaxValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ushort ushort.MinValue | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ushort ushort.MultiplicativeIdentity | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ushort ushort.One | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | +| ushort ushort.Zero | [RequiresPreviewFeaturesAttribute(...)] | 0 | Generic Math is in preview. | | void* System.Buffers.MemoryHandle.Pointer | [CLSCompliantAttribute(...)] | 0 | False | diff --git a/csharp/ql/test/library-tests/cil/attributes/attribute.ql b/csharp/ql/test/library-tests/cil/attributes/attribute.ql index ce5ed1e1daf..066bb26d9b7 100644 --- a/csharp/ql/test/library-tests/cil/attributes/attribute.ql +++ b/csharp/ql/test/library-tests/cil/attributes/attribute.ql @@ -1,7 +1,14 @@ import semmle.code.cil.Attribute import semmle.code.cil.Declaration -private predicate isOsSpecific(Declaration d) { d.getQualifiedName().matches("%libobjc%") } +private predicate isOsSpecific(Declaration d) { + d.getQualifiedName() + .matches("%" + + [ + "libobjc", "libproc", "System.Diagnostics.Tracing.XplatEventLogger", + "System.Threading.AutoreleasePool" + ] + "%") +} query predicate attrNoArg(string dec, string attr) { exists(Declaration d, Attribute a | diff --git a/csharp/ql/test/library-tests/cil/consistency/consistency.expected b/csharp/ql/test/library-tests/cil/consistency/consistency.expected index 7013329175d..ef5579d1369 100644 --- a/csharp/ql/test/library-tests/cil/consistency/consistency.expected +++ b/csharp/ql/test/library-tests/cil/consistency/consistency.expected @@ -1,3 +1,10 @@ | Finalize | Overridden method from System.Object is not in a base type | -| System.Int32 System.Text.UnicodeEncoding.GetByteCount(System.Char*,System.Int32,System.Text.EncoderNLS): dup, ldarg.2 [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; shl [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; bge.s [push: 0, pop: 2]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 0]; newobj [push: 1, pop: 2]; throw [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldarg.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; stloc.2 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brfalse [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; stloc.3 [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; brfalse [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; call [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; call [push: 1, pop: 1]; call [push: 1, pop: 3]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; br [push: 0, pop: 0]; ldloc.s [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldsfld [push: 1, pop: 0]; xor [push: 1, pop: 2]; brfalse [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; ldc.i4.7 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldloc.2 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldc.i8 [push: 1, pop: 0]; xor [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldsfld [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; br.s [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; bne.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; blt.un [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; bge.un [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldind.u2 [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; blt [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt.s [push: 0, pop: 2]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.s [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | -| System.Int32 System.Text.UnicodeEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32,System.Text.EncoderNLS): dup, ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.2 [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.3 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldarg.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brfalse [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; brfalse [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; call [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; call [push: 1, pop: 1]; call [push: 1, pop: 3]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; br [push: 0, pop: 0]; ldloc.1 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldsfld [push: 1, pop: 0]; xor [push: 1, pop: 2]; brfalse [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; ldc.i4.7 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; shr [push: 1, pop: 2]; ldloc.s [push: 1, pop: 0]; ldarg.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; blt.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldarg.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; shr [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; mul [push: 1, pop: 2]; conv.i [push: 1, pop: 1]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldc.i8 [push: 1, pop: 0]; xor [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldsfld [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; br.s [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; bne.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; call [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; blt.un [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; bge.un [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldind.u2 [push: 1, pop: 1]; stloc.1 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; blt [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.1 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; add [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; blt.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ceq [push: 1, pop: 2]; call [push: 0, pop: 3]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; blt.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ceq [push: 1, pop: 2]; call [push: 0, pop: 3]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | +| System.Int32 System.Math.Sign(System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; ldc.i4.s [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldarg.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | +| System.Int32 System.Runtime.InteropServices.Marshal.AddRef(System.IntPtr): calli, ldarg.0 [push: 1, pop: 0]; ldsfld [push: 1, pop: 0]; call [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldstr [push: 1, pop: 0]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; call [push: 1, pop: 1]; ldind.i [push: 1, pop: 1]; sizeof [push: 1, pop: 0]; add [push: 1, pop: 2]; ldind.i [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; calli [push: 1, pop: 2] | Expression is missing getType() | +| System.Int32 System.Runtime.InteropServices.Marshal.QueryInterface(System.IntPtr,System.Guid,System.IntPtr): calli, ldarg.0 [push: 1, pop: 0]; ldsfld [push: 1, pop: 0]; call [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldstr [push: 1, pop: 0]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.2 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; conv.u [push: 1, pop: 1]; stloc.2 [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; call [push: 1, pop: 1]; ldind.i [push: 1, pop: 1]; ldind.i [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; calli [push: 1, pop: 4] | Expression is missing getType() | +| System.Int32 System.Runtime.InteropServices.Marshal.Release(System.IntPtr): calli, ldarg.0 [push: 1, pop: 0]; ldsfld [push: 1, pop: 0]; call [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldstr [push: 1, pop: 0]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; call [push: 1, pop: 1]; ldind.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; sizeof [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; ldind.i [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; calli [push: 1, pop: 2] | Expression is missing getType() | +| System.Int32 System.Text.UnicodeEncoding.GetByteCount(System.Char*,System.Int32,System.Text.EncoderNLS): dup, ldarg.2 [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; shl [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; bge.s [push: 0, pop: 2]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 0]; newobj [push: 1, pop: 2]; throw [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldarg.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; stloc.2 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brfalse [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; stloc.3 [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; brfalse [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; call [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; call [push: 1, pop: 1]; call [push: 1, pop: 3]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; br [push: 0, pop: 0]; ldloc.s [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldsfld [push: 1, pop: 0]; xor [push: 1, pop: 2]; brfalse [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; ldc.i4.7 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldloc.2 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldc.i8 [push: 1, pop: 0]; xor [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldsfld [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; bne.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; blt.un [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; bge.un [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldind.u2 [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; blt [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt.s [push: 0, pop: 2]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.s [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | +| System.Int32 System.Text.UnicodeEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32,System.Text.EncoderNLS): dup, ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.2 [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.3 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldarg.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brfalse [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; brfalse [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; call [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; call [push: 1, pop: 1]; call [push: 1, pop: 3]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; br [push: 0, pop: 0]; ldloc.1 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldsfld [push: 1, pop: 0]; xor [push: 1, pop: 2]; brfalse [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; ldc.i4.7 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; shr [push: 1, pop: 2]; ldloc.s [push: 1, pop: 0]; ldarg.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; blt.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldarg.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; shr [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; mul [push: 1, pop: 2]; conv.i [push: 1, pop: 1]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldc.i8 [push: 1, pop: 0]; xor [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldsfld [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; bne.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; call [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; blt.un [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; bge.un [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldind.u2 [push: 1, pop: 1]; stloc.1 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; blt [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.1 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; add [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; blt.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ceq [push: 1, pop: 2]; call [push: 0, pop: 3]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; blt.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ceq [push: 1, pop: 2]; call [push: 0, pop: 3]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | +| System.IntPtr System.IntPtr.op_UnaryNegation(System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | +| System.String System.Threading.TimerQueueTimer.get_DisplayString(): dup, ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.s [push: 1, pop: 0]; newarr [push: 1, pop: 1]; dup [push: 2, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldc.i4.m1 [push: 1, pop: 0]; beq.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; conv.r.un [push: 1, pop: 1]; conv.r8 [push: 1, pop: 1]; call [push: 1, pop: 1]; box [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | +| System.String System.Threading.TimerQueueTimer.get_DisplayString(): dup, ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.s [push: 1, pop: 0]; newarr [push: 1, pop: 1]; dup [push: 2, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldc.i4.m1 [push: 1, pop: 0]; beq.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; conv.r.un [push: 1, pop: 1]; conv.r8 [push: 1, pop: 1]; call [push: 1, pop: 1]; box [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.3 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldc.i4.m1 [push: 1, pop: 0]; beq.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; conv.r.un [push: 1, pop: 1]; conv.r8 [push: 1, pop: 1]; call [push: 1, pop: 1]; box [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | diff --git a/csharp/ql/test/library-tests/cil/dataflow/CallableReturns.expected b/csharp/ql/test/library-tests/cil/dataflow/CallableReturns.expected index e71d177d5ef..1e98c1e6c61 100644 --- a/csharp/ql/test/library-tests/cil/dataflow/CallableReturns.expected +++ b/csharp/ql/test/library-tests/cil/dataflow/CallableReturns.expected @@ -11,8 +11,8 @@ alwaysNonNull | System.ArgumentException System.ThrowHelper.GetAddingDuplicateWithKeyArgumentException(System.Object) | | System.ArgumentException System.ThrowHelper.GetWrongKeyTypeArgumentException(System.Object,System.Type) | | System.ArgumentException System.ThrowHelper.GetWrongValueTypeArgumentException(System.Object,System.Type) | -| System.ArgumentNullException System.ThrowHelper.GetArgumentNullException(System.ExceptionArgument) | | System.Collections.Generic.KeyNotFoundException System.ThrowHelper.GetKeyNotFoundException(System.Object) | +| System.Exception System.ThrowHelper.CreateEndOfFileException() | | System.Exception System.ThrowHelper.GetArraySegmentCtorValidationFailedException(System.Array,System.Int32,System.Int32) | | System.InvalidOperationException System.ThrowHelper.GetInvalidOperationException_EnumCurrent(System.Int32) | | System.Object Dataflow.NonNullMethods.ReturnsNonNull2() | @@ -35,26 +35,35 @@ alwaysThrows | System.Object Dataflow.ThrowingMethods.get_ThrowProperty() | System.Exception | 0: newobj System.Exception..ctor, 1: throw | | System.Object Dataflow.ThrowingMethods.get_VirtualThrowProperty() | System.Exception | 0: newobj System.Exception..ctor, 1: throw | | System.Object System.ValueTuple.get_Item(System.Int32) | System.IndexOutOfRangeException | 0: newobj System.IndexOutOfRangeException..ctor, 1: throw | +| System.Void System.ThrowHelper.ArgumentOutOfRangeException_Enum_Value() | System.ArgumentOutOfRangeException | 0: ldstr "value", 1: call System.SR.get_ArgumentOutOfRange_Enum, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException`1(!0) | System.ArgumentException | 0: ldarg.0, 1: box, 2: call System.ThrowHelper.GetAddingDuplicateWithKeyArgumentException, 3: throw | | System.Void System.ThrowHelper.ThrowAggregateException(System.Collections.Generic.List) | System.AggregateException | 0: ldarg.0, 1: newobj System.AggregateException..ctor, 2: throw | | System.Void System.ThrowHelper.ThrowArgumentException_Argument_InvalidArrayType() | System.ArgumentException | 0: call System.SR.get_Argument_InvalidArrayType, 1: newobj System.ArgumentException..ctor, 2: throw | | System.Void System.ThrowHelper.ThrowArgumentException_BadComparer(System.Object) | System.ArgumentException | 0: call System.SR.get_Arg_BogusIComparer, 1: ldarg.0, 2: call System.SR.Format, 3: newobj System.ArgumentException..ctor, 4: throw | | System.Void System.ThrowHelper.ThrowArgumentException_CannotExtractScalar(System.ExceptionArgument) | System.ArgumentException | 0: ldc.i4.s 31, 1: ldarg.0, 2: call System.ThrowHelper.GetArgumentException, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentException_DestinationTooShort() | System.ArgumentException | 0: call System.SR.get_Argument_DestinationTooShort, 1: ldstr "destination", 2: newobj System.ArgumentException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowArgumentException_HandleNotAsync(System.String) | System.ArgumentException | 0: call System.SR.get_Arg_HandleNotAsync, 1: ldarg.0, 2: newobj System.ArgumentException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowArgumentException_HandleNotSync(System.String) | System.ArgumentException | 0: call System.SR.get_Arg_HandleNotSync, 1: ldarg.0, 2: newobj System.ArgumentException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowArgumentException_InvalidHandle(System.String) | System.ArgumentException | 0: call System.SR.get_Arg_InvalidHandle, 1: ldarg.0, 2: newobj System.ArgumentException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentException_OverlapAlignmentMismatch() | System.ArgumentException | 0: call System.SR.get_Argument_OverlapAlignmentMismatch, 1: newobj System.ArgumentException..ctor, 2: throw | -| System.Void System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument) | System.ArgumentNullException | 0: ldarg.0, 1: call System.ThrowHelper.GetArgumentNullException, 2: throw | +| System.Void System.ThrowHelper.ThrowArgumentException_TupleIncorrectType(System.Object) | System.ArgumentException | 0: call System.SR.get_ArgumentException_ValueTupleIncorrectType, 1: ldarg.0, 2: callvirt System.Object.GetType, 3: call System.SR.Format, 4: ldstr "other", 5: newobj System.ArgumentException..ctor, 6: throw | +| System.Void System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument) | System.ArgumentNullException | 0: ldarg.0, 1: call System.ThrowHelper.GetArgumentName, 2: newobj System.ArgumentNullException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException() | System.ArgumentOutOfRangeException | 0: newobj System.ArgumentOutOfRangeException..ctor, 1: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument) | System.ArgumentOutOfRangeException | 0: ldarg.0, 1: call System.ThrowHelper.GetArgumentName, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException_NeedNonNegNum(System.String) | System.ArgumentOutOfRangeException | 0: ldarg.0, 1: call System.SR.get_ArgumentOutOfRange_NeedNonNegNum, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException_PrecisionTooLarge() | System.ArgumentOutOfRangeException | 0: ldstr "precision", 1: call System.SR.get_Argument_PrecisionTooLarge, 2: ldc.i4.s 31, 3: box, 4: call System.SR.Format, 5: newobj System.ArgumentOutOfRangeException..ctor, 6: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException_SymbolDoesNotFit() | System.ArgumentOutOfRangeException | 0: ldstr "symbol", 1: call System.SR.get_Argument_BadFormatSpecifier, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRange_BadHourMinuteSecond() | System.ArgumentOutOfRangeException | 0: ldnull, 1: call System.SR.get_ArgumentOutOfRange_BadHourMinuteSecond, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRange_BadYearMonthDay() | System.ArgumentOutOfRangeException | 0: ldnull, 1: call System.SR.get_ArgumentOutOfRange_BadYearMonthDay, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_DayNumber(System.Int32) | System.ArgumentOutOfRangeException | 0: ldstr "dayNumber", 1: ldarg.0, 2: box, 3: call System.SR.get_ArgumentOutOfRange_DayNumber, 4: newobj System.ArgumentOutOfRangeException..ctor, 5: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRange_IndexException() | System.ArgumentOutOfRangeException | 0: ldc.i4.s 31, 1: ldc.i4.0, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | +| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_Month(System.Int32) | System.ArgumentOutOfRangeException | 0: ldstr "month", 1: ldarg.0, 2: box, 3: call System.SR.get_ArgumentOutOfRange_Month, 4: newobj System.ArgumentOutOfRangeException..ctor, 5: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRange_TimeSpanTooLong() | System.ArgumentOutOfRangeException | 0: ldnull, 1: call System.SR.get_Overflow_TimeSpanTooLong, 2: newobj System.ArgumentOutOfRangeException..ctor, 3: throw | | System.Void System.ThrowHelper.ThrowArgumentOutOfRange_Year() | System.ArgumentOutOfRangeException | 0: ldc.i4.s 31, 1: ldc.i4.4, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | | System.Void System.ThrowHelper.ThrowArraySegmentCtorValidationFailedExceptions(System.Array,System.Int32,System.Int32) | System.Exception | 0: ldarg.0, 1: ldarg.1, 2: ldarg.2, 3: call System.ThrowHelper.GetArraySegmentCtorValidationFailedException, 4: throw | | System.Void System.ThrowHelper.ThrowArrayTypeMismatchException() | System.ArrayTypeMismatchException | 0: newobj System.ArrayTypeMismatchException..ctor, 1: throw | | System.Void System.ThrowHelper.ThrowCountArgumentOutOfRange_ArgumentOutOfRange_Count() | System.ArgumentOutOfRangeException | 0: ldc.i4.s 31, 1: ldc.i4.3, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | +| System.Void System.ThrowHelper.ThrowEndOfFileException() | System.Exception | 0: call System.ThrowHelper.CreateEndOfFileException, 1: throw | | System.Void System.ThrowHelper.ThrowFormatException_BadFormatSpecifier() | System.FormatException | 0: call System.SR.get_Argument_BadFormatSpecifier, 1: newobj System.FormatException..ctor, 2: throw | | System.Void System.ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException() | System.ArgumentOutOfRangeException | 0: ldc.i4.s 31, 1: ldc.i4.s 31, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | | System.Void System.ThrowHelper.ThrowIndexOutOfRangeException() | System.IndexOutOfRangeException | 0: newobj System.IndexOutOfRangeException..ctor, 1: throw | @@ -72,6 +81,12 @@ alwaysThrows | System.Void System.ThrowHelper.ThrowKeyNotFoundException`1(!0) | System.Collections.Generic.KeyNotFoundException | 0: ldarg.0, 1: box, 2: call System.ThrowHelper.GetKeyNotFoundException, 3: throw | | System.Void System.ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum() | System.ArgumentOutOfRangeException | 0: ldc.i4.s 31, 1: ldc.i4.s 31, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | | System.Void System.ThrowHelper.ThrowNotSupportedException() | System.NotSupportedException | 0: newobj System.NotSupportedException..ctor, 1: throw | +| System.Void System.ThrowHelper.ThrowNotSupportedException_UnreadableStream() | System.NotSupportedException | 0: call System.SR.get_NotSupported_UnreadableStream, 1: newobj System.NotSupportedException..ctor, 2: throw | +| System.Void System.ThrowHelper.ThrowNotSupportedException_UnseekableStream() | System.NotSupportedException | 0: call System.SR.get_NotSupported_UnseekableStream, 1: newobj System.NotSupportedException..ctor, 2: throw | +| System.Void System.ThrowHelper.ThrowNotSupportedException_UnwritableStream() | System.NotSupportedException | 0: call System.SR.get_NotSupported_UnwritableStream, 1: newobj System.NotSupportedException..ctor, 2: throw | +| System.Void System.ThrowHelper.ThrowObjectDisposedException_FileClosed() | System.ObjectDisposedException | 0: ldnull, 1: call System.SR.get_ObjectDisposed_FileClosed, 2: newobj System.ObjectDisposedException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowObjectDisposedException_StreamClosed(System.String) | System.ObjectDisposedException | 0: ldarg.0, 1: call System.SR.get_ObjectDisposed_StreamClosed, 2: newobj System.ObjectDisposedException..ctor, 3: throw | +| System.Void System.ThrowHelper.ThrowOutOfMemoryException() | System.OutOfMemoryException | 0: newobj System.OutOfMemoryException..ctor, 1: throw | | System.Void System.ThrowHelper.ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_Index() | System.ArgumentOutOfRangeException | 0: ldc.i4.8, 1: ldc.i4.0, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | | System.Void System.ThrowHelper.ThrowValueArgumentOutOfRange_NeedNonNegNumException() | System.ArgumentOutOfRangeException | 0: ldc.i4.7, 1: ldc.i4.s 31, 2: call System.ThrowHelper.GetArgumentOutOfRangeException, 3: throw | | System.Void System.ThrowHelper.ThrowWrongKeyTypeArgumentException`1(!0,System.Type) | System.ArgumentException | 0: ldarg.0, 1: box, 2: ldarg.1, 3: call System.ThrowHelper.GetWrongKeyTypeArgumentException, 4: throw | diff --git a/csharp/ql/test/library-tests/cil/dataflow/TrivialProperties.expected b/csharp/ql/test/library-tests/cil/dataflow/TrivialProperties.expected index 2b28f1b2c10..f578b51f984 100644 --- a/csharp/ql/test/library-tests/cil/dataflow/TrivialProperties.expected +++ b/csharp/ql/test/library-tests/cil/dataflow/TrivialProperties.expected @@ -5,7 +5,6 @@ | System.Reflection.AssemblyName.CodeBase | | System.Reflection.AssemblyName.CultureInfo | | System.Reflection.AssemblyName.HashAlgorithm | -| System.Reflection.AssemblyName.KeyPair | | System.Reflection.AssemblyName.Name | | System.Reflection.AssemblyName.Version | | System.Reflection.AssemblyName.VersionCompatibility | diff --git a/csharp/ql/test/library-tests/cil/enums/enums.expected b/csharp/ql/test/library-tests/cil/enums/enums.expected index 6ffcb85f860..b7c5e703423 100644 --- a/csharp/ql/test/library-tests/cil/enums/enums.expected +++ b/csharp/ql/test/library-tests/cil/enums/enums.expected @@ -6,22 +6,26 @@ | Interop.PollEvents | short | | Interop.Sys.AccessMode | int | | Interop.Sys.ControlCharacterNames | int | -| Interop.Sys.CtrlCode | int | | Interop.Sys.FileAdvice | int | | Interop.Sys.FileStatusFlags | int | | Interop.Sys.LockOperations | int | | Interop.Sys.NodeType | int | | Interop.Sys.OpenFlags | int | +| Interop.Sys.Permissions | int | | Interop.Sys.SeekWhence | int | | Interop.Sys.SysConfName | int | | Interop.Sys.SysLogPriority | int | +| Interop.Sys.UnixFileSystemTypes | long | +| Microsoft.Win32.SafeHandles.SafeFileHandle.NullableBool | int | +| Microsoft.Win32.SafeHandles.SafeFileHandle.ThreadPoolValueTaskSource.Operation | byte | | System.AttributeTargets | int | | System.Base64FormattingOptions | int | | System.Buffers.ArrayPoolEventSource.BufferAllocatedReason | int | +| System.Buffers.ArrayPoolEventSource.BufferDroppedReason | int | | System.Buffers.OperationStatus | int | | System.Buffers.Text.Utf8Parser.ComponentParseResult | byte | | System.Buffers.Text.Utf8Parser.ParseNumberOptions | int | -| System.Buffers.TlsOverPerCoreLockedStacksArrayPool.MemoryPressure | int | +| System.Buffers.Utilities.MemoryPressure | int | | System.Collections.Generic.InsertionBehavior | byte | | System.ComponentModel.EditorBrowsableState | int | | System.Configuration.Assemblies.AssemblyHashAlgorithm | int | @@ -43,7 +47,6 @@ | System.Diagnostics.DebuggableAttribute.DebuggingModes | int | | System.Diagnostics.DebuggerBrowsableState | int | | System.Diagnostics.StackTrace.TraceFormat | int | -| System.Diagnostics.SymbolStore.SymAddressKind | int | | System.Diagnostics.Tracing.ControllerCommand | int | | System.Diagnostics.Tracing.EventActivityOptions | int | | System.Diagnostics.Tracing.EventChannel | byte | @@ -55,7 +58,6 @@ | System.Diagnostics.Tracing.EventLevel | int | | System.Diagnostics.Tracing.EventManifestOptions | int | | System.Diagnostics.Tracing.EventOpcode | int | -| System.Diagnostics.Tracing.EventPipeMetadataGenerator.MetadataTag | int | | System.Diagnostics.Tracing.EventPipeSerializationFormat | int | | System.Diagnostics.Tracing.EventProvider.WriteEventErrorCode | int | | System.Diagnostics.Tracing.EventProviderType | int | @@ -63,6 +65,8 @@ | System.Diagnostics.Tracing.EventTags | int | | System.Diagnostics.Tracing.EventTask | int | | System.Diagnostics.Tracing.ManifestEnvelope.ManifestFormats | byte | +| System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadAdjustmentReasonMap | uint | +| System.Diagnostics.Tracing.RuntimeEventSource.EventId | int | | System.Diagnostics.Tracing.TraceLoggingDataType | int | | System.Environment.SpecialFolder | int | | System.Environment.SpecialFolderOption | int | @@ -113,6 +117,10 @@ | System.IO.FileOptions | int | | System.IO.FileShare | int | | System.IO.HandleInheritability | int | +| System.IO.MatchCasing | int | +| System.IO.MatchType | int | +| System.IO.SearchOption | int | +| System.IO.SearchTarget | int | | System.IO.SeekOrigin | int | | System.LazyState | int | | System.LoaderOptimization | int | @@ -153,6 +161,8 @@ | System.Reflection.MethodAttributes | int | | System.Reflection.MethodImplAttributes | int | | System.Reflection.MethodSemanticsAttributes | int | +| System.Reflection.NullabilityInfoContext.NotAnnotatedStatus | int | +| System.Reflection.NullabilityState | int | | System.Reflection.PInvokeAttributes | int | | System.Reflection.ParameterAttributes | int | | System.Reflection.PortableExecutableKinds | int | @@ -192,6 +202,7 @@ | System.Runtime.InteropServices.ComTypes.TYPEKIND | int | | System.Runtime.InteropServices.ComTypes.VARFLAGS | short | | System.Runtime.InteropServices.ComTypes.VARKIND | int | +| System.Runtime.InteropServices.ComWrappersScenario | int | | System.Runtime.InteropServices.CreateComInterfaceFlags | int | | System.Runtime.InteropServices.CreateObjectFlags | int | | System.Runtime.InteropServices.CustomQueryInterfaceMode | int | @@ -199,6 +210,8 @@ | System.Runtime.InteropServices.DllImportSearchPath | int | | System.Runtime.InteropServices.GCHandleType | int | | System.Runtime.InteropServices.LayoutKind | int | +| System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction | int | +| System.Runtime.InteropServices.PosixSignal | int | | System.Runtime.InteropServices.UnmanagedType | int | | System.Runtime.InteropServices.VarEnum | int | | System.Runtime.Intrinsics.X86.FloatComparisonMode | byte | @@ -229,6 +242,9 @@ | System.Threading.EventResetMode | int | | System.Threading.LazyThreadSafetyMode | int | | System.Threading.LockRecursionPolicy | int | +| System.Threading.OpenExistingResult | int | +| System.Threading.PortableThreadPool.HillClimbing.StateOrTransition | int | +| System.Threading.PortableThreadPool.PendingBlockingAdjustment | byte | | System.Threading.ReaderWriterLockSlim.EnterLockType | int | | System.Threading.ReaderWriterLockSlim.EnterSpinLockReason | int | | System.Threading.ReaderWriterLockSlim.WaiterStates | byte | @@ -240,13 +256,13 @@ | System.Threading.Tasks.InternalTaskOptions | int | | System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags | int | | System.Threading.Tasks.Sources.ValueTaskSourceStatus | int | +| System.Threading.Tasks.Task.TaskStateFlags | int | | System.Threading.Tasks.TaskContinuationOptions | int | | System.Threading.Tasks.TaskCreationOptions | int | | System.Threading.Tasks.TaskStatus | int | | System.Threading.Tasks.TplEventSource.TaskWaitBehavior | int | | System.Threading.ThreadPriority | int | | System.Threading.ThreadState | int | -| System.Threading.WaitHandle.OpenExistingResult | int | | System.TimeZoneInfo.StringSerializer.State | int | | System.TimeZoneInfo.TZVersion | byte | | System.TimeZoneInfo.TimeZoneInfoResult | int | diff --git a/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected b/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected index aa33d68fd46..4f3f786ba56 100644 --- a/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected +++ b/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected @@ -6,9 +6,16 @@ fnptr | delegate* managed | 2 | Int32 | 0 | | delegate* managed | 1 | Void* | 0 | | delegate* managed | 0 | Int32 | 0 | -| delegate* managed | 3 | void | 0 | +| delegate* managed | 3 | void | 0 | +| delegate* managed | 1 | void | 0 | | delegate* managed | 1 | Int32* | 0 | +| delegate* managed | 1 | Object | 0 | | delegate* unmanaged | 2 | void | 9 | +| delegate* unmanaged | 2 | Int32 | 9 | +| delegate* unmanaged | 3 | Int32 | 9 | +| delegate* unmanaged | 1 | Int32 | 9 | +| delegate* unmanaged | 1 | void | 9 | +| delegate* unmanaged | 0 | void | 9 | | delegate* unmanaged[StdCall] | 3 | void | 2 | params | delegate* managed | 0 | Parameter 0 of delegate* managed | !0 | @@ -20,12 +27,21 @@ params | delegate* managed | 0 | Parameter 0 of delegate* managed | Int32& | | delegate* managed | 1 | Parameter 1 of delegate* managed | Object& | | delegate* managed | 0 | Parameter 0 of delegate* managed | Int32* | -| delegate* managed | 0 | Parameter 0 of delegate* managed | IntPtr | -| delegate* managed | 1 | Parameter 1 of delegate* managed | IntPtr | -| delegate* managed | 2 | Parameter 2 of delegate* managed | IntPtr* | +| delegate* managed | 0 | Parameter 0 of delegate* managed | IntPtr | +| delegate* managed | 1 | Parameter 1 of delegate* managed | IntPtr | +| delegate* managed | 2 | Parameter 2 of delegate* managed | PortableTailCallFrame* | +| delegate* managed | 0 | Parameter 0 of delegate* managed | Object | | delegate* managed | 0 | Parameter 0 of delegate* managed | Void* | +| delegate* managed | 0 | Parameter 0 of delegate* managed | Void* | | delegate* unmanaged | 0 | Parameter 0 of delegate* unmanaged | Char* | | delegate* unmanaged | 1 | Parameter 1 of delegate* unmanaged | IntPtr | +| delegate* unmanaged | 0 | Parameter 0 of delegate* unmanaged | Int32 | +| delegate* unmanaged | 1 | Parameter 1 of delegate* unmanaged | PosixSignal | +| delegate* unmanaged | 0 | Parameter 0 of delegate* unmanaged | IntPtr | +| delegate* unmanaged | 1 | Parameter 1 of delegate* unmanaged | Guid* | +| delegate* unmanaged | 2 | Parameter 2 of delegate* unmanaged | IntPtr* | +| delegate* unmanaged | 0 | Parameter 0 of delegate* unmanaged | IntPtr | +| delegate* unmanaged | 0 | Parameter 0 of delegate* unmanaged | IntPtr | | delegate* unmanaged[StdCall] | 0 | Parameter 0 of delegate* unmanaged[StdCall] | Int32& | | delegate* unmanaged[StdCall] | 1 | Parameter 1 of delegate* unmanaged[StdCall] | Object& | | delegate* unmanaged[StdCall] | 2 | Parameter 2 of delegate* unmanaged[StdCall] | !0 | diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected b/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected index 9017f391006..8367d400bda 100644 --- a/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected +++ b/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected @@ -4,20 +4,19 @@ | Invoke | System.Runtime.InteropServices.InAttribute | modreq | | Max | System.Runtime.InteropServices.InAttribute | modreq | | Min | System.Runtime.InteropServices.InAttribute | modreq | +| ThreadIDExecutingCallbacks | System.Runtime.CompilerServices.IsVolatile | modreq | | Value | System.Runtime.CompilerServices.IsVolatile | modreq | | _bufferedValuesIndex | System.Runtime.CompilerServices.IsVolatile | modreq | -| _callbackPartitions | System.Runtime.CompilerServices.IsVolatile | modreq | -| _canceled | System.Runtime.CompilerServices.IsVolatile | modreq | +| _canSeek | System.Runtime.CompilerServices.IsVolatile | modreq | | _container | System.Runtime.CompilerServices.IsVolatile | modreq | | _fullyInitialized | System.Runtime.CompilerServices.IsVolatile | modreq | | _head | System.Runtime.CompilerServices.IsVolatile | modreq | +| _idsThatDoNotTrackAllValues | System.Runtime.CompilerServices.IsVolatile | modreq | | _initialized | System.Runtime.CompilerServices.IsVolatile | modreq | -| _isFullyInitialized | System.Runtime.CompilerServices.IsVolatile | modreq | | _isWriterInProgress | System.Runtime.CompilerServices.IsVolatile | modreq | | _kernelEvent | System.Runtime.CompilerServices.IsVolatile | modreq | | _localTimeZone | System.Runtime.CompilerServices.IsVolatile | modreq | | _next | System.Runtime.CompilerServices.IsVolatile | modreq | -| _notifyWhenNoCallbacksRunning | System.Runtime.CompilerServices.IsVolatile | modreq | | _oldKeepAlive | System.Runtime.CompilerServices.IsVolatile | modreq | | _owner | System.Runtime.CompilerServices.IsVolatile | modreq | | _previous | System.Runtime.CompilerServices.IsVolatile | modreq | @@ -27,8 +26,8 @@ | _saShortTimes | System.Runtime.CompilerServices.IsVolatile | modreq | | _slotArray | System.Runtime.CompilerServices.IsVolatile | modreq | | _state | System.Runtime.CompilerServices.IsVolatile | modreq | +| _supportsRandomAccess | System.Runtime.CompilerServices.IsVolatile | modreq | | _tail | System.Runtime.CompilerServices.IsVolatile | modreq | -| _threadIDExecutingCallbacks | System.Runtime.CompilerServices.IsVolatile | modreq | | _timer | System.Runtime.CompilerServices.IsVolatile | modreq | | _version | System.Runtime.CompilerServices.IsVolatile | modreq | | _waCalendars | System.Runtime.CompilerServices.IsVolatile | modreq | @@ -63,34 +62,39 @@ | m_mask | System.Runtime.CompilerServices.IsVolatile | modreq | | m_nameIsCached | System.Runtime.CompilerServices.IsVolatile | modreq | | m_rawManifest | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_signature | System.Runtime.CompilerServices.IsVolatile | modreq | | m_stateFlags | System.Runtime.CompilerServices.IsVolatile | modreq | | m_tail | System.Runtime.CompilerServices.IsVolatile | modreq | | m_tailIndex | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_taskId | System.Runtime.CompilerServices.IsVolatile | modreq | | m_taskSchedulerId | System.Runtime.CompilerServices.IsVolatile | modreq | | m_waitHandle | System.Runtime.CompilerServices.IsVolatile | modreq | | numOutstandingThreadRequests | System.Runtime.CompilerServices.IsVolatile | modreq | +| numRequestedWorkers | System.Runtime.CompilerServices.IsVolatile | modreq | | property Current | System.Runtime.InteropServices.InAttribute | modreq | | property Item | System.Runtime.InteropServices.InAttribute | modreq | | s_DefaultThreadCurrentCulture | System.Runtime.CompilerServices.IsVolatile | modreq | | s_DefaultThreadCurrentUICulture | System.Runtime.CompilerServices.IsVolatile | modreq | | s_Invariant | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_allContexts | System.Runtime.CompilerServices.IsVolatile | modreq | | s_anonymouslyHostedDynamicMethodsModule | System.Runtime.CompilerServices.IsVolatile | modreq | | s_cachedCultures | System.Runtime.CompilerServices.IsVolatile | modreq | | s_cachedCulturesByLcid | System.Runtime.CompilerServices.IsVolatile | modreq | | s_cachedCulturesByName | System.Runtime.CompilerServices.IsVolatile | modreq | | s_cachedRegions | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_canceledTask | System.Runtime.CompilerServices.IsVolatile | modreq | | s_currentRegionInfo | System.Runtime.CompilerServices.IsVolatile | modreq | | s_defaultBinder | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_defaultFlowSuppressed | System.Runtime.CompilerServices.IsVolatile | modreq | | s_defaultInstance | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_emitAnsiColorCodes | System.Runtime.CompilerServices.IsVolatile | modreq | | s_encoding | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_haveProcessId | System.Runtime.CompilerServices.IsVolatile | modreq | | s_indentSize | System.Runtime.CompilerServices.IsVolatile | modreq | | s_initialized | System.Runtime.CompilerServices.IsVolatile | modreq | | s_invariantInfo | System.Runtime.CompilerServices.IsVolatile | modreq | | s_jajpDTFI | System.Runtime.CompilerServices.IsVolatile | modreq | | s_japaneseEraInfo | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_osVersion | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_processId | System.Runtime.CompilerServices.IsVolatile | modreq | +| s_processPath | System.Runtime.CompilerServices.IsVolatile | modreq | | s_provider | System.Runtime.CompilerServices.IsVolatile | modreq | | s_providers | System.Runtime.CompilerServices.IsVolatile | modreq | | s_regionNames | System.Runtime.CompilerServices.IsVolatile | modreq | diff --git a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected b/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected index bc6ec867fb0..e7a5bdfbdaa 100644 --- a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected +++ b/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected @@ -1,1839 +1,2382 @@ -| Add | method | 32 | -| AddByteOffset | method | 32 | -| As | method | 32 | -| AsMutable | method | 32 | -| AsRef | method | 32 | -| Element | method | 32 | -| FindValue | method | 32 | -| GetArrayDataReference | method | 32 | -| GetBucket | method | 32 | -| GetBucketRef | method | 32 | -| GetMultiDimensionalArrayBounds | method | 32 | -| GetNonNullPinnableReference | method | 32 | -| GetPinnableReference | method | 32 | -| GetRawArrayData | method | 32 | -| GetRawData | method | 32 | -| GetRawStringData | method | 32 | -| GetReference | method | 32 | -| LdelemaRef | method | 32 | -| Local variable 0 of method g__SoftwareFallback\|68_0 | local | 32 | -| Local variable 0 of method Add | local | 32 | -| Local variable 0 of method Clear | local | 32 | -| Local variable 0 of method CompareTo | local | 32 | -| Local variable 0 of method Contains | local | 32 | -| Local variable 0 of method FindValue | local | 32 | -| Local variable 0 of method GetElement | local | 32 | -| Local variable 0 of method GetHashCode | local | 32 | -| Local variable 0 of method GetPinnableReference | local | 32 | -| Local variable 0 of method GetUpper | local | 32 | -| Local variable 0 of method GetValue | local | 32 | -| Local variable 0 of method LinkTimer | local | 32 | -| Local variable 0 of method Memmove | local | 32 | -| Local variable 0 of method MoveNext | local | 32 | -| Local variable 0 of method Multiply | local | 32 | -| Local variable 0 of method PickPivotAndPartition | local | 32 | -| Local variable 0 of method Remove | local | 32 | -| Local variable 0 of method RemoveIndex | local | 32 | -| Local variable 0 of method Reverse | local | 32 | -| Local variable 0 of method RunOrScheduleAction | local | 32 | -| Local variable 0 of method SwapIfGreaterWithValues | local | 32 | -| Local variable 0 of method ToUInt64 | local | 32 | -| Local variable 0 of method TryDecodeFromUtf16 | local | 32 | -| Local variable 0 of method TryGetValue | local | 32 | -| Local variable 0 of method TryParseExactD | local | 32 | -| Local variable 0 of method TryParseExactN | local | 32 | -| Local variable 0 of method ValueToHexString | local | 32 | -| Local variable 0 of method ValueToString | local | 32 | -| Local variable 0 of method get_Item | local | 32 | -| Local variable 1 of method .ctor | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|34_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|35_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|36_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|37_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|38_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|39_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|40_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|41_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|42_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|43_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|44_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|45_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|46_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|47_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|48_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|49_0 | local | 32 | -| Local variable 1 of method b__33_0 | local | 32 | -| Local variable 1 of method b__158_0 | local | 32 | -| Local variable 1 of method b__158_1 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|69_0 | local | 32 | -| Local variable 1 of method g__SoftwareFallback\|75_0 | local | 32 | -| Local variable 1 of method Add | local | 32 | -| Local variable 1 of method Append | local | 32 | -| Local variable 1 of method AppendHelper | local | 32 | -| Local variable 1 of method AppendJoin | local | 32 | -| Local variable 1 of method CompareIgnoreCaseInvariantMode | local | 32 | -| Local variable 1 of method CompareStringIgnoreCase | local | 32 | -| Local variable 1 of method CompareTo | local | 32 | -| Local variable 1 of method Convert | local | 32 | -| Local variable 1 of method CreateActivityPathGuid | local | 32 | -| Local variable 1 of method EnumCalendarInfoCallback | local | 32 | -| Local variable 1 of method FindValue | local | 32 | -| Local variable 1 of method FromBase64CharArray | local | 32 | -| Local variable 1 of method FromBase64String | local | 32 | -| Local variable 1 of method FromUtf16 | local | 32 | -| Local variable 1 of method GetAscii | local | 32 | -| Local variable 1 of method GetByteCount | local | 32 | -| Local variable 1 of method GetByteCountWithFallback | local | 32 | -| Local variable 1 of method GetBytes | local | 32 | -| Local variable 1 of method GetBytesFromEncoding | local | 32 | -| Local variable 1 of method GetBytesWithFallback | local | 32 | -| Local variable 1 of method GetCategoryCasingTableOffsetNoBoundsChecks | local | 32 | -| Local variable 1 of method GetCharCount | local | 32 | -| Local variable 1 of method GetCharCountWithFallback | local | 32 | -| Local variable 1 of method GetChars | local | 32 | -| Local variable 1 of method GetCharsWithFallback | local | 32 | -| Local variable 1 of method GetEnvironmentVariable | local | 32 | -| Local variable 1 of method GetHashCode | local | 32 | -| Local variable 1 of method GetNonRandomizedHashCode | local | 32 | -| Local variable 1 of method GetNumericGraphemeTableOffsetNoBoundsChecks | local | 32 | -| Local variable 1 of method GetNumericValueNoBoundsCheck | local | 32 | -| Local variable 1 of method GetString | local | 32 | -| Local variable 1 of method GetUnicode | local | 32 | -| Local variable 1 of method GetUpperBound | local | 32 | -| Local variable 1 of method IcuCompareString | local | 32 | -| Local variable 1 of method IcuEndsWith | local | 32 | -| Local variable 1 of method IcuGetSortKeyLength | local | 32 | -| Local variable 1 of method IcuIndexOfCore | local | 32 | -| Local variable 1 of method IcuStartsWith | local | 32 | -| Local variable 1 of method IndexOf | local | 32 | -| Local variable 1 of method IndexOfOrdinalHelper | local | 32 | -| Local variable 1 of method IndexOfOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 1 of method Insert | local | 32 | -| Local variable 1 of method InternalCopy | local | 32 | -| Local variable 1 of method InvariantIndexOf | local | 32 | -| Local variable 1 of method IsAscii | local | 32 | -| Local variable 1 of method Join | local | 32 | -| Local variable 1 of method LastIndexOf | local | 32 | -| Local variable 1 of method MatchChars | local | 32 | -| Local variable 1 of method Memmove | local | 32 | -| Local variable 1 of method PickPivotAndPartition | local | 32 | -| Local variable 1 of method Pow10 | local | 32 | -| Local variable 1 of method ReplaceAllInChunk | local | 32 | -| Local variable 1 of method Reverse | local | 32 | -| Local variable 1 of method TZif_ToInt32 | local | 32 | -| Local variable 1 of method TZif_ToInt64 | local | 32 | -| Local variable 1 of method ThreadSafeCopy | local | 32 | -| Local variable 1 of method ToLowerAsciiInvariant | local | 32 | -| Local variable 1 of method ToString | local | 32 | -| Local variable 1 of method ToUpperAsciiInvariant | local | 32 | -| Local variable 1 of method ToUtf16 | local | 32 | -| Local variable 1 of method TraceOperationBegin | local | 32 | -| Local variable 1 of method Trim | local | 32 | -| Local variable 1 of method TrimEnd | local | 32 | -| Local variable 1 of method TrimStart | local | 32 | -| Local variable 1 of method TryDecodeFromUtf16 | local | 32 | -| Local variable 1 of method TryStringToNumber | local | 32 | -| Local variable 1 of method WaitMultipleIgnoringSyncContext | local | 32 | -| Local variable 1 of method WithElement | local | 32 | -| Local variable 1 of method WriteEvent | local | 32 | -| Local variable 1 of method WriteImpl | local | 32 | -| Local variable 1 of method WriteMultiMerge | local | 32 | -| Local variable 1 of method WriteNative | local | 32 | -| Local variable 1 of method get_Item | local | 32 | -| Local variable 2 of method .ctor | local | 32 | -| Local variable 2 of method ChangeCaseCommon | local | 32 | -| Local variable 2 of method CompareIgnoreCaseInvariantMode | local | 32 | -| Local variable 2 of method CompareOrdinalHelper | local | 32 | -| Local variable 2 of method CompareStringIgnoreCase | local | 32 | -| Local variable 2 of method Copy | local | 32 | -| Local variable 2 of method CopyTo | local | 32 | -| Local variable 2 of method Ctor | local | 32 | -| Local variable 2 of method Decompose | local | 32 | -| Local variable 2 of method DoAnsiConversion | local | 32 | -| Local variable 2 of method EndsWithOrdinalHelper | local | 32 | -| Local variable 2 of method EndsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 2 of method EqualStartingCharacterCount | local | 32 | -| Local variable 2 of method GenerateMetadataForNamedTypeV2 | local | 32 | -| Local variable 2 of method GetByteCount | local | 32 | -| Local variable 2 of method GetBytes | local | 32 | -| Local variable 2 of method GetChars | local | 32 | -| Local variable 2 of method GetValue | local | 32 | -| Local variable 2 of method IcuCreateSortKey | local | 32 | -| Local variable 2 of method IcuGetSortKey | local | 32 | -| Local variable 2 of method IcuIsNormalized | local | 32 | -| Local variable 2 of method Insert | local | 32 | -| Local variable 2 of method IntersectWithHashSetWithSameComparer | local | 32 | -| Local variable 2 of method IntroSort | local | 32 | -| Local variable 2 of method MemberwiseClone | local | 32 | -| Local variable 2 of method Multiply | local | 32 | -| Local variable 2 of method PickPivotAndPartition | local | 32 | -| Local variable 2 of method ReadNative | local | 32 | -| Local variable 2 of method Remove | local | 32 | -| Local variable 2 of method SetValue | local | 32 | -| Local variable 2 of method StartsWithOrdinalHelper | local | 32 | -| Local variable 2 of method StartsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 2 of method StringToAnsiString | local | 32 | -| Local variable 2 of method TryInt32ToHexStr | local | 32 | -| Local variable 2 of method TryInt64ToHexStr | local | 32 | -| Local variable 2 of method TryJoin | local | 32 | -| Local variable 2 of method TryNegativeInt32ToDecStr | local | 32 | -| Local variable 2 of method TryUInt32ToDecStr | local | 32 | -| Local variable 2 of method TryUInt64ToDecStr | local | 32 | -| Local variable 2 of method Write | local | 32 | -| Local variable 3 of method b__29_0 | local | 32 | -| Local variable 3 of method b__30_0 | local | 32 | -| Local variable 3 of method AddCustomAttributes | local | 32 | -| Local variable 3 of method CompareStringIgnoreCase | local | 32 | -| Local variable 3 of method Convert | local | 32 | -| Local variable 3 of method Copy | local | 32 | -| Local variable 3 of method CreateInstance | local | 32 | -| Local variable 3 of method CreateStringFromEncoding | local | 32 | -| Local variable 3 of method Enable | local | 32 | -| Local variable 3 of method Fill | local | 32 | -| Local variable 3 of method FindSection | local | 32 | -| Local variable 3 of method FromUtf16 | local | 32 | -| Local variable 3 of method GetBytes | local | 32 | -| Local variable 3 of method GetBytesWithFallback | local | 32 | -| Local variable 3 of method GetChars | local | 32 | -| Local variable 3 of method GetCharsWithFallback | local | 32 | -| Local variable 3 of method GetNonRandomizedHashCodeOrdinalIgnoreCase | local | 32 | -| Local variable 3 of method IcuCompareString | local | 32 | -| Local variable 3 of method IcuEndsWith | local | 32 | -| Local variable 3 of method IcuIndexOfCore | local | 32 | -| Local variable 3 of method IcuStartsWith | local | 32 | -| Local variable 3 of method IndexOf | local | 32 | -| Local variable 3 of method IndexOfCharArray | local | 32 | -| Local variable 3 of method IndexOfOrdinalHelper | local | 32 | -| Local variable 3 of method IndexOfOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 3 of method Int32ToHexStr | local | 32 | -| Local variable 3 of method Int64ToHexStr | local | 32 | -| Local variable 3 of method InternalLoad | local | 32 | -| Local variable 3 of method IntroSort | local | 32 | -| Local variable 3 of method InvariantIndexOf | local | 32 | -| Local variable 3 of method JoinInternal | local | 32 | -| Local variable 3 of method LastIndexOf | local | 32 | -| Local variable 3 of method LastIndexOfCharArray | local | 32 | -| Local variable 3 of method MemberwiseClone | local | 32 | -| Local variable 3 of method NegativeInt32ToDecStr | local | 32 | -| Local variable 3 of method PickPivotAndPartition | local | 32 | -| Local variable 3 of method Pin | local | 32 | -| Local variable 3 of method Populate | local | 32 | -| Local variable 3 of method Pow10 | local | 32 | -| Local variable 3 of method RemoveWhere | local | 32 | -| Local variable 3 of method Resize | local | 32 | -| Local variable 3 of method StringToCoTaskMemUni | local | 32 | -| Local variable 3 of method StringToHGlobalUni | local | 32 | -| Local variable 3 of method ThreadSafeCopy | local | 32 | -| Local variable 3 of method ToBase64String | local | 32 | -| Local variable 3 of method ToString | local | 32 | -| Local variable 3 of method ToUtf16 | local | 32 | -| Local variable 3 of method TryNegativeInt64ToDecStr | local | 32 | -| Local variable 3 of method TryToBase64Chars | local | 32 | -| Local variable 3 of method UInt32ToDecStr | local | 32 | -| Local variable 3 of method UInt64ToDecStr | local | 32 | -| Local variable 3 of method Write | local | 32 | -| Local variable 3 of method WriteEvent | local | 32 | -| Local variable 3 of method WriteStdoutAnsiString | local | 32 | -| Local variable 4 of method .ctor | local | 32 | -| Local variable 4 of method AddDivisor | local | 32 | -| Local variable 4 of method AddIfNotPresent | local | 32 | -| Local variable 4 of method AddNullTerminatedString | local | 32 | -| Local variable 4 of method Append | local | 32 | -| Local variable 4 of method ChangeCaseCommon | local | 32 | -| Local variable 4 of method CompareOrdinalHelper | local | 32 | -| Local variable 4 of method ConstructFrom | local | 32 | -| Local variable 4 of method Copy | local | 32 | -| Local variable 4 of method EndsWithOrdinalHelper | local | 32 | -| Local variable 4 of method EndsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 4 of method EqualStartingCharacterCount | local | 32 | -| Local variable 4 of method EscapeString | local | 32 | -| Local variable 4 of method FormatPrintF | local | 32 | -| Local variable 4 of method GetBytes | local | 32 | -| Local variable 4 of method GetBytesForSmallInput | local | 32 | -| Local variable 4 of method GetChars | local | 32 | -| Local variable 4 of method GetMessage | local | 32 | -| Local variable 4 of method IcuGetSortKey | local | 32 | -| Local variable 4 of method IcuGetUnicodeCore | local | 32 | -| Local variable 4 of method InternalLoad | local | 32 | -| Local variable 4 of method IntroSort | local | 32 | -| Local variable 4 of method JoinInternal | local | 32 | -| Local variable 4 of method MakeRoom | local | 32 | -| Local variable 4 of method NegativeInt64ToDecStr | local | 32 | -| Local variable 4 of method PadLeft | local | 32 | -| Local variable 4 of method PadRight | local | 32 | -| Local variable 4 of method Remove | local | 32 | -| Local variable 4 of method Replace | local | 32 | -| Local variable 4 of method Resize | local | 32 | -| Local variable 4 of method StartsWithOrdinalHelper | local | 32 | -| Local variable 4 of method StartsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 4 of method TryInsert | local | 32 | -| Local variable 4 of method Write | local | 32 | -| Local variable 4 of method WriteCore | local | 32 | -| Local variable 4 of method WriteEvent | local | 32 | -| Local variable 5 of method Clear | local | 32 | -| Local variable 5 of method ConvertToNative | local | 32 | -| Local variable 5 of method Copy | local | 32 | -| Local variable 5 of method CreateInstance | local | 32 | -| Local variable 5 of method Enable | local | 32 | -| Local variable 5 of method GetAttributeUsage | local | 32 | -| Local variable 5 of method GetBytes | local | 32 | -| Local variable 5 of method GetBytesWithFallback | local | 32 | -| Local variable 5 of method GetCharsWithFallback | local | 32 | -| Local variable 5 of method GetCwd | local | 32 | -| Local variable 5 of method GetHomeDirectory | local | 32 | -| Local variable 5 of method Insert | local | 32 | -| Local variable 5 of method JoinInternal | local | 32 | -| Local variable 5 of method PickPivotAndPartition | local | 32 | -| Local variable 5 of method Pow10 | local | 32 | -| Local variable 5 of method Read | local | 32 | -| Local variable 5 of method ReadArray | local | 32 | -| Local variable 5 of method ReadCore | local | 32 | -| Local variable 5 of method Replace | local | 32 | -| Local variable 5 of method Resize | local | 32 | -| Local variable 5 of method StringToCoTaskMemUTF8 | local | 32 | -| Local variable 5 of method StringToHGlobalUTF8 | local | 32 | -| Local variable 5 of method SubtractDivisor | local | 32 | -| Local variable 5 of method ToBase64String | local | 32 | -| Local variable 5 of method ToLowerAsciiInvariant | local | 32 | -| Local variable 5 of method ToUpperAsciiInvariant | local | 32 | -| Local variable 5 of method TryToBase64Chars | local | 32 | -| Local variable 5 of method WriteArray | local | 32 | -| Local variable 5 of method WriteEvent | local | 32 | -| Local variable 5 of method WriteWhenEncodingIsNotUtf8 | local | 32 | -| Local variable 5 of method get_UserName | local | 32 | -| Local variable 6 of method Append | local | 32 | -| Local variable 6 of method ConvertFixedToManaged | local | 32 | -| Local variable 6 of method ConvertToBase64Array | local | 32 | -| Local variable 6 of method ConvertToNative | local | 32 | -| Local variable 6 of method Copy | local | 32 | -| Local variable 6 of method FindItemIndex | local | 32 | -| Local variable 6 of method GenerateMetadataForProperty | local | 32 | -| Local variable 6 of method IcuGetAsciiCore | local | 32 | -| Local variable 6 of method InternalCopy | local | 32 | -| Local variable 6 of method JoinInternal | local | 32 | -| Local variable 6 of method PadRight | local | 32 | -| Local variable 6 of method PickPivotAndPartition | local | 32 | -| Local variable 6 of method Remove | local | 32 | -| Local variable 6 of method Resize | local | 32 | -| Local variable 6 of method SetConstantValue | local | 32 | -| Local variable 6 of method ToBase64CharArray | local | 32 | -| Local variable 6 of method TryDecodeFromUtf16 | local | 32 | -| Local variable 6 of method TryFormat | local | 32 | -| Local variable 7 of method .ctor | local | 32 | -| Local variable 7 of method AddIfNotPresent | local | 32 | -| Local variable 7 of method ConvertFixedToNative | local | 32 | -| Local variable 7 of method GenerateMetadata | local | 32 | -| Local variable 7 of method GetBytesWithFallback | local | 32 | -| Local variable 7 of method GetCharsWithFallback | local | 32 | -| Local variable 7 of method IcuGetHashCodeOfString | local | 32 | -| Local variable 7 of method IcuNormalize | local | 32 | -| Local variable 7 of method Insert | local | 32 | -| Local variable 7 of method JoinInternal | local | 32 | -| Local variable 7 of method PadLeft | local | 32 | -| Local variable 7 of method Populate | local | 32 | -| Local variable 7 of method Pow10 | local | 32 | -| Local variable 7 of method Resize | local | 32 | -| Local variable 7 of method TryInsert | local | 32 | -| Local variable 7 of method WriteWhenEncodingIsNotUtf8 | local | 32 | -| Local variable 8 of method JoinInternal | local | 32 | -| Local variable 8 of method Pow10 | local | 32 | -| Local variable 8 of method SetConstantValue | local | 32 | -| Local variable 8 of method ToBase64CharArray | local | 32 | -| Local variable 8 of method ToString | local | 32 | -| Local variable 8 of method TrimExcess | local | 32 | -| Local variable 8 of method WriteEventString | local | 32 | -| Local variable 9 of method g__GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow\|52_0 | local | 32 | -| Local variable 9 of method AddIfNotPresent | local | 32 | -| Local variable 9 of method Enable | local | 32 | -| Local variable 9 of method FindItemIndex | local | 32 | -| Local variable 9 of method GenerateMetadataForProperty | local | 32 | -| Local variable 9 of method IcuGetHashCodeOfString | local | 32 | -| Local variable 9 of method IcuNormalize | local | 32 | -| Local variable 9 of method Insert | local | 32 | -| Local variable 9 of method IntersectWithEnumerable | local | 32 | -| Local variable 9 of method JoinInternal | local | 32 | -| Local variable 9 of method TrimExcess | local | 32 | -| Local variable 10 of method .ctor | local | 32 | -| Local variable 10 of method FormatFixed | local | 32 | -| Local variable 10 of method IntToString | local | 32 | -| Local variable 10 of method JoinInternal | local | 32 | -| Local variable 10 of method LongToString | local | 32 | -| Local variable 10 of method ReplaceAllInChunk | local | 32 | -| Local variable 10 of method TrimExcess | local | 32 | -| Local variable 11 of method AddIfNotPresent | local | 32 | -| Local variable 11 of method IcuGetHashCodeOfString | local | 32 | -| Local variable 11 of method Resize | local | 32 | -| Local variable 12 of method FindItemIndex | local | 32 | -| Local variable 12 of method JoinCore | local | 32 | -| Local variable 13 of method .ctor | local | 32 | -| Local variable 13 of method AddIfNotPresent | local | 32 | -| Local variable 13 of method ChangeCaseCommon | local | 32 | -| Local variable 14 of method Resize | local | 32 | -| Local variable 16 of method .ctor | local | 32 | -| Local variable 19 of method .ctor | local | 32 | -| Local variable 19 of method NumberToStringFormat | local | 32 | -| Local variable 21 of method GenerateMetadata | local | 32 | -| Local variable 22 of method .ctor | local | 32 | -| Local variable 23 of method WriteEvent | local | 32 | -| Local variable 24 of method WriteEvent | local | 32 | -| Local variable 25 of method .ctor | local | 32 | -| Local variable 25 of method WriteEvent | local | 32 | -| Local variable 26 of method WriteEvent | local | 32 | -| Local variable 27 of method WriteEvent | local | 32 | -| Local variable 28 of method .ctor | local | 32 | -| Local variable 28 of method WriteEvent | local | 32 | -| Local variable 29 of method WriteEvent | local | 32 | -| Local variable 30 of method g__SseImpl\|59_0 | local | 32 | -| Local variable 30 of method WriteEvent | local | 32 | -| Local variable 31 of method NumberToStringFormat | local | 32 | -| Local variable 34 of method WriteEvent | local | 32 | -| Max | method | 32 | -| Min | method | 32 | -| NullRef | method | 32 | -| Parameter 0 of g__SoftwareFallback\|12_0 | parameter | 32 | -| Parameter 0 of g__SoftwareFallback\|14_0 | parameter | 32 | -| Parameter 0 of g__IncrementX\|112_1 | parameter | 32 | -| Parameter 0 of g__IncrementY\|112_0 | parameter | 32 | -| Parameter 0 of Abs | parameter | 32 | -| Parameter 0 of AccumulateDecimalDigitsIntoBigInteger | parameter | 32 | -| Parameter 0 of Add | parameter | 32 | -| Parameter 0 of Add32To96 | parameter | 32 | -| Parameter 0 of AddByteOffset | parameter | 32 | -| Parameter 0 of AddCustomAttributes | parameter | 32 | -| Parameter 0 of AddDivisor | parameter | 32 | -| Parameter 0 of AddEventDescriptor | parameter | 32 | -| Parameter 0 of AddExceptionsForCompletedTask | parameter | 32 | -| Parameter 0 of AddNonLetter | parameter | 32 | -| Parameter 0 of AddToCleanupList | parameter | 32 | -| Parameter 0 of AdjustDaylightDeltaToExpectedRange | parameter | 32 | -| Parameter 0 of AdjustHour | parameter | 32 | -| Parameter 0 of AdjustTimeZoneToLocal | parameter | 32 | -| Parameter 0 of AdjustTimeZoneToUniversal | parameter | 32 | -| Parameter 0 of And | parameter | 32 | -| Parameter 0 of AppendParameters | parameter | 32 | -| Parameter 0 of AreSame | parameter | 32 | -| Parameter 0 of As | parameter | 32 | -| Parameter 0 of AsMutable | parameter | 32 | -| Parameter 0 of AsPointer | parameter | 32 | -| Parameter 0 of AsRef | parameter | 32 | -| Parameter 0 of AssembleFloatingPointBits | parameter | 32 | -| Parameter 0 of AwaitOnCompleted | parameter | 32 | -| Parameter 0 of AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 0 of BinarySearch | parameter | 32 | -| Parameter 0 of Block | parameter | 32 | -| Parameter 0 of BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 0 of ByteOffset | parameter | 32 | -| Parameter 0 of CheckDefaultDateTime | parameter | 32 | -| Parameter 0 of CheckForAvailableMemory | parameter | 32 | -| Parameter 0 of CheckNewValue | parameter | 32 | -| Parameter 0 of CheckVMForIOPacket | parameter | 32 | -| Parameter 0 of ClearWithReferences | parameter | 32 | -| Parameter 0 of ClearWithoutReferences | parameter | 32 | -| Parameter 0 of Compare | parameter | 32 | -| Parameter 0 of CompareExchange | parameter | 32 | -| Parameter 0 of CompareIgnoreCaseInvariantMode | parameter | 32 | -| Parameter 0 of CompareStringIgnoreCase | parameter | 32 | -| Parameter 0 of CompareStringIgnoreCaseNonAscii | parameter | 32 | -| Parameter 0 of ComputeHash32 | parameter | 32 | -| Parameter 0 of ComputeHash32OrdinalIgnoreCase | parameter | 32 | -| Parameter 0 of ComputeHash32OrdinalIgnoreCaseSlow | parameter | 32 | -| Parameter 0 of ConfigureFormatOS | parameter | 32 | -| Parameter 0 of ConfigureFormatR | parameter | 32 | -| Parameter 0 of Contains | parameter | 32 | -| Parameter 0 of ConvertBigIntegerToFloatingPointBits | parameter | 32 | -| Parameter 0 of CountSignificantBits | parameter | 32 | -| Parameter 0 of Create | parameter | 32 | -| Parameter 0 of CreateReadOnlySpan | parameter | 32 | -| Parameter 0 of CreateSpan | parameter | 32 | -| Parameter 0 of DateTimeOffsetTimeZonePostProcessing | parameter | 32 | -| Parameter 0 of DebugCheckEvent | parameter | 32 | -| Parameter 0 of DecAddSub | parameter | 32 | -| Parameter 0 of DecDivMod1E9 | parameter | 32 | -| Parameter 0 of DecimalToNumber | parameter | 32 | -| Parameter 0 of Decode | parameter | 32 | -| Parameter 0 of DecodePayload | parameter | 32 | -| Parameter 0 of Decrement | parameter | 32 | -| Parameter 0 of DestroyCleanupList | parameter | 32 | -| Parameter 0 of DetermineTimeZoneAdjustments | parameter | 32 | -| Parameter 0 of Div96By32 | parameter | 32 | -| Parameter 0 of Div96By64 | parameter | 32 | -| Parameter 0 of Div96ByConst | parameter | 32 | -| Parameter 0 of Div128By96 | parameter | 32 | -| Parameter 0 of DivRem | parameter | 32 | -| Parameter 0 of Element | parameter | 32 | -| Parameter 0 of EncodeObject | parameter | 32 | -| Parameter 0 of EnsureInitialized | parameter | 32 | -| Parameter 0 of EnsureInitializedCore | parameter | 32 | -| Parameter 0 of EnsureLockInitialized | parameter | 32 | -| Parameter 0 of EqualsIgnoreCase | parameter | 32 | -| Parameter 0 of Exchange | parameter | 32 | -| Parameter 0 of ExchangeAdd | parameter | 32 | -| Parameter 0 of FormatCurrency | parameter | 32 | -| Parameter 0 of FormatDouble | parameter | 32 | -| Parameter 0 of FormatExponent | parameter | 32 | -| Parameter 0 of FormatFixed | parameter | 32 | -| Parameter 0 of FormatGeneral | parameter | 32 | -| Parameter 0 of FormatHalf | parameter | 32 | -| Parameter 0 of FormatNumber | parameter | 32 | -| Parameter 0 of FormatPercent | parameter | 32 | -| Parameter 0 of FormatScientific | parameter | 32 | -| Parameter 0 of FormatSingle | parameter | 32 | -| Parameter 0 of GetAvailableThreads | parameter | 32 | -| Parameter 0 of GetAvailableThreadsNative | parameter | 32 | -| Parameter 0 of GetBytes | parameter | 32 | -| Parameter 0 of GetCpuUtilization | parameter | 32 | -| Parameter 0 of GetCurrentMethod | parameter | 32 | -| Parameter 0 of GetDateOfDSN | parameter | 32 | -| Parameter 0 of GetDateOfNDS | parameter | 32 | -| Parameter 0 of GetDateOfNNDS | parameter | 32 | -| Parameter 0 of GetDateTimeNow | parameter | 32 | -| Parameter 0 of GetDateTimeParseException | parameter | 32 | -| Parameter 0 of GetDayOfMN | parameter | 32 | -| Parameter 0 of GetDayOfMNN | parameter | 32 | -| Parameter 0 of GetDayOfNM | parameter | 32 | -| Parameter 0 of GetDayOfNN | parameter | 32 | -| Parameter 0 of GetDayOfNNN | parameter | 32 | -| Parameter 0 of GetDayOfNNY | parameter | 32 | -| Parameter 0 of GetDayOfYM | parameter | 32 | -| Parameter 0 of GetDayOfYMN | parameter | 32 | -| Parameter 0 of GetDayOfYN | parameter | 32 | -| Parameter 0 of GetDayOfYNN | parameter | 32 | -| Parameter 0 of GetDefaultLocaleName | parameter | 32 | -| Parameter 0 of GetDefaultYear | parameter | 32 | -| Parameter 0 of GetDirectoryEntryFullPath | parameter | 32 | -| Parameter 0 of GetExecutingAssembly | parameter | 32 | -| Parameter 0 of GetHashCode | parameter | 32 | -| Parameter 0 of GetHebrewDayOfNM | parameter | 32 | -| Parameter 0 of GetIUnknownImpl | parameter | 32 | -| Parameter 0 of GetMaxThreads | parameter | 32 | -| Parameter 0 of GetMaxThreadsNative | parameter | 32 | -| Parameter 0 of GetMinThreads | parameter | 32 | -| Parameter 0 of GetMinThreadsNative | parameter | 32 | -| Parameter 0 of GetNextIntroducedMethod | parameter | 32 | -| Parameter 0 of GetStateMachineBox | parameter | 32 | -| Parameter 0 of GetSymbolOrDefault | parameter | 32 | -| Parameter 0 of GetThreadDeserializationTracker | parameter | 32 | -| Parameter 0 of GetTimeOfN | parameter | 32 | -| Parameter 0 of GetTimeOfNN | parameter | 32 | -| Parameter 0 of GetTimeOfNNN | parameter | 32 | -| Parameter 0 of GetTimeZoneName | parameter | 32 | -| Parameter 0 of GetWindowSize | parameter | 32 | -| Parameter 0 of GreaterThan | parameter | 32 | -| Parameter 0 of GrowTable | parameter | 32 | -| Parameter 0 of HandleTimeZone | parameter | 32 | -| Parameter 0 of HashShift | parameter | 32 | -| Parameter 0 of HeuristicDivide | parameter | 32 | -| Parameter 0 of IncreaseScale | parameter | 32 | -| Parameter 0 of IncreaseScale64 | parameter | 32 | -| Parameter 0 of Increment | parameter | 32 | -| Parameter 0 of IndexOf | parameter | 32 | -| Parameter 0 of IndexOfAny | parameter | 32 | -| Parameter 0 of InitBlockUnaligned | parameter | 32 | -| Parameter 0 of Initialize | parameter | 32 | -| Parameter 0 of Int64DivMod1E9 | parameter | 32 | -| Parameter 0 of InternalGetCurrentMethod | parameter | 32 | -| Parameter 0 of InternalRound | parameter | 32 | -| Parameter 0 of IsAddressGreaterThan | parameter | 32 | -| Parameter 0 of IsAddressLessThan | parameter | 32 | -| Parameter 0 of IsNullRef | parameter | 32 | -| Parameter 0 of IsUtf8ContinuationByte | parameter | 32 | -| Parameter 0 of KeepAliveViaCleanupList | parameter | 32 | -| Parameter 0 of KeyToBucket | parameter | 32 | -| Parameter 0 of LastIndexOf | parameter | 32 | -| Parameter 0 of LastIndexOfAny | parameter | 32 | -| Parameter 0 of LessThan | parameter | 32 | -| Parameter 0 of LoadNUInt | parameter | 32 | -| Parameter 0 of LoadUInt | parameter | 32 | -| Parameter 0 of LoadUShort | parameter | 32 | -| Parameter 0 of LoadVector | parameter | 32 | -| Parameter 0 of LoadVector128 | parameter | 32 | -| Parameter 0 of LoadVector256 | parameter | 32 | -| Parameter 0 of MatchAbbreviatedDayName | parameter | 32 | -| Parameter 0 of MatchAbbreviatedMonthName | parameter | 32 | -| Parameter 0 of MatchAbbreviatedTimeMark | parameter | 32 | -| Parameter 0 of MatchDayName | parameter | 32 | -| Parameter 0 of MatchEraName | parameter | 32 | -| Parameter 0 of MatchHebrewDigits | parameter | 32 | -| Parameter 0 of MatchMonthName | parameter | 32 | -| Parameter 0 of MatchTimeMark | parameter | 32 | -| Parameter 0 of MatchWord | parameter | 32 | -| Parameter 0 of Max | parameter | 32 | -| Parameter 0 of Memmove | parameter | 32 | -| Parameter 0 of Min | parameter | 32 | -| Parameter 0 of Multiply | parameter | 32 | -| Parameter 0 of NarrowFourUtf16CharsToAsciiAndWriteToBuffer | parameter | 32 | -| Parameter 0 of NarrowFourUtf16CharsToLatin1AndWriteToBuffer | parameter | 32 | -| Parameter 0 of NarrowTwoUtf16CharsToAsciiAndWriteToBuffer | parameter | 32 | -| Parameter 0 of NarrowTwoUtf16CharsToLatin1AndWriteToBuffer | parameter | 32 | -| Parameter 0 of NumberToDouble | parameter | 32 | -| Parameter 0 of NumberToFloatingPointBits | parameter | 32 | -| Parameter 0 of NumberToFloatingPointBitsSlow | parameter | 32 | -| Parameter 0 of NumberToHalf | parameter | 32 | -| Parameter 0 of NumberToSingle | parameter | 32 | -| Parameter 0 of NumberToString | parameter | 32 | -| Parameter 0 of NumberToStringFormat | parameter | 32 | -| Parameter 0 of Or | parameter | 32 | -| Parameter 0 of OverflowUnscale | parameter | 32 | -| Parameter 0 of ParseByFormat | parameter | 32 | -| Parameter 0 of ParseDigits | parameter | 32 | -| Parameter 0 of ParseExactDigits | parameter | 32 | -| Parameter 0 of ParseExactLiteral | parameter | 32 | -| Parameter 0 of ParseFraction | parameter | 32 | -| Parameter 0 of ParseFractionExact | parameter | 32 | -| Parameter 0 of ParseISO8601 | parameter | 32 | -| Parameter 0 of ParseJapaneseEraStart | parameter | 32 | -| Parameter 0 of ParseSign | parameter | 32 | -| Parameter 0 of ParseTimeZone | parameter | 32 | -| Parameter 0 of ParseTimeZoneOffset | parameter | 32 | -| Parameter 0 of ProcessDateTimeSuffix | parameter | 32 | -| Parameter 0 of ProcessTerminalState | parameter | 32 | -| Parameter 0 of ProcessTerminal_D | parameter | 32 | -| Parameter 0 of ProcessTerminal_DHMSF | parameter | 32 | -| Parameter 0 of ProcessTerminal_HM | parameter | 32 | -| Parameter 0 of ProcessTerminal_HMS_F_D | parameter | 32 | -| Parameter 0 of ProcessTerminal_HM_S_D | parameter | 32 | -| Parameter 0 of Read | parameter | 32 | -| Parameter 0 of ReadUnaligned | parameter | 32 | -| Parameter 0 of RefreshColors | parameter | 32 | -| Parameter 0 of RemoveFirstArgIfRelatedActivityId | parameter | 32 | -| Parameter 0 of Resize | parameter | 32 | -| Parameter 0 of Round | parameter | 32 | -| Parameter 0 of RoundNumber | parameter | 32 | -| Parameter 0 of SearchScale | parameter | 32 | -| Parameter 0 of SequenceCompareTo | parameter | 32 | -| Parameter 0 of SequenceEqual | parameter | 32 | -| Parameter 0 of SetDateDMY | parameter | 32 | -| Parameter 0 of SetDateMDY | parameter | 32 | -| Parameter 0 of SetDateYDM | parameter | 32 | -| Parameter 0 of SetDateYMD | parameter | 32 | -| Parameter 0 of SetUInt32 | parameter | 32 | -| Parameter 0 of SetUInt64 | parameter | 32 | -| Parameter 0 of SetValue | parameter | 32 | -| Parameter 0 of SetZero | parameter | 32 | -| Parameter 0 of Sign | parameter | 32 | -| Parameter 0 of SkipInit | parameter | 32 | -| Parameter 0 of Start | parameter | 32 | -| Parameter 0 of StartAssemblyLoad | parameter | 32 | -| Parameter 0 of StelemRef_Helper | parameter | 32 | -| Parameter 0 of StelemRef_Helper_NoCacheLookup | parameter | 32 | -| Parameter 0 of StopAssemblyLoad | parameter | 32 | -| Parameter 0 of SubtractDivisor | parameter | 32 | -| Parameter 0 of Swap | parameter | 32 | -| Parameter 0 of SwapIfGreater | parameter | 32 | -| Parameter 0 of TZif_GenerateAdjustmentRule | parameter | 32 | -| Parameter 0 of TZif_GenerateAdjustmentRules | parameter | 32 | -| Parameter 0 of TableMask | parameter | 32 | -| Parameter 0 of TrimEventDescriptors | parameter | 32 | -| Parameter 0 of Truncate | parameter | 32 | -| Parameter 0 of TryAdjustYear | parameter | 32 | -| Parameter 0 of TryDigitGenCounted | parameter | 32 | -| Parameter 0 of TryDigitGenShortest | parameter | 32 | -| Parameter 0 of TryFormatDecimalE | parameter | 32 | -| Parameter 0 of TryFormatDecimalF | parameter | 32 | -| Parameter 0 of TryFormatDecimalG | parameter | 32 | -| Parameter 0 of TryFormatThrowFormatException | parameter | 32 | -| Parameter 0 of TryGetAppLocalIcuSwitchValue | parameter | 32 | -| Parameter 0 of TryGetCachedCursorPosition | parameter | 32 | -| Parameter 0 of TryGetCursorPosition | parameter | 32 | -| Parameter 0 of TryGetLocalTzFile | parameter | 32 | -| Parameter 0 of TryNumberToDecimal | parameter | 32 | -| Parameter 0 of TryNumberToInt32 | parameter | 32 | -| Parameter 0 of TryNumberToInt64 | parameter | 32 | -| Parameter 0 of TryNumberToUInt32 | parameter | 32 | -| Parameter 0 of TryNumberToUInt64 | parameter | 32 | -| Parameter 0 of TryParseHebrewNumber | parameter | 32 | -| Parameter 0 of TryParseNumber | parameter | 32 | -| Parameter 0 of TryParseThrowFormatException | parameter | 32 | -| Parameter 0 of TryResolveStateMachineMethod | parameter | 32 | -| Parameter 0 of TryRunCounted | parameter | 32 | -| Parameter 0 of TryRunShortest | parameter | 32 | -| Parameter 0 of UnalignedCountVector | parameter | 32 | -| Parameter 0 of UnalignedCountVector128 | parameter | 32 | -| Parameter 0 of UnalignedCountVectorFromEnd | parameter | 32 | -| Parameter 0 of Unscale | parameter | 32 | -| Parameter 0 of UpdateStringBuilder | parameter | 32 | -| Parameter 0 of ValueAtReturn | parameter | 32 | -| Parameter 0 of VarCyFromDec | parameter | 32 | -| Parameter 0 of VarDecCmp | parameter | 32 | -| Parameter 0 of VarDecCmpSub | parameter | 32 | -| Parameter 0 of VarDecDiv | parameter | 32 | -| Parameter 0 of VarDecMod | parameter | 32 | -| Parameter 0 of VarDecModFull | parameter | 32 | -| Parameter 0 of VarDecMul | parameter | 32 | -| Parameter 0 of VarR4FromDec | parameter | 32 | -| Parameter 0 of VarR8FromDec | parameter | 32 | -| Parameter 0 of VerifyValidPunctuation | parameter | 32 | -| Parameter 0 of VolatileRead | parameter | 32 | -| Parameter 0 of VolatileWrite | parameter | 32 | -| Parameter 0 of WidenFourAsciiBytesToUtf16AndWriteToBuffer | parameter | 32 | -| Parameter 0 of Write | parameter | 32 | -| Parameter 0 of WriteBarrier | parameter | 32 | -| Parameter 0 of WriteFirstUtf16CharAsUtf8ThreeByteSequence | parameter | 32 | -| Parameter 0 of WriteNibble | parameter | 32 | -| Parameter 0 of WriteThreeLowOrderBytes | parameter | 32 | -| Parameter 0 of WriteTwoUtf16CharsAsTwoUtf8ThreeByteSequences | parameter | 32 | -| Parameter 0 of WriteUnaligned | parameter | 32 | -| Parameter 0 of _BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 0 of _GetCurrentMethod | parameter | 32 | -| Parameter 0 of _Memmove | parameter | 32 | -| Parameter 0 of _ZeroMemory | parameter | 32 | -| Parameter 0 of __BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of .ctor | parameter | 32 | -| Parameter 1 of g__SoftwareFallback\|59_1 | parameter | 32 | -| Parameter 1 of g__SseImpl\|59_0 | parameter | 32 | -| Parameter 1 of g__Write\|65_0 | parameter | 32 | -| Parameter 1 of AcquirePointer | parameter | 32 | -| Parameter 1 of AcquireSpan | parameter | 32 | -| Parameter 1 of Add | parameter | 32 | -| Parameter 1 of AddNonLetter | parameter | 32 | -| Parameter 1 of AddSpecialInterface | parameter | 32 | -| Parameter 1 of AddTitlecaseLetter | parameter | 32 | -| Parameter 1 of AddToList | parameter | 32 | -| Parameter 1 of AdjustDaylightDeltaToExpectedRange | parameter | 32 | -| Parameter 1 of AdjustTimeMark | parameter | 32 | -| Parameter 1 of AreSame | parameter | 32 | -| Parameter 1 of AwaitOnCompleted | parameter | 32 | -| Parameter 1 of AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of Block | parameter | 32 | -| Parameter 1 of BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of ByteOffset | parameter | 32 | -| Parameter 1 of ChangeCaseCommon | parameter | 32 | -| Parameter 1 of CheckDefaultDateTime | parameter | 32 | -| Parameter 1 of CheckForAvailableMemory | parameter | 32 | -| Parameter 1 of CheckVMForIOPacket | parameter | 32 | -| Parameter 1 of ClearManaged | parameter | 32 | -| Parameter 1 of ClearNative | parameter | 32 | -| Parameter 1 of ClearNativeContents | parameter | 32 | -| Parameter 1 of Clone | parameter | 32 | -| Parameter 1 of Compare | parameter | 32 | -| Parameter 1 of ConfigureFormatOS | parameter | 32 | -| Parameter 1 of ConfigureFormatR | parameter | 32 | -| Parameter 1 of ConstructName | parameter | 32 | -| Parameter 1 of ConvertBigIntegerToFloatingPointBits | parameter | 32 | -| Parameter 1 of ConvertContentsToManaged | parameter | 32 | -| Parameter 1 of ConvertContentsToNative | parameter | 32 | -| Parameter 1 of ConvertGregorianToHijri | parameter | 32 | -| Parameter 1 of ConvertSafeHandleToNative | parameter | 32 | -| Parameter 1 of ConvertSmpToUtf16 | parameter | 32 | -| Parameter 1 of ConvertSpaceToManaged | parameter | 32 | -| Parameter 1 of ConvertSpaceToNative | parameter | 32 | -| Parameter 1 of CopyRuntimeTypeHandles | parameter | 32 | -| Parameter 1 of CountDecimalTrailingZeros | parameter | 32 | -| Parameter 1 of CreateActivityPathGuid | parameter | 32 | -| Parameter 1 of CreateAndGetBoundaries | parameter | 32 | -| Parameter 1 of CreationOptionsFromContinuationOptions | parameter | 32 | -| Parameter 1 of DangerousAddRef | parameter | 32 | -| Parameter 1 of DecAddSub | parameter | 32 | -| Parameter 1 of DecimalToNumber | parameter | 32 | -| Parameter 1 of Decode | parameter | 32 | -| Parameter 1 of DecodeFromUtf8 | parameter | 32 | -| Parameter 1 of DecodeFromUtf16 | parameter | 32 | -| Parameter 1 of DecodeLastFromUtf8 | parameter | 32 | -| Parameter 1 of DecodeLastFromUtf16 | parameter | 32 | -| Parameter 1 of Decompose | parameter | 32 | -| Parameter 1 of Deconstruct | parameter | 32 | -| Parameter 1 of Div96ByConst | parameter | 32 | -| Parameter 1 of Div128By96 | parameter | 32 | -| Parameter 1 of DivRem | parameter | 32 | -| Parameter 1 of DivRem32 | parameter | 32 | -| Parameter 1 of EatWhiteSpace | parameter | 32 | -| Parameter 1 of Encode | parameter | 32 | -| Parameter 1 of EncodeHexString | parameter | 32 | -| Parameter 1 of EncodeObject | parameter | 32 | -| Parameter 1 of EncodeTags | parameter | 32 | -| Parameter 1 of EnsureInitialized | parameter | 32 | -| Parameter 1 of EnsureInitializedCore | parameter | 32 | -| Parameter 1 of Enter | parameter | 32 | -| Parameter 1 of EnumConnectionPoints | parameter | 32 | -| Parameter 1 of EnumConnections | parameter | 32 | -| Parameter 1 of EnumObjectParam | parameter | 32 | -| Parameter 1 of EnumRunning | parameter | 32 | -| Parameter 1 of EqualsIgnoreCase | parameter | 32 | -| Parameter 1 of EtwEnableCallBack | parameter | 32 | -| Parameter 1 of EvaluateInternal | parameter | 32 | -| Parameter 1 of EventActivityIdControl | parameter | 32 | -| Parameter 1 of ExecuteWithThreadLocal | parameter | 32 | -| Parameter 1 of ExpandPredefinedFormat | parameter | 32 | -| Parameter 1 of ExtractFractionAndBiasedExponent | parameter | 32 | -| Parameter 1 of FStat | parameter | 32 | -| Parameter 1 of FilterCustomAttributeRecord | parameter | 32 | -| Parameter 1 of FilterHelper | parameter | 32 | -| Parameter 1 of FindConnectionPoint | parameter | 32 | -| Parameter 1 of FormatCurrency | parameter | 32 | -| Parameter 1 of FormatFixed | parameter | 32 | -| Parameter 1 of FormatGeneral | parameter | 32 | -| Parameter 1 of FormatNumber | parameter | 32 | -| Parameter 1 of FormatPercent | parameter | 32 | -| Parameter 1 of FormatScientific | parameter | 32 | -| Parameter 1 of GetAvailableThreads | parameter | 32 | -| Parameter 1 of GetAvailableThreadsNative | parameter | 32 | -| Parameter 1 of GetBindOptions | parameter | 32 | -| Parameter 1 of GetBoolValue | parameter | 32 | -| Parameter 1 of GetCachedSwitchValue | parameter | 32 | -| Parameter 1 of GetCachedSwitchValueInternal | parameter | 32 | -| Parameter 1 of GetClassID | parameter | 32 | -| Parameter 1 of GetCodeInfo | parameter | 32 | -| Parameter 1 of GetCombinedList | parameter | 32 | -| Parameter 1 of GetConfigBoolValue | parameter | 32 | -| Parameter 1 of GetConnectionInterface | parameter | 32 | -| Parameter 1 of GetConnectionPointContainer | parameter | 32 | -| Parameter 1 of GetContainingTypeLib | parameter | 32 | -| Parameter 1 of GetCurFile | parameter | 32 | -| Parameter 1 of GetCustData | parameter | 32 | -| Parameter 1 of GetDate | parameter | 32 | -| Parameter 1 of GetDateOfDSN | parameter | 32 | -| Parameter 1 of GetDateOfNDS | parameter | 32 | -| Parameter 1 of GetDateOfNNDS | parameter | 32 | -| Parameter 1 of GetDateTimeNow | parameter | 32 | -| Parameter 1 of GetDateTimeNowUtcOffsetFromUtc | parameter | 32 | -| Parameter 1 of GetDayOfMN | parameter | 32 | -| Parameter 1 of GetDayOfMNN | parameter | 32 | -| Parameter 1 of GetDayOfNM | parameter | 32 | -| Parameter 1 of GetDayOfNN | parameter | 32 | -| Parameter 1 of GetDayOfNNN | parameter | 32 | -| Parameter 1 of GetDayOfNNY | parameter | 32 | -| Parameter 1 of GetDayOfYM | parameter | 32 | -| Parameter 1 of GetDayOfYMN | parameter | 32 | -| Parameter 1 of GetDayOfYN | parameter | 32 | -| Parameter 1 of GetDayOfYNN | parameter | 32 | -| Parameter 1 of GetDefaultYear | parameter | 32 | -| Parameter 1 of GetDelegateTarget | parameter | 32 | -| Parameter 1 of GetDynamicOrStaticVariables | parameter | 32 | -| Parameter 1 of GetEnumData | parameter | 32 | -| Parameter 1 of GetFloatingPointMaxDigitsAndPrecision | parameter | 32 | -| Parameter 1 of GetGUID | parameter | 32 | -| Parameter 1 of GetHebrewDayOfNM | parameter | 32 | -| Parameter 1 of GetIUnknownImpl | parameter | 32 | -| Parameter 1 of GetInterface | parameter | 32 | -| Parameter 1 of GetJapaneseEraStartDate | parameter | 32 | -| Parameter 1 of GetJitContext | parameter | 32 | -| Parameter 1 of GetLibAttr | parameter | 32 | -| Parameter 1 of GetLicInfo | parameter | 32 | -| Parameter 1 of GetLocalSignature | parameter | 32 | -| Parameter 1 of GetLocaleName | parameter | 32 | -| Parameter 1 of GetMarshalAs | parameter | 32 | -| Parameter 1 of GetMaxThreads | parameter | 32 | -| Parameter 1 of GetMaxThreadsNative | parameter | 32 | -| Parameter 1 of GetMemberCache | parameter | 32 | -| Parameter 1 of GetMemberList | parameter | 32 | -| Parameter 1 of GetMetadataLength | parameter | 32 | -| Parameter 1 of GetMetadataLengthForTypeV2 | parameter | 32 | -| Parameter 1 of GetMetadataLengthV2 | parameter | 32 | -| Parameter 1 of GetMinThreads | parameter | 32 | -| Parameter 1 of GetMinThreadsNative | parameter | 32 | -| Parameter 1 of GetMonthDayOrder | parameter | 32 | -| Parameter 1 of GetNeutralResourcesLanguage | parameter | 32 | -| Parameter 1 of GetNextUnicodeScalarValueFromUtf16Surrogate | parameter | 32 | -| Parameter 1 of GetObjectStartLength | parameter | 32 | -| Parameter 1 of GetPEKind | parameter | 32 | -| Parameter 1 of GetPrimaryAndSecondary | parameter | 32 | -| Parameter 1 of GetPropertyOrFieldData | parameter | 32 | -| Parameter 1 of GetPwUidR | parameter | 32 | -| Parameter 1 of GetRegularToken | parameter | 32 | -| Parameter 1 of GetRunningObjectTable | parameter | 32 | -| Parameter 1 of GetScopeProps | parameter | 32 | -| Parameter 1 of GetSizeMax | parameter | 32 | -| Parameter 1 of GetSortHandle | parameter | 32 | -| Parameter 1 of GetStackTracesDeepCopy | parameter | 32 | -| Parameter 1 of GetStateMachineBox | parameter | 32 | -| Parameter 1 of GetTime | parameter | 32 | -| Parameter 1 of GetTimeOfN | parameter | 32 | -| Parameter 1 of GetTimeOfNN | parameter | 32 | -| Parameter 1 of GetTimeOfNNN | parameter | 32 | -| Parameter 1 of GetTimePrecise | parameter | 32 | -| Parameter 1 of GetTypeAttr | parameter | 32 | -| Parameter 1 of GetTypeComp | parameter | 32 | -| Parameter 1 of GetTypeFlags | parameter | 32 | -| Parameter 1 of GetTypeInfoFromType | parameter | 32 | -| Parameter 1 of GetTypeInfoOfGuid | parameter | 32 | -| Parameter 1 of GetTypeKind | parameter | 32 | -| Parameter 1 of GetUtf16SurrogatesFromSupplementaryPlaneScalar | parameter | 32 | -| Parameter 1 of GetVersion | parameter | 32 | -| Parameter 1 of GetWindowSize | parameter | 32 | -| Parameter 1 of GetYearMonthDayOrder | parameter | 32 | -| Parameter 1 of GetYearMonthOrder | parameter | 32 | -| Parameter 1 of GreaterThan | parameter | 32 | -| Parameter 1 of HandleTimeZone | parameter | 32 | -| Parameter 1 of Hash | parameter | 32 | -| Parameter 1 of HeuristicDivide | parameter | 32 | -| Parameter 1 of HtmlDecode | parameter | 32 | -| Parameter 1 of HtmlEncode | parameter | 32 | -| Parameter 1 of Initialize | parameter | 32 | -| Parameter 1 of Insert | parameter | 32 | -| Parameter 1 of Int32ToNumber | parameter | 32 | -| Parameter 1 of Int64ToNumber | parameter | 32 | -| Parameter 1 of InternalGetSignature | parameter | 32 | -| Parameter 1 of InternalLoad | parameter | 32 | -| Parameter 1 of InternalTryGetRawMetadata | parameter | 32 | -| Parameter 1 of Inverse | parameter | 32 | -| Parameter 1 of Invert | parameter | 32 | -| Parameter 1 of Invoke | parameter | 32 | -| Parameter 1 of IsAddressGreaterThan | parameter | 32 | -| Parameter 1 of IsAddressLessThan | parameter | 32 | -| Parameter 1 of IsSystemMoniker | parameter | 32 | -| Parameter 1 of LStat | parameter | 32 | -| Parameter 1 of LazyCreateEvent | parameter | 32 | -| Parameter 1 of LessThan | parameter | 32 | -| Parameter 1 of Lex | parameter | 32 | -| Parameter 1 of MapBufferToConsoleKey | parameter | 32 | -| Parameter 1 of MarshalToNative | parameter | 32 | -| Parameter 1 of Max | parameter | 32 | -| Parameter 1 of Memmove | parameter | 32 | -| Parameter 1 of Min | parameter | 32 | -| Parameter 1 of MoveNext | parameter | 32 | -| Parameter 1 of Multiply | parameter | 32 | -| Parameter 1 of NormalizeAdjustmentRuleOffset | parameter | 32 | -| Parameter 1 of NormalizeCultureName | parameter | 32 | -| Parameter 1 of NumberToFloatingPointBits | parameter | 32 | -| Parameter 1 of NumberToFloatingPointBitsSlow | parameter | 32 | -| Parameter 1 of NumberToString | parameter | 32 | -| Parameter 1 of NumberToStringFormat | parameter | 32 | -| Parameter 1 of OpenExistingWorker | parameter | 32 | -| Parameter 1 of ParseAttributeArguments | parameter | 32 | -| Parameter 1 of ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 1 of ParseByChar | parameter | 32 | -| Parameter 1 of ParseByFormat | parameter | 32 | -| Parameter 1 of ParseFormatO | parameter | 32 | -| Parameter 1 of ParseFormatR | parameter | 32 | -| Parameter 1 of ParseFormatSpecifier | parameter | 32 | -| Parameter 1 of ParseFraction | parameter | 32 | -| Parameter 1 of ParseHelper | parameter | 32 | -| Parameter 1 of ParseISO8601 | parameter | 32 | -| Parameter 1 of ParseSign | parameter | 32 | -| Parameter 1 of ParseTime | parameter | 32 | -| Parameter 1 of ParseTimeZone | parameter | 32 | -| Parameter 1 of Pow2 | parameter | 32 | -| Parameter 1 of Pow10 | parameter | 32 | -| Parameter 1 of ProcessDateTimeSuffix | parameter | 32 | -| Parameter 1 of ProcessHebrewTerminalState | parameter | 32 | -| Parameter 1 of ProcessTerminalState | parameter | 32 | -| Parameter 1 of ProcessToken | parameter | 32 | -| Parameter 1 of QueryInterface | parameter | 32 | -| Parameter 1 of ReadKey | parameter | 32 | -| Parameter 1 of ReliableEnter | parameter | 32 | -| Parameter 1 of ReorderArgumentArray | parameter | 32 | -| Parameter 1 of ReplaceInPlaceAtChunk | parameter | 32 | -| Parameter 1 of RestoreDispatchState | parameter | 32 | -| Parameter 1 of SafeHandleAddRef | parameter | 32 | -| Parameter 1 of SequenceEqual | parameter | 32 | -| Parameter 1 of SerializeSubstitute | parameter | 32 | -| Parameter 1 of SerializeTransitionTime | parameter | 32 | -| Parameter 1 of SetBindOptions | parameter | 32 | -| Parameter 1 of SetCurrentThreadActivityId | parameter | 32 | -| Parameter 1 of SetException | parameter | 32 | -| Parameter 1 of SetNotificationForWaitCompletion | parameter | 32 | -| Parameter 1 of SetValue | parameter | 32 | -| Parameter 1 of SnapForObservation | parameter | 32 | -| Parameter 1 of SplitName | parameter | 32 | -| Parameter 1 of Start | parameter | 32 | -| Parameter 1 of StartAssemblyLoad | parameter | 32 | -| Parameter 1 of Stat | parameter | 32 | -| Parameter 1 of Subtract | parameter | 32 | -| Parameter 1 of Swap | parameter | 32 | -| Parameter 1 of SwapIfGreater | parameter | 32 | -| Parameter 1 of TZif_ParseJulianDay | parameter | 32 | -| Parameter 1 of TZif_ParseMDateRule | parameter | 32 | -| Parameter 1 of TZif_ParsePosixDate | parameter | 32 | -| Parameter 1 of TZif_ParsePosixDateTime | parameter | 32 | -| Parameter 1 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 1 of TZif_ParsePosixName | parameter | 32 | -| Parameter 1 of TZif_ParsePosixOffset | parameter | 32 | -| Parameter 1 of TZif_ParsePosixString | parameter | 32 | -| Parameter 1 of TZif_ParsePosixTime | parameter | 32 | -| Parameter 1 of TZif_ParseRaw | parameter | 32 | -| Parameter 1 of ThrowIfDeserializationInProgress | parameter | 32 | -| Parameter 1 of TryCreate | parameter | 32 | -| Parameter 1 of TryDequeue | parameter | 32 | -| Parameter 1 of TryDequeueSlow | parameter | 32 | -| Parameter 1 of TryDigitGenShortest | parameter | 32 | -| Parameter 1 of TryEnter | parameter | 32 | -| Parameter 1 of TryFindFirstMatchedLane | parameter | 32 | -| Parameter 1 of TryGetArray | parameter | 32 | -| Parameter 1 of TryGetBuffer | parameter | 32 | -| Parameter 1 of TryGetCachedCursorPosition | parameter | 32 | -| Parameter 1 of TryGetCursorPosition | parameter | 32 | -| Parameter 1 of TryGetLocalTzFile | parameter | 32 | -| Parameter 1 of TryGetMemoryManager | parameter | 32 | -| Parameter 1 of TryGetRawMetadata | parameter | 32 | -| Parameter 1 of TryGetString | parameter | 32 | -| Parameter 1 of TryGetSwitch | parameter | 32 | -| Parameter 1 of TryGetTarget | parameter | 32 | -| Parameter 1 of TryGetTimeZoneFromLocalMachine | parameter | 32 | -| Parameter 1 of TryGetTrailByte | parameter | 32 | -| Parameter 1 of TryLoad | parameter | 32 | -| Parameter 1 of TryLoadTzFile | parameter | 32 | -| Parameter 1 of TryNumberToDecimal | parameter | 32 | -| Parameter 1 of TryNumberToInt32 | parameter | 32 | -| Parameter 1 of TryNumberToInt64 | parameter | 32 | -| Parameter 1 of TryNumberToUInt32 | parameter | 32 | -| Parameter 1 of TryNumberToUInt64 | parameter | 32 | -| Parameter 1 of TryOpen | parameter | 32 | -| Parameter 1 of TryOpenExisting | parameter | 32 | -| Parameter 1 of TryParse | parameter | 32 | -| Parameter 1 of TryParseByteD | parameter | 32 | -| Parameter 1 of TryParseByteN | parameter | 32 | -| Parameter 1 of TryParseByteX | parameter | 32 | -| Parameter 1 of TryParseDateTimeG | parameter | 32 | -| Parameter 1 of TryParseDateTimeOffsetDefault | parameter | 32 | -| Parameter 1 of TryParseDateTimeOffsetO | parameter | 32 | -| Parameter 1 of TryParseExactB | parameter | 32 | -| Parameter 1 of TryParseExactD | parameter | 32 | -| Parameter 1 of TryParseExactN | parameter | 32 | -| Parameter 1 of TryParseExactP | parameter | 32 | -| Parameter 1 of TryParseExactX | parameter | 32 | -| Parameter 1 of TryParseGuid | parameter | 32 | -| Parameter 1 of TryParseGuidCore | parameter | 32 | -| Parameter 1 of TryParseGuidN | parameter | 32 | -| Parameter 1 of TryParseHebrewNumber | parameter | 32 | -| Parameter 1 of TryParseHex | parameter | 32 | -| Parameter 1 of TryParseInt16D | parameter | 32 | -| Parameter 1 of TryParseInt16N | parameter | 32 | -| Parameter 1 of TryParseInt32D | parameter | 32 | -| Parameter 1 of TryParseInt32N | parameter | 32 | -| Parameter 1 of TryParseInt64D | parameter | 32 | -| Parameter 1 of TryParseInt64N | parameter | 32 | -| Parameter 1 of TryParseNormalAsFloatingPoint | parameter | 32 | -| Parameter 1 of TryParseNumber | parameter | 32 | -| Parameter 1 of TryParseSByteD | parameter | 32 | -| Parameter 1 of TryParseSByteN | parameter | 32 | -| Parameter 1 of TryParseThrowFormatException | parameter | 32 | -| Parameter 1 of TryParseTimeSpanBigG | parameter | 32 | -| Parameter 1 of TryParseTimeSpanC | parameter | 32 | -| Parameter 1 of TryParseTimeSpanConstant | parameter | 32 | -| Parameter 1 of TryParseTimeSpanFraction | parameter | 32 | -| Parameter 1 of TryParseTimeSpanLittleG | parameter | 32 | -| Parameter 1 of TryParseUInt16D | parameter | 32 | -| Parameter 1 of TryParseUInt16N | parameter | 32 | -| Parameter 1 of TryParseUInt16X | parameter | 32 | -| Parameter 1 of TryParseUInt32D | parameter | 32 | -| Parameter 1 of TryParseUInt32N | parameter | 32 | -| Parameter 1 of TryParseUInt32X | parameter | 32 | -| Parameter 1 of TryParseUInt64D | parameter | 32 | -| Parameter 1 of TryParseUInt64N | parameter | 32 | -| Parameter 1 of TryParseUInt64X | parameter | 32 | -| Parameter 1 of TryPeek | parameter | 32 | -| Parameter 1 of TryRead | parameter | 32 | -| Parameter 1 of TryReadDoubleBigEndian | parameter | 32 | -| Parameter 1 of TryReadDoubleLittleEndian | parameter | 32 | -| Parameter 1 of TryReadInt16BigEndian | parameter | 32 | -| Parameter 1 of TryReadInt16LittleEndian | parameter | 32 | -| Parameter 1 of TryReadInt32BigEndian | parameter | 32 | -| Parameter 1 of TryReadInt32LittleEndian | parameter | 32 | -| Parameter 1 of TryReadInt64BigEndian | parameter | 32 | -| Parameter 1 of TryReadInt64LittleEndian | parameter | 32 | -| Parameter 1 of TryReadSingleBigEndian | parameter | 32 | -| Parameter 1 of TryReadSingleLittleEndian | parameter | 32 | -| Parameter 1 of TryReadUInt16BigEndian | parameter | 32 | -| Parameter 1 of TryReadUInt16LittleEndian | parameter | 32 | -| Parameter 1 of TryReadUInt32BigEndian | parameter | 32 | -| Parameter 1 of TryReadUInt32LittleEndian | parameter | 32 | -| Parameter 1 of TryReadUInt64BigEndian | parameter | 32 | -| Parameter 1 of TryReadUInt64LittleEndian | parameter | 32 | -| Parameter 1 of TryResolveStateMachineMethod | parameter | 32 | -| Parameter 1 of TryRunShortest | parameter | 32 | -| Parameter 1 of TrySteal | parameter | 32 | -| Parameter 1 of TryTake | parameter | 32 | -| Parameter 1 of TryWrite | parameter | 32 | -| Parameter 1 of UInt32ToNumber | parameter | 32 | -| Parameter 1 of UInt64ToNumber | parameter | 32 | -| Parameter 1 of Unscale | parameter | 32 | -| Parameter 1 of VarDecCmp | parameter | 32 | -| Parameter 1 of VarDecCmpSub | parameter | 32 | -| Parameter 1 of VarDecDiv | parameter | 32 | -| Parameter 1 of VarDecFromR4 | parameter | 32 | -| Parameter 1 of VarDecFromR8 | parameter | 32 | -| Parameter 1 of VarDecMod | parameter | 32 | -| Parameter 1 of VarDecModFull | parameter | 32 | -| Parameter 1 of VarDecMul | parameter | 32 | -| Parameter 1 of Widen | parameter | 32 | -| Parameter 1 of Write | parameter | 32 | -| Parameter 1 of WriteEvent | parameter | 32 | -| Parameter 1 of WriteEventRaw | parameter | 32 | -| Parameter 1 of YearMonthAdjustment | parameter | 32 | -| Parameter 1 of _BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of _GetScopeProps | parameter | 32 | -| Parameter 1 of _Memmove | parameter | 32 | -| Parameter 1 of __BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of nGetPrimaryAndSecondary | parameter | 32 | -| Parameter 2 of g__SoftwareFallback\|42_0 | parameter | 32 | -| Parameter 2 of g__BufferUntil\|83_0 | parameter | 32 | -| Parameter 2 of Add | parameter | 32 | -| Parameter 2 of AddDivisor | parameter | 32 | -| Parameter 2 of AddIfNotPresent | parameter | 32 | -| Parameter 2 of AddNum | parameter | 32 | -| Parameter 2 of AddResourceSet | parameter | 32 | -| Parameter 2 of AddSep | parameter | 32 | -| Parameter 2 of AddTitlecaseLetter | parameter | 32 | -| Parameter 2 of Advise | parameter | 32 | -| Parameter 2 of AllocateStringForNameIndex | parameter | 32 | -| Parameter 2 of AttributeUsageCheck | parameter | 32 | -| Parameter 2 of AwaitOnCompleted | parameter | 32 | -| Parameter 2 of AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of BigMul | parameter | 32 | -| Parameter 2 of BiggestPowerTen | parameter | 32 | -| Parameter 2 of ChangeCaseCommon | parameter | 32 | -| Parameter 2 of CheckVMForIOPacket | parameter | 32 | -| Parameter 2 of CommonPrefixWith | parameter | 32 | -| Parameter 2 of CompareIgnoreCaseInvariantMode | parameter | 32 | -| Parameter 2 of CompareStringIgnoreCase | parameter | 32 | -| Parameter 2 of CompareStringIgnoreCaseNonAscii | parameter | 32 | -| Parameter 2 of ConfigureFormatR | parameter | 32 | -| Parameter 2 of ContinueTryEnter | parameter | 32 | -| Parameter 2 of ConvertGregorianToHijri | parameter | 32 | -| Parameter 2 of ConvertSmpToUtf16 | parameter | 32 | -| Parameter 2 of ConvertUtcToTimeZone | parameter | 32 | -| Parameter 2 of CopyToTempBufferWithoutWhiteSpace | parameter | 32 | -| Parameter 2 of CountOccurrences | parameter | 32 | -| Parameter 2 of CreateActivityPathGuid | parameter | 32 | -| Parameter 2 of CreateAndGetBoundaries | parameter | 32 | -| Parameter 2 of CreateInstance | parameter | 32 | -| Parameter 2 of CreationOptionsFromContinuationOptions | parameter | 32 | -| Parameter 2 of DecodeFirstRune | parameter | 32 | -| Parameter 2 of DecodeFromUtf8 | parameter | 32 | -| Parameter 2 of DecodeFromUtf16 | parameter | 32 | -| Parameter 2 of DecodeLastFromUtf8 | parameter | 32 | -| Parameter 2 of DecodeLastFromUtf16 | parameter | 32 | -| Parameter 2 of Decompose | parameter | 32 | -| Parameter 2 of Deconstruct | parameter | 32 | -| Parameter 2 of Dequeue | parameter | 32 | -| Parameter 2 of DivByConst | parameter | 32 | -| Parameter 2 of DivMod | parameter | 32 | -| Parameter 2 of DivRem | parameter | 32 | -| Parameter 2 of DrainLeftoverDataForGetByteCount | parameter | 32 | -| Parameter 2 of DrainLeftoverDataForGetCharCount | parameter | 32 | -| Parameter 2 of EncodeObject | parameter | 32 | -| Parameter 2 of EnqueueSlow | parameter | 32 | -| Parameter 2 of EnsureInitialized | parameter | 32 | -| Parameter 2 of EnsureInitializedCore | parameter | 32 | -| Parameter 2 of Enum | parameter | 32 | -| Parameter 2 of EnumCustomAttributes | parameter | 32 | -| Parameter 2 of EnumEvents | parameter | 32 | -| Parameter 2 of EnumFields | parameter | 32 | -| Parameter 2 of EnumNestedTypes | parameter | 32 | -| Parameter 2 of EnumParams | parameter | 32 | -| Parameter 2 of EnumProperties | parameter | 32 | -| Parameter 2 of EscapeAsciiChar | parameter | 32 | -| Parameter 2 of EventActivityIdControl | parameter | 32 | -| Parameter 2 of EventWriteTransfer | parameter | 32 | -| Parameter 2 of ExpandPredefinedFormat | parameter | 32 | -| Parameter 2 of FilterHelper | parameter | 32 | -| Parameter 2 of FindConnectionPoint | parameter | 32 | -| Parameter 2 of FindEntry | parameter | 32 | -| Parameter 2 of FmtClassUpdateNativeInternal | parameter | 32 | -| Parameter 2 of FromUtf16 | parameter | 32 | -| Parameter 2 of GenerateMetadata | parameter | 32 | -| Parameter 2 of GenerateMetadataForProperty | parameter | 32 | -| Parameter 2 of GenerateMetadataForTypeV2 | parameter | 32 | -| Parameter 2 of GenerateMetadataV2 | parameter | 32 | -| Parameter 2 of GetAdjustmentRuleForAmbiguousOffsets | parameter | 32 | -| Parameter 2 of GetAdjustmentRuleForTime | parameter | 32 | -| Parameter 2 of GetBoundaries | parameter | 32 | -| Parameter 2 of GetCachedPowerForBinaryExponentRange | parameter | 32 | -| Parameter 2 of GetClassLayout | parameter | 32 | -| Parameter 2 of GetCodeInfo | parameter | 32 | -| Parameter 2 of GetContainingTypeLib | parameter | 32 | -| Parameter 2 of GetCurrentContextInfo | parameter | 32 | -| Parameter 2 of GetCustData | parameter | 32 | -| Parameter 2 of GetCustomAttributeProps | parameter | 32 | -| Parameter 2 of GetCustomAttributes | parameter | 32 | -| Parameter 2 of GetDate | parameter | 32 | -| Parameter 2 of GetDayOfMN | parameter | 32 | -| Parameter 2 of GetDayOfNM | parameter | 32 | -| Parameter 2 of GetDayOfNN | parameter | 32 | -| Parameter 2 of GetDefaultValue | parameter | 32 | -| Parameter 2 of GetDocumentation | parameter | 32 | -| Parameter 2 of GetDocumentation2 | parameter | 32 | -| Parameter 2 of GetDynamicOrStaticVariables | parameter | 32 | -| Parameter 2 of GetElement | parameter | 32 | -| Parameter 2 of GetElementNoThrow | parameter | 32 | -| Parameter 2 of GetEnumData | parameter | 32 | -| Parameter 2 of GetEventProps | parameter | 32 | -| Parameter 2 of GetFieldDefProps | parameter | 32 | -| Parameter 2 of GetFuncCustData | parameter | 32 | -| Parameter 2 of GetFuncDesc | parameter | 32 | -| Parameter 2 of GetGenericParamProps | parameter | 32 | -| Parameter 2 of GetIUnknownImpl | parameter | 32 | -| Parameter 2 of GetImplTypeCustData | parameter | 32 | -| Parameter 2 of GetImplTypeFlags | parameter | 32 | -| Parameter 2 of GetIndexOfNextTokenAfterSeconds | parameter | 32 | -| Parameter 2 of GetInterface | parameter | 32 | -| Parameter 2 of GetJapaneseEraStartDate | parameter | 32 | -| Parameter 2 of GetKeyFromCharValue | parameter | 32 | -| Parameter 2 of GetLibStatistics | parameter | 32 | -| Parameter 2 of GetLocaleInfoGroupingSizes | parameter | 32 | -| Parameter 2 of GetLocaleInfoInt | parameter | 32 | -| Parameter 2 of GetMarshalAs | parameter | 32 | -| Parameter 2 of GetMetadataLengthForNamedTypeV2 | parameter | 32 | -| Parameter 2 of GetMops | parameter | 32 | -| Parameter 2 of GetObject | parameter | 32 | -| Parameter 2 of GetObjectParam | parameter | 32 | -| Parameter 2 of GetObjectStartLength | parameter | 32 | -| Parameter 2 of GetPEKind | parameter | 32 | -| Parameter 2 of GetPInvokeMap | parameter | 32 | -| Parameter 2 of GetParamDefProps | parameter | 32 | -| Parameter 2 of GetPointerToFirstInvalidByte | parameter | 32 | -| Parameter 2 of GetPointerToFirstInvalidChar | parameter | 32 | -| Parameter 2 of GetPropertyProps | parameter | 32 | -| Parameter 2 of GetRefTypeInfo | parameter | 32 | -| Parameter 2 of GetRefTypeOfImplType | parameter | 32 | -| Parameter 2 of GetRegularToken | parameter | 32 | -| Parameter 2 of GetResource | parameter | 32 | -| Parameter 2 of GetResourceData | parameter | 32 | -| Parameter 2 of GetSeparatorToken | parameter | 32 | -| Parameter 2 of GetSessionInfo | parameter | 32 | -| Parameter 2 of GetSessionInfoCallback | parameter | 32 | -| Parameter 2 of GetStackTracesDeepCopy | parameter | 32 | -| Parameter 2 of GetTime | parameter | 32 | -| Parameter 2 of GetTimeOfLastChange | parameter | 32 | -| Parameter 2 of GetTimePrecise | parameter | 32 | -| Parameter 2 of GetTypeInfo | parameter | 32 | -| Parameter 2 of GetTypeInfoOfGuid | parameter | 32 | -| Parameter 2 of GetTypeInfoType | parameter | 32 | -| Parameter 2 of GetUnescapeSequence | parameter | 32 | -| Parameter 2 of GetUnicodeCategoryInternal | parameter | 32 | -| Parameter 2 of GetUtcOffsetFromUniversalTime | parameter | 32 | -| Parameter 2 of GetUtcOffsetFromUtc | parameter | 32 | -| Parameter 2 of GetUtf16SurrogatesFromSupplementaryPlaneScalar | parameter | 32 | -| Parameter 2 of GetVarCustData | parameter | 32 | -| Parameter 2 of GetVarDesc | parameter | 32 | -| Parameter 2 of GetVarIndexOfMemId | parameter | 32 | -| Parameter 2 of GetVersion | parameter | 32 | -| Parameter 2 of GrabInts | parameter | 32 | -| Parameter 2 of GrabLongs | parameter | 32 | -| Parameter 2 of IndexOf | parameter | 32 | -| Parameter 2 of IndexOfAny | parameter | 32 | -| Parameter 2 of Initialize | parameter | 32 | -| Parameter 2 of InternalDefineDynamicAssembly | parameter | 32 | -| Parameter 2 of InternalFallback | parameter | 32 | -| Parameter 2 of InternalFallbackGetByteCount | parameter | 32 | -| Parameter 2 of InternalLoad | parameter | 32 | -| Parameter 2 of InternalTryGetRawMetadata | parameter | 32 | -| Parameter 2 of Invoke | parameter | 32 | -| Parameter 2 of IsDigit | parameter | 32 | -| Parameter 2 of IsInstanceOfInterface | parameter | 32 | -| Parameter 2 of LastIndexOf | parameter | 32 | -| Parameter 2 of LastIndexOfAny | parameter | 32 | -| Parameter 2 of Lex | parameter | 32 | -| Parameter 2 of LoadObject | parameter | 32 | -| Parameter 2 of LoadObjectV2 | parameter | 32 | -| Parameter 2 of MakeSeparatorList | parameter | 32 | -| Parameter 2 of MapBufferToConsoleKey | parameter | 32 | -| Parameter 2 of MatchAbbreviatedDayName | parameter | 32 | -| Parameter 2 of MatchAbbreviatedMonthName | parameter | 32 | -| Parameter 2 of MatchAbbreviatedTimeMark | parameter | 32 | -| Parameter 2 of MatchDayName | parameter | 32 | -| Parameter 2 of MatchEraName | parameter | 32 | -| Parameter 2 of MatchHebrewDigits | parameter | 32 | -| Parameter 2 of MatchLongestWords | parameter | 32 | -| Parameter 2 of MatchMonthName | parameter | 32 | -| Parameter 2 of MatchTimeMark | parameter | 32 | -| Parameter 2 of Multiply | parameter | 32 | -| Parameter 2 of NormalizeDayOfWeek | parameter | 32 | -| Parameter 2 of NoteChangeTime | parameter | 32 | -| Parameter 2 of Overlaps | parameter | 32 | -| Parameter 2 of ParseAttributeArguments | parameter | 32 | -| Parameter 2 of ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 2 of ParseByFormat | parameter | 32 | -| Parameter 2 of ParseComponent | parameter | 32 | -| Parameter 2 of ParseDigits | parameter | 32 | -| Parameter 2 of ParseExactDigits | parameter | 32 | -| Parameter 2 of ParseFormatR | parameter | 32 | -| Parameter 2 of ParseFractionExact | parameter | 32 | -| Parameter 2 of ParseInt | parameter | 32 | -| Parameter 2 of ParseTime | parameter | 32 | -| Parameter 2 of ParseTimeZoneOffset | parameter | 32 | -| Parameter 2 of ProcessDateTimeSuffix | parameter | 32 | -| Parameter 2 of ProcessHebrewTerminalState | parameter | 32 | -| Parameter 2 of ProcessTerminalState | parameter | 32 | -| Parameter 2 of ProcessTerminal_D | parameter | 32 | -| Parameter 2 of ProcessTerminal_DHMSF | parameter | 32 | -| Parameter 2 of ProcessTerminal_HM | parameter | 32 | -| Parameter 2 of ProcessTerminal_HMS_F_D | parameter | 32 | -| Parameter 2 of ProcessTerminal_HM_S_D | parameter | 32 | -| Parameter 2 of ProcessToken | parameter | 32 | -| Parameter 2 of QueryInterface | parameter | 32 | -| Parameter 2 of Read | parameter | 32 | -| Parameter 2 of ReadBuffer | parameter | 32 | -| Parameter 2 of RelativePathTo | parameter | 32 | -| Parameter 2 of ReleaseSemaphore | parameter | 32 | -| Parameter 2 of ReliableEnterTimeout | parameter | 32 | -| Parameter 2 of Remove | parameter | 32 | -| Parameter 2 of RemoveRelativeSegments | parameter | 32 | -| Parameter 2 of ReplaceInPlaceAtChunk | parameter | 32 | -| Parameter 2 of RequestLicKey | parameter | 32 | -| Parameter 2 of ResolveToken | parameter | 32 | -| Parameter 2 of RunForThreadPoolUnsafe | parameter | 32 | -| Parameter 2 of SequenceCompareTo | parameter | 32 | -| Parameter 2 of SnapForObservation | parameter | 32 | -| Parameter 2 of SplitName | parameter | 32 | -| Parameter 2 of SubtractDivisor | parameter | 32 | -| Parameter 2 of TZif_ParseJulianDay | parameter | 32 | -| Parameter 2 of TZif_ParseMDateRule | parameter | 32 | -| Parameter 2 of TZif_ParsePosixDateTime | parameter | 32 | -| Parameter 2 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 2 of TZif_ParseRaw | parameter | 32 | -| Parameter 2 of TimeToLunar | parameter | 32 | -| Parameter 2 of ToUpperSurrogate | parameter | 32 | -| Parameter 2 of ToUtf16 | parameter | 32 | -| Parameter 2 of Tokenize | parameter | 32 | -| Parameter 2 of TryAddTicks | parameter | 32 | -| Parameter 2 of TryAdjustYear | parameter | 32 | -| Parameter 2 of TryCopyTo | parameter | 32 | -| Parameter 2 of TryCreate | parameter | 32 | -| Parameter 2 of TryDecodeFromUtf16 | parameter | 32 | -| Parameter 2 of TryDequeueSlow | parameter | 32 | -| Parameter 2 of TryDigitGenShortest | parameter | 32 | -| Parameter 2 of TryDrainRemainingDataForGetBytes | parameter | 32 | -| Parameter 2 of TryDrainRemainingDataForGetChars | parameter | 32 | -| Parameter 2 of TryEncodeToUtf8 | parameter | 32 | -| Parameter 2 of TryEncodeToUtf16 | parameter | 32 | -| Parameter 2 of TryEnter | parameter | 32 | -| Parameter 2 of TryFindFirstMatchedLane | parameter | 32 | -| Parameter 2 of TryFormat | parameter | 32 | -| Parameter 2 of TryFormatDateTimeL | parameter | 32 | -| Parameter 2 of TryFormatDateTimeR | parameter | 32 | -| Parameter 2 of TryFormatDecimalE | parameter | 32 | -| Parameter 2 of TryFormatDecimalF | parameter | 32 | -| Parameter 2 of TryFormatDecimalG | parameter | 32 | -| Parameter 2 of TryFormatFloatingPoint | parameter | 32 | -| Parameter 2 of TryFormatInt64Default | parameter | 32 | -| Parameter 2 of TryFormatInt64MultipleDigits | parameter | 32 | -| Parameter 2 of TryFormatUInt32SingleDigit | parameter | 32 | -| Parameter 2 of TryFormatUInt64 | parameter | 32 | -| Parameter 2 of TryFormatUInt64Default | parameter | 32 | -| Parameter 2 of TryFormatUInt64MultipleDigits | parameter | 32 | -| Parameter 2 of TryFromBase64Chars | parameter | 32 | -| Parameter 2 of TryFromBase64String | parameter | 32 | -| Parameter 2 of TryGetBits | parameter | 32 | -| Parameter 2 of TryGetByteCount | parameter | 32 | -| Parameter 2 of TryGetEntry | parameter | 32 | -| Parameter 2 of TryGetExport | parameter | 32 | -| Parameter 2 of TryGetHomeDirectoryFromPasswd | parameter | 32 | -| Parameter 2 of TryGetMemoryManager | parameter | 32 | -| Parameter 2 of TryGetRawMetadata | parameter | 32 | -| Parameter 2 of TryGetRuneAt | parameter | 32 | -| Parameter 2 of TryGetString | parameter | 32 | -| Parameter 2 of TryGetStringValue | parameter | 32 | -| Parameter 2 of TryGetTimeZone | parameter | 32 | -| Parameter 2 of TryGetTimeZoneFromLocalMachine | parameter | 32 | -| Parameter 2 of TryGetValue | parameter | 32 | -| Parameter 2 of TryGetValueWorker | parameter | 32 | -| Parameter 2 of TryLoadTzFile | parameter | 32 | -| Parameter 2 of TryParse | parameter | 32 | -| Parameter 2 of TryParseByteD | parameter | 32 | -| Parameter 2 of TryParseByteN | parameter | 32 | -| Parameter 2 of TryParseByteX | parameter | 32 | -| Parameter 2 of TryParseDateTimeG | parameter | 32 | -| Parameter 2 of TryParseDateTimeOffsetDefault | parameter | 32 | -| Parameter 2 of TryParseDateTimeOffsetO | parameter | 32 | -| Parameter 2 of TryParseDateTimeOffsetR | parameter | 32 | -| Parameter 2 of TryParseExact | parameter | 32 | -| Parameter 2 of TryParseGuidCore | parameter | 32 | -| Parameter 2 of TryParseGuidN | parameter | 32 | -| Parameter 2 of TryParseHebrewNumber | parameter | 32 | -| Parameter 2 of TryParseHex | parameter | 32 | -| Parameter 2 of TryParseInt16D | parameter | 32 | -| Parameter 2 of TryParseInt16N | parameter | 32 | -| Parameter 2 of TryParseInt32D | parameter | 32 | -| Parameter 2 of TryParseInt32N | parameter | 32 | -| Parameter 2 of TryParseInt64D | parameter | 32 | -| Parameter 2 of TryParseInt64N | parameter | 32 | -| Parameter 2 of TryParseNormalAsFloatingPoint | parameter | 32 | -| Parameter 2 of TryParseNumber | parameter | 32 | -| Parameter 2 of TryParseSByteD | parameter | 32 | -| Parameter 2 of TryParseSByteN | parameter | 32 | -| Parameter 2 of TryParseThrowFormatException | parameter | 32 | -| Parameter 2 of TryParseTimeSpanBigG | parameter | 32 | -| Parameter 2 of TryParseTimeSpanC | parameter | 32 | -| Parameter 2 of TryParseTimeSpanFraction | parameter | 32 | -| Parameter 2 of TryParseTimeSpanLittleG | parameter | 32 | -| Parameter 2 of TryParseUInt16D | parameter | 32 | -| Parameter 2 of TryParseUInt16N | parameter | 32 | -| Parameter 2 of TryParseUInt16X | parameter | 32 | -| Parameter 2 of TryParseUInt32D | parameter | 32 | -| Parameter 2 of TryParseUInt32HexNumberStyle | parameter | 32 | -| Parameter 2 of TryParseUInt32N | parameter | 32 | -| Parameter 2 of TryParseUInt32X | parameter | 32 | -| Parameter 2 of TryParseUInt64D | parameter | 32 | -| Parameter 2 of TryParseUInt64HexNumberStyle | parameter | 32 | -| Parameter 2 of TryParseUInt64N | parameter | 32 | -| Parameter 2 of TryParseUInt64X | parameter | 32 | -| Parameter 2 of TryRunDouble | parameter | 32 | -| Parameter 2 of TryRunHalf | parameter | 32 | -| Parameter 2 of TryRunShortest | parameter | 32 | -| Parameter 2 of TryRunSingle | parameter | 32 | -| Parameter 2 of TryStringToNumber | parameter | 32 | -| Parameter 2 of TryToBase64Chars | parameter | 32 | -| Parameter 2 of UInt64x64To128 | parameter | 32 | -| Parameter 2 of Unscale | parameter | 32 | -| Parameter 2 of WaitOnEvent | parameter | 32 | -| Parameter 2 of Widen | parameter | 32 | -| Parameter 2 of Write | parameter | 32 | -| Parameter 2 of WriteEventRaw | parameter | 32 | -| Parameter 2 of WriteImpl | parameter | 32 | -| Parameter 2 of WriteMultiMerge | parameter | 32 | -| Parameter 2 of WriteMultiMergeInner | parameter | 32 | -| Parameter 2 of WriteToAllListeners | parameter | 32 | -| Parameter 2 of WriteToBuffer | parameter | 32 | -| Parameter 2 of YearMonthAdjustment | parameter | 32 | -| Parameter 2 of _GetClassLayout | parameter | 32 | -| Parameter 2 of _GetCustomAttributeProps | parameter | 32 | -| Parameter 2 of _GetDefaultValue | parameter | 32 | -| Parameter 2 of _GetFieldDefProps | parameter | 32 | -| Parameter 2 of _GetFieldMarshal | parameter | 32 | -| Parameter 2 of _GetGenericParamProps | parameter | 32 | -| Parameter 2 of _GetMarshalAs | parameter | 32 | -| Parameter 2 of _GetMemberRefProps | parameter | 32 | -| Parameter 2 of _GetPInvokeMap | parameter | 32 | -| Parameter 2 of _GetParamDefProps | parameter | 32 | -| Parameter 2 of _GetParentToken | parameter | 32 | -| Parameter 2 of _GetSigOfFieldDef | parameter | 32 | -| Parameter 2 of _GetSigOfMethodDef | parameter | 32 | -| Parameter 2 of _GetSignatureFromToken | parameter | 32 | -| Parameter 2 of _LoadObjectV2 | parameter | 32 | -| Parameter 2 of _ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 2 of ctor>g__TryConvertFromInvariantString\|2_0 | parameter | 32 | -| Parameter 3 of .ctor | parameter | 32 | -| Parameter 3 of b__37_0 | parameter | 32 | -| Parameter 3 of g__AppendToStdInReaderUntil\|83_1 | parameter | 32 | -| Parameter 3 of g__BufferUntil\|83_0 | parameter | 32 | -| Parameter 3 of AccumulateDecimalDigitsIntoBigInteger | parameter | 32 | -| Parameter 3 of AddressOfMember | parameter | 32 | -| Parameter 3 of AtomicStateUpdate | parameter | 32 | -| Parameter 3 of BindToMethod | parameter | 32 | -| Parameter 3 of BindToObject | parameter | 32 | -| Parameter 3 of BindToStorage | parameter | 32 | -| Parameter 3 of BindType | parameter | 32 | -| Parameter 3 of CheckNewValue | parameter | 32 | -| Parameter 3 of CompareExchange | parameter | 32 | -| Parameter 3 of ComposeWith | parameter | 32 | -| Parameter 3 of ComputeVtables | parameter | 32 | -| Parameter 3 of ContinueTryEnterWithThreadTracking | parameter | 32 | -| Parameter 3 of ConvertGregorianToHijri | parameter | 32 | -| Parameter 3 of ConvertHijriToGregorian | parameter | 32 | -| Parameter 3 of ConvertToNative | parameter | 32 | -| Parameter 3 of CopyToTempBufferWithoutWhiteSpace | parameter | 32 | -| Parameter 3 of CreateCaObject | parameter | 32 | -| Parameter 3 of CreateInstance | parameter | 32 | -| Parameter 3 of CreateInstanceLic | parameter | 32 | -| Parameter 3 of CreateMutexCore | parameter | 32 | -| Parameter 3 of DecodeFirstRune | parameter | 32 | -| Parameter 3 of DecodeObject | parameter | 32 | -| Parameter 3 of Decompose | parameter | 32 | -| Parameter 3 of Deconstruct | parameter | 32 | -| Parameter 3 of DivByConst | parameter | 32 | -| Parameter 3 of DivRem | parameter | 32 | -| Parameter 3 of DoAnsiConversion | parameter | 32 | -| Parameter 3 of Dragon4Double | parameter | 32 | -| Parameter 3 of Dragon4Half | parameter | 32 | -| Parameter 3 of Dragon4Single | parameter | 32 | -| Parameter 3 of DrainLeftoverDataForGetChars | parameter | 32 | -| Parameter 3 of EncodeObject | parameter | 32 | -| Parameter 3 of EncodeRune | parameter | 32 | -| Parameter 3 of Enum | parameter | 32 | -| Parameter 3 of EnumCalendarInfo | parameter | 32 | -| Parameter 3 of EnumDatePatterns | parameter | 32 | -| Parameter 3 of EnumEraNames | parameter | 32 | -| Parameter 3 of EnumMonthNames | parameter | 32 | -| Parameter 3 of ExpandPredefinedFormat | parameter | 32 | -| Parameter 3 of FilterHelper | parameter | 32 | -| Parameter 3 of FromUtf16 | parameter | 32 | -| Parameter 3 of GenerateMetadataForNamedTypeV2 | parameter | 32 | -| Parameter 3 of GetAdjustmentRuleForTime | parameter | 32 | -| Parameter 3 of GetBoundaries | parameter | 32 | -| Parameter 3 of GetCalendarInfo | parameter | 32 | -| Parameter 3 of GetClassLayout | parameter | 32 | -| Parameter 3 of GetCodeInfo | parameter | 32 | -| Parameter 3 of GetControlCharacters | parameter | 32 | -| Parameter 3 of GetCurrentContextInfo | parameter | 32 | -| Parameter 3 of GetCustomAttributeProps | parameter | 32 | -| Parameter 3 of GetDataFromController | parameter | 32 | -| Parameter 3 of GetDate | parameter | 32 | -| Parameter 3 of GetDefaultValue | parameter | 32 | -| Parameter 3 of GetDisplayName | parameter | 32 | -| Parameter 3 of GetDocumentation | parameter | 32 | -| Parameter 3 of GetDocumentation2 | parameter | 32 | -| Parameter 3 of GetDynamicOrStaticVariables | parameter | 32 | -| Parameter 3 of GetEventProps | parameter | 32 | -| Parameter 3 of GetFieldOffset | parameter | 32 | -| Parameter 3 of GetFloatingPointMaxDigitsAndPrecision | parameter | 32 | -| Parameter 3 of GetFuncCustData | parameter | 32 | -| Parameter 3 of GetFuncIndexOfMemId | parameter | 32 | -| Parameter 3 of GetImplTypeCustData | parameter | 32 | -| Parameter 3 of GetJapaneseEraStartDate | parameter | 32 | -| Parameter 3 of GetKeyFromCharValue | parameter | 32 | -| Parameter 3 of GetLocaleInfoGroupingSizes | parameter | 32 | -| Parameter 3 of GetMarshalAs | parameter | 32 | -| Parameter 3 of GetPInvokeMap | parameter | 32 | -| Parameter 3 of GetParamCustData | parameter | 32 | -| Parameter 3 of GetParamDefProps | parameter | 32 | -| Parameter 3 of GetParameters | parameter | 32 | -| Parameter 3 of GetPointerToFirstInvalidByte | parameter | 32 | -| Parameter 3 of GetPointerToFirstInvalidChar | parameter | 32 | -| Parameter 3 of GetPropertyOrFieldData | parameter | 32 | -| Parameter 3 of GetPropertyProps | parameter | 32 | -| Parameter 3 of GetResourceData | parameter | 32 | -| Parameter 3 of GetSeparatorToken | parameter | 32 | -| Parameter 3 of GetTime | parameter | 32 | -| Parameter 3 of GetTimeOfLastChange | parameter | 32 | -| Parameter 3 of GetTimePrecise | parameter | 32 | -| Parameter 3 of GetType | parameter | 32 | -| Parameter 3 of GetTypeByName | parameter | 32 | -| Parameter 3 of GetUtcOffsetFromUtc | parameter | 32 | -| Parameter 3 of GetVarCustData | parameter | 32 | -| Parameter 3 of GetVersion | parameter | 32 | -| Parameter 3 of InitHash | parameter | 32 | -| Parameter 3 of Initialize | parameter | 32 | -| Parameter 3 of InternalFallback | parameter | 32 | -| Parameter 3 of Invoke | parameter | 32 | -| Parameter 3 of Lex | parameter | 32 | -| Parameter 3 of MakeRoom | parameter | 32 | -| Parameter 3 of MakeSeparatorList | parameter | 32 | -| Parameter 3 of MapBufferToConsoleKey | parameter | 32 | -| Parameter 3 of MatchSpecifiedWords | parameter | 32 | -| Parameter 3 of Parse | parameter | 32 | -| Parameter 3 of ParseAttributeArguments | parameter | 32 | -| Parameter 3 of ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 3 of ParseComponent | parameter | 32 | -| Parameter 3 of ParseDigits | parameter | 32 | -| Parameter 3 of ParseExactDigits | parameter | 32 | -| Parameter 3 of ParseISO8601 | parameter | 32 | -| Parameter 3 of ParseInt | parameter | 32 | -| Parameter 3 of Poll | parameter | 32 | -| Parameter 3 of PopulateLiteralFields | parameter | 32 | -| Parameter 3 of PopulateRtFields | parameter | 32 | -| Parameter 3 of ProcessHebrewTerminalState | parameter | 32 | -| Parameter 3 of ProcessTerminalState | parameter | 32 | -| Parameter 3 of ReadAsyncInternal | parameter | 32 | -| Parameter 3 of ReadDirR | parameter | 32 | -| Parameter 3 of Reduce | parameter | 32 | -| Parameter 3 of Remove | parameter | 32 | -| Parameter 3 of ResolveAssembly | parameter | 32 | -| Parameter 3 of ResolveToken | parameter | 32 | -| Parameter 3 of RunCallback | parameter | 32 | -| Parameter 3 of ScanRepeatChar | parameter | 32 | -| Parameter 3 of SnapForObservation | parameter | 32 | -| Parameter 3 of StringToInt | parameter | 32 | -| Parameter 3 of StringToLong | parameter | 32 | -| Parameter 3 of TZif_ParseMDateRule | parameter | 32 | -| Parameter 3 of TZif_ParsePosixDateTime | parameter | 32 | -| Parameter 3 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 3 of TZif_ParseRaw | parameter | 32 | -| Parameter 3 of TimeToLunar | parameter | 32 | -| Parameter 3 of ToUpperSurrogate | parameter | 32 | -| Parameter 3 of ToUtf16 | parameter | 32 | -| Parameter 3 of Tokenize | parameter | 32 | -| Parameter 3 of TryDecodeFromUtf16 | parameter | 32 | -| Parameter 3 of TryDequeueSlow | parameter | 32 | -| Parameter 3 of TryDigitGenCounted | parameter | 32 | -| Parameter 3 of TryDrainLeftoverDataForGetBytes | parameter | 32 | -| Parameter 3 of TryFormat | parameter | 32 | -| Parameter 3 of TryFormatDateTimeG | parameter | 32 | -| Parameter 3 of TryFormatDateTimeO | parameter | 32 | -| Parameter 3 of TryFormatInt64 | parameter | 32 | -| Parameter 3 of TryFormatInt64D | parameter | 32 | -| Parameter 3 of TryFormatInt64N | parameter | 32 | -| Parameter 3 of TryFormatO | parameter | 32 | -| Parameter 3 of TryFormatR | parameter | 32 | -| Parameter 3 of TryGetEntry | parameter | 32 | -| Parameter 3 of TryGetMemoryManager | parameter | 32 | -| Parameter 3 of TryGetSpan | parameter | 32 | -| Parameter 3 of TryGetSpecialConsoleKey | parameter | 32 | -| Parameter 3 of TryGetString | parameter | 32 | -| Parameter 3 of TryGetTimeZone | parameter | 32 | -| Parameter 3 of TryGetTimeZoneFromLocalMachine | parameter | 32 | -| Parameter 3 of TryInternalFallbackGetBytes | parameter | 32 | -| Parameter 3 of TryJoin | parameter | 32 | -| Parameter 3 of TryLoad | parameter | 32 | -| Parameter 3 of TryParse | parameter | 32 | -| Parameter 3 of TryParseByFormat | parameter | 32 | -| Parameter 3 of TryParseComponent | parameter | 32 | -| Parameter 3 of TryParseDateTimeG | parameter | 32 | -| Parameter 3 of TryParseDateTimeOffsetO | parameter | 32 | -| Parameter 3 of TryParseDateTimeOffsetR | parameter | 32 | -| Parameter 3 of TryParseDecimal | parameter | 32 | -| Parameter 3 of TryParseDouble | parameter | 32 | -| Parameter 3 of TryParseExact | parameter | 32 | -| Parameter 3 of TryParseHalf | parameter | 32 | -| Parameter 3 of TryParseInt32 | parameter | 32 | -| Parameter 3 of TryParseInt32IntegerStyle | parameter | 32 | -| Parameter 3 of TryParseInt32Number | parameter | 32 | -| Parameter 3 of TryParseInt64 | parameter | 32 | -| Parameter 3 of TryParseInt64IntegerStyle | parameter | 32 | -| Parameter 3 of TryParseInt64Number | parameter | 32 | -| Parameter 3 of TryParseNumber | parameter | 32 | -| Parameter 3 of TryParseQuoteString | parameter | 32 | -| Parameter 3 of TryParseSingle | parameter | 32 | -| Parameter 3 of TryParseTimeSpan | parameter | 32 | -| Parameter 3 of TryParseUInt32 | parameter | 32 | -| Parameter 3 of TryParseUInt32IntegerStyle | parameter | 32 | -| Parameter 3 of TryParseUInt32Number | parameter | 32 | -| Parameter 3 of TryParseUInt64 | parameter | 32 | -| Parameter 3 of TryParseUInt64IntegerStyle | parameter | 32 | -| Parameter 3 of TryParseUInt64Number | parameter | 32 | -| Parameter 3 of TryRunCounted | parameter | 32 | -| Parameter 3 of TrySplitTimeSpan | parameter | 32 | -| Parameter 3 of TryUInt32ToDecStr | parameter | 32 | -| Parameter 3 of TryUInt64ToDecStr | parameter | 32 | -| Parameter 3 of UpdateDescriptor | parameter | 32 | -| Parameter 3 of ValidateTimeZoneInfo | parameter | 32 | -| Parameter 3 of Write | parameter | 32 | -| Parameter 3 of WriteFile | parameter | 32 | -| Parameter 3 of WriteToBuffer | parameter | 32 | -| Parameter 3 of _Enum | parameter | 32 | -| Parameter 3 of _GetClassLayout | parameter | 32 | -| Parameter 3 of _GetCustomAttributeProps | parameter | 32 | -| Parameter 3 of _GetDefaultValue | parameter | 32 | -| Parameter 3 of _GetEventProps | parameter | 32 | -| Parameter 3 of _GetFieldOffset | parameter | 32 | -| Parameter 3 of _GetMarshalAs | parameter | 32 | -| Parameter 3 of _GetParamDefProps | parameter | 32 | -| Parameter 3 of _GetPropertyOrFieldData | parameter | 32 | -| Parameter 3 of _GetPropertyProps | parameter | 32 | -| Parameter 3 of _GetUserString | parameter | 32 | -| Parameter 3 of _ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 4 of .ctor | parameter | 32 | -| Parameter 4 of g__TryFormatInt64Slow\|43_0 | parameter | 32 | -| Parameter 4 of g__TryFormatUInt32Slow\|41_0 | parameter | 32 | -| Parameter 4 of g__TryFormatUInt64Slow\|45_0 | parameter | 32 | -| Parameter 4 of g__AppendToStdInReaderUntil\|83_1 | parameter | 32 | -| Parameter 4 of g__BufferUntil\|83_0 | parameter | 32 | -| Parameter 4 of g__ReadRowOrCol\|83_2 | parameter | 32 | -| Parameter 4 of AssignAssociates | parameter | 32 | -| Parameter 4 of Bind | parameter | 32 | -| Parameter 4 of BindToObject | parameter | 32 | -| Parameter 4 of BindToStorage | parameter | 32 | -| Parameter 4 of BindType | parameter | 32 | -| Parameter 4 of CallStringMethod | parameter | 32 | -| Parameter 4 of Convert | parameter | 32 | -| Parameter 4 of ConvertHijriToGregorian | parameter | 32 | -| Parameter 4 of CreateEventCore | parameter | 32 | -| Parameter 4 of CreateInstance | parameter | 32 | -| Parameter 4 of CreateSemaphoreCore | parameter | 32 | -| Parameter 4 of Deconstruct | parameter | 32 | -| Parameter 4 of DoStrictParse | parameter | 32 | -| Parameter 4 of EnumMonthNames | parameter | 32 | -| Parameter 4 of EscapeString | parameter | 32 | -| Parameter 4 of EvaluateInternal | parameter | 32 | -| Parameter 4 of EventRegister | parameter | 32 | -| Parameter 4 of FilterHelper | parameter | 32 | -| Parameter 4 of GetByteCountFast | parameter | 32 | -| Parameter 4 of GetCharCountFast | parameter | 32 | -| Parameter 4 of GetDataFromController | parameter | 32 | -| Parameter 4 of GetDefaultValue | parameter | 32 | -| Parameter 4 of GetDocumentation | parameter | 32 | -| Parameter 4 of GetDocumentation2 | parameter | 32 | -| Parameter 4 of GetMarshalAs | parameter | 32 | -| Parameter 4 of GetNames | parameter | 32 | -| Parameter 4 of GetPInvokeMap | parameter | 32 | -| Parameter 4 of GetParamCustData | parameter | 32 | -| Parameter 4 of GetPropertyOrFieldData | parameter | 32 | -| Parameter 4 of GetPropertyProps | parameter | 32 | -| Parameter 4 of GetTime | parameter | 32 | -| Parameter 4 of GetTimePrecise | parameter | 32 | -| Parameter 4 of GetValue | parameter | 32 | -| Parameter 4 of GetVersion | parameter | 32 | -| Parameter 4 of GregorianToLunar | parameter | 32 | -| Parameter 4 of IndexOf | parameter | 32 | -| Parameter 4 of InitHash | parameter | 32 | -| Parameter 4 of Invoke | parameter | 32 | -| Parameter 4 of IsPrefix | parameter | 32 | -| Parameter 4 of IsSuffix | parameter | 32 | -| Parameter 4 of LastIndexOf | parameter | 32 | -| Parameter 4 of Lex | parameter | 32 | -| Parameter 4 of LunarToGregorian | parameter | 32 | -| Parameter 4 of MakeRoom | parameter | 32 | -| Parameter 4 of MapBufferToConsoleKey | parameter | 32 | -| Parameter 4 of OnStart | parameter | 32 | -| Parameter 4 of OnStop | parameter | 32 | -| Parameter 4 of ParseByFormat | parameter | 32 | -| Parameter 4 of ParseDisplayName | parameter | 32 | -| Parameter 4 of ParseExact | parameter | 32 | -| Parameter 4 of ParseExactDigits | parameter | 32 | -| Parameter 4 of ParseExactMultiple | parameter | 32 | -| Parameter 4 of PopulateEvents | parameter | 32 | -| Parameter 4 of ReadFromBuffer | parameter | 32 | -| Parameter 4 of Reduce | parameter | 32 | -| Parameter 4 of Remove | parameter | 32 | -| Parameter 4 of ResolveToken | parameter | 32 | -| Parameter 4 of SnapForObservation | parameter | 32 | -| Parameter 4 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 4 of TZif_ParseRaw | parameter | 32 | -| Parameter 4 of TimeToLunar | parameter | 32 | -| Parameter 4 of Tokenize | parameter | 32 | -| Parameter 4 of TranscodeToUtf8 | parameter | 32 | -| Parameter 4 of TranscodeToUtf16 | parameter | 32 | -| Parameter 4 of TryCreateDateTimeOffset | parameter | 32 | -| Parameter 4 of TryDigitGenCounted | parameter | 32 | -| Parameter 4 of TryDigitGenShortest | parameter | 32 | -| Parameter 4 of TryDrainLeftoverDataForGetBytes | parameter | 32 | -| Parameter 4 of TryFormatDecimal | parameter | 32 | -| Parameter 4 of TryFormatDouble | parameter | 32 | -| Parameter 4 of TryFormatHalf | parameter | 32 | -| Parameter 4 of TryFormatInt64 | parameter | 32 | -| Parameter 4 of TryFormatSingle | parameter | 32 | -| Parameter 4 of TryFormatStandard | parameter | 32 | -| Parameter 4 of TryFormatUInt32 | parameter | 32 | -| Parameter 4 of TryFormatUInt64 | parameter | 32 | -| Parameter 4 of TryFormatUInt64D | parameter | 32 | -| Parameter 4 of TryFormatUInt64N | parameter | 32 | -| Parameter 4 of TryFormatUInt64X | parameter | 32 | -| Parameter 4 of TryGetSpecialConsoleKey | parameter | 32 | -| Parameter 4 of TryInt32ToHexStr | parameter | 32 | -| Parameter 4 of TryInt64ToHexStr | parameter | 32 | -| Parameter 4 of TryInternalFallbackGetBytes | parameter | 32 | -| Parameter 4 of TryInternalFallbackGetChars | parameter | 32 | -| Parameter 4 of TryJoin | parameter | 32 | -| Parameter 4 of TryNegativeInt32ToDecStr | parameter | 32 | -| Parameter 4 of TryNegativeInt64ToDecStr | parameter | 32 | -| Parameter 4 of TryParse | parameter | 32 | -| Parameter 4 of TryParseAsSpecialFloatingPoint | parameter | 32 | -| Parameter 4 of TryParseExact | parameter | 32 | -| Parameter 4 of TryParseExactMultiple | parameter | 32 | -| Parameter 4 of TryParseExactMultipleTimeSpan | parameter | 32 | -| Parameter 4 of TryParseExactTimeSpan | parameter | 32 | -| Parameter 4 of TryParseNumber | parameter | 32 | -| Parameter 4 of TryRunCounted | parameter | 32 | -| Parameter 4 of TryRunShortest | parameter | 32 | -| Parameter 4 of UpdateDescriptor | parameter | 32 | -| Parameter 4 of Write | parameter | 32 | -| Parameter 4 of _GetDefaultValue | parameter | 32 | -| Parameter 4 of _GetMarshalAs | parameter | 32 | -| Parameter 4 of _GetPropertyOrFieldData | parameter | 32 | -| Parameter 4 of _GetPropertyProps | parameter | 32 | -| Parameter 4 of _ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 5 of g__TryFormatInt32Slow\|39_0 | parameter | 32 | -| Parameter 5 of AssignAssociates | parameter | 32 | -| Parameter 5 of Bind | parameter | 32 | -| Parameter 5 of ConstructType | parameter | 32 | -| Parameter 5 of Convert | parameter | 32 | -| Parameter 5 of ConvertHijriToGregorian | parameter | 32 | -| Parameter 5 of CreateCaObject | parameter | 32 | -| Parameter 5 of CreateInstance | parameter | 32 | -| Parameter 5 of CreateInstanceLic | parameter | 32 | -| Parameter 5 of Deconstruct | parameter | 32 | -| Parameter 5 of EnsureDestinationSize | parameter | 32 | -| Parameter 5 of EvaluateInternal | parameter | 32 | -| Parameter 5 of FilterHelper | parameter | 32 | -| Parameter 5 of FindName | parameter | 32 | -| Parameter 5 of GetBytesFast | parameter | 32 | -| Parameter 5 of GetCharsFast | parameter | 32 | -| Parameter 5 of GetDataFromController | parameter | 32 | -| Parameter 5 of GetDocumentation | parameter | 32 | -| Parameter 5 of GetIsDaylightSavingsFromUtc | parameter | 32 | -| Parameter 5 of GetMarshalAs | parameter | 32 | -| Parameter 5 of GetPropertyOrFieldData | parameter | 32 | -| Parameter 5 of GetType | parameter | 32 | -| Parameter 5 of GregorianToLunar | parameter | 32 | -| Parameter 5 of Invoke | parameter | 32 | -| Parameter 5 of Lex | parameter | 32 | -| Parameter 5 of LunarToGregorian | parameter | 32 | -| Parameter 5 of MapBufferToConsoleKey | parameter | 32 | -| Parameter 5 of OnStart | parameter | 32 | -| Parameter 5 of ParseDisplayName | parameter | 32 | -| Parameter 5 of PopulateProperties | parameter | 32 | -| Parameter 5 of PopulateRtFields | parameter | 32 | -| Parameter 5 of ResolveType | parameter | 32 | -| Parameter 5 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 5 of TZif_ParseRaw | parameter | 32 | -| Parameter 5 of TranscodeToUtf8 | parameter | 32 | -| Parameter 5 of TranscodeToUtf16 | parameter | 32 | -| Parameter 5 of TryDigitGenShortest | parameter | 32 | -| Parameter 5 of TryFormatInt32 | parameter | 32 | -| Parameter 5 of TryParseAsSpecialFloatingPoint | parameter | 32 | -| Parameter 5 of TryParseByName | parameter | 32 | -| Parameter 5 of TryParseExact | parameter | 32 | -| Parameter 5 of TryParseExactMultiple | parameter | 32 | -| Parameter 5 of TryParseInt64Enum | parameter | 32 | -| Parameter 5 of TryParseRareEnum | parameter | 32 | -| Parameter 5 of TryParseUInt64Enum | parameter | 32 | -| Parameter 5 of TryRoundWeedCounted | parameter | 32 | -| Parameter 5 of TryRunShortest | parameter | 32 | -| Parameter 5 of Write | parameter | 32 | -| Parameter 5 of _GetMarshalAs | parameter | 32 | -| Parameter 5 of _GetPropertyOrFieldData | parameter | 32 | -| Parameter 6 of AssignAssociates | parameter | 32 | -| Parameter 6 of Bind | parameter | 32 | -| Parameter 6 of Convert | parameter | 32 | -| Parameter 6 of Deconstruct | parameter | 32 | -| Parameter 6 of FilterCustomAttributeRecord | parameter | 32 | -| Parameter 6 of GetMarshalAs | parameter | 32 | -| Parameter 6 of GetPropertyOrFieldData | parameter | 32 | -| Parameter 6 of GregorianToLunar | parameter | 32 | -| Parameter 6 of Invoke | parameter | 32 | -| Parameter 6 of LunarToGregorian | parameter | 32 | -| Parameter 6 of SetValue | parameter | 32 | -| Parameter 6 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 6 of TZif_ParseRaw | parameter | 32 | -| Parameter 6 of TryCreateTimeSpan | parameter | 32 | -| Parameter 6 of TryTimeToTicks | parameter | 32 | -| Parameter 6 of _GetMarshalAs | parameter | 32 | -| Parameter 6 of _GetPropertyOrFieldData | parameter | 32 | -| Parameter 7 of AssignAssociates | parameter | 32 | -| Parameter 7 of BindToMethod | parameter | 32 | -| Parameter 7 of Convert | parameter | 32 | -| Parameter 7 of Deconstruct | parameter | 32 | -| Parameter 7 of Dragon4 | parameter | 32 | -| Parameter 7 of FilterCustomAttributeRecord | parameter | 32 | -| Parameter 7 of GetMarshalAs | parameter | 32 | -| Parameter 7 of Invoke | parameter | 32 | -| Parameter 7 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 7 of TZif_ParseRaw | parameter | 32 | -| Parameter 7 of TryCreate | parameter | 32 | -| Parameter 7 of TryCreateDateTimeOffsetInterpretingDataAsLocalTime | parameter | 32 | -| Parameter 7 of TryParseUInt32Enum | parameter | 32 | -| Parameter 7 of _GetMarshalAs | parameter | 32 | -| Parameter 8 of AssignAssociates | parameter | 32 | -| Parameter 8 of Convert | parameter | 32 | -| Parameter 8 of CreateInstanceInternal | parameter | 32 | -| Parameter 8 of Deconstruct | parameter | 32 | -| Parameter 8 of FilterCustomAttributeRecord | parameter | 32 | -| Parameter 8 of GetMarshalAs | parameter | 32 | -| Parameter 8 of TZif_ParsePosixFormat | parameter | 32 | -| Parameter 8 of TZif_ParseRaw | parameter | 32 | -| Parameter 8 of TryCreateDateTime | parameter | 32 | -| Parameter 8 of TryParseInt32Enum | parameter | 32 | -| Parameter 8 of _GetMarshalAs | parameter | 32 | -| Parameter 9 of AssignAssociates | parameter | 32 | -| Parameter 9 of Convert | parameter | 32 | -| Parameter 9 of Deconstruct | parameter | 32 | -| Parameter 9 of FilterCustomAttributeRecord | parameter | 32 | -| Parameter 9 of GetMarshalAs | parameter | 32 | -| Parameter 9 of Invoke | parameter | 32 | -| Parameter 9 of TryToDateTime | parameter | 32 | -| Parameter 9 of _GetMarshalAs | parameter | 32 | -| Parameter 10 of AssignAssociates | parameter | 32 | -| Parameter 10 of Convert | parameter | 32 | -| Parameter 10 of Deconstruct | parameter | 32 | -| Parameter 10 of Invoke | parameter | 32 | -| Parameter 10 of TryCreateDateTimeOffset | parameter | 32 | -| Parameter 10 of _GetMarshalAs | parameter | 32 | -| Parameter 11 of AssignAssociates | parameter | 32 | -| Parameter 11 of Deconstruct | parameter | 32 | -| Parameter 11 of Invoke | parameter | 32 | -| Parameter 12 of Deconstruct | parameter | 32 | -| Parameter 13 of Deconstruct | parameter | 32 | -| Parameter 14 of Deconstruct | parameter | 32 | -| Parameter 15 of Deconstruct | parameter | 32 | -| Parameter 16 of Deconstruct | parameter | 32 | -| Parameter 17 of Deconstruct | parameter | 32 | -| Parameter 18 of Deconstruct | parameter | 32 | -| Parameter 19 of Deconstruct | parameter | 32 | -| Parameter 20 of Deconstruct | parameter | 32 | -| Parameter 21 of Deconstruct | parameter | 32 | -| TableData | method | 32 | -| ThrowArrayMismatchException | method | 32 | -| Unbox | method | 32 | -| Unbox_Helper | method | 32 | -| get_Current | method | 32 | -| get_EventHandle | method | 32 | -| get_Item | method | 32 | -| get_OffsetHigh | method | 32 | -| get_OffsetLow | method | 32 | -| get_Value | method | 32 | -| property Current | property | 32 | -| property EventHandle | property | 32 | -| property Item | property | 32 | -| property OffsetHigh | property | 32 | -| property OffsetLow | property | 32 | -| property Value | property | 32 | +| Internal.Runtime.CompilerServices.Unsafe.Add | method | 32 | +| Internal.Runtime.CompilerServices.Unsafe.AddByteOffset | method | 32 | +| Internal.Runtime.CompilerServices.Unsafe.As | method | 32 | +| Internal.Runtime.CompilerServices.Unsafe.AsRef | method | 32 | +| Internal.Runtime.CompilerServices.Unsafe.NullRef | method | 32 | +| Local variable 0 of method System.Array.Clear | local | 32 | +| Local variable 0 of method System.Array.GetFlattenedIndex | local | 32 | +| Local variable 0 of method System.Array.Reverse | local | 32 | +| Local variable 0 of method System.Buffer.Memmove | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.Contains | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.Enumerator.MoveNext | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.FindValue | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.KeyCollection.Enumerator.MoveNext | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.Remove | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.TryGetValue | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.ValueCollection.Enumerator.MoveNext | local | 32 | +| Local variable 0 of method System.Collections.Generic.Dictionary.get_Item | local | 32 | +| Local variable 0 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | +| Local variable 0 of method System.Collections.Generic.GenericArraySortHelper.SwapIfGreaterWithValues | local | 32 | +| Local variable 0 of method System.Collections.Generic.HashSet.Enumerator.MoveNext | local | 32 | +| Local variable 0 of method System.Convert.TryDecodeFromUtf16 | local | 32 | +| Local variable 0 of method System.Diagnostics.Tracing.EventSource.AddEventDescriptor | local | 32 | +| Local variable 0 of method System.Diagnostics.Tracing.EventSource.WriteEventVarargs | local | 32 | +| Local variable 0 of method System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore | local | 32 | +| Local variable 0 of method System.Diagnostics.Tracing.EventSource.WriteToAllListeners | local | 32 | +| Local variable 0 of method System.Diagnostics.Tracing.EventWrittenEventArgs.get_OSThreadId | local | 32 | +| Local variable 0 of method System.Enum.CompareTo | local | 32 | +| Local variable 0 of method System.Enum.GetHashCode | local | 32 | +| Local variable 0 of method System.Enum.GetValue | local | 32 | +| Local variable 0 of method System.Enum.ToUInt64 | local | 32 | +| Local variable 0 of method System.Enum.ValueToHexString | local | 32 | +| Local variable 0 of method System.Enum.ValueToString | local | 32 | +| Local variable 0 of method System.Guid.EqualsCore | local | 32 | +| Local variable 0 of method System.Guid.GetHashCode | local | 32 | +| Local variable 0 of method System.HashCode.AddBytes | local | 32 | +| Local variable 0 of method System.IO.Path.<>c.b__39_0 | local | 32 | +| Local variable 0 of method System.IO.Path.<>c.b__41_0 | local | 32 | +| Local variable 0 of method System.MemoryExtensions.Reverse | local | 32 | +| Local variable 0 of method System.Number.BigInteger.Add | local | 32 | +| Local variable 0 of method System.Number.BigInteger.Multiply | local | 32 | +| Local variable 0 of method System.ReadOnlySpan.GetPinnableReference | local | 32 | +| Local variable 0 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.RemoveIndex | local | 32 | +| Local variable 0 of method System.Runtime.Intrinsics.Vector64.GetElement | local | 32 | +| Local variable 0 of method System.Runtime.Intrinsics.Vector128.GetElement | local | 32 | +| Local variable 0 of method System.Runtime.Intrinsics.Vector128.GetUpper | local | 32 | +| Local variable 0 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|68_0 | local | 32 | +| Local variable 0 of method System.Runtime.Intrinsics.Vector256.GetElement | local | 32 | +| Local variable 0 of method System.Span.GetPinnableReference | local | 32 | +| Local variable 0 of method System.String.g__ReadVector\|201_0 | local | 32 | +| Local variable 0 of method System.Threading.CancellationTokenSource.Registrations.EnterLock | local | 32 | +| Local variable 0 of method System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction | local | 32 | +| Local variable 0 of method System.Threading.TimerQueue.LinkTimer | local | 32 | +| Local variable 1 of method System.Array.Fill | local | 32 | +| Local variable 1 of method System.Array.GetUpperBound | local | 32 | +| Local variable 1 of method System.Array.Reverse | local | 32 | +| Local variable 1 of method System.Buffer.Memmove | local | 32 | +| Local variable 1 of method System.Collections.Generic.Dictionary.FindValue | local | 32 | +| Local variable 1 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | +| Local variable 1 of method System.Collections.Generic.RandomizedStringEqualityComparer..ctor | local | 32 | +| Local variable 1 of method System.ConsolePal.Read | local | 32 | +| Local variable 1 of method System.ConsolePal.Write | local | 32 | +| Local variable 1 of method System.Convert.FromBase64CharArray | local | 32 | +| Local variable 1 of method System.Convert.FromBase64String | local | 32 | +| Local variable 1 of method System.Convert.TryDecodeFromUtf16 | local | 32 | +| Local variable 1 of method System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.CreateActivityPathGuid | local | 32 | +| Local variable 1 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | +| Local variable 1 of method System.Diagnostics.Tracing.EventSource.WriteImpl | local | 32 | +| Local variable 1 of method System.Diagnostics.Tracing.EventSource.WriteMultiMerge | local | 32 | +| Local variable 1 of method System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent | local | 32 | +| Local variable 1 of method System.Enum.CompareTo | local | 32 | +| Local variable 1 of method System.Globalization.CalendarData.<>c.b__33_0 | local | 32 | +| Local variable 1 of method System.Globalization.CalendarData.EnumCalendarInfoCallback | local | 32 | +| Local variable 1 of method System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks | local | 32 | +| Local variable 1 of method System.Globalization.CharUnicodeInfo.GetNumericGraphemeTableOffsetNoBoundsChecks | local | 32 | +| Local variable 1 of method System.Globalization.CharUnicodeInfo.GetNumericValueNoBoundsCheck | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IcuCompareString | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IcuEndsWith | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IcuGetSortKeyLength | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IcuIndexOfCore | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IcuStartsWith | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IndexOfOrdinalHelper | local | 32 | +| Local variable 1 of method System.Globalization.CompareInfo.IndexOfOrdinalIgnoreCaseHelper | local | 32 | +| Local variable 1 of method System.Globalization.IdnMapping.GetAscii | local | 32 | +| Local variable 1 of method System.Globalization.IdnMapping.GetUnicode | local | 32 | +| Local variable 1 of method System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | local | 32 | +| Local variable 1 of method System.Globalization.InvariantModeCasing.IndexOfIgnoreCase | local | 32 | +| Local variable 1 of method System.Globalization.InvariantModeCasing.LastIndexOfIgnoreCase | local | 32 | +| Local variable 1 of method System.Globalization.OrdinalCasing.CompareStringIgnoreCase | local | 32 | +| Local variable 1 of method System.Globalization.OrdinalCasing.IndexOf | local | 32 | +| Local variable 1 of method System.Globalization.OrdinalCasing.LastIndexOf | local | 32 | +| Local variable 1 of method System.Globalization.TextInfo.ToLowerAsciiInvariant | local | 32 | +| Local variable 1 of method System.Guid.EqualsCore | local | 32 | +| Local variable 1 of method System.HashCode.AddBytes | local | 32 | +| Local variable 1 of method System.HexConverter.ToString | local | 32 | +| Local variable 1 of method System.IO.Enumeration.FileSystemEntry.get_FileName | local | 32 | +| Local variable 1 of method System.IO.RandomAccess.ReadAtOffset | local | 32 | +| Local variable 1 of method System.IO.RandomAccess.WriteAtOffset | local | 32 | +| Local variable 1 of method System.IO.Strategies.Net5CompatFileStreamStrategy.WriteNative | local | 32 | +| Local variable 1 of method System.MemoryExtensions.Reverse | local | 32 | +| Local variable 1 of method System.Number.BigInteger.Add | local | 32 | +| Local variable 1 of method System.Number.BigInteger.Pow10 | local | 32 | +| Local variable 1 of method System.Number.MatchChars | local | 32 | +| Local variable 1 of method System.Number.TryStringToNumber | local | 32 | +| Local variable 1 of method System.Reflection.Emit.ScopeTree.AddUsingNamespaceToCurrentScope | local | 32 | +| Local variable 1 of method System.Reflection.MetadataEnumResult.get_Item | local | 32 | +| Local variable 1 of method System.Runtime.InteropServices.Marshal.QueryInterface | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector64.WithElement | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|40_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|41_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|42_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|43_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|44_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|45_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|46_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|47_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|48_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|49_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|75_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector128.WithElement | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|34_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|35_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|36_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|37_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|38_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|39_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|40_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|41_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|42_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|43_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|69_0 | local | 32 | +| Local variable 1 of method System.Runtime.Intrinsics.Vector256.WithElement | local | 32 | +| Local variable 1 of method System.SpanHelpers.IndexOf | local | 32 | +| Local variable 1 of method System.SpanHelpers.LastIndexOf | local | 32 | +| Local variable 1 of method System.String.g__ReadVector\|201_0 | local | 32 | +| Local variable 1 of method System.String.GetBytesFromEncoding | local | 32 | +| Local variable 1 of method System.String.GetNonRandomizedHashCode | local | 32 | +| Local variable 1 of method System.String.IsAscii | local | 32 | +| Local variable 1 of method System.String.Trim | local | 32 | +| Local variable 1 of method System.String.TrimEnd | local | 32 | +| Local variable 1 of method System.String.TrimStart | local | 32 | +| Local variable 1 of method System.Text.ASCIIEncoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.ASCIIEncoding.GetBytes | local | 32 | +| Local variable 1 of method System.Text.ASCIIEncoding.GetCharCount | local | 32 | +| Local variable 1 of method System.Text.ASCIIEncoding.GetChars | local | 32 | +| Local variable 1 of method System.Text.Decoder.Convert | local | 32 | +| Local variable 1 of method System.Text.Decoder.GetCharCount | local | 32 | +| Local variable 1 of method System.Text.Decoder.GetChars | local | 32 | +| Local variable 1 of method System.Text.DecoderNLS.Convert | local | 32 | +| Local variable 1 of method System.Text.DecoderNLS.GetCharCount | local | 32 | +| Local variable 1 of method System.Text.Encoder.Convert | local | 32 | +| Local variable 1 of method System.Text.Encoder.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.Encoder.GetBytes | local | 32 | +| Local variable 1 of method System.Text.EncoderNLS.Convert | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetByteCountWithFallback | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetBytes | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetBytesWithFallback | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetCharCount | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetCharCountWithFallback | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetChars | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetCharsWithFallback | local | 32 | +| Local variable 1 of method System.Text.Encoding.GetString | local | 32 | +| Local variable 1 of method System.Text.Latin1Encoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.Latin1Encoding.GetBytes | local | 32 | +| Local variable 1 of method System.Text.Latin1Encoding.GetChars | local | 32 | +| Local variable 1 of method System.Text.StringBuilder.Append | local | 32 | +| Local variable 1 of method System.Text.StringBuilder.AppendHelper | local | 32 | +| Local variable 1 of method System.Text.StringBuilder.AppendJoin | local | 32 | +| Local variable 1 of method System.Text.StringBuilder.Insert | local | 32 | +| Local variable 1 of method System.Text.StringBuilder.ReplaceAllInChunk | local | 32 | +| Local variable 1 of method System.Text.UTF7Encoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.UTF8Encoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.UTF8Encoding.GetBytes | local | 32 | +| Local variable 1 of method System.Text.UTF8Encoding.GetCharCount | local | 32 | +| Local variable 1 of method System.Text.UTF8Encoding.GetChars | local | 32 | +| Local variable 1 of method System.Text.UTF32Encoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Text.Unicode.Utf8.FromUtf16 | local | 32 | +| Local variable 1 of method System.Text.Unicode.Utf8.ToUtf16 | local | 32 | +| Local variable 1 of method System.Text.UnicodeEncoding.GetByteCount | local | 32 | +| Local variable 1 of method System.Threading.PortableThreadPool.HillClimbing.LogTransition | local | 32 | +| Local variable 1 of method System.Threading.Tasks.TplEventSource.TraceOperationBegin | local | 32 | +| Local variable 1 of method System.Threading.WaitHandle.WaitMultipleIgnoringSyncContext | local | 32 | +| Local variable 1 of method System.TimeZoneInfo.<>c.b__183_0 | local | 32 | +| Local variable 1 of method System.TimeZoneInfo.<>c.b__183_1 | local | 32 | +| Local variable 2 of method System.Array.Clear | local | 32 | +| Local variable 2 of method System.Array.Copy | local | 32 | +| Local variable 2 of method System.Collections.Generic.Dictionary.Remove | local | 32 | +| Local variable 2 of method System.Collections.Generic.GenericArraySortHelper.IntroSort | local | 32 | +| Local variable 2 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | +| Local variable 2 of method System.Collections.Generic.HashSet.CopyTo | local | 32 | +| Local variable 2 of method System.Collections.Generic.HashSet.IntersectWithHashSetWithSameComparer | local | 32 | +| Local variable 2 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForNamedTypeV2 | local | 32 | +| Local variable 2 of method System.Diagnostics.Tracing.EventSource.Write | local | 32 | +| Local variable 2 of method System.Globalization.CompareInfo.EndsWithOrdinalHelper | local | 32 | +| Local variable 2 of method System.Globalization.CompareInfo.EndsWithOrdinalIgnoreCaseHelper | local | 32 | +| Local variable 2 of method System.Globalization.CompareInfo.IcuCreateSortKey | local | 32 | +| Local variable 2 of method System.Globalization.CompareInfo.IcuGetSortKey | local | 32 | +| Local variable 2 of method System.Globalization.CompareInfo.StartsWithOrdinalHelper | local | 32 | +| Local variable 2 of method System.Globalization.CompareInfo.StartsWithOrdinalIgnoreCaseHelper | local | 32 | +| Local variable 2 of method System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | local | 32 | +| Local variable 2 of method System.Globalization.Normalization.IcuIsNormalized | local | 32 | +| Local variable 2 of method System.Globalization.Ordinal.CompareStringIgnoreCase | local | 32 | +| Local variable 2 of method System.Globalization.OrdinalCasing.CompareStringIgnoreCase | local | 32 | +| Local variable 2 of method System.Globalization.TextInfo.ChangeCaseCommon | local | 32 | +| Local variable 2 of method System.IO.Path.TryJoin | local | 32 | +| Local variable 2 of method System.IO.PathInternal.EqualStartingCharacterCount | local | 32 | +| Local variable 2 of method System.IO.PinnedBufferMemoryStream..ctor | local | 32 | +| Local variable 2 of method System.IO.Strategies.Net5CompatFileStreamStrategy.ReadNative | local | 32 | +| Local variable 2 of method System.Number.BigInteger.Multiply | local | 32 | +| Local variable 2 of method System.Number.TryInt32ToHexStr | local | 32 | +| Local variable 2 of method System.Number.TryInt64ToHexStr | local | 32 | +| Local variable 2 of method System.Number.TryNegativeInt32ToDecStr | local | 32 | +| Local variable 2 of method System.Number.TryUInt32ToDecStr | local | 32 | +| Local variable 2 of method System.Number.TryUInt64ToDecStr | local | 32 | +| Local variable 2 of method System.Numerics.Matrix4x4.Decompose | local | 32 | +| Local variable 2 of method System.Object.MemberwiseClone | local | 32 | +| Local variable 2 of method System.Runtime.InteropServices.Marshal.StringToAnsiString | local | 32 | +| Local variable 2 of method System.String.CompareOrdinalHelper | local | 32 | +| Local variable 2 of method System.String.Ctor | local | 32 | +| Local variable 2 of method System.StubHelpers.AnsiCharMarshaler.DoAnsiConversion | local | 32 | +| Local variable 2 of method System.Text.DecoderNLS.GetChars | local | 32 | +| Local variable 2 of method System.Text.EncoderNLS.GetByteCount | local | 32 | +| Local variable 2 of method System.Text.EncoderNLS.GetBytes | local | 32 | +| Local variable 2 of method System.Text.StringBuilder.Insert | local | 32 | +| Local variable 2 of method System.Text.UTF7Encoding.GetBytes | local | 32 | +| Local variable 2 of method System.Text.UTF32Encoding.GetBytes | local | 32 | +| Local variable 2 of method System.Text.UnicodeEncoding.GetBytes | local | 32 | +| Local variable 3 of method System.Array.Copy | local | 32 | +| Local variable 3 of method System.Array.CreateInstance | local | 32 | +| Local variable 3 of method System.Collections.Generic.GenericArraySortHelper.IntroSort | local | 32 | +| Local variable 3 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | +| Local variable 3 of method System.Collections.Generic.HashSet.RemoveWhere | local | 32 | +| Local variable 3 of method System.Collections.Generic.HashSet.Resize | local | 32 | +| Local variable 3 of method System.Convert.ToBase64String | local | 32 | +| Local variable 3 of method System.Convert.TryToBase64Chars | local | 32 | +| Local variable 3 of method System.Diagnostics.Tracing.EventPipeInternal.Enable | local | 32 | +| Local variable 3 of method System.Diagnostics.Tracing.EventSource.Write | local | 32 | +| Local variable 3 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | +| Local variable 3 of method System.Globalization.CompareInfo.IcuCompareString | local | 32 | +| Local variable 3 of method System.Globalization.CompareInfo.IcuEndsWith | local | 32 | +| Local variable 3 of method System.Globalization.CompareInfo.IcuIndexOfCore | local | 32 | +| Local variable 3 of method System.Globalization.CompareInfo.IcuStartsWith | local | 32 | +| Local variable 3 of method System.Globalization.CompareInfo.IndexOfOrdinalHelper | local | 32 | +| Local variable 3 of method System.Globalization.CompareInfo.IndexOfOrdinalIgnoreCaseHelper | local | 32 | +| Local variable 3 of method System.Globalization.InvariantModeCasing.IndexOfIgnoreCase | local | 32 | +| Local variable 3 of method System.Globalization.InvariantModeCasing.LastIndexOfIgnoreCase | local | 32 | +| Local variable 3 of method System.Globalization.Ordinal.CompareStringIgnoreCase | local | 32 | +| Local variable 3 of method System.Globalization.OrdinalCasing.IndexOf | local | 32 | +| Local variable 3 of method System.Globalization.OrdinalCasing.LastIndexOf | local | 32 | +| Local variable 3 of method System.Memory.Pin | local | 32 | +| Local variable 3 of method System.Number.BigInteger.Pow10 | local | 32 | +| Local variable 3 of method System.Number.FindSection | local | 32 | +| Local variable 3 of method System.Number.Int32ToHexStr | local | 32 | +| Local variable 3 of method System.Number.Int64ToHexStr | local | 32 | +| Local variable 3 of method System.Number.NegativeInt32ToDecStr | local | 32 | +| Local variable 3 of method System.Number.TryNegativeInt64ToDecStr | local | 32 | +| Local variable 3 of method System.Number.UInt32ToDecStr | local | 32 | +| Local variable 3 of method System.Number.UInt64ToDecStr | local | 32 | +| Local variable 3 of method System.Object.MemberwiseClone | local | 32 | +| Local variable 3 of method System.ReadOnlyMemory.Pin | local | 32 | +| Local variable 3 of method System.Reflection.CustomAttribute.AddCustomAttributes | local | 32 | +| Local variable 3 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | +| Local variable 3 of method System.Runtime.InteropServices.Marshal.QueryInterface | local | 32 | +| Local variable 3 of method System.Runtime.InteropServices.SafeBuffer.ReadSpan | local | 32 | +| Local variable 3 of method System.Runtime.InteropServices.SafeBuffer.WriteSpan | local | 32 | +| Local variable 3 of method System.Runtime.Loader.AssemblyLoadContext.InternalLoad | local | 32 | +| Local variable 3 of method System.RuntimeType.RuntimeTypeCache.MemberInfoCache.Populate | local | 32 | +| Local variable 3 of method System.SpanHelpers.Fill | local | 32 | +| Local variable 3 of method System.String.CreateStringFromEncoding | local | 32 | +| Local variable 3 of method System.String.GetNonRandomizedHashCodeOrdinalIgnoreCase | local | 32 | +| Local variable 3 of method System.String.IndexOfCharArray | local | 32 | +| Local variable 3 of method System.String.LastIndexOfCharArray | local | 32 | +| Local variable 3 of method System.Text.ASCIIEncoding.GetBytes | local | 32 | +| Local variable 3 of method System.Text.ASCIIEncoding.GetChars | local | 32 | +| Local variable 3 of method System.Text.Decoder.Convert | local | 32 | +| Local variable 3 of method System.Text.Decoder.GetChars | local | 32 | +| Local variable 3 of method System.Text.DecoderNLS.Convert | local | 32 | +| Local variable 3 of method System.Text.Encoder.Convert | local | 32 | +| Local variable 3 of method System.Text.Encoder.GetBytes | local | 32 | +| Local variable 3 of method System.Text.EncoderNLS.Convert | local | 32 | +| Local variable 3 of method System.Text.Encoding.GetBytes | local | 32 | +| Local variable 3 of method System.Text.Encoding.GetBytesWithFallback | local | 32 | +| Local variable 3 of method System.Text.Encoding.GetChars | local | 32 | +| Local variable 3 of method System.Text.Encoding.GetCharsWithFallback | local | 32 | +| Local variable 3 of method System.Text.Latin1Encoding.<>c.b__29_0 | local | 32 | +| Local variable 3 of method System.Text.Latin1Encoding.<>c.b__30_0 | local | 32 | +| Local variable 3 of method System.Text.Latin1Encoding.GetBytes | local | 32 | +| Local variable 3 of method System.Text.Latin1Encoding.GetChars | local | 32 | +| Local variable 3 of method System.Text.StringBuilder.ToString | local | 32 | +| Local variable 3 of method System.Text.UTF8Encoding.GetBytes | local | 32 | +| Local variable 3 of method System.Text.UTF8Encoding.GetChars | local | 32 | +| Local variable 3 of method System.Text.Unicode.Utf8.FromUtf16 | local | 32 | +| Local variable 3 of method System.Text.Unicode.Utf8.ToUtf16 | local | 32 | +| Local variable 3 of method System.Threading.Thread.StartCore | local | 32 | +| Local variable 4 of method Interop.Kernel32.GetMessage | local | 32 | +| Local variable 4 of method System.Array.Copy | local | 32 | +| Local variable 4 of method System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | local | 32 | +| Local variable 4 of method System.Collections.Generic.Dictionary.CopyEntries | local | 32 | +| Local variable 4 of method System.Collections.Generic.Dictionary.Resize | local | 32 | +| Local variable 4 of method System.Collections.Generic.Dictionary.TryInsert | local | 32 | +| Local variable 4 of method System.Collections.Generic.GenericArraySortHelper.IntroSort | local | 32 | +| Local variable 4 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | +| Local variable 4 of method System.Collections.Generic.HashSet.ConstructFrom | local | 32 | +| Local variable 4 of method System.Collections.Generic.HashSet.Remove | local | 32 | +| Local variable 4 of method System.Diagnostics.Tracing.DataCollector.AddNullTerminatedString | local | 32 | +| Local variable 4 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | +| Local variable 4 of method System.Globalization.CompareInfo.EndsWithOrdinalHelper | local | 32 | +| Local variable 4 of method System.Globalization.CompareInfo.EndsWithOrdinalIgnoreCaseHelper | local | 32 | +| Local variable 4 of method System.Globalization.CompareInfo.IcuGetSortKey | local | 32 | +| Local variable 4 of method System.Globalization.CompareInfo.StartsWithOrdinalHelper | local | 32 | +| Local variable 4 of method System.Globalization.CompareInfo.StartsWithOrdinalIgnoreCaseHelper | local | 32 | +| Local variable 4 of method System.Globalization.IdnMapping.IcuGetUnicodeCore | local | 32 | +| Local variable 4 of method System.Globalization.TextInfo.ChangeCaseCommon | local | 32 | +| Local variable 4 of method System.IO.PathInternal.EqualStartingCharacterCount | local | 32 | +| Local variable 4 of method System.Number.BigInteger.AddDivisor | local | 32 | +| Local variable 4 of method System.Number.NegativeInt64ToDecStr | local | 32 | +| Local variable 4 of method System.Reflection.AssemblyName.EscapeString | local | 32 | +| Local variable 4 of method System.Runtime.Loader.AssemblyLoadContext.InternalLoad | local | 32 | +| Local variable 4 of method System.String.CompareOrdinalHelper | local | 32 | +| Local variable 4 of method System.String.MakeSeparatorListVectorized | local | 32 | +| Local variable 4 of method System.String.Replace | local | 32 | +| Local variable 4 of method System.TermInfo.ParameterizedStrings.FormatPrintF | local | 32 | +| Local variable 4 of method System.Text.DecoderNLS.GetChars | local | 32 | +| Local variable 4 of method System.Text.EncoderNLS.GetBytes | local | 32 | +| Local variable 4 of method System.Text.UTF7Encoding.GetBytes | local | 32 | +| Local variable 4 of method System.Text.UTF7Encoding.GetChars | local | 32 | +| Local variable 4 of method System.Text.UTF8Encoding.UTF8EncodingSealed.GetBytesForSmallInput | local | 32 | +| Local variable 4 of method System.Text.UTF32Encoding.GetBytes | local | 32 | +| Local variable 4 of method System.Text.UTF32Encoding.GetChars | local | 32 | +| Local variable 4 of method System.Text.UnicodeEncoding.GetBytes | local | 32 | +| Local variable 4 of method System.Text.UnicodeEncoding.GetChars | local | 32 | +| Local variable 5 of method Interop.Sys.GetCwd | local | 32 | +| Local variable 5 of method System.Array.Clear | local | 32 | +| Local variable 5 of method System.Array.Copy | local | 32 | +| Local variable 5 of method System.Array.CreateInstance | local | 32 | +| Local variable 5 of method System.Buffers.TlsOverPerCoreLockedStacksArrayPool.Return | local | 32 | +| Local variable 5 of method System.Collections.Generic.Dictionary.CopyEntries | local | 32 | +| Local variable 5 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | +| Local variable 5 of method System.Collections.Generic.HashSet.Resize | local | 32 | +| Local variable 5 of method System.Convert.ToBase64String | local | 32 | +| Local variable 5 of method System.Convert.TryToBase64Chars | local | 32 | +| Local variable 5 of method System.Diagnostics.Tracing.EventPipeInternal.Enable | local | 32 | +| Local variable 5 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | +| Local variable 5 of method System.Environment.get_UserName | local | 32 | +| Local variable 5 of method System.Globalization.TextInfo.ToLowerAsciiInvariant | local | 32 | +| Local variable 5 of method System.IO.Path.JoinInternal | local | 32 | +| Local variable 5 of method System.IO.PersistedFiles.GetHomeDirectory | local | 32 | +| Local variable 5 of method System.Number.BigInteger.Pow10 | local | 32 | +| Local variable 5 of method System.Number.BigInteger.SubtractDivisor | local | 32 | +| Local variable 5 of method System.Reflection.CustomAttribute.GetAttributeUsage | local | 32 | +| Local variable 5 of method System.Reflection.Metadata.MetadataUpdater.ApplyUpdate | local | 32 | +| Local variable 5 of method System.Runtime.InteropServices.Marshal.StringToCoTaskMemUTF8 | local | 32 | +| Local variable 5 of method System.Runtime.InteropServices.Marshal.StringToHGlobalUTF8 | local | 32 | +| Local variable 5 of method System.String.Replace | local | 32 | +| Local variable 5 of method System.Text.ASCIIEncoding.GetBytesWithFallback | local | 32 | +| Local variable 5 of method System.Text.ASCIIEncoding.GetCharsWithFallback | local | 32 | +| Local variable 5 of method System.Text.Encoding.GetBytes | local | 32 | +| Local variable 5 of method System.Text.StringBuilder.Insert | local | 32 | +| Local variable 6 of method System.Array.Copy | local | 32 | +| Local variable 6 of method System.Collections.Generic.Dictionary.Remove | local | 32 | +| Local variable 6 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | +| Local variable 6 of method System.Collections.Generic.HashSet.FindItemIndex | local | 32 | +| Local variable 6 of method System.Collections.Generic.HashSet.Remove | local | 32 | +| Local variable 6 of method System.Collections.Generic.HashSet.Resize | local | 32 | +| Local variable 6 of method System.Convert.ConvertToBase64Array | local | 32 | +| Local variable 6 of method System.Convert.ToBase64CharArray | local | 32 | +| Local variable 6 of method System.Convert.TryDecodeFromUtf16 | local | 32 | +| Local variable 6 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty | local | 32 | +| Local variable 6 of method System.Globalization.IdnMapping.IcuGetAsciiCore | local | 32 | +| Local variable 6 of method System.Guid.TryFormat | local | 32 | +| Local variable 6 of method System.IO.Path.JoinInternal | local | 32 | +| Local variable 6 of method System.Reflection.Emit.TypeBuilder.SetConstantValue | local | 32 | +| Local variable 6 of method System.Reflection.Metadata.MetadataUpdater.ApplyUpdate | local | 32 | +| Local variable 6 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | +| Local variable 7 of method System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | local | 32 | +| Local variable 7 of method System.Collections.Generic.Dictionary.TryInsert | local | 32 | +| Local variable 7 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | +| Local variable 7 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadata | local | 32 | +| Local variable 7 of method System.Globalization.CompareInfo.IcuGetHashCodeOfString | local | 32 | +| Local variable 7 of method System.Globalization.Normalization.IcuNormalize | local | 32 | +| Local variable 7 of method System.IO.Path.JoinInternal | local | 32 | +| Local variable 7 of method System.Number.BigInteger.Pow10 | local | 32 | +| Local variable 7 of method System.Reflection.Metadata.MetadataUpdater.ApplyUpdate | local | 32 | +| Local variable 7 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | +| Local variable 7 of method System.RuntimeType.RuntimeTypeCache.MemberInfoCache.Populate | local | 32 | +| Local variable 7 of method System.StubHelpers.CSTRMarshaler.ConvertFixedToNative | local | 32 | +| Local variable 7 of method System.Text.ASCIIEncoding.GetBytesWithFallback | local | 32 | +| Local variable 7 of method System.Text.ASCIIEncoding.GetCharsWithFallback | local | 32 | +| Local variable 8 of method System.Convert.ToBase64CharArray | local | 32 | +| Local variable 8 of method System.Diagnostics.Tracing.EventSource.WriteEventString | local | 32 | +| Local variable 8 of method System.IO.Path.JoinInternal | local | 32 | +| Local variable 8 of method System.Number.BigInteger.Pow10 | local | 32 | +| Local variable 8 of method System.Reflection.Emit.TypeBuilder.SetConstantValue | local | 32 | +| Local variable 9 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | +| Local variable 9 of method System.Collections.Generic.HashSet.FindItemIndex | local | 32 | +| Local variable 9 of method System.Collections.Generic.HashSet.IntersectWithEnumerable | local | 32 | +| Local variable 9 of method System.Collections.Generic.HashSet.TrimExcess | local | 32 | +| Local variable 9 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty | local | 32 | +| Local variable 9 of method System.Diagnostics.Tracing.EventPipeInternal.Enable | local | 32 | +| Local variable 9 of method System.Globalization.CompareInfo.IcuGetHashCodeOfString | local | 32 | +| Local variable 9 of method System.Globalization.Normalization.IcuNormalize | local | 32 | +| Local variable 9 of method System.IO.Path.JoinInternal | local | 32 | +| Local variable 9 of method System.String.g__GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow\|47_0 | local | 32 | +| Local variable 10 of method System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | local | 32 | +| Local variable 10 of method System.Collections.Generic.HashSet.TrimExcess | local | 32 | +| Local variable 10 of method System.IO.Path.JoinInternal | local | 32 | +| Local variable 10 of method System.Number.FormatFixed | local | 32 | +| Local variable 10 of method System.ParseNumbers.IntToString | local | 32 | +| Local variable 10 of method System.ParseNumbers.LongToString | local | 32 | +| Local variable 10 of method System.String.JoinCore | local | 32 | +| Local variable 10 of method System.Text.StringBuilder.ReplaceAllInChunk | local | 32 | +| Local variable 11 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | +| Local variable 11 of method System.Globalization.CompareInfo.IcuGetHashCodeOfString | local | 32 | +| Local variable 11 of method System.IO.RandomAccess.ReadScatterAtOffset | local | 32 | +| Local variable 11 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | +| Local variable 12 of method System.Collections.Generic.HashSet.FindItemIndex | local | 32 | +| Local variable 12 of method System.Diagnostics.Tracing.EventSource.WriteMultiMerge | local | 32 | +| Local variable 13 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | +| Local variable 13 of method System.Globalization.TextInfo.ChangeCaseCommon | local | 32 | +| Local variable 14 of method System.IO.RandomAccess.WriteGatherAtOffset | local | 32 | +| Local variable 14 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | +| Local variable 15 of method System.Diagnostics.Tracing.EventSource.WriteImpl | local | 32 | +| Local variable 18 of method System.Diagnostics.Tracing.EventSource.WriteMultiMergeInner | local | 32 | +| Local variable 19 of method System.Number.NumberToStringFormat | local | 32 | +| Local variable 21 of method System.Diagnostics.Tracing.EventPipeMetadataGenerator.GenerateMetadata | local | 32 | +| Local variable 27 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 28 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 29 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 30 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 30 of method System.Numerics.Matrix4x4.g__SseImpl\|65_0 | local | 32 | +| Local variable 31 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 31 of method System.Number.NumberToStringFormat | local | 32 | +| Local variable 32 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 33 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 34 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Local variable 38 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.Add | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.AddByteOffset | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.AreSame | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.As | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.AsPointer | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.AsRef | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.ByteOffset | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.InitBlockUnaligned | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.IsAddressLessThan | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.IsNullRef | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.Read | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.ReadUnaligned | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.SkipInit | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.Write | parameter | 32 | +| Parameter 0 of Internal.Runtime.CompilerServices.Unsafe.WriteUnaligned | parameter | 32 | +| Parameter 0 of Interop.Sys.GetCpuUtilization | parameter | 32 | +| Parameter 0 of Interop.Sys.GetWindowSize | parameter | 32 | +| Parameter 0 of Interop.Sys.LStat | parameter | 32 | +| Parameter 0 of Interop.Sys.ReadLink | parameter | 32 | +| Parameter 0 of Interop.Sys.Stat | parameter | 32 | +| Parameter 0 of System.Array.Resize | parameter | 32 | +| Parameter 0 of System.Buffer.BulkMoveWithWriteBarrier | parameter | 32 | +| Parameter 0 of System.Buffer.Memmove | parameter | 32 | +| Parameter 0 of System.Buffer._BulkMoveWithWriteBarrier | parameter | 32 | +| Parameter 0 of System.Buffer._Memmove | parameter | 32 | +| Parameter 0 of System.Buffer._ZeroMemory | parameter | 32 | +| Parameter 0 of System.Buffer.__BulkMoveWithWriteBarrier | parameter | 32 | +| Parameter 0 of System.Buffers.Text.FormattingHelpers.GetSymbolOrDefault | parameter | 32 | +| Parameter 0 of System.Buffers.Text.FormattingHelpers.TryFormatThrowFormatException | parameter | 32 | +| Parameter 0 of System.Buffers.Text.ParserHelpers.TryParseThrowFormatException | parameter | 32 | +| Parameter 0 of System.Buffers.Text.Utf8Formatter.TryFormatDecimalE | parameter | 32 | +| Parameter 0 of System.Buffers.Text.Utf8Formatter.TryFormatDecimalF | parameter | 32 | +| Parameter 0 of System.Buffers.Text.Utf8Formatter.TryFormatDecimalG | parameter | 32 | +| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.GreaterThan | parameter | 32 | +| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.LessThan | parameter | 32 | +| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.Swap | parameter | 32 | +| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.SwapIfGreater | parameter | 32 | +| Parameter 0 of System.ConsolePal.g__IncrementX\|113_1 | parameter | 32 | +| Parameter 0 of System.ConsolePal.g__IncrementY\|113_0 | parameter | 32 | +| Parameter 0 of System.ConsolePal.GetWindowSize | parameter | 32 | +| Parameter 0 of System.ConsolePal.RefreshColors | parameter | 32 | +| Parameter 0 of System.ConsolePal.TryGetCachedCursorPosition | parameter | 32 | +| Parameter 0 of System.ConsolePal.TryGetCursorPosition | parameter | 32 | +| Parameter 0 of System.Convert.Decode | parameter | 32 | +| Parameter 0 of System.Convert.WriteThreeLowOrderBytes | parameter | 32 | +| Parameter 0 of System.DateTimeParse.AdjustHour | parameter | 32 | +| Parameter 0 of System.DateTimeParse.AdjustTimeZoneToLocal | parameter | 32 | +| Parameter 0 of System.DateTimeParse.AdjustTimeZoneToUniversal | parameter | 32 | +| Parameter 0 of System.DateTimeParse.CheckDefaultDateTime | parameter | 32 | +| Parameter 0 of System.DateTimeParse.CheckNewValue | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ConfigureFormatOS | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ConfigureFormatR | parameter | 32 | +| Parameter 0 of System.DateTimeParse.DateTimeOffsetTimeZonePostProcessing | parameter | 32 | +| Parameter 0 of System.DateTimeParse.DetermineTimeZoneAdjustments | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDateOfDSN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDateOfNDS | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDateOfNNDS | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDateTimeNow | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDateTimeParseException | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfMN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfMNN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfNM | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfNN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfNNN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfNNY | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfYM | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfYMN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfYN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDayOfYNN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetDefaultYear | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetHebrewDayOfNM | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetTimeOfN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetTimeOfNN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetTimeOfNNN | parameter | 32 | +| Parameter 0 of System.DateTimeParse.GetTimeZoneName | parameter | 32 | +| Parameter 0 of System.DateTimeParse.HandleTimeZone | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchAbbreviatedDayName | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchAbbreviatedMonthName | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchAbbreviatedTimeMark | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchDayName | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchEraName | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchHebrewDigits | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchMonthName | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchTimeMark | parameter | 32 | +| Parameter 0 of System.DateTimeParse.MatchWord | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseByFormat | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseDigits | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseFraction | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseFractionExact | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseISO8601 | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseJapaneseEraStart | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseSign | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseTimeZone | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ParseTimeZoneOffset | parameter | 32 | +| Parameter 0 of System.DateTimeParse.ProcessDateTimeSuffix | parameter | 32 | +| Parameter 0 of System.DateTimeParse.SetDateDMY | parameter | 32 | +| Parameter 0 of System.DateTimeParse.SetDateMDY | parameter | 32 | +| Parameter 0 of System.DateTimeParse.SetDateYDM | parameter | 32 | +| Parameter 0 of System.DateTimeParse.SetDateYMD | parameter | 32 | +| Parameter 0 of System.DateTimeParse.TryAdjustYear | parameter | 32 | +| Parameter 0 of System.DateTimeParse.VerifyValidPunctuation | parameter | 32 | +| Parameter 0 of System.Decimal.Abs | parameter | 32 | +| Parameter 0 of System.Decimal.AsMutable | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.Add32To96 | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.DecAddSub | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.DecDivMod1E9 | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.Div96By32 | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.Div96By64 | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.Div96ByConst | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.Div128By96 | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.GetHashCode | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.IncreaseScale | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.IncreaseScale64 | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.InternalRound | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.OverflowUnscale | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.SearchScale | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.Unscale | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarCyFromDec | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarDecCmp | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarDecCmpSub | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarDecDiv | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarDecMod | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarDecModFull | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarDecMul | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarR4FromDec | parameter | 32 | +| Parameter 0 of System.Decimal.DecCalc.VarR8FromDec | parameter | 32 | +| Parameter 0 of System.Decimal.DecDivMod1E9 | parameter | 32 | +| Parameter 0 of System.Decimal.GetBytes | parameter | 32 | +| Parameter 0 of System.Decimal.Max | parameter | 32 | +| Parameter 0 of System.Decimal.Min | parameter | 32 | +| Parameter 0 of System.Decimal.Round | parameter | 32 | +| Parameter 0 of System.Decimal.Sign | parameter | 32 | +| Parameter 0 of System.Decimal.Truncate | parameter | 32 | +| Parameter 0 of System.Diagnostics.Contracts.Contract.ValueAtReturn | parameter | 32 | +| Parameter 0 of System.Diagnostics.StackTrace.TryResolveStateMachineMethod | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.WriteNibble | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.EventPipePayloadDecoder.DecodePayload | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.EventSource.AddEventDescriptor | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.EventSource.DebugCheckEvent | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.EventSource.RemoveFirstArgIfRelatedActivityId | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.EventSource.TrimEventDescriptors | parameter | 32 | +| Parameter 0 of System.Diagnostics.Tracing.ManifestBuilder.UpdateStringBuilder | parameter | 32 | +| Parameter 0 of System.Globalization.CultureData.GetDefaultLocaleName | parameter | 32 | +| Parameter 0 of System.Globalization.DateTimeFormatInfo.TryParseHebrewNumber | parameter | 32 | +| Parameter 0 of System.Globalization.GlobalizationMode.TryGetAppLocalIcuSwitchValue | parameter | 32 | +| Parameter 0 of System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | parameter | 32 | +| Parameter 0 of System.Globalization.InvariantModeCasing.GetScalar | parameter | 32 | +| Parameter 0 of System.Globalization.Ordinal.CompareStringIgnoreCase | parameter | 32 | +| Parameter 0 of System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii | parameter | 32 | +| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCase | parameter | 32 | +| Parameter 0 of System.Globalization.OrdinalCasing.CompareStringIgnoreCase | parameter | 32 | +| Parameter 0 of System.Globalization.TextInfo.AddNonLetter | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ParseExactLiteral | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminalState | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_D | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_DHMSF | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_HM | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_HMS_F_D | parameter | 32 | +| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_HM_S_D | parameter | 32 | +| Parameter 0 of System.Guid.EqualsCore | parameter | 32 | +| Parameter 0 of System.HashCode.Initialize | parameter | 32 | +| Parameter 0 of System.IO.Enumeration.FileSystemEntry.Initialize | parameter | 32 | +| Parameter 0 of System.IO.Enumeration.FileSystemEnumerableFactory.NormalizeInputs | parameter | 32 | +| Parameter 0 of System.IO.FileSystem.g__GetLinkTargetFullPath\|27_0 | parameter | 32 | +| Parameter 0 of System.Marvin.Block | parameter | 32 | +| Parameter 0 of System.Marvin.ComputeHash32 | parameter | 32 | +| Parameter 0 of System.Marvin.ComputeHash32OrdinalIgnoreCase | parameter | 32 | +| Parameter 0 of System.Marvin.ComputeHash32OrdinalIgnoreCaseSlow | parameter | 32 | +| Parameter 0 of System.Number.AccumulateDecimalDigitsIntoBigInteger | parameter | 32 | +| Parameter 0 of System.Number.AssembleFloatingPointBits | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.Add | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.AddDivisor | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.Compare | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.CountSignificantBits | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.DivRem | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.HeuristicDivide | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.Multiply | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.SetUInt32 | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.SetUInt64 | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.SetValue | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.SetZero | parameter | 32 | +| Parameter 0 of System.Number.BigInteger.SubtractDivisor | parameter | 32 | +| Parameter 0 of System.Number.ConvertBigIntegerToFloatingPointBits | parameter | 32 | +| Parameter 0 of System.Number.DecimalToNumber | parameter | 32 | +| Parameter 0 of System.Number.FormatCurrency | parameter | 32 | +| Parameter 0 of System.Number.FormatDouble | parameter | 32 | +| Parameter 0 of System.Number.FormatExponent | parameter | 32 | +| Parameter 0 of System.Number.FormatFixed | parameter | 32 | +| Parameter 0 of System.Number.FormatGeneral | parameter | 32 | +| Parameter 0 of System.Number.FormatHalf | parameter | 32 | +| Parameter 0 of System.Number.FormatNumber | parameter | 32 | +| Parameter 0 of System.Number.FormatPercent | parameter | 32 | +| Parameter 0 of System.Number.FormatScientific | parameter | 32 | +| Parameter 0 of System.Number.FormatSingle | parameter | 32 | +| Parameter 0 of System.Number.Grisu3.TryDigitGenCounted | parameter | 32 | +| Parameter 0 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | +| Parameter 0 of System.Number.Grisu3.TryRunCounted | parameter | 32 | +| Parameter 0 of System.Number.Grisu3.TryRunShortest | parameter | 32 | +| Parameter 0 of System.Number.Int64DivMod1E9 | parameter | 32 | +| Parameter 0 of System.Number.NumberToDouble | parameter | 32 | +| Parameter 0 of System.Number.NumberToDoubleFloatingPointBits | parameter | 32 | +| Parameter 0 of System.Number.NumberToFloatingPointBitsSlow | parameter | 32 | +| Parameter 0 of System.Number.NumberToHalf | parameter | 32 | +| Parameter 0 of System.Number.NumberToHalfFloatingPointBits | parameter | 32 | +| Parameter 0 of System.Number.NumberToSingle | parameter | 32 | +| Parameter 0 of System.Number.NumberToSingleFloatingPointBits | parameter | 32 | +| Parameter 0 of System.Number.NumberToString | parameter | 32 | +| Parameter 0 of System.Number.NumberToStringFormat | parameter | 32 | +| Parameter 0 of System.Number.RoundNumber | parameter | 32 | +| Parameter 0 of System.Number.TryNumberToDecimal | parameter | 32 | +| Parameter 0 of System.Number.TryNumberToInt32 | parameter | 32 | +| Parameter 0 of System.Number.TryNumberToInt64 | parameter | 32 | +| Parameter 0 of System.Number.TryNumberToUInt32 | parameter | 32 | +| Parameter 0 of System.Number.TryNumberToUInt64 | parameter | 32 | +| Parameter 0 of System.Number.TryParseNumber | parameter | 32 | +| Parameter 0 of System.PasteArguments.AppendArgument | parameter | 32 | +| Parameter 0 of System.Reflection.Assembly.GetExecutingAssembly | parameter | 32 | +| Parameter 0 of System.Reflection.CustomAttribute.AddCustomAttributes | parameter | 32 | +| Parameter 0 of System.Reflection.MethodBase.AppendParameters | parameter | 32 | +| Parameter 0 of System.Reflection.RuntimeMethodInfo.InternalGetCurrentMethod | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.GetStateMachineBox | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.Element | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.HashShift | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.KeyToBucket | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper_NoCacheLookup | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.TableMask | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.WriteBarrier | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.ObjectHandleOnStack.Create | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.GetStateMachineBox | parameter | 32 | +| Parameter 0 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl | parameter | 32 | +| Parameter 0 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | parameter | 32 | +| Parameter 0 of System.Runtime.InteropServices.MemoryMarshal.CreateReadOnlySpan | parameter | 32 | +| Parameter 0 of System.Runtime.InteropServices.MemoryMarshal.CreateSpan | parameter | 32 | +| Parameter 0 of System.Runtime.Intrinsics.Vector128.g__SoftwareFallback\|12_0 | parameter | 32 | +| Parameter 0 of System.Runtime.Intrinsics.Vector256.g__SoftwareFallback\|14_0 | parameter | 32 | +| Parameter 0 of System.Runtime.Loader.AssemblyLoadContext.StartAssemblyLoad | parameter | 32 | +| Parameter 0 of System.Runtime.Loader.AssemblyLoadContext.StopAssemblyLoad | parameter | 32 | +| Parameter 0 of System.Runtime.MemoryFailPoint.CheckForAvailableMemory | parameter | 32 | +| Parameter 0 of System.RuntimeMethodHandle.GetCurrentMethod | parameter | 32 | +| Parameter 0 of System.RuntimeMethodHandle._GetCurrentMethod | parameter | 32 | +| Parameter 0 of System.RuntimeTypeHandle.GetNextIntroducedMethod | parameter | 32 | +| Parameter 0 of System.SpanHelpers.Add | parameter | 32 | +| Parameter 0 of System.SpanHelpers.BinarySearch | parameter | 32 | +| Parameter 0 of System.SpanHelpers.ClearWithReferences | parameter | 32 | +| Parameter 0 of System.SpanHelpers.ClearWithoutReferences | parameter | 32 | +| Parameter 0 of System.SpanHelpers.Contains | parameter | 32 | +| Parameter 0 of System.SpanHelpers.Fill | parameter | 32 | +| Parameter 0 of System.SpanHelpers.IndexOf | parameter | 32 | +| Parameter 0 of System.SpanHelpers.IndexOfAny | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LastIndexOf | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LastIndexOfAny | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LoadNUInt | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LoadUInt | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LoadUShort | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LoadVector | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LoadVector128 | parameter | 32 | +| Parameter 0 of System.SpanHelpers.LoadVector256 | parameter | 32 | +| Parameter 0 of System.SpanHelpers.SequenceCompareTo | parameter | 32 | +| Parameter 0 of System.SpanHelpers.SequenceEqual | parameter | 32 | +| Parameter 0 of System.SpanHelpers.UnalignedCountVector | parameter | 32 | +| Parameter 0 of System.SpanHelpers.UnalignedCountVector128 | parameter | 32 | +| Parameter 0 of System.SpanHelpers.UnalignedCountVectorFromEnd | parameter | 32 | +| Parameter 0 of System.String.g__ReadVector\|201_0 | parameter | 32 | +| Parameter 0 of System.StubHelpers.CleanupWorkListElement.AddToCleanupList | parameter | 32 | +| Parameter 0 of System.StubHelpers.StubHelpers.AddToCleanupList | parameter | 32 | +| Parameter 0 of System.StubHelpers.StubHelpers.DestroyCleanupList | parameter | 32 | +| Parameter 0 of System.StubHelpers.StubHelpers.KeepAliveViaCleanupList | parameter | 32 | +| Parameter 0 of System.Text.ASCIIUtility.NarrowFourUtf16CharsToAsciiAndWriteToBuffer | parameter | 32 | +| Parameter 0 of System.Text.ASCIIUtility.NarrowTwoUtf16CharsToAsciiAndWriteToBuffer | parameter | 32 | +| Parameter 0 of System.Text.ASCIIUtility.WidenFourAsciiBytesToUtf16AndWriteToBuffer | parameter | 32 | +| Parameter 0 of System.Text.Latin1Utility.NarrowFourUtf16CharsToLatin1AndWriteToBuffer | parameter | 32 | +| Parameter 0 of System.Text.Latin1Utility.NarrowTwoUtf16CharsToLatin1AndWriteToBuffer | parameter | 32 | +| Parameter 0 of System.Text.Unicode.Utf8Utility.IsUtf8ContinuationByte | parameter | 32 | +| Parameter 0 of System.Text.Unicode.Utf8Utility.WriteFirstUtf16CharAsUtf8ThreeByteSequence | parameter | 32 | +| Parameter 0 of System.Text.Unicode.Utf8Utility.WriteTwoUtf16CharsAsTwoUtf8ThreeByteSequences | parameter | 32 | +| Parameter 0 of System.Threading.CancellationTokenSource.Registrations.g__Contention\|13_0 | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.Add | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.And | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.CompareExchange | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.Decrement | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.Exchange | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.ExchangeAdd | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.Increment | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.Or | parameter | 32 | +| Parameter 0 of System.Threading.Interlocked.Read | parameter | 32 | +| Parameter 0 of System.Threading.LazyInitializer.EnsureInitialized | parameter | 32 | +| Parameter 0 of System.Threading.LazyInitializer.EnsureInitializedCore | parameter | 32 | +| Parameter 0 of System.Threading.LazyInitializer.EnsureLockInitialized | parameter | 32 | +| Parameter 0 of System.Threading.OverlappedData.CheckVMForIOPacket | parameter | 32 | +| Parameter 0 of System.Threading.SpinLock.CompareExchange | parameter | 32 | +| Parameter 0 of System.Threading.Tasks.Task.AddExceptionsForCompletedTask | parameter | 32 | +| Parameter 0 of System.Threading.Thread.VolatileRead | parameter | 32 | +| Parameter 0 of System.Threading.Thread.VolatileWrite | parameter | 32 | +| Parameter 0 of System.Threading.ThreadLocal.GrowTable | parameter | 32 | +| Parameter 0 of System.Threading.ThreadPool.GetAvailableThreads | parameter | 32 | +| Parameter 0 of System.Threading.ThreadPool.GetAvailableThreadsNative | parameter | 32 | +| Parameter 0 of System.Threading.ThreadPool.GetMaxThreads | parameter | 32 | +| Parameter 0 of System.Threading.ThreadPool.GetMaxThreadsNative | parameter | 32 | +| Parameter 0 of System.Threading.ThreadPool.GetMinThreads | parameter | 32 | +| Parameter 0 of System.Threading.ThreadPool.GetMinThreadsNative | parameter | 32 | +| Parameter 0 of System.Threading.Volatile.Read | parameter | 32 | +| Parameter 0 of System.Threading.Volatile.Write | parameter | 32 | +| Parameter 0 of System.TimeZoneInfo.AdjustmentRule.AdjustDaylightDeltaToExpectedRange | parameter | 32 | +| Parameter 0 of System.TimeZoneInfo.GetDirectoryEntryFullPath | parameter | 32 | +| Parameter 0 of System.TimeZoneInfo.TZif_GenerateAdjustmentRule | parameter | 32 | +| Parameter 0 of System.TimeZoneInfo.TZif_GenerateAdjustmentRules | parameter | 32 | +| Parameter 0 of System.TimeZoneInfo.TryGetLocalTzFile | parameter | 32 | +| Parameter 1 of Internal.Runtime.CompilerServices.Unsafe.AreSame | parameter | 32 | +| Parameter 1 of Internal.Runtime.CompilerServices.Unsafe.ByteOffset | parameter | 32 | +| Parameter 1 of Internal.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan | parameter | 32 | +| Parameter 1 of Internal.Runtime.CompilerServices.Unsafe.IsAddressLessThan | parameter | 32 | +| Parameter 1 of Interop.Advapi32.EtwEnableCallback.Invoke | parameter | 32 | +| Parameter 1 of Interop.Globalization.GetJapaneseEraStartDate | parameter | 32 | +| Parameter 1 of Interop.Globalization.GetSortHandle | parameter | 32 | +| Parameter 1 of Interop.Kernel32.GetEnvironmentVariable | parameter | 32 | +| Parameter 1 of Interop.Sys.FStat | parameter | 32 | +| Parameter 1 of Interop.Sys.GetPwUidR | parameter | 32 | +| Parameter 1 of Interop.Sys.LStat | parameter | 32 | +| Parameter 1 of Interop.Sys.Stat | parameter | 32 | +| Parameter 1 of Interop.Sys.TryGetFileSystemType | parameter | 32 | +| Parameter 1 of System.AppContext.TryGetSwitch | parameter | 32 | +| Parameter 1 of System.Boolean.TryParse | parameter | 32 | +| Parameter 1 of System.Buffer.BulkMoveWithWriteBarrier | parameter | 32 | +| Parameter 1 of System.Buffer.Memmove | parameter | 32 | +| Parameter 1 of System.Buffer._BulkMoveWithWriteBarrier | parameter | 32 | +| Parameter 1 of System.Buffer._Memmove | parameter | 32 | +| Parameter 1 of System.Buffer.__BulkMoveWithWriteBarrier | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadDoubleBigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadDoubleLittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadHalfBigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadHalfLittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt16BigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt16LittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt32BigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt32LittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt64BigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt64LittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadSingleBigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadSingleLittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt16BigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt16LittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt32BigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt32LittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt64BigEndian | parameter | 32 | +| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt64LittleEndian | parameter | 32 | +| Parameter 1 of System.Buffers.MemoryManager.TryGetArray | parameter | 32 | +| Parameter 1 of System.Buffers.StandardFormat.ParseHelper | parameter | 32 | +| Parameter 1 of System.Buffers.StandardFormat.TryParse | parameter | 32 | +| Parameter 1 of System.Buffers.Text.FormattingHelpers.CountDecimalTrailingZeros | parameter | 32 | +| Parameter 1 of System.Buffers.Text.ParserHelpers.TryParseThrowFormatException | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParse | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseByteD | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseByteN | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseByteX | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseDateTimeG | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetDefault | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseGuidCore | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseGuidN | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt16D | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt16N | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt32D | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt32N | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt64D | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt64N | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseNormalAsFloatingPoint | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseNumber | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseSByteD | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseSByteN | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanBigG | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanC | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanFraction | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanLittleG | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt16D | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt16N | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt16X | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt32D | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt32N | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt32X | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt64D | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt64N | parameter | 32 | +| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt64X | parameter | 32 | +| Parameter 1 of System.ByReference..ctor | parameter | 32 | +| Parameter 1 of System.Byte.TryCreate | parameter | 32 | +| Parameter 1 of System.Byte.TryParse | parameter | 32 | +| Parameter 1 of System.Char.TryCreate | parameter | 32 | +| Parameter 1 of System.Char.TryParse | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryDequeue | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryDequeueSlow | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryPeek | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryTake | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueueSegment.TryDequeue | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.ConcurrentQueueSegment.TryPeek | parameter | 32 | +| Parameter 1 of System.Collections.Concurrent.IProducerConsumerCollection.TryTake | parameter | 32 | +| Parameter 1 of System.Collections.DictionaryEntry.Deconstruct | parameter | 32 | +| Parameter 1 of System.Collections.Generic.EnumerableHelpers.ToArray | parameter | 32 | +| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.GreaterThan | parameter | 32 | +| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.LessThan | parameter | 32 | +| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.Swap | parameter | 32 | +| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.SwapIfGreater | parameter | 32 | +| Parameter 1 of System.Collections.Generic.KeyValuePair.Deconstruct | parameter | 32 | +| Parameter 1 of System.Collections.Generic.Queue.MoveNext | parameter | 32 | +| Parameter 1 of System.Collections.Generic.Queue.TryDequeue | parameter | 32 | +| Parameter 1 of System.Collections.Generic.Queue.TryPeek | parameter | 32 | +| Parameter 1 of System.Collections.Generic.Stack.TryPop | parameter | 32 | +| Parameter 1 of System.ConsolePal.GetWindowSize | parameter | 32 | +| Parameter 1 of System.ConsolePal.TryGetCachedCursorPosition | parameter | 32 | +| Parameter 1 of System.ConsolePal.TryGetCursorPosition | parameter | 32 | +| Parameter 1 of System.Convert.Decode | parameter | 32 | +| Parameter 1 of System.CultureAwareComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | +| Parameter 1 of System.DateOnly.TryParse | parameter | 32 | +| Parameter 1 of System.DateTime.GetDate | parameter | 32 | +| Parameter 1 of System.DateTime.GetTime | parameter | 32 | +| Parameter 1 of System.DateTime.GetTimePrecise | parameter | 32 | +| Parameter 1 of System.DateTime.TryParse | parameter | 32 | +| Parameter 1 of System.DateTimeFormat.ExpandPredefinedFormat | parameter | 32 | +| Parameter 1 of System.DateTimeOffset.TryParse | parameter | 32 | +| Parameter 1 of System.DateTimeParse.AdjustTimeMark | parameter | 32 | +| Parameter 1 of System.DateTimeParse.CheckDefaultDateTime | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ConfigureFormatOS | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ConfigureFormatR | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ExpandPredefinedFormat | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDateOfDSN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDateOfNDS | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDateOfNNDS | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDateTimeNow | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfMN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfMNN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfNM | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfNN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfNNN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfNNY | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfYM | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfYMN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfYN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDayOfYNN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetDefaultYear | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetHebrewDayOfNM | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetMonthDayOrder | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetTimeOfN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetTimeOfNN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetTimeOfNNN | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetYearMonthDayOrder | parameter | 32 | +| Parameter 1 of System.DateTimeParse.GetYearMonthOrder | parameter | 32 | +| Parameter 1 of System.DateTimeParse.HandleTimeZone | parameter | 32 | +| Parameter 1 of System.DateTimeParse.Lex | parameter | 32 | +| Parameter 1 of System.DateTimeParse.MatchNumberDelegate.Invoke | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseByFormat | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseFormatO | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseFormatR | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseFraction | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseISO8601 | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseSign | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ParseTimeZone | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ProcessDateTimeSuffix | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ProcessHebrewTerminalState | parameter | 32 | +| Parameter 1 of System.DateTimeParse.ProcessTerminalState | parameter | 32 | +| Parameter 1 of System.Decimal..ctor | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.DecAddSub | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.Div96ByConst | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.Div128By96 | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.Unscale | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecCmp | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecCmpSub | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecDiv | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecFromR4 | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecFromR8 | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecMod | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecModFull | parameter | 32 | +| Parameter 1 of System.Decimal.DecCalc.VarDecMul | parameter | 32 | +| Parameter 1 of System.Decimal.Max | parameter | 32 | +| Parameter 1 of System.Decimal.Min | parameter | 32 | +| Parameter 1 of System.Decimal.TryCreate | parameter | 32 | +| Parameter 1 of System.Decimal.TryParse | parameter | 32 | +| Parameter 1 of System.DefaultBinder.ReorderArgumentArray | parameter | 32 | +| Parameter 1 of System.Diagnostics.Debug.Assert | parameter | 32 | +| Parameter 1 of System.Diagnostics.Debug.WriteIf | parameter | 32 | +| Parameter 1 of System.Diagnostics.Debug.WriteLineIf | parameter | 32 | +| Parameter 1 of System.Diagnostics.StackTrace.TryResolveStateMachineMethod | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.CreateActivityPathGuid | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLength | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLengthForTypeV2 | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLengthV2 | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetTypeInfoFromType | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventPipeEventProvider.EventActivityIdControl | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventPipeInternal.EventPipeProviderConfigurationNative.MarshalToNative | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventProvider.EtwEnableCallBack | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventProvider.SessionInfoCallback.EndInvoke | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventProvider.WriteEvent | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventProvider.WriteEventRaw | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.EventSource.SetCurrentThreadActivityId | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.FieldMetadata.Encode | parameter | 32 | +| Parameter 1 of System.Diagnostics.Tracing.Statics.EncodeTags | parameter | 32 | +| Parameter 1 of System.Double.TryCreate | parameter | 32 | +| Parameter 1 of System.Double.TryParse | parameter | 32 | +| Parameter 1 of System.Enum.TryParse | parameter | 32 | +| Parameter 1 of System.Exception.g__Write\|60_0 | parameter | 32 | +| Parameter 1 of System.Exception.GetStackTracesDeepCopy | parameter | 32 | +| Parameter 1 of System.Exception.RestoreDispatchState | parameter | 32 | +| Parameter 1 of System.Globalization.CultureData.GetLocaleName | parameter | 32 | +| Parameter 1 of System.Globalization.CultureData.IsValidCultureName | parameter | 32 | +| Parameter 1 of System.Globalization.CultureData.NormalizeCultureName | parameter | 32 | +| Parameter 1 of System.Globalization.DateTimeFormatInfo.TryParseHebrewNumber | parameter | 32 | +| Parameter 1 of System.Globalization.DateTimeFormatInfo.YearMonthAdjustment | parameter | 32 | +| Parameter 1 of System.Globalization.HebrewNumber.ParseByChar | parameter | 32 | +| Parameter 1 of System.Globalization.JapaneseCalendar.GetJapaneseEraStartDate | parameter | 32 | +| Parameter 1 of System.Globalization.Ordinal.EqualsIgnoreCase | parameter | 32 | +| Parameter 1 of System.Globalization.TextInfo.AddNonLetter | parameter | 32 | +| Parameter 1 of System.Globalization.TextInfo.AddTitlecaseLetter | parameter | 32 | +| Parameter 1 of System.Globalization.TextInfo.ChangeCaseCommon | parameter | 32 | +| Parameter 1 of System.Globalization.TimeSpanParse.StringParser.ParseTime | parameter | 32 | +| Parameter 1 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.ProcessToken | parameter | 32 | +| Parameter 1 of System.Globalization.TimeSpanParse.TryParseTimeSpanConstant | parameter | 32 | +| Parameter 1 of System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri | parameter | 32 | +| Parameter 1 of System.Guid.g__TryCompatParsing\|30_0 | parameter | 32 | +| Parameter 1 of System.Guid.EqualsCore | parameter | 32 | +| Parameter 1 of System.Guid.TryParse | parameter | 32 | +| Parameter 1 of System.Guid.TryParseExactB | parameter | 32 | +| Parameter 1 of System.Guid.TryParseExactD | parameter | 32 | +| Parameter 1 of System.Guid.TryParseExactN | parameter | 32 | +| Parameter 1 of System.Guid.TryParseExactP | parameter | 32 | +| Parameter 1 of System.Guid.TryParseExactX | parameter | 32 | +| Parameter 1 of System.Guid.TryParseGuid | parameter | 32 | +| Parameter 1 of System.Guid.TryParseHex | parameter | 32 | +| Parameter 1 of System.Half.TryCreate | parameter | 32 | +| Parameter 1 of System.Half.TryParse | parameter | 32 | +| Parameter 1 of System.HashCode.Initialize | parameter | 32 | +| Parameter 1 of System.INumber.TryCreate | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.DelegateEnumerator.ShouldIncludeEntry | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.DelegateEnumerator.ShouldRecurseIntoEntry | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.DelegateEnumerator.TransformEntry | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindPredicate.BeginInvoke | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindPredicate.EndInvoke | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindPredicate.Invoke | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindTransform.BeginInvoke | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindTransform.EndInvoke | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindTransform.Invoke | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.b__7_0 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.b__6_0 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.b__8_0 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.b__4_0 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.b__5_0 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.b__3_0 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass3_0.b__1 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass4_0.b__1 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass5_0.b__1 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass6_0.b__1 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass7_0.b__1 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass8_0.b__1 | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.NormalizeInputs | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator.ShouldIncludeEntry | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator.ShouldRecurseIntoEntry | parameter | 32 | +| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator.TransformEntry | parameter | 32 | +| Parameter 1 of System.IO.FileSystem.DirectoryExists | parameter | 32 | +| Parameter 1 of System.IO.FileSystem.FileExists | parameter | 32 | +| Parameter 1 of System.IO.FileSystemInfo.Init | parameter | 32 | +| Parameter 1 of System.IO.MemoryStream.TryGetBuffer | parameter | 32 | +| Parameter 1 of System.IO.StdInReader.MapBufferToConsoleKey | parameter | 32 | +| Parameter 1 of System.IO.StdInReader.ReadKey | parameter | 32 | +| Parameter 1 of System.IO.SyncTextReader.ReadKey | parameter | 32 | +| Parameter 1 of System.IO.UnmanagedMemoryStreamWrapper.TryGetBuffer | parameter | 32 | +| Parameter 1 of System.Int16.TryCreate | parameter | 32 | +| Parameter 1 of System.Int16.TryParse | parameter | 32 | +| Parameter 1 of System.Int32.TryCreate | parameter | 32 | +| Parameter 1 of System.Int32.TryParse | parameter | 32 | +| Parameter 1 of System.Int64.TryCreate | parameter | 32 | +| Parameter 1 of System.Int64.TryParse | parameter | 32 | +| Parameter 1 of System.IntPtr.TryCreate | parameter | 32 | +| Parameter 1 of System.IntPtr.TryParse | parameter | 32 | +| Parameter 1 of System.LocalAppContextSwitches.GetCachedSwitchValue | parameter | 32 | +| Parameter 1 of System.LocalAppContextSwitches.GetCachedSwitchValueInternal | parameter | 32 | +| Parameter 1 of System.Marvin.Block | parameter | 32 | +| Parameter 1 of System.MemoryExtensions.TryWrite | parameter | 32 | +| Parameter 1 of System.ModuleHandle.GetPEKind | parameter | 32 | +| Parameter 1 of System.Net.WebUtility.ConvertSmpToUtf16 | parameter | 32 | +| Parameter 1 of System.Net.WebUtility.GetNextUnicodeScalarValueFromUtf16Surrogate | parameter | 32 | +| Parameter 1 of System.Net.WebUtility.HtmlDecode | parameter | 32 | +| Parameter 1 of System.Net.WebUtility.HtmlEncode | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.Add | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.Compare | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.DivRem | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.DivRem32 | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.HeuristicDivide | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.Multiply | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.Pow2 | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.Pow10 | parameter | 32 | +| Parameter 1 of System.Number.BigInteger.SetValue | parameter | 32 | +| Parameter 1 of System.Number.ConvertBigIntegerToFloatingPointBits | parameter | 32 | +| Parameter 1 of System.Number.DecimalToNumber | parameter | 32 | +| Parameter 1 of System.Number.DiyFp.CreateAndGetBoundaries | parameter | 32 | +| Parameter 1 of System.Number.DiyFp.Multiply | parameter | 32 | +| Parameter 1 of System.Number.DiyFp.Subtract | parameter | 32 | +| Parameter 1 of System.Number.ExtractFractionAndBiasedExponent | parameter | 32 | +| Parameter 1 of System.Number.FormatCurrency | parameter | 32 | +| Parameter 1 of System.Number.FormatFixed | parameter | 32 | +| Parameter 1 of System.Number.FormatGeneral | parameter | 32 | +| Parameter 1 of System.Number.FormatNumber | parameter | 32 | +| Parameter 1 of System.Number.FormatPercent | parameter | 32 | +| Parameter 1 of System.Number.FormatScientific | parameter | 32 | +| Parameter 1 of System.Number.GetFloatingPointMaxDigitsAndPrecision | parameter | 32 | +| Parameter 1 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | +| Parameter 1 of System.Number.Grisu3.TryRunShortest | parameter | 32 | +| Parameter 1 of System.Number.Int32ToNumber | parameter | 32 | +| Parameter 1 of System.Number.Int64ToNumber | parameter | 32 | +| Parameter 1 of System.Number.NumberToDoubleFloatingPointBits | parameter | 32 | +| Parameter 1 of System.Number.NumberToFloatingPointBitsSlow | parameter | 32 | +| Parameter 1 of System.Number.NumberToHalfFloatingPointBits | parameter | 32 | +| Parameter 1 of System.Number.NumberToSingleFloatingPointBits | parameter | 32 | +| Parameter 1 of System.Number.NumberToString | parameter | 32 | +| Parameter 1 of System.Number.NumberToStringFormat | parameter | 32 | +| Parameter 1 of System.Number.ParseFormatSpecifier | parameter | 32 | +| Parameter 1 of System.Number.TryNumberToDecimal | parameter | 32 | +| Parameter 1 of System.Number.TryNumberToInt32 | parameter | 32 | +| Parameter 1 of System.Number.TryNumberToInt64 | parameter | 32 | +| Parameter 1 of System.Number.TryNumberToUInt32 | parameter | 32 | +| Parameter 1 of System.Number.TryNumberToUInt64 | parameter | 32 | +| Parameter 1 of System.Number.UInt32ToNumber | parameter | 32 | +| Parameter 1 of System.Number.UInt64ToNumber | parameter | 32 | +| Parameter 1 of System.Numerics.Matrix3x2.Invert | parameter | 32 | +| Parameter 1 of System.Numerics.Matrix4x4.g__SoftwareFallback\|65_1 | parameter | 32 | +| Parameter 1 of System.Numerics.Matrix4x4.g__SseImpl\|65_0 | parameter | 32 | +| Parameter 1 of System.Numerics.Matrix4x4.Decompose | parameter | 32 | +| Parameter 1 of System.Numerics.Matrix4x4.Invert | parameter | 32 | +| Parameter 1 of System.Numerics.Vector.Widen | parameter | 32 | +| Parameter 1 of System.OrdinalComparer.IsWellKnownOrdinalComparerCore | parameter | 32 | +| Parameter 1 of System.ParseNumbers.EatWhiteSpace | parameter | 32 | +| Parameter 1 of System.ReadOnlyMemory.GetObjectStartLength | parameter | 32 | +| Parameter 1 of System.ReadOnlySpan..ctor | parameter | 32 | +| Parameter 1 of System.Reflection.Binder.ReorderArgumentArray | parameter | 32 | +| Parameter 1 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | +| Parameter 1 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | +| Parameter 1 of System.Reflection.CustomAttribute.ParseAttributeUsageAttribute | parameter | 32 | +| Parameter 1 of System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments | parameter | 32 | +| Parameter 1 of System.Reflection.Emit.DynamicResolver.GetCodeInfo | parameter | 32 | +| Parameter 1 of System.Reflection.Emit.DynamicResolver.GetJitContext | parameter | 32 | +| Parameter 1 of System.Reflection.Emit.MethodBuilder.GetLocalSignature | parameter | 32 | +| Parameter 1 of System.Reflection.Emit.ModuleBuilder.GetPEKind | parameter | 32 | +| Parameter 1 of System.Reflection.Emit.SignatureHelper.InternalGetSignature | parameter | 32 | +| Parameter 1 of System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata | parameter | 32 | +| Parameter 1 of System.Reflection.Metadata.AssemblyExtensions.TryGetRawMetadata | parameter | 32 | +| Parameter 1 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 1 of System.Reflection.MetadataImport.GetScopeProps | parameter | 32 | +| Parameter 1 of System.Reflection.MetadataImport._GetScopeProps | parameter | 32 | +| Parameter 1 of System.Reflection.MethodBase.CheckArguments | parameter | 32 | +| Parameter 1 of System.Reflection.Module.GetPEKind | parameter | 32 | +| Parameter 1 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | +| Parameter 1 of System.Reflection.RuntimeAssembly.InternalLoad | parameter | 32 | +| Parameter 1 of System.Reflection.RuntimeCustomAttributeData.GetCombinedList | parameter | 32 | +| Parameter 1 of System.Reflection.RuntimeModule.GetPEKind | parameter | 32 | +| Parameter 1 of System.Resolver.GetCodeInfo | parameter | 32 | +| Parameter 1 of System.Resolver.GetJitContext | parameter | 32 | +| Parameter 1 of System.Resources.ManifestBasedResourceGroveler.GetNeutralResourcesLanguage | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.GetStateMachineBox | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetNotificationForWaitCompletion | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.Start | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.GetStateMachineBox | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.SetException | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.Start | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.QCallAssembly..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.QCallModule..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.QCallTypeHandle..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.StackCrawlMarkHandle..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.StringHandleOnStack..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.CompilerServices.ValueTaskAwaiter..ctor | parameter | 32 | +| Parameter 1 of System.Runtime.DependentHandle.InternalGetTargetAndDependent | parameter | 32 | +| Parameter 1 of System.Runtime.DependentHandle.UnsafeGetTargetAndDependent | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.EnumObjectParam | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.GetBindOptions | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.GetRunningObjectTable | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.SetBindOptions | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.EnumConnections | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.GetConnectionInterface | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.GetConnectionPointContainer | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.EnumConnectionPoints | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.FindConnectionPoint | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints.Clone | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumConnections.Clone | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumMoniker.Clone | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumString.Clone | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.GetClassID | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.GetSizeMax | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.Hash | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.Inverse | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.IsSystemMoniker | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IPersistFile.GetClassID | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IPersistFile.GetCurFile | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.EnumRunning | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IStream.Clone | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.IStream.Stat | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetContainingTypeLib | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetCustData | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeAttr | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeComp | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeFlags | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeKind | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetContainingTypeLib | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetTypeAttr | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetTypeComp | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetCustData | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetLibAttr | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeComp | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfoOfGuid | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetLibAttr | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeComp | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfoOfGuid | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComWrappers.CallICustomQueryInterface | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ICustomQueryInterface.GetInterface | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.Marshal.QueryInterface | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryGetArray | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryGetString | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryRead | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryWrite | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.Write | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.NativeLibrary.TryLoad | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandle | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler.EndInvoke | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.SafeBuffer.AcquirePointer | parameter | 32 | +| Parameter 1 of System.Runtime.InteropServices.SafeHandle.DangerousAddRef | parameter | 32 | +| Parameter 1 of System.Runtime.Loader.AssemblyLoadContext.StartAssemblyLoad | parameter | 32 | +| Parameter 1 of System.Runtime.MemoryFailPoint.CheckForAvailableMemory | parameter | 32 | +| Parameter 1 of System.Runtime.Serialization.SerializationInfo.ThrowIfDeserializationInProgress | parameter | 32 | +| Parameter 1 of System.RuntimeMethodHandle.InvokeMethod | parameter | 32 | +| Parameter 1 of System.RuntimeType.FilterHelper | parameter | 32 | +| Parameter 1 of System.RuntimeType.GetGUID | parameter | 32 | +| Parameter 1 of System.RuntimeType.RuntimeTypeCache.ConstructName | parameter | 32 | +| Parameter 1 of System.RuntimeType.RuntimeTypeCache.GetMemberCache | parameter | 32 | +| Parameter 1 of System.RuntimeType.RuntimeTypeCache.GetMemberList | parameter | 32 | +| Parameter 1 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.AddSpecialInterface | parameter | 32 | +| Parameter 1 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.Insert | parameter | 32 | +| Parameter 1 of System.RuntimeType.SplitName | parameter | 32 | +| Parameter 1 of System.RuntimeTypeHandle.CopyRuntimeTypeHandles | parameter | 32 | +| Parameter 1 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | +| Parameter 1 of System.SByte.TryCreate | parameter | 32 | +| Parameter 1 of System.SByte.TryParse | parameter | 32 | +| Parameter 1 of System.Security.SecureString.AcquireSpan | parameter | 32 | +| Parameter 1 of System.Single.TryCreate | parameter | 32 | +| Parameter 1 of System.Single.TryParse | parameter | 32 | +| Parameter 1 of System.Span..ctor | parameter | 32 | +| Parameter 1 of System.SpanHelpers.SequenceEqual | parameter | 32 | +| Parameter 1 of System.String.Create | parameter | 32 | +| Parameter 1 of System.String.IndexOfNewlineChar | parameter | 32 | +| Parameter 1 of System.String.MakeSeparatorListVectorized | parameter | 32 | +| Parameter 1 of System.String.TryGetTrailByte | parameter | 32 | +| Parameter 1 of System.StringComparer.IsWellKnownCultureAwareComparer | parameter | 32 | +| Parameter 1 of System.StringComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | +| Parameter 1 of System.StringComparer.IsWellKnownOrdinalComparer | parameter | 32 | +| Parameter 1 of System.StringComparer.IsWellKnownOrdinalComparerCore | parameter | 32 | +| Parameter 1 of System.StubHelpers.HandleMarshaler.ConvertSafeHandleToNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ClearNativeContents | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertContentsToManaged | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertContentsToNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertSpaceToManaged | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertSpaceToNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ClearNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ClearNativeContents | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertContentsToManaged | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertContentsToNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertSpaceToManaged | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertSpaceToNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ClearManaged | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ClearNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ConvertContentsToManaged | parameter | 32 | +| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ConvertContentsToNative | parameter | 32 | +| Parameter 1 of System.StubHelpers.StubHelpers.GetDelegateTarget | parameter | 32 | +| Parameter 1 of System.StubHelpers.StubHelpers.SafeHandleAddRef | parameter | 32 | +| Parameter 1 of System.TermInfo.Database.TryOpen | parameter | 32 | +| Parameter 1 of System.TermInfo.ParameterizedStrings.EvaluateInternal | parameter | 32 | +| Parameter 1 of System.TermInfo.ParameterizedStrings.GetDynamicOrStaticVariables | parameter | 32 | +| Parameter 1 of System.Text.Rune.DecodeFromUtf8 | parameter | 32 | +| Parameter 1 of System.Text.Rune.DecodeFromUtf16 | parameter | 32 | +| Parameter 1 of System.Text.Rune.DecodeLastFromUtf8 | parameter | 32 | +| Parameter 1 of System.Text.Rune.DecodeLastFromUtf16 | parameter | 32 | +| Parameter 1 of System.Text.Rune.TryCreate | parameter | 32 | +| Parameter 1 of System.Text.StringBuilder.Append | parameter | 32 | +| Parameter 1 of System.Text.StringBuilder.AppendLine | parameter | 32 | +| Parameter 1 of System.Text.StringBuilder.ChunkEnumerator.ManyChunkInfo.MoveNext | parameter | 32 | +| Parameter 1 of System.Text.StringBuilder.ReplaceInPlaceAtChunk | parameter | 32 | +| Parameter 1 of System.Text.UnicodeUtility.GetUtf16SurrogatesFromSupplementaryPlaneScalar | parameter | 32 | +| Parameter 1 of System.Threading.EventWaitHandle.OpenExistingWorker | parameter | 32 | +| Parameter 1 of System.Threading.EventWaitHandle.TryOpenExisting | parameter | 32 | +| Parameter 1 of System.Threading.LazyInitializer.EnsureInitialized | parameter | 32 | +| Parameter 1 of System.Threading.LazyInitializer.EnsureInitializedCore | parameter | 32 | +| Parameter 1 of System.Threading.Monitor.Enter | parameter | 32 | +| Parameter 1 of System.Threading.Monitor.ReliableEnter | parameter | 32 | +| Parameter 1 of System.Threading.Monitor.TryEnter | parameter | 32 | +| Parameter 1 of System.Threading.Mutex.OpenExistingWorker | parameter | 32 | +| Parameter 1 of System.Threading.Mutex.TryOpenExisting | parameter | 32 | +| Parameter 1 of System.Threading.OverlappedData.CheckVMForIOPacket | parameter | 32 | +| Parameter 1 of System.Threading.ReaderWriterLockSlim.LazyCreateEvent | parameter | 32 | +| Parameter 1 of System.Threading.Semaphore.OpenExistingWorker | parameter | 32 | +| Parameter 1 of System.Threading.Semaphore.TryOpenExisting | parameter | 32 | +| Parameter 1 of System.Threading.SpinLock.Enter | parameter | 32 | +| Parameter 1 of System.Threading.SpinLock.TryEnter | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.IProducerConsumerQueue.TryDequeue | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.MultiProducerMultiConsumerQueue.TryDequeue | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.SingleProducerSingleConsumerQueue.TryDequeue | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.SingleProducerSingleConsumerQueue.TryDequeueSlow | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.Task.AddToList | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.Task.CreationOptionsFromContinuationOptions | parameter | 32 | +| Parameter 1 of System.Threading.Tasks.Task.ExecuteWithThreadLocal | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetAvailableThreads | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetAvailableThreadsNative | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetMaxThreads | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetMaxThreadsNative | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetMinThreads | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetMinThreadsNative | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPool.GetNextConfigUInt32Value | parameter | 32 | +| Parameter 1 of System.Threading.ThreadPoolWorkQueue.WorkStealingQueue.TrySteal | parameter | 32 | +| Parameter 1 of System.TimeOnly.TryParse | parameter | 32 | +| Parameter 1 of System.TimeSpan.TryParse | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.AdjustmentRule.AdjustDaylightDeltaToExpectedRange | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.GetAlternativeId | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.NormalizeAdjustmentRuleOffset | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.StringSerializer.SerializeSubstitute | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.StringSerializer.SerializeTransitionTime | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParseJulianDay | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParseMDateRule | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixDate | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixDateTime | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixName | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixOffset | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixString | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixTime | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TryConvertIanaIdToWindowsId | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TryConvertWindowsIdToIanaId | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TryGetLocalTzFile | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachineCore | parameter | 32 | +| Parameter 1 of System.TimeZoneInfo.TryLoadTzFile | parameter | 32 | +| Parameter 1 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 1 of System.Type.GetEnumData | parameter | 32 | +| Parameter 1 of System.UInt16.TryCreate | parameter | 32 | +| Parameter 1 of System.UInt16.TryParse | parameter | 32 | +| Parameter 1 of System.UInt32.TryCreate | parameter | 32 | +| Parameter 1 of System.UInt32.TryParse | parameter | 32 | +| Parameter 1 of System.UInt64.TryCreate | parameter | 32 | +| Parameter 1 of System.UInt64.TryParse | parameter | 32 | +| Parameter 1 of System.UIntPtr.TryCreate | parameter | 32 | +| Parameter 1 of System.UIntPtr.TryParse | parameter | 32 | +| Parameter 1 of System.Version.TryParse | parameter | 32 | +| Parameter 1 of System.WeakReference.TryGetTarget | parameter | 32 | +| Parameter 1 of System.__DTString.GetRegularToken | parameter | 32 | +| Parameter 2 of Internal.Runtime.InteropServices.IClassFactory.CreateInstance | parameter | 32 | +| Parameter 2 of Interop.Globalization.GetJapaneseEraStartDate | parameter | 32 | +| Parameter 2 of Interop.Globalization.GetLocaleInfoGroupingSizes | parameter | 32 | +| Parameter 2 of Interop.Globalization.GetLocaleInfoInt | parameter | 32 | +| Parameter 2 of Interop.Kernel32.ReleaseSemaphore | parameter | 32 | +| Parameter 2 of System.Boolean.TryFormat | parameter | 32 | +| Parameter 2 of System.Buffers.Text.ParserHelpers.TryParseThrowFormatException | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormat | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatDateTimeL | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatDateTimeR | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatDecimalE | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatDecimalF | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatDecimalG | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatFloatingPoint | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatInt64Default | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatInt64MultipleDigits | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatUInt32SingleDigit | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatUInt64 | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatUInt64Default | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatUInt64MultipleDigits | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TimeSpanSplitter.ParseComponent | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParse | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseByteD | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseByteN | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseByteX | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeG | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetDefault | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetR | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseGuidCore | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseGuidN | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt16D | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt16N | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt32D | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt32N | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt64D | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt64N | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseNormalAsFloatingPoint | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseNumber | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseSByteD | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseSByteN | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanBigG | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanC | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanFraction | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanLittleG | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt16D | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt16N | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt16X | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt32D | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt32N | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt32X | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt64D | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt64N | parameter | 32 | +| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt64X | parameter | 32 | +| Parameter 2 of System.Byte.TryFormat | parameter | 32 | +| Parameter 2 of System.Byte.TryParse | parameter | 32 | +| Parameter 2 of System.Char.TryFormat | parameter | 32 | +| Parameter 2 of System.Char.TryParse | parameter | 32 | +| Parameter 2 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | +| Parameter 2 of System.Collections.DictionaryEntry.Deconstruct | parameter | 32 | +| Parameter 2 of System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | parameter | 32 | +| Parameter 2 of System.Collections.Generic.Dictionary.Remove | parameter | 32 | +| Parameter 2 of System.Collections.Generic.Dictionary.TryGetValue | parameter | 32 | +| Parameter 2 of System.Collections.Generic.HashSet.AddIfNotPresent | parameter | 32 | +| Parameter 2 of System.Collections.Generic.HashSet.TryGetValue | parameter | 32 | +| Parameter 2 of System.Collections.Generic.IDictionary.TryGetValue | parameter | 32 | +| Parameter 2 of System.Collections.Generic.IReadOnlyDictionary.TryGetValue | parameter | 32 | +| Parameter 2 of System.Collections.Generic.KeyValuePair.Deconstruct | parameter | 32 | +| Parameter 2 of System.ComponentModel.DefaultValueAttribute.ctor>g__TryConvertFromInvariantString\|2_0 | parameter | 32 | +| Parameter 2 of System.ConsolePal.g__BufferUntil\|83_1 | parameter | 32 | +| Parameter 2 of System.Convert.CopyToTempBufferWithoutWhiteSpace | parameter | 32 | +| Parameter 2 of System.Convert.TryDecodeFromUtf16 | parameter | 32 | +| Parameter 2 of System.Convert.TryFromBase64Chars | parameter | 32 | +| Parameter 2 of System.Convert.TryFromBase64String | parameter | 32 | +| Parameter 2 of System.Convert.TryToBase64Chars | parameter | 32 | +| Parameter 2 of System.CultureAwareComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | +| Parameter 2 of System.CurrentSystemTimeZone.GetUtcOffsetFromUniversalTime | parameter | 32 | +| Parameter 2 of System.DateOnly.TryFormat | parameter | 32 | +| Parameter 2 of System.DateOnly.TryParse | parameter | 32 | +| Parameter 2 of System.DateOnly.TryParseExact | parameter | 32 | +| Parameter 2 of System.DateTime.GetDate | parameter | 32 | +| Parameter 2 of System.DateTime.GetTime | parameter | 32 | +| Parameter 2 of System.DateTime.GetTimePrecise | parameter | 32 | +| Parameter 2 of System.DateTime.TryAddTicks | parameter | 32 | +| Parameter 2 of System.DateTime.TryFormat | parameter | 32 | +| Parameter 2 of System.DateTime.TryParse | parameter | 32 | +| Parameter 2 of System.DateTimeFormat.ExpandPredefinedFormat | parameter | 32 | +| Parameter 2 of System.DateTimeFormat.TryFormat | parameter | 32 | +| Parameter 2 of System.DateTimeOffset.TryFormat | parameter | 32 | +| Parameter 2 of System.DateTimeOffset.TryParse | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ConfigureFormatR | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ExpandPredefinedFormat | parameter | 32 | +| Parameter 2 of System.DateTimeParse.GetDayOfMN | parameter | 32 | +| Parameter 2 of System.DateTimeParse.GetDayOfNM | parameter | 32 | +| Parameter 2 of System.DateTimeParse.GetDayOfNN | parameter | 32 | +| Parameter 2 of System.DateTimeParse.Lex | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchAbbreviatedDayName | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchAbbreviatedMonthName | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchAbbreviatedTimeMark | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchDayName | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchEraName | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchHebrewDigits | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchMonthName | parameter | 32 | +| Parameter 2 of System.DateTimeParse.MatchTimeMark | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ParseByFormat | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ParseDigits | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ParseFormatR | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ParseFractionExact | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ParseTimeZoneOffset | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ProcessDateTimeSuffix | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ProcessHebrewTerminalState | parameter | 32 | +| Parameter 2 of System.DateTimeParse.ProcessTerminalState | parameter | 32 | +| Parameter 2 of System.DateTimeParse.TryAdjustYear | parameter | 32 | +| Parameter 2 of System.Decimal.DecCalc.DivByConst | parameter | 32 | +| Parameter 2 of System.Decimal.DecCalc.UInt64x64To128 | parameter | 32 | +| Parameter 2 of System.Decimal.DecCalc.Unscale | parameter | 32 | +| Parameter 2 of System.Decimal.TryFormat | parameter | 32 | +| Parameter 2 of System.Decimal.TryGetBits | parameter | 32 | +| Parameter 2 of System.Decimal.TryParse | parameter | 32 | +| Parameter 2 of System.Diagnostics.Debug.Assert | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.CreateActivityPathGuid | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadata | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForTypeV2 | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataV2 | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLengthForNamedTypeV2 | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventPayload.TryGetValue | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventPipeEventProvider.EventWriteTransfer | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventPipeMetadataGenerator.WriteToBuffer | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventProvider.GetDataFromController | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventProvider.GetSessionInfo | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventProvider.GetSessionInfoCallback | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteEventRaw | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteImpl | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteMultiMerge | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteMultiMergeInner | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteToAllListeners | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.IEventProvider.EventWriteTransfer | parameter | 32 | +| Parameter 2 of System.Diagnostics.Tracing.NoOpEventProvider.EventWriteTransfer | parameter | 32 | +| Parameter 2 of System.Double.TryFormat | parameter | 32 | +| Parameter 2 of System.Double.TryParse | parameter | 32 | +| Parameter 2 of System.Enum.TryParse | parameter | 32 | +| Parameter 2 of System.Exception.GetStackTracesDeepCopy | parameter | 32 | +| Parameter 2 of System.Globalization.CalendarData.CountOccurrences | parameter | 32 | +| Parameter 2 of System.Globalization.CalendarData.NormalizeDayOfWeek | parameter | 32 | +| Parameter 2 of System.Globalization.CharUnicodeInfo.GetUnicodeCategoryInternal | parameter | 32 | +| Parameter 2 of System.Globalization.CultureData.GetIndexOfNextTokenAfterSeconds | parameter | 32 | +| Parameter 2 of System.Globalization.DateTimeFormatInfo.Tokenize | parameter | 32 | +| Parameter 2 of System.Globalization.DateTimeFormatInfo.TryParseHebrewNumber | parameter | 32 | +| Parameter 2 of System.Globalization.DateTimeFormatInfo.YearMonthAdjustment | parameter | 32 | +| Parameter 2 of System.Globalization.EastAsianLunisolarCalendar.TimeToLunar | parameter | 32 | +| Parameter 2 of System.Globalization.GlobalizationMode.TryGetStringValue | parameter | 32 | +| Parameter 2 of System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | parameter | 32 | +| Parameter 2 of System.Globalization.Ordinal.CompareStringIgnoreCase | parameter | 32 | +| Parameter 2 of System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii | parameter | 32 | +| Parameter 2 of System.Globalization.OrdinalCasing.CompareStringIgnoreCase | parameter | 32 | +| Parameter 2 of System.Globalization.SurrogateCasing.ToLower | parameter | 32 | +| Parameter 2 of System.Globalization.SurrogateCasing.ToUpper | parameter | 32 | +| Parameter 2 of System.Globalization.TextInfo.AddTitlecaseLetter | parameter | 32 | +| Parameter 2 of System.Globalization.TextInfo.ChangeCaseCommon | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanFormat.TryFormat | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminalState | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_D | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_DHMSF | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_HM | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_HMS_F_D | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_HM_S_D | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.StringParser.ParseInt | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.StringParser.ParseTime | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.StringParser.TryParse | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.AddNum | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.AddSep | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.ProcessToken | parameter | 32 | +| Parameter 2 of System.Globalization.TimeSpanParse.TryParse | parameter | 32 | +| Parameter 2 of System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri | parameter | 32 | +| Parameter 2 of System.Guid.DecodeByte | parameter | 32 | +| Parameter 2 of System.Guid.TryFormat | parameter | 32 | +| Parameter 2 of System.Guid.TryParse | parameter | 32 | +| Parameter 2 of System.Guid.TryParseExact | parameter | 32 | +| Parameter 2 of System.Guid.TryParseHex | parameter | 32 | +| Parameter 2 of System.Half.TryFormat | parameter | 32 | +| Parameter 2 of System.Half.TryParse | parameter | 32 | +| Parameter 2 of System.HashCode.Initialize | parameter | 32 | +| Parameter 2 of System.HexConverter.TryDecodeFromUtf16 | parameter | 32 | +| Parameter 2 of System.IO.BufferedStream.WriteToBuffer | parameter | 32 | +| Parameter 2 of System.IO.FileStatus.VerifyStatCall | parameter | 32 | +| Parameter 2 of System.IO.FileSystemInfo.Create | parameter | 32 | +| Parameter 2 of System.IO.PathInternal.RemoveRelativeSegments | parameter | 32 | +| Parameter 2 of System.IO.PersistedFiles.TryGetHomeDirectoryFromPasswd | parameter | 32 | +| Parameter 2 of System.IO.StdInReader.GetKeyFromCharValue | parameter | 32 | +| Parameter 2 of System.IO.StdInReader.MapBufferToConsoleKey | parameter | 32 | +| Parameter 2 of System.IO.StreamReader.ReadBuffer | parameter | 32 | +| Parameter 2 of System.IO.UnmanagedMemoryAccessor.Read | parameter | 32 | +| Parameter 2 of System.IO.UnmanagedMemoryAccessor.Write | parameter | 32 | +| Parameter 2 of System.IParseable.TryParse | parameter | 32 | +| Parameter 2 of System.ISpanFormattable.TryFormat | parameter | 32 | +| Parameter 2 of System.ISpanParseable.TryParse | parameter | 32 | +| Parameter 2 of System.Int16.TryFormat | parameter | 32 | +| Parameter 2 of System.Int16.TryParse | parameter | 32 | +| Parameter 2 of System.Int32.TryFormat | parameter | 32 | +| Parameter 2 of System.Int32.TryParse | parameter | 32 | +| Parameter 2 of System.Int64.TryFormat | parameter | 32 | +| Parameter 2 of System.Int64.TryParse | parameter | 32 | +| Parameter 2 of System.IntPtr.TryFormat | parameter | 32 | +| Parameter 2 of System.IntPtr.TryParse | parameter | 32 | +| Parameter 2 of System.Math.g__SoftwareFallback\|47_0 | parameter | 32 | +| Parameter 2 of System.Math.BigMul | parameter | 32 | +| Parameter 2 of System.Math.DivRem | parameter | 32 | +| Parameter 2 of System.MemoryExtensions.Overlaps | parameter | 32 | +| Parameter 2 of System.MemoryExtensions.TryWrite | parameter | 32 | +| Parameter 2 of System.ModuleHandle.GetPEKind | parameter | 32 | +| Parameter 2 of System.Net.WebUtility.ConvertSmpToUtf16 | parameter | 32 | +| Parameter 2 of System.Number.BigInteger.Add | parameter | 32 | +| Parameter 2 of System.Number.BigInteger.AddDivisor | parameter | 32 | +| Parameter 2 of System.Number.BigInteger.DivRem | parameter | 32 | +| Parameter 2 of System.Number.BigInteger.Multiply | parameter | 32 | +| Parameter 2 of System.Number.BigInteger.SubtractDivisor | parameter | 32 | +| Parameter 2 of System.Number.DiyFp.CreateAndGetBoundaries | parameter | 32 | +| Parameter 2 of System.Number.DiyFp.GetBoundaries | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.BiggestPowerTen | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.GetCachedPowerForBinaryExponentRange | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.TryRunDouble | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.TryRunHalf | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.TryRunShortest | parameter | 32 | +| Parameter 2 of System.Number.Grisu3.TryRunSingle | parameter | 32 | +| Parameter 2 of System.Number.TryCopyTo | parameter | 32 | +| Parameter 2 of System.Number.TryParseUInt32HexNumberStyle | parameter | 32 | +| Parameter 2 of System.Number.TryParseUInt64HexNumberStyle | parameter | 32 | +| Parameter 2 of System.Number.TryStringToNumber | parameter | 32 | +| Parameter 2 of System.Numerics.Matrix4x4.Decompose | parameter | 32 | +| Parameter 2 of System.Numerics.Vector.Widen | parameter | 32 | +| Parameter 2 of System.ParseNumbers.GrabInts | parameter | 32 | +| Parameter 2 of System.ParseNumbers.GrabLongs | parameter | 32 | +| Parameter 2 of System.ParseNumbers.IsDigit | parameter | 32 | +| Parameter 2 of System.ReadOnlyMemory.GetObjectStartLength | parameter | 32 | +| Parameter 2 of System.Reflection.AssemblyName.EscapeAsciiChar | parameter | 32 | +| Parameter 2 of System.Reflection.CustomAttribute.AttributeUsageCheck | parameter | 32 | +| Parameter 2 of System.Reflection.CustomAttribute.ParseAttributeUsageAttribute | parameter | 32 | +| Parameter 2 of System.Reflection.CustomAttribute._ParseAttributeUsageAttribute | parameter | 32 | +| Parameter 2 of System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments | parameter | 32 | +| Parameter 2 of System.Reflection.Emit.AssemblyBuilder.InternalDefineDynamicAssembly | parameter | 32 | +| Parameter 2 of System.Reflection.Emit.DynamicResolver.GetCodeInfo | parameter | 32 | +| Parameter 2 of System.Reflection.Emit.DynamicResolver.ResolveToken | parameter | 32 | +| Parameter 2 of System.Reflection.Emit.ModuleBuilder.GetPEKind | parameter | 32 | +| Parameter 2 of System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata | parameter | 32 | +| Parameter 2 of System.Reflection.Metadata.AssemblyExtensions.TryGetRawMetadata | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.EnumCustomAttributes | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.EnumEvents | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.EnumFields | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.EnumNestedTypes | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.EnumParams | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.EnumProperties | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetClassLayout | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetCustomAttributeProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetDefaultValue | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetEventProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetFieldDefProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetGenericParamProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetPInvokeMap | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetParamDefProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport.GetPropertyProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetClassLayout | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetCustomAttributeProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetDefaultValue | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetFieldDefProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetFieldMarshal | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetGenericParamProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetMemberRefProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetPInvokeMap | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetParamDefProps | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetParentToken | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetSigOfFieldDef | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetSigOfMethodDef | parameter | 32 | +| Parameter 2 of System.Reflection.MetadataImport._GetSignatureFromToken | parameter | 32 | +| Parameter 2 of System.Reflection.Module.GetPEKind | parameter | 32 | +| Parameter 2 of System.Reflection.NullabilityInfoContext.ParseNullableState | parameter | 32 | +| Parameter 2 of System.Reflection.PseudoCustomAttribute.GetCustomAttributes | parameter | 32 | +| Parameter 2 of System.Reflection.RuntimeAssembly.GetResource | parameter | 32 | +| Parameter 2 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | +| Parameter 2 of System.Reflection.RuntimeAssembly.InternalLoad | parameter | 32 | +| Parameter 2 of System.Reflection.RuntimeModule.GetPEKind | parameter | 32 | +| Parameter 2 of System.Resolver.GetCodeInfo | parameter | 32 | +| Parameter 2 of System.Resolver.ResolveToken | parameter | 32 | +| Parameter 2 of System.Resources.ResourceManager.AddResourceSet | parameter | 32 | +| Parameter 2 of System.Resources.ResourceReader.AllocateStringForNameIndex | parameter | 32 | +| Parameter 2 of System.Resources.ResourceReader.GetResourceData | parameter | 32 | +| Parameter 2 of System.Resources.ResourceReader.LoadObject | parameter | 32 | +| Parameter 2 of System.Resources.ResourceReader.LoadObjectV2 | parameter | 32 | +| Parameter 2 of System.Resources.ResourceReader._LoadObjectV2 | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.FindEntry | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.TryGetEntry | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.TryGetValueWorker | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.TryGetValue | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.ICastable.IsInstanceOfInterface | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.ICastableHelpers.IsInstanceOfInterface | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrAddDefault | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IBindCtx.GetObjectParam | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.Advise | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.FindConnectionPoint | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IMoniker.CommonPrefixWith | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IMoniker.Enum | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IMoniker.RelativePathTo | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.GetObject | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.GetTimeOfLastChange | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.NoteChangeTime | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.CreateInstance | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetContainingTypeLib | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetCustData | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2 | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncCustData | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncDesc | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetImplTypeCustData | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetImplTypeFlags | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetMops | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetRefTypeInfo | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetRefTypeOfImplType | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarCustData | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarDesc | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarIndexOfMemId | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.CreateInstance | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetContainingTypeLib | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetFuncDesc | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetImplTypeFlags | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetMops | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetRefTypeInfo | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetRefTypeOfImplType | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetVarDesc | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetCustData | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2 | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetLibStatistics | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfo | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfoOfGuid | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfoType | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfo | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfoOfGuid | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfoType | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComWrappers.CallICustomQueryInterface | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.ICustomQueryInterface.GetInterface | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.Marshal.QueryInterface | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.MemoryMarshal.TryGetString | parameter | 32 | +| Parameter 2 of System.Runtime.InteropServices.NativeLibrary.TryGetExport | parameter | 32 | +| Parameter 2 of System.Runtime.Serialization.SerializationInfo.GetElement | parameter | 32 | +| Parameter 2 of System.Runtime.Serialization.SerializationInfo.GetElementNoThrow | parameter | 32 | +| Parameter 2 of System.RuntimeType.FilterHelper | parameter | 32 | +| Parameter 2 of System.RuntimeType.SplitName | parameter | 32 | +| Parameter 2 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | +| Parameter 2 of System.SByte.TryFormat | parameter | 32 | +| Parameter 2 of System.SByte.TryParse | parameter | 32 | +| Parameter 2 of System.Security.SecurityElement.GetUnescapeSequence | parameter | 32 | +| Parameter 2 of System.Single.TryFormat | parameter | 32 | +| Parameter 2 of System.Single.TryParse | parameter | 32 | +| Parameter 2 of System.SpanHelpers.IndexOf | parameter | 32 | +| Parameter 2 of System.SpanHelpers.IndexOfAny | parameter | 32 | +| Parameter 2 of System.SpanHelpers.LastIndexOf | parameter | 32 | +| Parameter 2 of System.SpanHelpers.LastIndexOfAny | parameter | 32 | +| Parameter 2 of System.SpanHelpers.SequenceCompareTo | parameter | 32 | +| Parameter 2 of System.String.Create | parameter | 32 | +| Parameter 2 of System.String.MakeSeparatorList | parameter | 32 | +| Parameter 2 of System.StringComparer.IsWellKnownCultureAwareComparer | parameter | 32 | +| Parameter 2 of System.StringComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | +| Parameter 2 of System.StubHelpers.StubHelpers.FmtClassUpdateNativeInternal | parameter | 32 | +| Parameter 2 of System.TermInfo.ParameterizedStrings.GetDynamicOrStaticVariables | parameter | 32 | +| Parameter 2 of System.Text.ASCIIEncoding.DecodeFirstRune | parameter | 32 | +| Parameter 2 of System.Text.ASCIIEncoding.TryGetByteCount | parameter | 32 | +| Parameter 2 of System.Text.DecoderFallbackBuffer.TryDrainRemainingDataForGetChars | parameter | 32 | +| Parameter 2 of System.Text.DecoderNLS.DrainLeftoverDataForGetCharCount | parameter | 32 | +| Parameter 2 of System.Text.EncoderFallbackBuffer.InternalFallback | parameter | 32 | +| Parameter 2 of System.Text.EncoderFallbackBuffer.InternalFallbackGetByteCount | parameter | 32 | +| Parameter 2 of System.Text.EncoderFallbackBuffer.TryDrainRemainingDataForGetBytes | parameter | 32 | +| Parameter 2 of System.Text.EncoderNLS.DrainLeftoverDataForGetByteCount | parameter | 32 | +| Parameter 2 of System.Text.Encoding.DecodeFirstRune | parameter | 32 | +| Parameter 2 of System.Text.Encoding.TryGetByteCount | parameter | 32 | +| Parameter 2 of System.Text.Latin1Encoding.DecodeFirstRune | parameter | 32 | +| Parameter 2 of System.Text.Latin1Encoding.TryGetByteCount | parameter | 32 | +| Parameter 2 of System.Text.Rune.DecodeFromUtf8 | parameter | 32 | +| Parameter 2 of System.Text.Rune.DecodeFromUtf16 | parameter | 32 | +| Parameter 2 of System.Text.Rune.DecodeLastFromUtf8 | parameter | 32 | +| Parameter 2 of System.Text.Rune.DecodeLastFromUtf16 | parameter | 32 | +| Parameter 2 of System.Text.Rune.TryCreate | parameter | 32 | +| Parameter 2 of System.Text.Rune.TryEncodeToUtf8 | parameter | 32 | +| Parameter 2 of System.Text.Rune.TryEncodeToUtf16 | parameter | 32 | +| Parameter 2 of System.Text.Rune.TryFormat | parameter | 32 | +| Parameter 2 of System.Text.Rune.TryGetRuneAt | parameter | 32 | +| Parameter 2 of System.Text.StringBuilder.Append | parameter | 32 | +| Parameter 2 of System.Text.StringBuilder.AppendLine | parameter | 32 | +| Parameter 2 of System.Text.StringBuilder.ReplaceInPlaceAtChunk | parameter | 32 | +| Parameter 2 of System.Text.UTF8Encoding.DecodeFirstRune | parameter | 32 | +| Parameter 2 of System.Text.UTF8Encoding.TryGetByteCount | parameter | 32 | +| Parameter 2 of System.Text.Unicode.TextSegmentationUtility.DecodeFirstRune.Invoke | parameter | 32 | +| Parameter 2 of System.Text.Unicode.Utf8.FromUtf16 | parameter | 32 | +| Parameter 2 of System.Text.Unicode.Utf8.ToUtf16 | parameter | 32 | +| Parameter 2 of System.Text.Unicode.Utf8Utility.GetPointerToFirstInvalidByte | parameter | 32 | +| Parameter 2 of System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar | parameter | 32 | +| Parameter 2 of System.Text.UnicodeUtility.GetUtf16SurrogatesFromSupplementaryPlaneScalar | parameter | 32 | +| Parameter 2 of System.Text.ValueStringBuilder.TryCopyTo | parameter | 32 | +| Parameter 2 of System.Threading.AsyncLocalValueMap.EmptyAsyncLocalValueMap.TryGetValue | parameter | 32 | +| Parameter 2 of System.Threading.AsyncLocalValueMap.MultiElementAsyncLocalValueMap.TryGetValue | parameter | 32 | +| Parameter 2 of System.Threading.AsyncLocalValueMap.OneElementAsyncLocalValueMap.TryGetValue | parameter | 32 | +| Parameter 2 of System.Threading.AsyncLocalValueMap.ThreeElementAsyncLocalValueMap.TryGetValue | parameter | 32 | +| Parameter 2 of System.Threading.AsyncLocalValueMap.TwoElementAsyncLocalValueMap.TryGetValue | parameter | 32 | +| Parameter 2 of System.Threading.ExecutionContext.RunForThreadPoolUnsafe | parameter | 32 | +| Parameter 2 of System.Threading.IAsyncLocalValueMap.TryGetValue | parameter | 32 | +| Parameter 2 of System.Threading.LazyInitializer.EnsureInitialized | parameter | 32 | +| Parameter 2 of System.Threading.LazyInitializer.EnsureInitializedCore | parameter | 32 | +| Parameter 2 of System.Threading.Monitor.ReliableEnterTimeout | parameter | 32 | +| Parameter 2 of System.Threading.Monitor.TryEnter | parameter | 32 | +| Parameter 2 of System.Threading.OverlappedData.CheckVMForIOPacket | parameter | 32 | +| Parameter 2 of System.Threading.PortableThreadPool.PerformBlockingAdjustment | parameter | 32 | +| Parameter 2 of System.Threading.ReaderWriterLockSlim.WaitOnEvent | parameter | 32 | +| Parameter 2 of System.Threading.SpinLock.ContinueTryEnter | parameter | 32 | +| Parameter 2 of System.Threading.SpinLock.TryEnter | parameter | 32 | +| Parameter 2 of System.Threading.Tasks.SingleProducerSingleConsumerQueue.EnqueueSlow | parameter | 32 | +| Parameter 2 of System.Threading.Tasks.SingleProducerSingleConsumerQueue.TryDequeueSlow | parameter | 32 | +| Parameter 2 of System.Threading.Tasks.Task.CreationOptionsFromContinuationOptions | parameter | 32 | +| Parameter 2 of System.Threading.ThreadPool.GetNextConfigUInt32Value | parameter | 32 | +| Parameter 2 of System.Threading.ThreadPoolWorkQueue.Dequeue | parameter | 32 | +| Parameter 2 of System.TimeOnly.Add | parameter | 32 | +| Parameter 2 of System.TimeOnly.AddHours | parameter | 32 | +| Parameter 2 of System.TimeOnly.AddMinutes | parameter | 32 | +| Parameter 2 of System.TimeOnly.AddTicks | parameter | 32 | +| Parameter 2 of System.TimeOnly.TryFormat | parameter | 32 | +| Parameter 2 of System.TimeOnly.TryParse | parameter | 32 | +| Parameter 2 of System.TimeOnly.TryParseExact | parameter | 32 | +| Parameter 2 of System.TimeSpan.TryFormat | parameter | 32 | +| Parameter 2 of System.TimeSpan.TryParse | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.ConvertUtcToTimeZone | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.GetAdjustmentRuleForAmbiguousOffsets | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.GetAdjustmentRuleForTime | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.GetUtcOffsetFromUtc | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TZif_ParseJulianDay | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TZif_ParseMDateRule | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TZif_ParsePosixDateTime | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryConvertIanaIdToWindowsId | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryConvertWindowsIdToIanaId | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryGetTimeZone | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachineCore | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryGetTimeZoneUsingId | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryLoadTzFile | parameter | 32 | +| Parameter 2 of System.TimeZoneInfo.TryPopulateTimeZoneDisplayNamesFromGlobalizationData | parameter | 32 | +| Parameter 2 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 2 of System.Type.GetEnumData | parameter | 32 | +| Parameter 2 of System.UInt16.TryFormat | parameter | 32 | +| Parameter 2 of System.UInt16.TryParse | parameter | 32 | +| Parameter 2 of System.UInt32.TryFormat | parameter | 32 | +| Parameter 2 of System.UInt32.TryParse | parameter | 32 | +| Parameter 2 of System.UInt64.TryFormat | parameter | 32 | +| Parameter 2 of System.UInt64.TryParse | parameter | 32 | +| Parameter 2 of System.UIntPtr.TryFormat | parameter | 32 | +| Parameter 2 of System.UIntPtr.TryParse | parameter | 32 | +| Parameter 2 of System.Version.TryFormat | parameter | 32 | +| Parameter 2 of System.__DTString.GetRegularToken | parameter | 32 | +| Parameter 2 of System.__DTString.GetSeparatorToken | parameter | 32 | +| Parameter 2 of System.__DTString.MatchLongestWords | parameter | 32 | +| Parameter 3 of Internal.Runtime.InteropServices.IClassFactory.CreateInstance | parameter | 32 | +| Parameter 3 of Interop.Globalization.GetJapaneseEraStartDate | parameter | 32 | +| Parameter 3 of Interop.Globalization.GetLocaleInfoGroupingSizes | parameter | 32 | +| Parameter 3 of Interop.Sys.GetControlCharacters | parameter | 32 | +| Parameter 3 of Interop.Sys.Poll | parameter | 32 | +| Parameter 3 of Interop.Sys.ReadDirR | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Formatter.TryFormatDateTimeG | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Formatter.TryFormatDateTimeO | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Formatter.TryFormatInt64 | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Formatter.TryFormatInt64D | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Formatter.TryFormatInt64N | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Parser.TimeSpanSplitter.ParseComponent | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Parser.TimeSpanSplitter.TrySplitTimeSpan | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Parser.TryParseDateTimeG | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO | parameter | 32 | +| Parameter 3 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetR | parameter | 32 | +| Parameter 3 of System.Byte.TryParse | parameter | 32 | +| Parameter 3 of System.Char.TryParse | parameter | 32 | +| Parameter 3 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | +| Parameter 3 of System.Collections.Hashtable.InitHash | parameter | 32 | +| Parameter 3 of System.ConsolePal.g__AppendToStdInReaderUntil\|83_2 | parameter | 32 | +| Parameter 3 of System.ConsolePal.g__BufferUntil\|83_1 | parameter | 32 | +| Parameter 3 of System.ConsolePal.TryGetSpecialConsoleKey | parameter | 32 | +| Parameter 3 of System.Convert.CopyToTempBufferWithoutWhiteSpace | parameter | 32 | +| Parameter 3 of System.Convert.TryDecodeFromUtf16 | parameter | 32 | +| Parameter 3 of System.DateOnly.TryParse | parameter | 32 | +| Parameter 3 of System.DateOnly.TryParseInternal | parameter | 32 | +| Parameter 3 of System.DateTime.GetDate | parameter | 32 | +| Parameter 3 of System.DateTime.GetTime | parameter | 32 | +| Parameter 3 of System.DateTime.GetTimePrecise | parameter | 32 | +| Parameter 3 of System.DateTime.TryParse | parameter | 32 | +| Parameter 3 of System.DateTimeFormat.TryFormatO | parameter | 32 | +| Parameter 3 of System.DateTimeFormat.TryFormatR | parameter | 32 | +| Parameter 3 of System.DateTimeOffset.TryParse | parameter | 32 | +| Parameter 3 of System.DateTimeParse.CheckNewValue | parameter | 32 | +| Parameter 3 of System.DateTimeParse.ExpandPredefinedFormat | parameter | 32 | +| Parameter 3 of System.DateTimeParse.Lex | parameter | 32 | +| Parameter 3 of System.DateTimeParse.MatchNumberDelegate.Invoke | parameter | 32 | +| Parameter 3 of System.DateTimeParse.Parse | parameter | 32 | +| Parameter 3 of System.DateTimeParse.ParseDigits | parameter | 32 | +| Parameter 3 of System.DateTimeParse.ParseISO8601 | parameter | 32 | +| Parameter 3 of System.DateTimeParse.ProcessHebrewTerminalState | parameter | 32 | +| Parameter 3 of System.DateTimeParse.ProcessTerminalState | parameter | 32 | +| Parameter 3 of System.DateTimeParse.TryParse | parameter | 32 | +| Parameter 3 of System.DateTimeParse.TryParseQuoteString | parameter | 32 | +| Parameter 3 of System.Decimal.DecCalc.DivByConst | parameter | 32 | +| Parameter 3 of System.Decimal.TryParse | parameter | 32 | +| Parameter 3 of System.DefaultBinder.BindToMethod | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForNamedTypeV2 | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventProvider.<>c.b__37_0 | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventProvider.GetDataFromController | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventProvider.SessionInfoCallback.BeginInvoke | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventProvider.SessionInfoCallback.Invoke | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventSource.UpdateDescriptor | parameter | 32 | +| Parameter 3 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | +| Parameter 3 of System.Double.TryParse | parameter | 32 | +| Parameter 3 of System.Enum.TryParse | parameter | 32 | +| Parameter 3 of System.Globalization.CalendarData.EnumCalendarInfo | parameter | 32 | +| Parameter 3 of System.Globalization.CalendarData.EnumDatePatterns | parameter | 32 | +| Parameter 3 of System.Globalization.CalendarData.EnumEraNames | parameter | 32 | +| Parameter 3 of System.Globalization.CalendarData.EnumMonthNames | parameter | 32 | +| Parameter 3 of System.Globalization.CalendarData.GetCalendarInfo | parameter | 32 | +| Parameter 3 of System.Globalization.DateTimeFormatInfo.Tokenize | parameter | 32 | +| Parameter 3 of System.Globalization.DateTimeFormatInfoScanner.ScanRepeatChar | parameter | 32 | +| Parameter 3 of System.Globalization.EastAsianLunisolarCalendar.TimeToLunar | parameter | 32 | +| Parameter 3 of System.Globalization.SurrogateCasing.ToLower | parameter | 32 | +| Parameter 3 of System.Globalization.SurrogateCasing.ToUpper | parameter | 32 | +| Parameter 3 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | +| Parameter 3 of System.Globalization.TimeSpanParse.StringParser.ParseInt | parameter | 32 | +| Parameter 3 of System.Globalization.TimeSpanParse.TryParseByFormat | parameter | 32 | +| Parameter 3 of System.Globalization.TimeSpanParse.TryParseTimeSpan | parameter | 32 | +| Parameter 3 of System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri | parameter | 32 | +| Parameter 3 of System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian | parameter | 32 | +| Parameter 3 of System.Half.TryParse | parameter | 32 | +| Parameter 3 of System.HashCode.Initialize | parameter | 32 | +| Parameter 3 of System.INumber.TryParse | parameter | 32 | +| Parameter 3 of System.IO.BufferedStream.WriteToBuffer | parameter | 32 | +| Parameter 3 of System.IO.Path.TryJoin | parameter | 32 | +| Parameter 3 of System.IO.StdInReader.GetKeyFromCharValue | parameter | 32 | +| Parameter 3 of System.IO.StdInReader.MapBufferToConsoleKey | parameter | 32 | +| Parameter 3 of System.IO.Strategies.Net5CompatFileStreamStrategy.ReadAsyncInternal | parameter | 32 | +| Parameter 3 of System.Int16.TryParse | parameter | 32 | +| Parameter 3 of System.Int32.TryParse | parameter | 32 | +| Parameter 3 of System.Int64.TryParse | parameter | 32 | +| Parameter 3 of System.IntPtr.TryParse | parameter | 32 | +| Parameter 3 of System.MemoryExtensions.TryWrite | parameter | 32 | +| Parameter 3 of System.Number.AccumulateDecimalDigitsIntoBigInteger | parameter | 32 | +| Parameter 3 of System.Number.BigInteger.DivRem | parameter | 32 | +| Parameter 3 of System.Number.DiyFp.GetBoundaries | parameter | 32 | +| Parameter 3 of System.Number.Dragon4Double | parameter | 32 | +| Parameter 3 of System.Number.Dragon4Half | parameter | 32 | +| Parameter 3 of System.Number.Dragon4Single | parameter | 32 | +| Parameter 3 of System.Number.GetFloatingPointMaxDigitsAndPrecision | parameter | 32 | +| Parameter 3 of System.Number.Grisu3.TryDigitGenCounted | parameter | 32 | +| Parameter 3 of System.Number.Grisu3.TryRunCounted | parameter | 32 | +| Parameter 3 of System.Number.TryParseDecimal | parameter | 32 | +| Parameter 3 of System.Number.TryParseDouble | parameter | 32 | +| Parameter 3 of System.Number.TryParseHalf | parameter | 32 | +| Parameter 3 of System.Number.TryParseInt32 | parameter | 32 | +| Parameter 3 of System.Number.TryParseInt32IntegerStyle | parameter | 32 | +| Parameter 3 of System.Number.TryParseInt32Number | parameter | 32 | +| Parameter 3 of System.Number.TryParseInt64 | parameter | 32 | +| Parameter 3 of System.Number.TryParseInt64IntegerStyle | parameter | 32 | +| Parameter 3 of System.Number.TryParseInt64Number | parameter | 32 | +| Parameter 3 of System.Number.TryParseNumber | parameter | 32 | +| Parameter 3 of System.Number.TryParseSingle | parameter | 32 | +| Parameter 3 of System.Number.TryParseUInt32 | parameter | 32 | +| Parameter 3 of System.Number.TryParseUInt32IntegerStyle | parameter | 32 | +| Parameter 3 of System.Number.TryParseUInt32Number | parameter | 32 | +| Parameter 3 of System.Number.TryParseUInt64 | parameter | 32 | +| Parameter 3 of System.Number.TryParseUInt64IntegerStyle | parameter | 32 | +| Parameter 3 of System.Number.TryParseUInt64Number | parameter | 32 | +| Parameter 3 of System.Number.TryUInt32ToDecStr | parameter | 32 | +| Parameter 3 of System.Number.TryUInt64ToDecStr | parameter | 32 | +| Parameter 3 of System.Numerics.Matrix4x4.Decompose | parameter | 32 | +| Parameter 3 of System.ParseNumbers.StringToInt | parameter | 32 | +| Parameter 3 of System.ParseNumbers.StringToLong | parameter | 32 | +| Parameter 3 of System.Reflection.Binder.BindToMethod | parameter | 32 | +| Parameter 3 of System.Reflection.CustomAttribute.CreateCaObject | parameter | 32 | +| Parameter 3 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | +| Parameter 3 of System.Reflection.CustomAttribute.ParseAttributeUsageAttribute | parameter | 32 | +| Parameter 3 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | +| Parameter 3 of System.Reflection.CustomAttribute._ParseAttributeUsageAttribute | parameter | 32 | +| Parameter 3 of System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments | parameter | 32 | +| Parameter 3 of System.Reflection.Emit.AssemblyBuilder..ctor | parameter | 32 | +| Parameter 3 of System.Reflection.Emit.DynamicResolver.GetCodeInfo | parameter | 32 | +| Parameter 3 of System.Reflection.Emit.DynamicResolver.ResolveToken | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.Enum | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetClassLayout | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetCustomAttributeProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetDefaultValue | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetEventProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetFieldOffset | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetPInvokeMap | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetParamDefProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport.GetPropertyProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._Enum | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetClassLayout | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetCustomAttributeProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetDefaultValue | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetEventProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetFieldOffset | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetParamDefProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetPropertyProps | parameter | 32 | +| Parameter 3 of System.Reflection.MetadataImport._GetUserString | parameter | 32 | +| Parameter 3 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | +| Parameter 3 of System.Reflection.RuntimeCustomAttributeData..ctor | parameter | 32 | +| Parameter 3 of System.Reflection.RuntimeParameterInfo.GetParameters | parameter | 32 | +| Parameter 3 of System.Resolver.GetCodeInfo | parameter | 32 | +| Parameter 3 of System.Resolver.ResolveToken | parameter | 32 | +| Parameter 3 of System.Resources.ResourceReader.GetResourceData | parameter | 32 | +| Parameter 3 of System.Resources.RuntimeResourceSet.ReadValue | parameter | 32 | +| Parameter 3 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.TryGetEntry | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToObject | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToStorage | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.ComposeWith | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.GetDisplayName | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.GetTimeOfLastChange | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.Reduce | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeComp.BindType | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.AddressOfMember | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.CreateInstance | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2 | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncCustData | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncIndexOfMemId | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetImplTypeCustData | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetParamCustData | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarCustData | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo.AddressOfMember | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo.CreateInstance | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2 | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComWrappers.ComputeVtables | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.MemoryMarshal.TryGetString | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.NativeLibrary.TryLoad | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler.BeginInvoke | parameter | 32 | +| Parameter 3 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler.Invoke | parameter | 32 | +| Parameter 3 of System.RuntimeType.FilterHelper | parameter | 32 | +| Parameter 3 of System.RuntimeType.GetType | parameter | 32 | +| Parameter 3 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateLiteralFields | parameter | 32 | +| Parameter 3 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateRtFields | parameter | 32 | +| Parameter 3 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | +| Parameter 3 of System.RuntimeTypeHandle.GetTypeByName | parameter | 32 | +| Parameter 3 of System.SByte.TryParse | parameter | 32 | +| Parameter 3 of System.Single.TryParse | parameter | 32 | +| Parameter 3 of System.String.MakeSeparatorList | parameter | 32 | +| Parameter 3 of System.String.TryGetSpan | parameter | 32 | +| Parameter 3 of System.StubHelpers.AnsiCharMarshaler.DoAnsiConversion | parameter | 32 | +| Parameter 3 of System.StubHelpers.VBByValStrMarshaler.ConvertToNative | parameter | 32 | +| Parameter 3 of System.TermInfo.ParameterizedStrings.GetDynamicOrStaticVariables | parameter | 32 | +| Parameter 3 of System.Text.ASCIIEncoding.DecodeFirstRune | parameter | 32 | +| Parameter 3 of System.Text.ASCIIEncoding.EncodeRune | parameter | 32 | +| Parameter 3 of System.Text.DecoderFallbackBuffer.InternalFallback | parameter | 32 | +| Parameter 3 of System.Text.DecoderNLS.DrainLeftoverDataForGetChars | parameter | 32 | +| Parameter 3 of System.Text.EncoderFallbackBuffer.TryInternalFallbackGetBytes | parameter | 32 | +| Parameter 3 of System.Text.EncoderNLS.TryDrainLeftoverDataForGetBytes | parameter | 32 | +| Parameter 3 of System.Text.Encoding.DecodeFirstRune | parameter | 32 | +| Parameter 3 of System.Text.Encoding.EncodeRune | parameter | 32 | +| Parameter 3 of System.Text.Latin1Encoding.DecodeFirstRune | parameter | 32 | +| Parameter 3 of System.Text.Latin1Encoding.EncodeRune | parameter | 32 | +| Parameter 3 of System.Text.StringBuilder.MakeRoom | parameter | 32 | +| Parameter 3 of System.Text.StringBuilder.Remove | parameter | 32 | +| Parameter 3 of System.Text.UTF8Encoding.DecodeFirstRune | parameter | 32 | +| Parameter 3 of System.Text.UTF8Encoding.EncodeRune | parameter | 32 | +| Parameter 3 of System.Text.Unicode.TextSegmentationUtility.DecodeFirstRune.Invoke | parameter | 32 | +| Parameter 3 of System.Text.Unicode.Utf8.FromUtf16 | parameter | 32 | +| Parameter 3 of System.Text.Unicode.Utf8.ToUtf16 | parameter | 32 | +| Parameter 3 of System.Text.Unicode.Utf8Utility.GetPointerToFirstInvalidByte | parameter | 32 | +| Parameter 3 of System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar | parameter | 32 | +| Parameter 3 of System.Threading.Mutex..ctor | parameter | 32 | +| Parameter 3 of System.Threading.Mutex.CreateMutexCore | parameter | 32 | +| Parameter 3 of System.Threading.SpinLock.CompareExchange | parameter | 32 | +| Parameter 3 of System.Threading.SpinLock.ContinueTryEnterWithThreadTracking | parameter | 32 | +| Parameter 3 of System.Threading.Tasks.AwaitTaskContinuation.RunCallback | parameter | 32 | +| Parameter 3 of System.Threading.Tasks.SingleProducerSingleConsumerQueue.TryDequeueSlow | parameter | 32 | +| Parameter 3 of System.Threading.Tasks.Task.AtomicStateUpdate | parameter | 32 | +| Parameter 3 of System.Threading.ThreadPool.GetNextConfigUInt32Value | parameter | 32 | +| Parameter 3 of System.TimeOnly.TryParse | parameter | 32 | +| Parameter 3 of System.TimeOnly.TryParseInternal | parameter | 32 | +| Parameter 3 of System.TimeSpan.TryParseExact | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.GetAdjustmentRuleForTime | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.GetDisplayName | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.GetFullValueForDisplayNameField | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.GetUtcOffsetFromUtc | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TZif_ParseMDateRule | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TZif_ParsePosixDateTime | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TryConvertWindowsIdToIanaId | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TryGetTimeZone | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TryGetTimeZoneUsingId | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.TryPopulateTimeZoneDisplayNamesFromGlobalizationData | parameter | 32 | +| Parameter 3 of System.TimeZoneInfo.ValidateTimeZoneInfo | parameter | 32 | +| Parameter 3 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 3 of System.TypeNameParser.ResolveAssembly | parameter | 32 | +| Parameter 3 of System.UInt16.TryParse | parameter | 32 | +| Parameter 3 of System.UInt32.TryParse | parameter | 32 | +| Parameter 3 of System.UInt64.TryParse | parameter | 32 | +| Parameter 3 of System.UIntPtr.TryParse | parameter | 32 | +| Parameter 3 of System.Version.TryFormat | parameter | 32 | +| Parameter 3 of System.Version.TryParseComponent | parameter | 32 | +| Parameter 3 of System.__DTString.GetSeparatorToken | parameter | 32 | +| Parameter 3 of System.__DTString.MatchSpecifiedWords | parameter | 32 | +| Parameter 4 of Interop.CallStringMethod | parameter | 32 | +| Parameter 4 of System.Buffers.Text.Utf8Formatter.TryFormatUInt64D | parameter | 32 | +| Parameter 4 of System.Buffers.Text.Utf8Formatter.TryFormatUInt64N | parameter | 32 | +| Parameter 4 of System.Buffers.Text.Utf8Formatter.TryFormatUInt64X | parameter | 32 | +| Parameter 4 of System.Buffers.Text.Utf8Parser.TryCreateDateTimeOffset | parameter | 32 | +| Parameter 4 of System.Buffers.Text.Utf8Parser.TryParseAsSpecialFloatingPoint | parameter | 32 | +| Parameter 4 of System.Buffers.Text.Utf8Parser.TryParseNumber | parameter | 32 | +| Parameter 4 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | +| Parameter 4 of System.Collections.Hashtable.InitHash | parameter | 32 | +| Parameter 4 of System.ConsolePal.g__AppendToStdInReaderUntil\|83_2 | parameter | 32 | +| Parameter 4 of System.ConsolePal.g__BufferUntil\|83_1 | parameter | 32 | +| Parameter 4 of System.ConsolePal.g__ReadRowOrCol\|83_3 | parameter | 32 | +| Parameter 4 of System.ConsolePal.TryGetSpecialConsoleKey | parameter | 32 | +| Parameter 4 of System.DateOnly.TryParseExact | parameter | 32 | +| Parameter 4 of System.DateOnly.TryParseExactInternal | parameter | 32 | +| Parameter 4 of System.DateTime.GetTime | parameter | 32 | +| Parameter 4 of System.DateTime.GetTimePrecise | parameter | 32 | +| Parameter 4 of System.DateTime.TryParseExact | parameter | 32 | +| Parameter 4 of System.DateTimeOffset.TryParseExact | parameter | 32 | +| Parameter 4 of System.DateTimeParse.DoStrictParse | parameter | 32 | +| Parameter 4 of System.DateTimeParse.Lex | parameter | 32 | +| Parameter 4 of System.DateTimeParse.ParseByFormat | parameter | 32 | +| Parameter 4 of System.DateTimeParse.ParseExact | parameter | 32 | +| Parameter 4 of System.DateTimeParse.ParseExactMultiple | parameter | 32 | +| Parameter 4 of System.DateTimeParse.TryParse | parameter | 32 | +| Parameter 4 of System.DateTimeParse.TryParseExact | parameter | 32 | +| Parameter 4 of System.DateTimeParse.TryParseExactMultiple | parameter | 32 | +| Parameter 4 of System.Diagnostics.Debug.AssertInterpolatedStringHandler..ctor | parameter | 32 | +| Parameter 4 of System.Diagnostics.Debug.WriteIfInterpolatedStringHandler..ctor | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.ActivityTracker.OnStart | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.ActivityTracker.OnStop | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.EventPipeEventProvider.EventRegister | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.EventProvider.GetDataFromController | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.EventSource.UpdateDescriptor | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.IEventProvider.EventRegister | parameter | 32 | +| Parameter 4 of System.Diagnostics.Tracing.NoOpEventProvider.EventRegister | parameter | 32 | +| Parameter 4 of System.Enum.TryParse | parameter | 32 | +| Parameter 4 of System.Enum.TryParseByName | parameter | 32 | +| Parameter 4 of System.Enum.TryParseInt64Enum | parameter | 32 | +| Parameter 4 of System.Enum.TryParseRareEnum | parameter | 32 | +| Parameter 4 of System.Enum.TryParseUInt64Enum | parameter | 32 | +| Parameter 4 of System.Globalization.CalendarData.EnumMonthNames | parameter | 32 | +| Parameter 4 of System.Globalization.CompareInfo.IndexOf | parameter | 32 | +| Parameter 4 of System.Globalization.CompareInfo.IsPrefix | parameter | 32 | +| Parameter 4 of System.Globalization.CompareInfo.IsSuffix | parameter | 32 | +| Parameter 4 of System.Globalization.CompareInfo.LastIndexOf | parameter | 32 | +| Parameter 4 of System.Globalization.DateTimeFormatInfo.Tokenize | parameter | 32 | +| Parameter 4 of System.Globalization.EastAsianLunisolarCalendar.GregorianToLunar | parameter | 32 | +| Parameter 4 of System.Globalization.EastAsianLunisolarCalendar.LunarToGregorian | parameter | 32 | +| Parameter 4 of System.Globalization.EastAsianLunisolarCalendar.TimeToLunar | parameter | 32 | +| Parameter 4 of System.Globalization.TimeSpanFormat.TryFormatStandard | parameter | 32 | +| Parameter 4 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | +| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExact | parameter | 32 | +| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExactMultiple | parameter | 32 | +| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExactMultipleTimeSpan | parameter | 32 | +| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExactTimeSpan | parameter | 32 | +| Parameter 4 of System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian | parameter | 32 | +| Parameter 4 of System.IO.BufferedStream.ReadFromBuffer | parameter | 32 | +| Parameter 4 of System.IO.Path.TryJoin | parameter | 32 | +| Parameter 4 of System.IO.StdInReader.MapBufferToConsoleKey | parameter | 32 | +| Parameter 4 of System.MemoryExtensions.TryWriteInterpolatedStringHandler..ctor | parameter | 32 | +| Parameter 4 of System.Number.g__TryFormatInt64Slow\|45_0 | parameter | 32 | +| Parameter 4 of System.Number.g__TryFormatUInt32Slow\|43_0 | parameter | 32 | +| Parameter 4 of System.Number.g__TryFormatUInt64Slow\|47_0 | parameter | 32 | +| Parameter 4 of System.Number.Grisu3.TryDigitGenCounted | parameter | 32 | +| Parameter 4 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | +| Parameter 4 of System.Number.Grisu3.TryRunCounted | parameter | 32 | +| Parameter 4 of System.Number.Grisu3.TryRunShortest | parameter | 32 | +| Parameter 4 of System.Number.TryFormatDecimal | parameter | 32 | +| Parameter 4 of System.Number.TryFormatDouble | parameter | 32 | +| Parameter 4 of System.Number.TryFormatHalf | parameter | 32 | +| Parameter 4 of System.Number.TryFormatInt64 | parameter | 32 | +| Parameter 4 of System.Number.TryFormatSingle | parameter | 32 | +| Parameter 4 of System.Number.TryFormatUInt32 | parameter | 32 | +| Parameter 4 of System.Number.TryFormatUInt64 | parameter | 32 | +| Parameter 4 of System.Number.TryInt32ToHexStr | parameter | 32 | +| Parameter 4 of System.Number.TryInt64ToHexStr | parameter | 32 | +| Parameter 4 of System.Number.TryNegativeInt32ToDecStr | parameter | 32 | +| Parameter 4 of System.Number.TryNegativeInt64ToDecStr | parameter | 32 | +| Parameter 4 of System.Reflection.AssemblyName.EscapeString | parameter | 32 | +| Parameter 4 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 4 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | +| Parameter 4 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | +| Parameter 4 of System.Reflection.CustomAttribute._ParseAttributeUsageAttribute | parameter | 32 | +| Parameter 4 of System.Reflection.Emit.DynamicResolver.ResolveToken | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport.GetDefaultValue | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport.GetPInvokeMap | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport.GetPropertyProps | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport._GetDefaultValue | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 4 of System.Reflection.MetadataImport._GetPropertyProps | parameter | 32 | +| Parameter 4 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | +| Parameter 4 of System.Reflection.RuntimeEventInfo..ctor | parameter | 32 | +| Parameter 4 of System.Reflection.RuntimePropertyInfo..ctor | parameter | 32 | +| Parameter 4 of System.Resolver.ResolveToken | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToObject | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToStorage | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.ParseDisplayName | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.Reduce | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeComp.Bind | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeComp.BindType | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2 | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetNames | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetParamCustData | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.Invoke | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetNames | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo.Invoke | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2 | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComWrappers.CallComputeVtables | parameter | 32 | +| Parameter 4 of System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal | parameter | 32 | +| Parameter 4 of System.RuntimeFieldHandle.GetValue | parameter | 32 | +| Parameter 4 of System.RuntimeType.FilterHelper | parameter | 32 | +| Parameter 4 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateEvents | parameter | 32 | +| Parameter 4 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | +| Parameter 4 of System.TermInfo.ParameterizedStrings.EvaluateInternal | parameter | 32 | +| Parameter 4 of System.Text.ASCIIEncoding.GetByteCountFast | parameter | 32 | +| Parameter 4 of System.Text.ASCIIEncoding.GetCharCountFast | parameter | 32 | +| Parameter 4 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 4 of System.Text.DecoderFallbackBuffer.TryInternalFallbackGetChars | parameter | 32 | +| Parameter 4 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 4 of System.Text.EncoderFallbackBuffer.TryInternalFallbackGetBytes | parameter | 32 | +| Parameter 4 of System.Text.EncoderNLS.TryDrainLeftoverDataForGetBytes | parameter | 32 | +| Parameter 4 of System.Text.Encoding.GetByteCountFast | parameter | 32 | +| Parameter 4 of System.Text.Encoding.GetCharCountFast | parameter | 32 | +| Parameter 4 of System.Text.Latin1Encoding.GetByteCountFast | parameter | 32 | +| Parameter 4 of System.Text.Latin1Encoding.GetCharCountFast | parameter | 32 | +| Parameter 4 of System.Text.StringBuilder.MakeRoom | parameter | 32 | +| Parameter 4 of System.Text.StringBuilder.Remove | parameter | 32 | +| Parameter 4 of System.Text.UTF8Encoding.GetByteCountFast | parameter | 32 | +| Parameter 4 of System.Text.UTF8Encoding.GetCharCountFast | parameter | 32 | +| Parameter 4 of System.Text.Unicode.Utf8Utility.TranscodeToUtf8 | parameter | 32 | +| Parameter 4 of System.Text.Unicode.Utf8Utility.TranscodeToUtf16 | parameter | 32 | +| Parameter 4 of System.Threading.EventWaitHandle..ctor | parameter | 32 | +| Parameter 4 of System.Threading.EventWaitHandle.CreateEventCore | parameter | 32 | +| Parameter 4 of System.Threading.Semaphore..ctor | parameter | 32 | +| Parameter 4 of System.Threading.Semaphore.CreateSemaphoreCore | parameter | 32 | +| Parameter 4 of System.TimeOnly.TryParseExact | parameter | 32 | +| Parameter 4 of System.TimeOnly.TryParseExactInternal | parameter | 32 | +| Parameter 4 of System.TimeSpan.TryParseExact | parameter | 32 | +| Parameter 4 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 4 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 4 of System.TimeZoneInfo.TryPopulateTimeZoneDisplayNamesFromGlobalizationData | parameter | 32 | +| Parameter 4 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 5 of System.Buffers.Text.Utf8Parser.TryParseAsSpecialFloatingPoint | parameter | 32 | +| Parameter 5 of System.DateTimeParse.Lex | parameter | 32 | +| Parameter 5 of System.DateTimeParse.TryParseExact | parameter | 32 | +| Parameter 5 of System.DateTimeParse.TryParseExactMultiple | parameter | 32 | +| Parameter 5 of System.Diagnostics.Tracing.ActivityTracker.OnStart | parameter | 32 | +| Parameter 5 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | +| Parameter 5 of System.Globalization.EastAsianLunisolarCalendar.GregorianToLunar | parameter | 32 | +| Parameter 5 of System.Globalization.EastAsianLunisolarCalendar.LunarToGregorian | parameter | 32 | +| Parameter 5 of System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian | parameter | 32 | +| Parameter 5 of System.IO.StdInReader.MapBufferToConsoleKey | parameter | 32 | +| Parameter 5 of System.MemoryExtensions.TryWriteInterpolatedStringHandler..ctor | parameter | 32 | +| Parameter 5 of System.Number.g__TryFormatInt32Slow\|41_0 | parameter | 32 | +| Parameter 5 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | +| Parameter 5 of System.Number.Grisu3.TryRoundWeedCounted | parameter | 32 | +| Parameter 5 of System.Number.Grisu3.TryRunShortest | parameter | 32 | +| Parameter 5 of System.Number.TryFormatInt32 | parameter | 32 | +| Parameter 5 of System.Reflection.AssemblyName.EnsureDestinationSize | parameter | 32 | +| Parameter 5 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 5 of System.Reflection.CustomAttribute.CreateCaObject | parameter | 32 | +| Parameter 5 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | +| Parameter 5 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | +| Parameter 5 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 5 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.IMoniker.ParseDisplayName | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeComp.Bind | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib2.FindName | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib.FindName | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | +| Parameter 5 of System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal | parameter | 32 | +| Parameter 5 of System.RuntimeType.FilterHelper | parameter | 32 | +| Parameter 5 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateProperties | parameter | 32 | +| Parameter 5 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateRtFields | parameter | 32 | +| Parameter 5 of System.TermInfo.ParameterizedStrings.EvaluateInternal | parameter | 32 | +| Parameter 5 of System.Text.ASCIIEncoding.GetBytesFast | parameter | 32 | +| Parameter 5 of System.Text.ASCIIEncoding.GetCharsFast | parameter | 32 | +| Parameter 5 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 5 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 5 of System.Text.Encoding.GetBytesFast | parameter | 32 | +| Parameter 5 of System.Text.Encoding.GetCharsFast | parameter | 32 | +| Parameter 5 of System.Text.Latin1Encoding.GetBytesFast | parameter | 32 | +| Parameter 5 of System.Text.Latin1Encoding.GetCharsFast | parameter | 32 | +| Parameter 5 of System.Text.UTF8Encoding.GetBytesFast | parameter | 32 | +| Parameter 5 of System.Text.UTF8Encoding.GetCharsFast | parameter | 32 | +| Parameter 5 of System.Text.Unicode.Utf8Utility.TranscodeToUtf8 | parameter | 32 | +| Parameter 5 of System.Text.Unicode.Utf8Utility.TranscodeToUtf16 | parameter | 32 | +| Parameter 5 of System.TimeZoneInfo.GetIsDaylightSavingsFromUtc | parameter | 32 | +| Parameter 5 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 5 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 5 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 5 of System.TypeNameParser.ConstructType | parameter | 32 | +| Parameter 5 of System.TypeNameParser.GetType | parameter | 32 | +| Parameter 5 of System.TypeNameParser.ResolveType | parameter | 32 | +| Parameter 6 of System.Buffers.Text.Utf8Parser.TryCreateTimeSpan | parameter | 32 | +| Parameter 6 of System.Enum.TryParseUInt32Enum | parameter | 32 | +| Parameter 6 of System.Globalization.EastAsianLunisolarCalendar.GregorianToLunar | parameter | 32 | +| Parameter 6 of System.Globalization.EastAsianLunisolarCalendar.LunarToGregorian | parameter | 32 | +| Parameter 6 of System.Globalization.TimeSpanParse.TryTimeToTicks | parameter | 32 | +| Parameter 6 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 6 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | +| Parameter 6 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | +| Parameter 6 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | +| Parameter 6 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 6 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 6 of System.Runtime.InteropServices.ComTypes.ITypeComp.Bind | parameter | 32 | +| Parameter 6 of System.RuntimeFieldHandle.SetValue | parameter | 32 | +| Parameter 6 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 6 of System.Text.DecoderNLS.Convert | parameter | 32 | +| Parameter 6 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 6 of System.Text.EncoderNLS.Convert | parameter | 32 | +| Parameter 6 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 6 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 6 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 7 of System.Buffers.Text.Utf8Parser.TryCreateDateTimeOffsetInterpretingDataAsLocalTime | parameter | 32 | +| Parameter 7 of System.DateTime.TryCreate | parameter | 32 | +| Parameter 7 of System.DefaultBinder.BindToMethod | parameter | 32 | +| Parameter 7 of System.Enum.TryParseInt32Enum | parameter | 32 | +| Parameter 7 of System.Number.Dragon4 | parameter | 32 | +| Parameter 7 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 7 of System.Reflection.Binder.BindToMethod | parameter | 32 | +| Parameter 7 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | +| Parameter 7 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 7 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 7 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.Invoke | parameter | 32 | +| Parameter 7 of System.Runtime.InteropServices.ComTypes.ITypeInfo.Invoke | parameter | 32 | +| Parameter 7 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 7 of System.Text.DecoderNLS.Convert | parameter | 32 | +| Parameter 7 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 7 of System.Text.EncoderNLS.Convert | parameter | 32 | +| Parameter 7 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 7 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 7 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 8 of System.Activator.CreateInstanceInternal | parameter | 32 | +| Parameter 8 of System.Buffers.Text.Utf8Parser.TryCreateDateTime | parameter | 32 | +| Parameter 8 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 8 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | +| Parameter 8 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 8 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 8 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 8 of System.Text.DecoderNLS.Convert | parameter | 32 | +| Parameter 8 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 8 of System.Text.EncoderNLS.Convert | parameter | 32 | +| Parameter 8 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | +| Parameter 8 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | +| Parameter 8 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 9 of System.Globalization.Calendar.TryToDateTime | parameter | 32 | +| Parameter 9 of System.Globalization.GregorianCalendar.TryToDateTime | parameter | 32 | +| Parameter 9 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 9 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | +| Parameter 9 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | +| Parameter 9 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 9 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 9 of System.Text.DecoderNLS.Convert | parameter | 32 | +| Parameter 9 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 9 of System.Text.EncoderNLS.Convert | parameter | 32 | +| Parameter 9 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 10 of System.Buffers.Text.Utf8Parser.TryCreateDateTimeOffset | parameter | 32 | +| Parameter 10 of System.Diagnostics.StackFrameHelper.GetSourceLineInfoDelegate.Invoke | parameter | 32 | +| Parameter 10 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 10 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | +| Parameter 10 of System.Text.Decoder.Convert | parameter | 32 | +| Parameter 10 of System.Text.DecoderNLS.Convert | parameter | 32 | +| Parameter 10 of System.Text.Encoder.Convert | parameter | 32 | +| Parameter 10 of System.Text.EncoderNLS.Convert | parameter | 32 | +| Parameter 10 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 11 of System.Diagnostics.StackFrameHelper.GetSourceLineInfoDelegate.Invoke | parameter | 32 | +| Parameter 11 of System.Reflection.Associates.AssignAssociates | parameter | 32 | +| Parameter 11 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 12 of System.Diagnostics.StackFrameHelper.GetSourceLineInfoDelegate.Invoke | parameter | 32 | +| Parameter 12 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 13 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 14 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 15 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 16 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 17 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 18 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 19 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 20 of System.TupleExtensions.Deconstruct | parameter | 32 | +| Parameter 21 of System.TupleExtensions.Deconstruct | parameter | 32 | +| System.ByReference.Value | property | 32 | +| System.ByReference.get_Value | method | 32 | +| System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | method | 32 | +| System.Collections.Generic.Dictionary.FindValue | method | 32 | +| System.Collections.Generic.Dictionary.GetBucket | method | 32 | +| System.Collections.Generic.HashSet.GetBucketRef | method | 32 | +| System.Decimal.AsMutable | method | 32 | +| System.Decimal.Max | method | 32 | +| System.Decimal.Min | method | 32 | +| System.Diagnostics.Tracing.EventWrittenEventArgs.Metadata | property | 32 | +| System.Diagnostics.Tracing.EventWrittenEventArgs.get_Metadata | method | 32 | +| System.ReadOnlySpan.Enumerator.Current | property | 32 | +| System.ReadOnlySpan.Enumerator.get_Current | method | 32 | +| System.ReadOnlySpan.GetPinnableReference | method | 32 | +| System.ReadOnlySpan.Item | property | 32 | +| System.ReadOnlySpan.get_Item | method | 32 | +| System.Runtime.CompilerServices.CastHelpers.Element | method | 32 | +| System.Runtime.CompilerServices.CastHelpers.LdelemaRef | method | 32 | +| System.Runtime.CompilerServices.CastHelpers.TableData | method | 32 | +| System.Runtime.CompilerServices.CastHelpers.ThrowArrayMismatchException | method | 32 | +| System.Runtime.CompilerServices.CastHelpers.Unbox | method | 32 | +| System.Runtime.CompilerServices.CastHelpers.Unbox_Helper | method | 32 | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.StateMachineBox.PerCoreCacheSlot | property | 32 | +| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.StateMachineBox.get_PerCoreCacheSlot | method | 32 | +| System.Runtime.CompilerServices.RuntimeHelpers.GetMultiDimensionalArrayBounds | method | 32 | +| System.Runtime.CompilerServices.RuntimeHelpers.GetRawData | method | 32 | +| System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrAddDefault | method | 32 | +| System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrNullRef | method | 32 | +| System.Runtime.InteropServices.MemoryMarshal.AsRef | method | 32 | +| System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference | method | 32 | +| System.Runtime.InteropServices.MemoryMarshal.GetNonNullPinnableReference | method | 32 | +| System.Runtime.InteropServices.MemoryMarshal.GetReference | method | 32 | +| System.Span.Enumerator.Current | property | 32 | +| System.Span.Enumerator.get_Current | method | 32 | +| System.Span.GetPinnableReference | method | 32 | +| System.Span.Item | property | 32 | +| System.Span.get_Item | method | 32 | +| System.SpanHelpers.Add | method | 32 | +| System.String.GetPinnableReference | method | 32 | +| System.String.GetRawStringData | method | 32 | +| System.Text.ValueStringBuilder.GetPinnableReference | method | 32 | +| System.Text.ValueStringBuilder.Item | property | 32 | +| System.Text.ValueStringBuilder.get_Item | method | 32 | +| System.Threading.OverlappedData.EventHandle | property | 32 | +| System.Threading.OverlappedData.OffsetHigh | property | 32 | +| System.Threading.OverlappedData.OffsetLow | property | 32 | +| System.Threading.OverlappedData.get_EventHandle | method | 32 | +| System.Threading.OverlappedData.get_OffsetHigh | method | 32 | +| System.Threading.OverlappedData.get_OffsetLow | method | 32 | diff --git a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql b/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql index e35b46f673d..78dab812d72 100644 --- a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql +++ b/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql @@ -1,31 +1,59 @@ import cil import semmle.code.cil.Type -private string elementType(Element e) { - e instanceof Method and result = "method" +private string elementType(Element e, string toString) { + toString = e.(Method).getQualifiedName() and result = "method" or - e instanceof Property and result = "property" + toString = e.(Property).getQualifiedName() and result = "property" or - e instanceof Parameter and result = "parameter" + e = + any(Parameter p | + toString = "Parameter " + p.getIndex() + " of " + p.getDeclaringElement().getQualifiedName() + ) and + result = "parameter" or - e instanceof LocalVariable and result = "local" + e = + any(LocalVariable v | + toString = + "Local variable " + v.getIndex() + " of method " + + v.getImplementation().getMethod().getQualifiedName() + ) and + result = "local" or - e instanceof FunctionPointerType and result = "fnptr" + toString = e.(FunctionPointerType).getQualifiedName() and result = "fnptr" or not e instanceof Method and not e instanceof Property and not e instanceof Parameter and not e instanceof LocalVariable and not e instanceof FunctionPointerType and - result = "other" + result = "other" and + toString = e.toString() } -from Element e, int i +private predicate exclude(string s) { + s in [ + "Parameter 0 of Interop.libobjc.NSOperatingSystemVersion_objc_msgSend_stret", + "Parameter 1 of Interop.procfs.TryParseStatusFile", + "Parameter 1 of Interop.procfs.TryReadFile", + "Parameter 1 of Interop.procfs.TryReadStatusFile", + "Parameter 1 of System.CLRConfig.GetBoolValue", + "Parameter 1 of System.CLRConfig.GetConfigBoolValue", + "Parameter 1 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandleInternal", + "Parameter 2 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandleInternal", + "Parameter 2 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.InvokeUnhandledExceptionPropagation", + ] +} + +from Element e, int i, string toString, string type where cil_type_annotation(e, i) and + type = elementType(e, toString) and + not exclude(toString) and ( - not e instanceof Parameter or + not e instanceof Parameter + or e.(Parameter).getDeclaringElement().(Method).getDeclaringType().getQualifiedName() != "System.Environment" // There are OS specific methods in this class ) -select e.toString(), elementType(e), i +select toString, type, i diff --git a/csharp/ql/test/library-tests/commons/TargetFramework/HasElement.expected b/csharp/ql/test/library-tests/commons/TargetFramework/HasElement.expected index acb05296f84..3eb32adbc73 100644 --- a/csharp/ql/test/library-tests/commons/TargetFramework/HasElement.expected +++ b/csharp/ql/test/library-tests/commons/TargetFramework/HasElement.expected @@ -1,2 +1,2 @@ -| NetFramework4.6.1.cs:7:7:7:8 | C1 | NetFramework4.6.1.cs:5:12:5:69 | [TargetFramework(...)] | -| NetFramework4.6.1.cs:11:7:11:8 | C2 | NetFramework4.6.1.cs:5:12:5:69 | [TargetFramework(...)] | +| NetFramework4.6.1.cs:7:7:7:8 | C1 | NetFramework4.6.1.cs:5:12:5:69 | [assembly: TargetFramework(...)] | +| NetFramework4.6.1.cs:11:7:11:8 | C2 | NetFramework4.6.1.cs:5:12:5:69 | [assembly: TargetFramework(...)] | diff --git a/csharp/ql/test/library-tests/commons/TargetFramework/NetCore.expected b/csharp/ql/test/library-tests/commons/TargetFramework/NetCore.expected index 262bcfef6e3..375d99dde22 100644 --- a/csharp/ql/test/library-tests/commons/TargetFramework/NetCore.expected +++ b/csharp/ql/test/library-tests/commons/TargetFramework/NetCore.expected @@ -1 +1 @@ -| NetCore2.0.cs:5:12:5:26 | [TargetFramework(...)] | +| NetCore2.0.cs:5:12:5:26 | [assembly: TargetFramework(...)] | diff --git a/csharp/ql/test/library-tests/commons/TargetFramework/NetFramework.expected b/csharp/ql/test/library-tests/commons/TargetFramework/NetFramework.expected index 37c79edf484..86291625dee 100644 --- a/csharp/ql/test/library-tests/commons/TargetFramework/NetFramework.expected +++ b/csharp/ql/test/library-tests/commons/TargetFramework/NetFramework.expected @@ -1,2 +1,2 @@ -| NetFramework4.6.1.cs:5:12:5:69 | [TargetFramework(...)] | -| NetFramework4.6.cs:5:12:5:35 | [TargetFramework(...)] | +| NetFramework4.6.1.cs:5:12:5:69 | [assembly: TargetFramework(...)] | +| NetFramework4.6.cs:5:12:5:35 | [assembly: TargetFramework(...)] | diff --git a/csharp/ql/test/library-tests/commons/TargetFramework/NetStandard.expected b/csharp/ql/test/library-tests/commons/TargetFramework/NetStandard.expected index 0adb090a2ce..002c8671892 100644 --- a/csharp/ql/test/library-tests/commons/TargetFramework/NetStandard.expected +++ b/csharp/ql/test/library-tests/commons/TargetFramework/NetStandard.expected @@ -1 +1 @@ -| NetStandard1.3.cs:5:12:5:26 | [TargetFramework(...)] | +| NetStandard1.3.cs:5:12:5:26 | [assembly: TargetFramework(...)] | diff --git a/csharp/ql/test/library-tests/commons/TargetFramework/TargetFrameworks.expected b/csharp/ql/test/library-tests/commons/TargetFramework/TargetFrameworks.expected index 18db82ef118..6858b7a7560 100644 --- a/csharp/ql/test/library-tests/commons/TargetFramework/TargetFrameworks.expected +++ b/csharp/ql/test/library-tests/commons/TargetFramework/TargetFrameworks.expected @@ -1,4 +1,4 @@ -| NetCore2.0.cs:5:12:5:26 | [TargetFramework(...)] | .NETCoreApp | 2.0 | -| NetFramework4.6.1.cs:5:12:5:69 | [TargetFramework(...)] | .NETFramework | 4.6.1 | -| NetFramework4.6.cs:5:12:5:35 | [TargetFramework(...)] | .NETFramework | 4.6 | -| NetStandard1.3.cs:5:12:5:26 | [TargetFramework(...)] | .NETStandard | 1.3 | +| NetCore2.0.cs:5:12:5:26 | [assembly: TargetFramework(...)] | .NETCoreApp | 2.0 | +| NetFramework4.6.1.cs:5:12:5:69 | [assembly: TargetFramework(...)] | .NETFramework | 4.6.1 | +| NetFramework4.6.cs:5:12:5:35 | [assembly: TargetFramework(...)] | .NETFramework | 4.6 | +| NetStandard1.3.cs:5:12:5:26 | [assembly: TargetFramework(...)] | .NETStandard | 1.3 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index a0c047e38cc..acabdc1835a 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -1187,8 +1187,8 @@ Assert.cs: #-----| -> access to local variable s # 24| access to local variable s -#-----| null -> [assertion failure] call to method IsNotNull #-----| non-null -> [assertion success] call to method IsNotNull +#-----| null -> [assertion failure] call to method IsNotNull # 25| call to method WriteLine #-----| -> exit M3 (normal) @@ -1376,8 +1376,8 @@ Assert.cs: #-----| -> null # 45| ... != ... -#-----| true -> [assertion failure] call to method IsFalse #-----| false -> [assertion success] call to method IsFalse +#-----| true -> [assertion failure] call to method IsFalse # 45| null #-----| -> ... != ... @@ -1440,8 +1440,8 @@ Assert.cs: #-----| -> null # 52| ... == ... -#-----| true -> [assertion failure] call to method IsFalse #-----| false -> [assertion success] call to method IsFalse +#-----| true -> [assertion failure] call to method IsFalse # 52| null #-----| -> ... == ... @@ -2068,12 +2068,12 @@ Assert.cs: #-----| -> [b (line 84): true] access to local variable s # 95| [b (line 84): false] access to local variable s -#-----| null -> [assertion failure, b (line 84): false] call to method IsNotNull #-----| non-null -> [assertion success, b (line 84): false] call to method IsNotNull +#-----| null -> [assertion failure, b (line 84): false] call to method IsNotNull # 95| [b (line 84): true] access to local variable s -#-----| null -> [assertion failure, b (line 84): true] call to method IsNotNull #-----| non-null -> [assertion success, b (line 84): true] call to method IsNotNull +#-----| null -> [assertion failure, b (line 84): true] call to method IsNotNull # 96| [b (line 84): false] call to method WriteLine #-----| -> [b (line 84): false] ...; @@ -2338,12 +2338,12 @@ Assert.cs: #-----| -> [b (line 84): true] null # 107| [b (line 84): false] ... != ... -#-----| true -> [assertion failure, b (line 84): false] call to method IsFalse #-----| false -> [assertion success, b (line 84): false] call to method IsFalse +#-----| true -> [assertion failure, b (line 84): false] call to method IsFalse # 107| [b (line 84): true] ... != ... -#-----| true -> [assertion failure, b (line 84): true] call to method IsFalse #-----| false -> [assertion success, b (line 84): true] call to method IsFalse +#-----| true -> [assertion failure, b (line 84): true] call to method IsFalse # 107| [b (line 84): false] null #-----| -> [b (line 84): false] ... != ... @@ -2430,12 +2430,12 @@ Assert.cs: #-----| -> [b (line 84): true] null # 111| [b (line 84): false] ... == ... -#-----| true -> [assertion failure, b (line 84): false] call to method IsFalse #-----| false -> [assertion success, b (line 84): false] call to method IsFalse +#-----| true -> [assertion failure, b (line 84): false] call to method IsFalse # 111| [b (line 84): true] ... == ... -#-----| true -> [assertion failure, b (line 84): true] call to method IsFalse #-----| false -> [assertion success, b (line 84): true] call to method IsFalse +#-----| true -> [assertion failure, b (line 84): true] call to method IsFalse # 111| [b (line 84): false] null #-----| -> [b (line 84): false] ... == ... @@ -2771,15 +2771,15 @@ Assert.cs: #-----| -> this access # 140| access to parameter b1 -#-----| true -> access to parameter b2 #-----| false -> [assertion failure] access to parameter b2 +#-----| true -> access to parameter b2 # 140| [assertion failure] access to parameter b2 -#-----| true -> [assertion failure] access to parameter b3 +#-----| false -> [assertion failure] access to parameter b3 # 140| access to parameter b2 -#-----| true -> [assertion failure] access to parameter b3 #-----| false -> [assertion success] access to parameter b3 +#-----| true -> [assertion failure] access to parameter b3 # 140| [assertion failure] access to parameter b3 #-----| -> [assertion failure] call to method AssertTrueFalse @@ -2980,8 +2980,8 @@ BreakInTry.cs: #-----| -> null # 15| ... == ... -#-----| true -> ; #-----| false -> exit M1 (normal) +#-----| true -> ; # 15| null #-----| -> ... == ... @@ -3116,8 +3116,8 @@ BreakInTry.cs: #-----| -> access to parameter args # 47| [finally: return] foreach (... ... in ...) ... -#-----| non-empty -> [finally: return] String arg #-----| return -> exit M3 (normal) +#-----| non-empty -> [finally: return] String arg # 47| foreach (... ... in ...) ... #-----| non-empty -> String arg @@ -3216,12 +3216,12 @@ BreakInTry.cs: #-----| -> access to parameter args # 65| [finally: return] foreach (... ... in ...) ... -#-----| non-empty -> [finally: return] String arg #-----| return -> exit M4 (normal) +#-----| non-empty -> [finally: return] String arg # 65| foreach (... ... in ...) ... -#-----| non-empty -> String arg #-----| empty -> exit M4 (normal) +#-----| non-empty -> String arg # 65| String arg #-----| -> {...} @@ -3396,12 +3396,12 @@ ConditionalAccess.cs: #-----| -> exit M1 # 3| access to parameter i -#-----| non-null -> call to method ToString #-----| null -> exit M1 (normal) +#-----| non-null -> call to method ToString # 3| call to method ToString -#-----| non-null -> call to method ToLower #-----| null -> exit M1 (normal) +#-----| non-null -> call to method ToLower # 3| call to method ToLower #-----| -> exit M1 (normal) @@ -3415,8 +3415,8 @@ ConditionalAccess.cs: #-----| -> exit M2 # 5| access to parameter s -#-----| non-null -> access to property Length #-----| null -> exit M2 (normal) +#-----| non-null -> access to property Length # 5| access to property Length #-----| -> exit M2 (normal) @@ -3434,8 +3434,8 @@ ConditionalAccess.cs: #-----| null -> access to parameter s2 # 7| ... ?? ... -#-----| non-null -> access to property Length #-----| null -> exit M3 (normal) +#-----| non-null -> access to property Length # 7| [non-null] ... ?? ... #-----| non-null -> access to property Length @@ -3524,8 +3524,8 @@ ConditionalAccess.cs: #-----| -> exit M6 # 19| access to parameter s1 -#-----| non-null -> access to parameter s2 #-----| null -> exit M6 (normal) +#-----| non-null -> access to parameter s2 # 19| call to method CommaJoinWith #-----| -> exit M6 (normal) @@ -3621,8 +3621,8 @@ ConditionalAccess.cs: #-----| -> ... = ... # 35| access to property Prop -#-----| non-null -> call to method Out #-----| null -> exit M8 (normal) +#-----| non-null -> call to method Out # 35| this access #-----| -> access to property Prop @@ -4058,8 +4058,8 @@ Conditions.cs: #-----| true -> [b (line 46): true] ...; # 51| access to parameter b -#-----| true -> [b (line 46): true] ...; #-----| false -> [b (line 46): false] access to parameter x +#-----| true -> [b (line 46): true] ...; # 52| [b (line 46): true] access to local variable y #-----| -> [b (line 46): true] ...++ @@ -4163,8 +4163,8 @@ Conditions.cs: #-----| true -> [b (line 57): true] ...; # 62| access to parameter b -#-----| true -> [b (line 57): true] ...; #-----| false -> [b (line 57): false] access to parameter x +#-----| true -> [b (line 57): true] ...; # 63| [b (line 57): true] access to local variable y #-----| -> [b (line 57): true] ...++ @@ -4580,8 +4580,8 @@ Conditions.cs: #-----| -> access to parameter args # 116| ... < ... -#-----| true -> {...} #-----| false -> exit M9 (normal) +#-----| true -> {...} # 116| access to parameter args #-----| -> access to property Length @@ -4632,8 +4632,8 @@ Conditions.cs: #-----| true -> [last (line 118): false] ...; # 119| access to local variable last -#-----| true -> [false, last (line 118): true] !... #-----| false -> [true, last (line 118): false] !... +#-----| true -> [false, last (line 118): true] !... # 120| [last (line 118): false] ... = ... #-----| -> [last (line 118): false] if (...) ... @@ -5073,8 +5073,8 @@ ExitMethods.cs: #-----| -> access to parameter b # 68| access to parameter b -#-----| true -> object creation of type Exception #-----| false -> exit ErrorMaybe (normal) +#-----| true -> object creation of type Exception # 69| throw ...; #-----| exception(Exception) -> exit ErrorMaybe (abnormal) @@ -5230,8 +5230,8 @@ ExitMethods.cs: #-----| -> 0 # 112| ... != ... -#-----| false -> "input" #-----| true -> 1 +#-----| false -> "input" # 112| ... ? ... : ... #-----| -> return ...; @@ -5354,8 +5354,8 @@ ExitMethods.cs: #-----| -> exit AssertFalse (normal) # 132| access to parameter b -#-----| true -> [assertion failure] call to method IsFalse #-----| false -> [assertion success] call to method IsFalse +#-----| true -> [assertion failure] call to method IsFalse # 134| enter FailingAssertion3 #-----| -> {...} @@ -5558,8 +5558,8 @@ Finally.cs: #-----| -> ...; # 11| call to method WriteLine -#-----| -> {...} #-----| exception(Exception) -> [finally: exception(Exception)] {...} +#-----| -> {...} # 11| ...; #-----| -> "Try1" @@ -5612,8 +5612,8 @@ Finally.cs: #-----| -> ...; # 23| call to method WriteLine -#-----| exception(Exception) -> [exception: Exception] catch (...) {...} #-----| -> return ...; +#-----| exception(Exception) -> [exception: Exception] catch (...) {...} # 23| ...; #-----| -> "Try2" @@ -5752,8 +5752,8 @@ Finally.cs: #-----| -> ...; # 58| call to method WriteLine -#-----| exception(Exception) -> [exception: Exception] catch (...) {...} #-----| -> return ...; +#-----| exception(Exception) -> [exception: Exception] catch (...) {...} # 58| ...; #-----| -> "Try3" @@ -5880,8 +5880,8 @@ Finally.cs: #-----| -> 0 # 77| ... > ... -#-----| true -> {...} #-----| false -> exit M4 (normal) +#-----| true -> {...} # 77| 0 #-----| -> ... > ... @@ -6179,16 +6179,16 @@ Finally.cs: #-----| -> this access # 107| access to field Field -#-----| exception(NullReferenceException) -> [finally: exception(NullReferenceException)] {...} #-----| -> access to property Length +#-----| exception(NullReferenceException) -> [finally: exception(NullReferenceException)] {...} # 107| this access #-----| -> access to field Field # 107| access to property Length +#-----| -> 0 #-----| exception(Exception) -> [finally: exception(Exception)] {...} #-----| exception(NullReferenceException) -> [finally: exception(NullReferenceException)] {...} -#-----| -> 0 # 107| ... == ... #-----| true -> return ...; @@ -6204,16 +6204,16 @@ Finally.cs: #-----| -> this access # 109| access to field Field -#-----| exception(NullReferenceException) -> [finally: exception(NullReferenceException)] {...} #-----| -> access to property Length +#-----| exception(NullReferenceException) -> [finally: exception(NullReferenceException)] {...} # 109| this access #-----| -> access to field Field # 109| access to property Length +#-----| -> 1 #-----| exception(Exception) -> [finally: exception(Exception)] {...} #-----| exception(NullReferenceException) -> [finally: exception(NullReferenceException)] {...} -#-----| -> 1 # 109| ... == ... #-----| true -> object creation of type OutOfMemoryException @@ -6335,24 +6335,24 @@ Finally.cs: #-----| -> 0 # 114| ... == ... -#-----| true -> [false] !... #-----| false -> [true] !... +#-----| true -> [false] !... # 114| [finally: exception(Exception)] ... == ... -#-----| true -> [false, finally: exception(Exception)] !... #-----| false -> [true, finally: exception(Exception)] !... +#-----| true -> [false, finally: exception(Exception)] !... # 114| [finally: exception(NullReferenceException)] ... == ... -#-----| true -> [false, finally: exception(NullReferenceException)] !... #-----| false -> [true, finally: exception(NullReferenceException)] !... +#-----| true -> [false, finally: exception(NullReferenceException)] !... # 114| [finally: exception(OutOfMemoryException)] ... == ... -#-----| true -> [false, finally: exception(OutOfMemoryException)] !... #-----| false -> [true, finally: exception(OutOfMemoryException)] !... +#-----| true -> [false, finally: exception(OutOfMemoryException)] !... # 114| [finally: return] ... == ... -#-----| true -> [false, finally: return] !... #-----| false -> [true, finally: return] !... +#-----| true -> [false, finally: return] !... # 114| 0 #-----| -> ... == ... @@ -6490,24 +6490,24 @@ Finally.cs: #-----| -> 0 # 116| ... > ... -#-----| true -> ...; #-----| false -> exit M5 (normal) +#-----| true -> ...; # 116| [finally: exception(Exception)] ... > ... -#-----| true -> [finally: exception(Exception)] ...; #-----| exception(Exception) -> exit M5 (abnormal) +#-----| true -> [finally: exception(Exception)] ...; # 116| [finally: exception(NullReferenceException)] ... > ... -#-----| true -> [finally: exception(NullReferenceException)] ...; #-----| exception(NullReferenceException) -> exit M5 (abnormal) +#-----| true -> [finally: exception(NullReferenceException)] ...; # 116| [finally: exception(OutOfMemoryException)] ... > ... -#-----| true -> [finally: exception(OutOfMemoryException)] ...; #-----| exception(OutOfMemoryException) -> exit M5 (abnormal) +#-----| true -> [finally: exception(OutOfMemoryException)] ...; # 116| [finally: return] ... > ... -#-----| true -> [finally: return] ...; #-----| return -> exit M5 (normal) +#-----| true -> [finally: return] ...; # 116| 0 #-----| -> ... > ... @@ -6622,8 +6622,8 @@ Finally.cs: #-----| -> ...; # 137| call to method WriteLine -#-----| -> {...} #-----| exception(Exception) -> [finally: exception(Exception)] {...} +#-----| -> {...} # 137| ...; #-----| -> "Try" @@ -6741,31 +6741,31 @@ Finally.cs: #-----| -> access to property Length # 158| [finally: exception(ArgumentNullException)] access to property Length +#-----| -> [finally: exception(ArgumentNullException)] 1 #-----| exception(Exception) -> [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} #-----| exception(NullReferenceException) -> [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} -#-----| -> [finally: exception(ArgumentNullException)] 1 # 158| [finally: exception(Exception)] access to property Length +#-----| -> [finally: exception(Exception)] 1 #-----| exception(Exception) -> [finally: exception(Exception), exception: Exception] catch (...) {...} #-----| exception(NullReferenceException) -> [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} -#-----| -> [finally: exception(Exception)] 1 # 158| access to property Length +#-----| -> 1 #-----| exception(Exception) -> [exception: Exception] catch (...) {...} #-----| exception(NullReferenceException) -> [exception: NullReferenceException] catch (...) {...} -#-----| -> 1 # 158| ... == ... -#-----| true -> "1" #-----| false -> exit M8 (normal) +#-----| true -> "1" # 158| [finally: exception(ArgumentNullException)] ... == ... -#-----| true -> [finally: exception(ArgumentNullException)] "1" #-----| exception(ArgumentNullException) -> exit M8 (abnormal) +#-----| true -> [finally: exception(ArgumentNullException)] "1" # 158| [finally: exception(Exception)] ... == ... -#-----| true -> [finally: exception(Exception)] "1" #-----| exception(Exception) -> exit M8 (abnormal) +#-----| true -> [finally: exception(Exception)] "1" # 158| 1 #-----| -> ... == ... @@ -6786,16 +6786,16 @@ Finally.cs: #-----| exception(Exception) -> [exception: Exception] catch (...) {...} # 159| [finally: exception(ArgumentNullException)] object creation of type Exception -#-----| exception(Exception) -> [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} #-----| -> [finally: exception(ArgumentNullException)] throw ...; +#-----| exception(Exception) -> [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} # 159| [finally: exception(Exception)] object creation of type Exception -#-----| exception(Exception) -> [finally: exception(Exception), exception: Exception] catch (...) {...} #-----| -> [finally: exception(Exception)] throw ...; +#-----| exception(Exception) -> [finally: exception(Exception), exception: Exception] catch (...) {...} # 159| object creation of type Exception -#-----| exception(Exception) -> [exception: Exception] catch (...) {...} #-----| -> throw ...; +#-----| exception(Exception) -> [exception: Exception] catch (...) {...} # 159| "1" #-----| -> object creation of type Exception @@ -7090,16 +7090,16 @@ Finally.cs: #-----| -> [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 # 186| [b1 (line 176): false] access to parameter b2 -#-----| true -> [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB #-----| false -> exit M9 (normal) +#-----| true -> [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB # 186| [finally: exception(Exception), b1 (line 176): true] access to parameter b2 -#-----| true -> [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB #-----| exception(Exception) -> exit M9 (abnormal) +#-----| true -> [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB # 186| [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 -#-----| true -> [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB #-----| exception(ExceptionA) -> exit M9 (abnormal) +#-----| true -> [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB # 186| [b1 (line 176): false, b2 (line 176): true] throw ...; #-----| exception(ExceptionB) -> [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} @@ -7111,34 +7111,34 @@ Finally.cs: #-----| exception(ExceptionB) -> [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} # 186| [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB -#-----| exception(Exception) -> [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} #-----| -> [b1 (line 176): false, b2 (line 176): true] throw ...; +#-----| exception(Exception) -> [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} # 186| [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB -#-----| exception(Exception) -> [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} #-----| -> [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; +#-----| exception(Exception) -> [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} # 186| [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB -#-----| exception(Exception) -> [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} #-----| -> [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; +#-----| exception(Exception) -> [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} # 188| [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} -#-----| match -> [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 #-----| exception(Exception) -> exit M9 (abnormal) +#-----| match -> [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 # 188| [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} #-----| match -> [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 # 188| [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} -#-----| match -> [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 #-----| exception(Exception) -> exit M9 (abnormal) +#-----| match -> [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 # 188| [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} #-----| match -> [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 # 188| [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} -#-----| match -> [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 #-----| exception(Exception) -> exit M9 (abnormal) +#-----| match -> [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 # 188| [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} #-----| match -> [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 @@ -7358,32 +7358,32 @@ Finally.cs: #-----| -> access to parameter b3 # 209| [finally(1): exception(Exception)] access to parameter b3 -#-----| true -> [finally(1): exception(Exception)] object creation of type ExceptionC #-----| exception(Exception) -> exit M10 (abnormal) +#-----| true -> [finally(1): exception(Exception)] object creation of type ExceptionC # 209| [finally(1): exception(ExceptionB)] access to parameter b3 -#-----| true -> [finally(1): exception(ExceptionB)] object creation of type ExceptionC #-----| exception(ExceptionB) -> exit M10 (abnormal) +#-----| true -> [finally(1): exception(ExceptionB)] object creation of type ExceptionC # 209| [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 -#-----| true -> [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC #-----| exception(Exception) -> exit M10 (abnormal) +#-----| true -> [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC # 209| [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 -#-----| true -> [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC #-----| exception(ExceptionB) -> exit M10 (abnormal) +#-----| true -> [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC # 209| [finally: exception(Exception)] access to parameter b3 #-----| true -> [finally: exception(Exception)] object creation of type ExceptionC #-----| false -> [finally: exception(Exception)] ...; # 209| [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 -#-----| true -> [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC #-----| exception(Exception) -> exit M10 (abnormal) +#-----| true -> [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC # 209| [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 -#-----| true -> [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC #-----| exception(ExceptionB) -> exit M10 (abnormal) +#-----| true -> [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC # 209| [finally: exception(ExceptionA)] access to parameter b3 #-----| true -> [finally: exception(ExceptionA)] object creation of type ExceptionC @@ -7776,8 +7776,8 @@ Finally.cs: #-----| -> [finally: exception(ExceptionA)] call to method WriteLine # 254| call to method WriteLine -#-----| -> {...} #-----| exception(Exception) -> [finally: exception(Exception)] {...} +#-----| -> {...} # 254| ...; #-----| -> "Mid finally" @@ -7851,8 +7851,8 @@ Finally.cs: #-----| -> ...; # 267| call to method WriteLine -#-----| -> {...} #-----| exception(Exception) -> [finally: exception(Exception)] {...} +#-----| -> {...} # 267| ...; #-----| -> "1" @@ -7927,8 +7927,8 @@ Foreach.cs: #-----| -> access to parameter args # 8| foreach (... ... in ...) ... -#-----| non-empty -> String arg #-----| empty -> exit M1 (normal) +#-----| non-empty -> String arg # 8| String arg #-----| -> ; @@ -7951,8 +7951,8 @@ Foreach.cs: #-----| -> access to parameter args # 14| foreach (... ... in ...) ... -#-----| non-empty -> String _ #-----| empty -> exit M2 (normal) +#-----| non-empty -> String _ # 14| String _ #-----| -> ; @@ -7975,8 +7975,8 @@ Foreach.cs: #-----| -> access to parameter e # 20| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M3 (normal) +#-----| non-empty -> String x # 20| String x #-----| -> ; @@ -8010,8 +8010,8 @@ Foreach.cs: #-----| -> access to parameter args # 26| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M4 (normal) +#-----| non-empty -> String x # 26| (..., ...) #-----| -> ; @@ -8040,8 +8040,8 @@ Foreach.cs: #-----| -> access to parameter args # 32| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M5 (normal) +#-----| non-empty -> String x # 32| (..., ...) #-----| -> ; @@ -8070,8 +8070,8 @@ Foreach.cs: #-----| -> access to parameter args # 38| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M6 (normal) +#-----| non-empty -> String x # 38| (..., ...) #-----| -> ; @@ -8739,8 +8739,8 @@ LoopUnrolling.cs: #-----| non-empty -> String arg # 11| foreach (... ... in ...) ... -#-----| non-empty -> String arg #-----| empty -> exit M1 (normal) +#-----| non-empty -> String arg # 11| String arg #-----| -> ...; @@ -8796,8 +8796,8 @@ LoopUnrolling.cs: #-----| non-empty -> String x # 18| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M2 (normal) +#-----| non-empty -> String x # 18| String x #-----| -> ...; @@ -8826,8 +8826,8 @@ LoopUnrolling.cs: #-----| -> access to parameter args # 24| foreach (... ... in ...) ... -#-----| non-empty -> Char arg #-----| empty -> exit M3 (normal) +#-----| non-empty -> Char arg # 24| Char arg #-----| -> access to parameter args @@ -8949,8 +8949,8 @@ LoopUnrolling.cs: #-----| non-empty -> String x # 40| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M5 (normal) +#-----| non-empty -> String x # 40| String x #-----| -> access to local variable ys @@ -9079,12 +9079,12 @@ LoopUnrolling.cs: #-----| -> { ..., ... } # 58| [b (line 55): false] foreach (... ... in ...) ... -#-----| non-empty -> [b (line 55): false] String x #-----| empty -> exit M7 (normal) +#-----| non-empty -> [b (line 55): false] String x # 58| [b (line 55): true] foreach (... ... in ...) ... -#-----| non-empty -> [b (line 55): true] String x #-----| empty -> exit M7 (normal) +#-----| non-empty -> [b (line 55): true] String x # 58| [unroll (line 58)] foreach (... ... in ...) ... #-----| non-empty -> String x @@ -9183,8 +9183,8 @@ LoopUnrolling.cs: #-----| -> call to method Any # 69| call to method Any -#-----| true -> [false] !... #-----| false -> [true] !... +#-----| true -> [false] !... # 70| return ...; #-----| return -> exit M8 (normal) @@ -9298,8 +9298,8 @@ LoopUnrolling.cs: #-----| non-empty -> String x # 97| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit M11 (normal) +#-----| non-empty -> String x # 97| String x #-----| -> {...} @@ -10388,8 +10388,8 @@ Patterns.cs: #-----| true -> {...} # 8| Int32 i1 -#-----| no-match -> [false] ... is ... #-----| match -> [true] ... is ... +#-----| no-match -> [false] ... is ... # 9| {...} #-----| -> ...; @@ -10422,8 +10422,8 @@ Patterns.cs: #-----| true -> {...} # 12| String s1 -#-----| no-match -> [false] ... is ... #-----| match -> [true] ... is ... +#-----| no-match -> [false] ... is ... # 13| {...} #-----| -> ...; @@ -10456,8 +10456,8 @@ Patterns.cs: #-----| true -> {...} # 16| Object v1 -#-----| no-match -> [false] ... is ... #-----| match -> [true] ... is ... +#-----| no-match -> [false] ... is ... # 17| {...} #-----| -> switch (...) {...} @@ -10482,8 +10482,8 @@ Patterns.cs: #-----| -> Int32 i2 # 24| Int32 i2 -#-----| no-match -> case ...: #-----| match -> access to local variable i2 +#-----| no-match -> case ...: # 24| access to local variable i2 #-----| -> 0 @@ -10693,8 +10693,8 @@ Patterns.cs: #-----| no-match -> { ... } # 54| 1 -#-----| no-match -> [no-match] { ... } #-----| match -> [match] { ... } +#-----| no-match -> [no-match] { ... } # 56| enter M5 #-----| -> {...} @@ -10979,8 +10979,8 @@ Patterns.cs: #-----| no-match -> [no-match] { ... } # 95| access to constant B -#-----| no-match -> [no-match] ... or ... #-----| match -> [match] ... or ... +#-----| no-match -> [no-match] ... or ... # 96| {...} #-----| -> ...; @@ -11039,8 +11039,8 @@ PostDominance.cs: #-----| true -> return ...; # 12| null -#-----| no-match -> [false] ... is ... #-----| match -> [true] ... is ... +#-----| no-match -> [false] ... is ... # 13| return ...; #-----| return -> exit M2 (normal) @@ -11081,8 +11081,8 @@ PostDominance.cs: #-----| true -> nameof(...) # 19| null -#-----| no-match -> [false] ... is ... #-----| match -> [true] ... is ... +#-----| no-match -> [false] ... is ... # 20| throw ...; #-----| exception(ArgumentNullException) -> exit M3 (abnormal) @@ -11402,8 +11402,8 @@ Switch.cs: #-----| -> String s # 24| String s -#-----| no-match -> case ...: #-----| match -> access to local variable s +#-----| no-match -> case ...: # 24| access to local variable s #-----| -> access to property Length @@ -11516,15 +11516,15 @@ Switch.cs: #-----| -> access to type Boolean # 50| access to type Boolean -#-----| match -> access to parameter o #-----| no-match -> exit M4 (normal) +#-----| match -> access to parameter o # 50| access to parameter o #-----| -> null # 50| ... != ... -#-----| true -> break; #-----| false -> exit M4 (normal) +#-----| true -> break; # 50| null #-----| -> ... != ... @@ -11600,8 +11600,8 @@ Switch.cs: #-----| -> "" # 72| "" -#-----| match -> break; #-----| no-match -> exit M6 (normal) +#-----| match -> break; # 73| break; #-----| break -> exit M6 (normal) @@ -11801,8 +11801,8 @@ Switch.cs: #-----| -> 3 # 117| 3 -#-----| no-match -> case ...: #-----| match -> access to parameter s +#-----| no-match -> case ...: # 117| access to parameter s #-----| -> "foo" @@ -11824,8 +11824,8 @@ Switch.cs: #-----| -> 2 # 118| 2 -#-----| no-match -> 1 #-----| match -> access to parameter s +#-----| no-match -> 1 # 118| access to parameter s #-----| -> "fu" @@ -12097,8 +12097,8 @@ Switch.cs: #-----| -> ... => ... # 156| false -#-----| match -> "b" #-----| exception(InvalidOperationException) -> exit M15 (abnormal) +#-----| match -> "b" # 156| ... => ... #-----| -> ... switch { ... } @@ -12192,8 +12192,8 @@ TypeAccesses.cs: #-----| true -> ; # 7| Int32 j -#-----| no-match -> [false] ... is ... #-----| match -> [true] ... is ... +#-----| no-match -> [false] ... is ... # 7| ; #-----| -> ... ...; @@ -12503,8 +12503,8 @@ cflow.cs: #-----| -> 20 # 24| ... <= ... -#-----| true -> {...} #-----| false -> exit Main (normal) +#-----| true -> {...} # 24| 20 #-----| -> ... <= ... @@ -12791,8 +12791,8 @@ cflow.cs: #-----| -> access to field Field # 63| ... == ... -#-----| true -> [false] !... #-----| false -> [true] !... +#-----| true -> [false] !... # 63| "" #-----| -> ... == ... @@ -13042,8 +13042,8 @@ cflow.cs: #-----| -> null # 102| ... != ... -#-----| true -> ...; #-----| false -> exit M3 (normal) +#-----| true -> ...; # 102| null #-----| -> ... != ... @@ -13536,8 +13536,8 @@ cflow.cs: #-----| -> 10 # 173| ... < ... -#-----| true -> {...} #-----| false -> exit For (normal) +#-----| true -> {...} # 173| access to local variable j #-----| -> ... + ... @@ -13853,8 +13853,8 @@ cflow.cs: #-----| -> 0 # 200| ... == ... -#-----| true -> [false] !... #-----| false -> [true] !... +#-----| true -> [false] !... # 200| 0 #-----| -> ... == ... @@ -14007,8 +14007,8 @@ cflow.cs: #-----| -> 10 # 221| ... < ... -#-----| true -> {...} #-----| false -> exit Do (normal) +#-----| true -> {...} # 221| 10 #-----| -> ... < ... @@ -14025,8 +14025,8 @@ cflow.cs: #-----| -> "a" # 226| foreach (... ... in ...) ... -#-----| non-empty -> String x #-----| empty -> exit Foreach (normal) +#-----| non-empty -> String x # 226| String x #-----| -> {...} @@ -14153,8 +14153,8 @@ cflow.cs: #-----| -> 0 # 242| ... == ... -#-----| true -> [false] !... #-----| false -> [true] !... +#-----| true -> [false] !... # 242| 0 #-----| -> ... == ... @@ -14440,8 +14440,8 @@ cflow.cs: #-----| -> 0 # 300| ... > ... -#-----| true -> [false] !... #-----| false -> [true] !... +#-----| true -> [false] !... # 300| 0 #-----| -> ... > ... diff --git a/csharp/ql/test/library-tests/conversion/boxing/Boxing.expected b/csharp/ql/test/library-tests/conversion/boxing/Boxing.expected index 7f45e10ec8b..e3484892c48 100644 --- a/csharp/ql/test/library-tests/conversion/boxing/Boxing.expected +++ b/csharp/ql/test/library-tests/conversion/boxing/Boxing.expected @@ -5,10 +5,34 @@ | Boolean | Object | | Boolean | ValueType | | Boolean | dynamic | +| Char | IAdditionOperators | +| Char | IAdditiveIdentity | +| Char | IBinaryInteger | +| Char | IBinaryNumber | +| Char | IBitwiseOperators | | Char | IComparable | | Char | IComparable | +| Char | IComparisonOperators | | Char | IConvertible | +| Char | IDecrementOperators | +| Char | IDivisionOperators | +| Char | IEqualityOperators | | Char | IEquatable | +| Char | IFormattable | +| Char | IIncrementOperators | +| Char | IMinMaxValue | +| Char | IModulusOperators | +| Char | IMultiplicativeIdentity | +| Char | IMultiplyOperators | +| Char | INumber | +| Char | IParseable | +| Char | IShiftOperators | +| Char | ISpanFormattable | +| Char | ISpanParseable | +| Char | ISubtractionOperators | +| Char | IUnaryNegationOperators | +| Char | IUnaryPlusOperators | +| Char | IUnsignedNumber | | Char | Object | | Char | ValueType | | Char | dynamic | @@ -16,21 +40,65 @@ | E | Object | | E | ValueType | | E | dynamic | +| Int32 | IAdditionOperators | +| Int32 | IAdditiveIdentity | +| Int32 | IBinaryInteger | +| Int32 | IBinaryNumber | +| Int32 | IBitwiseOperators | | Int32 | IComparable | | Int32 | IComparable | +| Int32 | IComparisonOperators | | Int32 | IConvertible | +| Int32 | IDecrementOperators | +| Int32 | IDivisionOperators | +| Int32 | IEqualityOperators | | Int32 | IEquatable | | Int32 | IFormattable | +| Int32 | IIncrementOperators | +| Int32 | IMinMaxValue | +| Int32 | IModulusOperators | +| Int32 | IMultiplicativeIdentity | +| Int32 | IMultiplyOperators | +| Int32 | INumber | +| Int32 | IParseable | +| Int32 | IShiftOperators | +| Int32 | ISignedNumber | | Int32 | ISpanFormattable | +| Int32 | ISpanParseable | +| Int32 | ISubtractionOperators | +| Int32 | IUnaryNegationOperators | +| Int32 | IUnaryPlusOperators | | Int32 | Object | | Int32 | ValueType | | Int32 | dynamic | +| Nullable | IAdditionOperators | +| Nullable | IAdditiveIdentity | +| Nullable | IBinaryInteger | +| Nullable | IBinaryNumber | +| Nullable | IBitwiseOperators | | Nullable | IComparable | | Nullable | IComparable | +| Nullable | IComparisonOperators | | Nullable | IConvertible | +| Nullable | IDecrementOperators | +| Nullable | IDivisionOperators | +| Nullable | IEqualityOperators | | Nullable | IEquatable | | Nullable | IFormattable | +| Nullable | IIncrementOperators | +| Nullable | IMinMaxValue | +| Nullable | IModulusOperators | +| Nullable | IMultiplicativeIdentity | +| Nullable | IMultiplyOperators | +| Nullable | INumber | +| Nullable | IParseable | +| Nullable | IShiftOperators | +| Nullable | ISignedNumber | | Nullable | ISpanFormattable | +| Nullable | ISpanParseable | +| Nullable | ISubtractionOperators | +| Nullable | IUnaryNegationOperators | +| Nullable | IUnaryPlusOperators | | Nullable | Object | | Nullable | ValueType | | Nullable | dynamic | diff --git a/csharp/ql/test/library-tests/conversion/reftype/RefType.expected b/csharp/ql/test/library-tests/conversion/reftype/RefType.expected index 88f34c17293..3094984c98d 100644 --- a/csharp/ql/test/library-tests/conversion/reftype/RefType.expected +++ b/csharp/ql/test/library-tests/conversion/reftype/RefType.expected @@ -1,7 +1,5 @@ | Byte[] | Object | | Byte[] | dynamic | -| Byte[][] | Object | -| Byte[][] | dynamic | | C1 | Object | | C1 | dynamic | | C1[] | ICollection | @@ -233,7 +231,6 @@ | UInt64[] | dynamic | | dynamic | Object | | null | Byte[] | -| null | Byte[][] | | null | C1 | | null | C1[] | | null | C2 | diff --git a/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected b/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected index b43376eb2d5..932a51a6f73 100644 --- a/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected +++ b/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected @@ -5,11 +5,17 @@ type | file://:0:0:0:0 | delegate* default | readonly int | DefaultCallingConvention | | file://:0:0:0:0 | delegate* default | Void* | DefaultCallingConvention | | file://:0:0:0:0 | delegate* default | int | DefaultCallingConvention | -| file://:0:0:0:0 | delegate* default | Void | DefaultCallingConvention | +| file://:0:0:0:0 | delegate* default | Void | DefaultCallingConvention | +| file://:0:0:0:0 | delegate* default | Void | DefaultCallingConvention | | file://:0:0:0:0 | delegate* default | int | DefaultCallingConvention | | file://:0:0:0:0 | delegate* default | int* | DefaultCallingConvention | +| file://:0:0:0:0 | delegate* default | object | DefaultCallingConvention | | file://:0:0:0:0 | delegate* stdcall | Void | StdCallCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | Void | CallingConvention | +| file://:0:0:0:0 | delegate* unmanaged | int | CallingConvention | +| file://:0:0:0:0 | delegate* unmanaged | int | CallingConvention | +| file://:0:0:0:0 | delegate* unmanaged | Void | CallingConvention | +| file://:0:0:0:0 | delegate* unmanaged | Void | CallingConvention | unmanagedCallingConvention parameter | file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | A | @@ -20,16 +26,22 @@ parameter | file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | ref int! | | file://:0:0:0:0 | delegate* default | 1 | file://:0:0:0:0 | `1 | out object? | | file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | int*! | -| file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | IntPtr! | -| file://:0:0:0:0 | delegate* default | 1 | file://:0:0:0:0 | `1 | IntPtr! | -| file://:0:0:0:0 | delegate* default | 2 | file://:0:0:0:0 | `2 | IntPtr*! | +| file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | IntPtr! | +| file://:0:0:0:0 | delegate* default | 1 | file://:0:0:0:0 | `1 | IntPtr! | +| file://:0:0:0:0 | delegate* default | 2 | file://:0:0:0:0 | `2 | PortableTailCallFrame*! | +| file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | object | | file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | T | | file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | Void*! | +| file://:0:0:0:0 | delegate* default | 0 | file://:0:0:0:0 | | Void*! | | file://:0:0:0:0 | delegate* stdcall | 0 | file://:0:0:0:0 | | ref int! | | file://:0:0:0:0 | delegate* stdcall | 1 | file://:0:0:0:0 | `1 | out object? | | file://:0:0:0:0 | delegate* stdcall | 2 | file://:0:0:0:0 | `2 | T | | file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | char*! | | file://:0:0:0:0 | delegate* unmanaged | 1 | file://:0:0:0:0 | `1 | IntPtr! | +| file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | int! | +| file://:0:0:0:0 | delegate* unmanaged | 1 | file://:0:0:0:0 | `1 | PosixSignal! | +| file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | IntPtr! | +| file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | IntPtr! | invocation | FunctionPointer.cs:17:21:17:43 | function pointer call | | FunctionPointer.cs:23:13:23:44 | function pointer call | diff --git a/csharp/ql/test/library-tests/csharp9/PrintAst.expected b/csharp/ql/test/library-tests/csharp9/PrintAst.expected index e346a782c4f..3c708935143 100644 --- a/csharp/ql/test/library-tests/csharp9/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp9/PrintAst.expected @@ -583,13 +583,13 @@ LocalFunction.cs: # 21| 0: [LocalFunctionStmt] dup(...) # 21| 0: [LocalFunction] dup #-----| 0: (Attributes) -# 21| 1: [Attribute] [Obsolete(...)] +# 21| 1: [DefaultAttribute] [Obsolete(...)] # 21| 0: [TypeMention] ObsoleteAttribute #-----| 2: (Parameters) # 22| 0: [Parameter] b # 22| -1: [TypeMention] bool #-----| 0: (Attributes) -# 22| 1: [Attribute] [NotNullWhen(...)] +# 22| 1: [DefaultAttribute] [NotNullWhen(...)] # 22| -1: [TypeMention] NotNullWhenAttribute # 22| 0: [BoolLiteral] true # 22| 1: [Parameter] i diff --git a/csharp/ql/test/library-tests/definitions/PrintAst.expected b/csharp/ql/test/library-tests/definitions/PrintAst.expected index 90c9e9cabdf..4f6de99bb1a 100644 --- a/csharp/ql/test/library-tests/definitions/PrintAst.expected +++ b/csharp/ql/test/library-tests/definitions/PrintAst.expected @@ -462,7 +462,7 @@ definitions.cs: # 181| 0: [Parameter] c # 181| -1: [TypeMention] C6 #-----| 0: (Attributes) -# 181| 1: [Attribute] [My(...)] +# 181| 1: [DefaultAttribute] [My(...)] # 181| 0: [TypeMention] MyAttribute # 182| 4: [BlockStmt] {...} # 183| 0: [ReturnStmt] return ...; diff --git a/csharp/ql/test/library-tests/dispatch/viableCallable.expected b/csharp/ql/test/library-tests/dispatch/viableCallable.expected index 95aa00747e4..74028980ba8 100644 --- a/csharp/ql/test/library-tests/dispatch/viableCallable.expected +++ b/csharp/ql/test/library-tests/dispatch/viableCallable.expected @@ -213,11 +213,20 @@ | ViableCallable.cs:174:19:174:25 | dynamic access to element | get_Item | C2<> | | ViableCallable.cs:174:19:174:25 | dynamic access to element | get_Item | C6<,> | | ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Decimal | +| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Double | | ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Int32 | +| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Int64 | +| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Single | | ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Decimal | +| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Double | | ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Int32 | +| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Int64 | +| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Single | | ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Decimal | +| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Double | | ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Int32 | +| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Int64 | +| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Single | | ViableCallable.cs:185:17:185:25 | object creation of type C10 | C10 | C10 | | ViableCallable.cs:186:9:186:153 | call to method InvokeMember | + | C10 | | ViableCallable.cs:189:9:189:143 | call to method InvokeMember | get_Prop3 | C10 | diff --git a/csharp/ql/test/query-tests/Stubs/Minimal/MinimalStubsFromSource.expected b/csharp/ql/test/query-tests/Stubs/Minimal/MinimalStubsFromSource.expected index 55cd11fe503..3cda5170cb0 100644 --- a/csharp/ql/test/query-tests/Stubs/Minimal/MinimalStubsFromSource.expected +++ b/csharp/ql/test/query-tests/Stubs/Minimal/MinimalStubsFromSource.expected @@ -1 +1 @@ -| // This file contains auto-generated code.\n\nnamespace System\n{\n// Generated from `System.Uri` in `System.Private.Uri, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Uri : System.Runtime.Serialization.ISerializable\n{\n public override bool Equals(object comparand) => throw null;\n public override int GetHashCode() => throw null;\n void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null;\n public override string ToString() => throw null;\n}\n\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Collections\n{\n// Generated from `System.Collections.SortedList` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class SortedList : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ICloneable\n{\n public virtual void Add(object key, object value) => throw null;\n public virtual void Clear() => throw null;\n public virtual object Clone() => throw null;\n public virtual bool Contains(object key) => throw null;\n public virtual void CopyTo(System.Array array, int arrayIndex) => throw null;\n public virtual int Count { get => throw null; }\n public virtual object GetByIndex(int index) => throw null;\n public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null;\n System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;\n public virtual bool IsFixedSize { get => throw null; }\n public virtual bool IsReadOnly { get => throw null; }\n public virtual bool IsSynchronized { get => throw null; }\n public virtual object this[object key] { get => throw null; set => throw null; }\n public virtual System.Collections.ICollection Keys { get => throw null; }\n public virtual void Remove(object key) => throw null;\n public virtual object SyncRoot { get => throw null; }\n public virtual System.Collections.ICollection Values { get => throw null; }\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Collections\n{\nnamespace Generic\n{\n// Generated from `System.Collections.Generic.Stack<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Stack : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable\n{\n void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null;\n public int Count { get => throw null; }\n System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null;\n System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;\n bool System.Collections.ICollection.IsSynchronized { get => throw null; }\n public T Peek() => throw null;\n object System.Collections.ICollection.SyncRoot { get => throw null; }\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Collections\n{\nnamespace Specialized\n{\n// Generated from `System.Collections.Specialized.NameObjectCollectionBase` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic abstract class NameObjectCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable\n{\n void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null;\n public virtual int Count { get => throw null; }\n public virtual System.Collections.IEnumerator GetEnumerator() => throw null;\n public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;\n bool System.Collections.ICollection.IsSynchronized { get => throw null; }\n public virtual void OnDeserialization(object sender) => throw null;\n object System.Collections.ICollection.SyncRoot { get => throw null; }\n}\n\n// Generated from `System.Collections.Specialized.NameValueCollection` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase\n{\n public string this[string name] { get => throw null; set => throw null; }\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace ComponentModel\n{\n// Generated from `System.ComponentModel.ComponentConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ComponentConverter : System.ComponentModel.ReferenceConverter\n{\n}\n\n// Generated from `System.ComponentModel.DefaultEventAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DefaultEventAttribute : System.Attribute\n{\n public DefaultEventAttribute(string name) => throw null;\n public override bool Equals(object obj) => throw null;\n public override int GetHashCode() => throw null;\n}\n\n// Generated from `System.ComponentModel.DefaultPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DefaultPropertyAttribute : System.Attribute\n{\n public DefaultPropertyAttribute(string name) => throw null;\n public override bool Equals(object obj) => throw null;\n public override int GetHashCode() => throw null;\n}\n\n// Generated from `System.ComponentModel.ReferenceConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ReferenceConverter : System.ComponentModel.TypeConverter\n{\n}\n\n// Generated from `System.ComponentModel.TypeConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TypeConverter\n{\n}\n\n}\nnamespace Timers\n{\n// Generated from `System.Timers.TimersDescriptionAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TimersDescriptionAttribute\n{\n public TimersDescriptionAttribute(string description) => throw null;\n internal TimersDescriptionAttribute(string description, string defaultValue) => throw null;\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace ComponentModel\n{\n// Generated from `System.ComponentModel.TypeConverterAttribute` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TypeConverterAttribute : System.Attribute\n{\n public override bool Equals(object obj) => throw null;\n public override int GetHashCode() => throw null;\n public TypeConverterAttribute() => throw null;\n public TypeConverterAttribute(System.Type type) => throw null;\n public TypeConverterAttribute(string typeName) => throw null;\n}\n\n// Generated from `System.ComponentModel.TypeDescriptionProviderAttribute` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TypeDescriptionProviderAttribute : System.Attribute\n{\n public TypeDescriptionProviderAttribute(System.Type type) => throw null;\n public TypeDescriptionProviderAttribute(string typeName) => throw null;\n}\n\n}\nnamespace Windows\n{\nnamespace Markup\n{\n// Generated from `System.Windows.Markup.ValueSerializerAttribute` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ValueSerializerAttribute : System.Attribute\n{\n public ValueSerializerAttribute(System.Type valueSerializerType) => throw null;\n public ValueSerializerAttribute(string valueSerializerTypeName) => throw null;\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.Enumerable` in `System.Linq, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic static class Enumerable\n{\n public static System.Collections.Generic.IEnumerable Select(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null;\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.IQueryable` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic interface IQueryable : System.Collections.IEnumerable\n{\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.ParallelEnumerable` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic static class ParallelEnumerable\n{\n public static System.Linq.ParallelQuery AsParallel(this System.Collections.IEnumerable source) => throw null;\n}\n\n// Generated from `System.Linq.ParallelQuery` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ParallelQuery : System.Collections.IEnumerable\n{\n System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;\n internal ParallelQuery(System.Linq.Parallel.QuerySettings specifiedSettings) => throw null;\n}\n\nnamespace Parallel\n{\n// Generated from `System.Linq.Parallel.QuerySettings` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\ninternal struct QuerySettings\n{\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.Queryable` in `System.Linq.Queryable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic static class Queryable\n{\n public static System.Linq.IQueryable AsQueryable(this System.Collections.IEnumerable source) => throw null;\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Runtime\n{\nnamespace Serialization\n{\n// Generated from `System.Runtime.Serialization.DataContractAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DataContractAttribute : System.Attribute\n{\n public DataContractAttribute() => throw null;\n}\n\n// Generated from `System.Runtime.Serialization.DataMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DataMemberAttribute : System.Attribute\n{\n public DataMemberAttribute() => throw null;\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Text\n{\nnamespace RegularExpressions\n{\n// Generated from `System.Text.RegularExpressions.Capture` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Capture\n{\n internal Capture(string text, int index, int length) => throw null;\n public override string ToString() => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.Group` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Group : System.Text.RegularExpressions.Capture\n{\n internal Group(string text, int[] caps, int capcount, string name) : base(default(string), default(int), default(int)) => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.Match` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Match : System.Text.RegularExpressions.Group\n{\n internal Match(System.Text.RegularExpressions.Regex regex, int capcount, string text, int begpos, int len, int startpos) : base(default(string), default(int[]), default(int), default(string)) => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.Regex` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Regex : System.Runtime.Serialization.ISerializable\n{\n void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null;\n public System.Text.RegularExpressions.Match Match(string input) => throw null;\n public static System.Text.RegularExpressions.Match Match(string input, string pattern) => throw null;\n public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null;\n public Regex(string pattern) => throw null;\n public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null;\n public string Replace(string input, string replacement) => throw null;\n public override string ToString() => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.RegexOptions` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\n[System.Flags]\npublic enum RegexOptions\n{\n IgnoreCase,\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Web\n{\n// Generated from `System.Web.HtmlString` in `../../../resources/stubs/System.Web.cs:34:18:34:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HtmlString : System.Web.IHtmlString\n{\n}\n\n// Generated from `System.Web.HttpContextBase` in `../../../resources/stubs/System.Web.cs:24:18:24:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpContextBase\n{\n public virtual System.Web.HttpRequestBase Request { get => throw null; }\n}\n\n// Generated from `System.Web.HttpCookie` in `../../../resources/stubs/System.Web.cs:173:18:173:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpCookie\n{\n}\n\n// Generated from `System.Web.HttpCookieCollection` in `../../../resources/stubs/System.Web.cs:191:27:191:46; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic abstract class HttpCookieCollection : System.Collections.Specialized.NameObjectCollectionBase\n{\n}\n\n// Generated from `System.Web.HttpRequest` in `../../../resources/stubs/System.Web.cs:145:18:145:28; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpRequest\n{\n}\n\n// Generated from `System.Web.HttpRequestBase` in `../../../resources/stubs/System.Web.cs:10:18:10:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpRequestBase\n{\n public virtual System.Collections.Specialized.NameValueCollection QueryString { get => throw null; }\n}\n\n// Generated from `System.Web.HttpResponse` in `../../../resources/stubs/System.Web.cs:156:18:156:29; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpResponse\n{\n}\n\n// Generated from `System.Web.HttpResponseBase` in `../../../resources/stubs/System.Web.cs:19:18:19:33; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpResponseBase\n{\n}\n\n// Generated from `System.Web.HttpServerUtility` in `../../../resources/stubs/System.Web.cs:41:18:41:34; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpServerUtility\n{\n}\n\n// Generated from `System.Web.IHtmlString` in `../../../resources/stubs/System.Web.cs:30:22:30:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IHtmlString\n{\n}\n\n// Generated from `System.Web.IHttpHandler` in `../../../resources/stubs/System.Web.cs:132:22:132:33; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IHttpHandler\n{\n}\n\n// Generated from `System.Web.IServiceProvider` in `../../../resources/stubs/System.Web.cs:136:22:136:37; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IServiceProvider\n{\n}\n\n// Generated from `System.Web.UnvalidatedRequestValues` in `../../../resources/stubs/System.Web.cs:140:18:140:41; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class UnvalidatedRequestValues\n{\n}\n\n// Generated from `System.Web.UnvalidatedRequestValuesBase` in `../../../resources/stubs/System.Web.cs:5:18:5:45; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class UnvalidatedRequestValuesBase\n{\n}\n\nnamespace Mvc\n{\n// Generated from `System.Web.Mvc.ActionMethodSelectorAttribute` in `../../../resources/stubs/System.Web.cs:240:18:240:46; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ActionMethodSelectorAttribute : System.Attribute\n{\n}\n\n// Generated from `System.Web.Mvc.ActionResult` in `../../../resources/stubs/System.Web.cs:232:18:232:29; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ActionResult\n{\n}\n\n// Generated from `System.Web.Mvc.ControllerContext` in `../../../resources/stubs/System.Web.cs:210:18:210:34; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ControllerContext\n{\n}\n\n// Generated from `System.Web.Mvc.FilterAttribute` in `../../../resources/stubs/System.Web.cs:236:18:236:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class FilterAttribute : System.Attribute\n{\n}\n\n// Generated from `System.Web.Mvc.GlobalFilterCollection` in `../../../resources/stubs/System.Web.cs:280:18:280:39; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class GlobalFilterCollection\n{\n}\n\n// Generated from `System.Web.Mvc.IFilterProvider` in `../../../resources/stubs/System.Web.cs:276:15:276:29; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\ninternal interface IFilterProvider\n{\n}\n\n// Generated from `System.Web.Mvc.IViewDataContainer` in `../../../resources/stubs/System.Web.cs:218:22:218:39; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IViewDataContainer\n{\n}\n\n// Generated from `System.Web.Mvc.ViewContext` in `../../../resources/stubs/System.Web.cs:214:18:214:28; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ViewContext : System.Web.Mvc.ControllerContext\n{\n}\n\n// Generated from `System.Web.Mvc.ViewResult` in `../../../resources/stubs/System.Web.cs:272:18:272:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ViewResult : System.Web.Mvc.ViewResultBase\n{\n}\n\n// Generated from `System.Web.Mvc.ViewResultBase` in `../../../resources/stubs/System.Web.cs:268:18:268:31; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ViewResultBase : System.Web.Mvc.ActionResult\n{\n}\n\n}\nnamespace Routing\n{\n// Generated from `System.Web.Routing.RequestContext` in `../../../resources/stubs/System.Web.cs:299:18:299:31; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class RequestContext\n{\n}\n\n}\nnamespace Script\n{\nnamespace Serialization\n{\n// Generated from `System.Web.Script.Serialization.JavaScriptTypeResolver` in `../../../resources/stubs/System.Web.cs:364:27:364:48; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic abstract class JavaScriptTypeResolver\n{\n}\n\n}\n}\nnamespace Security\n{\n// Generated from `System.Web.Security.MembershipUser` in `../../../resources/stubs/System.Web.cs:322:18:322:31; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class MembershipUser\n{\n}\n\n}\nnamespace SessionState\n{\n// Generated from `System.Web.SessionState.HttpSessionState` in `../../../resources/stubs/System.Web.cs:200:18:200:33; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpSessionState\n{\n}\n\n}\nnamespace UI\n{\n// Generated from `System.Web.UI.Control` in `../../../resources/stubs/System.Web.cs:76:18:76:24; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class Control\n{\n}\n\nnamespace WebControls\n{\n// Generated from `System.Web.UI.WebControls.WebControl` in `../../../resources/stubs/System.Web.cs:104:18:104:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class WebControl : System.Web.UI.Control\n{\n}\n\n}\n}\n}\n}\n\n\n | +| // This file contains auto-generated code.\n\nnamespace System\n{\n// Generated from `System.Uri` in `System.Private.Uri, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Uri : System.Runtime.Serialization.ISerializable\n{\n public override bool Equals(object comparand) => throw null;\n public override int GetHashCode() => throw null;\n void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null;\n public override string ToString() => throw null;\n}\n\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Collections\n{\n// Generated from `System.Collections.SortedList` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class SortedList : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ICloneable\n{\n public virtual void Add(object key, object value) => throw null;\n public virtual void Clear() => throw null;\n public virtual object Clone() => throw null;\n public virtual bool Contains(object key) => throw null;\n public virtual void CopyTo(System.Array array, int arrayIndex) => throw null;\n public virtual int Count { get => throw null; }\n public virtual object GetByIndex(int index) => throw null;\n public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null;\n System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;\n public virtual bool IsFixedSize { get => throw null; }\n public virtual bool IsReadOnly { get => throw null; }\n public virtual bool IsSynchronized { get => throw null; }\n public virtual object this[object key] { get => throw null; set => throw null; }\n public virtual System.Collections.ICollection Keys { get => throw null; }\n public virtual void Remove(object key) => throw null;\n public virtual object SyncRoot { get => throw null; }\n public virtual System.Collections.ICollection Values { get => throw null; }\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Collections\n{\nnamespace Generic\n{\n// Generated from `System.Collections.Generic.Stack<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Stack : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable\n{\n void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null;\n public int Count { get => throw null; }\n System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null;\n System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;\n bool System.Collections.ICollection.IsSynchronized { get => throw null; }\n public T Peek() => throw null;\n object System.Collections.ICollection.SyncRoot { get => throw null; }\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Collections\n{\nnamespace Specialized\n{\n// Generated from `System.Collections.Specialized.NameObjectCollectionBase` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic abstract class NameObjectCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable\n{\n void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null;\n public virtual int Count { get => throw null; }\n public virtual System.Collections.IEnumerator GetEnumerator() => throw null;\n public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;\n bool System.Collections.ICollection.IsSynchronized { get => throw null; }\n public virtual void OnDeserialization(object sender) => throw null;\n object System.Collections.ICollection.SyncRoot { get => throw null; }\n}\n\n// Generated from `System.Collections.Specialized.NameValueCollection` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase\n{\n public string this[string name] { get => throw null; set => throw null; }\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace ComponentModel\n{\n// Generated from `System.ComponentModel.ComponentConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ComponentConverter : System.ComponentModel.ReferenceConverter\n{\n}\n\n// Generated from `System.ComponentModel.DefaultEventAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DefaultEventAttribute : System.Attribute\n{\n public DefaultEventAttribute(string name) => throw null;\n public override bool Equals(object obj) => throw null;\n public override int GetHashCode() => throw null;\n}\n\n// Generated from `System.ComponentModel.DefaultPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DefaultPropertyAttribute : System.Attribute\n{\n public DefaultPropertyAttribute(string name) => throw null;\n public override bool Equals(object obj) => throw null;\n public override int GetHashCode() => throw null;\n}\n\n// Generated from `System.ComponentModel.ReferenceConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ReferenceConverter : System.ComponentModel.TypeConverter\n{\n}\n\n// Generated from `System.ComponentModel.TypeConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TypeConverter\n{\n}\n\n}\nnamespace Timers\n{\n// Generated from `System.Timers.TimersDescriptionAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TimersDescriptionAttribute\n{\n public TimersDescriptionAttribute(string description) => throw null;\n internal TimersDescriptionAttribute(string description, string unused) => throw null;\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace ComponentModel\n{\n// Generated from `System.ComponentModel.TypeConverterAttribute` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TypeConverterAttribute : System.Attribute\n{\n public override bool Equals(object obj) => throw null;\n public override int GetHashCode() => throw null;\n public TypeConverterAttribute() => throw null;\n public TypeConverterAttribute(System.Type type) => throw null;\n public TypeConverterAttribute(string typeName) => throw null;\n}\n\n// Generated from `System.ComponentModel.TypeDescriptionProviderAttribute` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class TypeDescriptionProviderAttribute : System.Attribute\n{\n public TypeDescriptionProviderAttribute(System.Type type) => throw null;\n public TypeDescriptionProviderAttribute(string typeName) => throw null;\n}\n\n}\nnamespace Windows\n{\nnamespace Markup\n{\n// Generated from `System.Windows.Markup.ValueSerializerAttribute` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ValueSerializerAttribute : System.Attribute\n{\n public ValueSerializerAttribute(System.Type valueSerializerType) => throw null;\n public ValueSerializerAttribute(string valueSerializerTypeName) => throw null;\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.Enumerable` in `System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic static class Enumerable\n{\n public static System.Collections.Generic.IEnumerable Select(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null;\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.IQueryable` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic interface IQueryable : System.Collections.IEnumerable\n{\n}\n\n}\nnamespace Runtime\n{\nnamespace CompilerServices\n{\n// Generated from `System.Runtime.CompilerServices.CallSite` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class CallSite\n{\n internal CallSite(System.Runtime.CompilerServices.CallSiteBinder binder) => throw null;\n}\n\n// Generated from `System.Runtime.CompilerServices.CallSite<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class CallSite : System.Runtime.CompilerServices.CallSite where T: class\n{\n private CallSite() : base(default(System.Runtime.CompilerServices.CallSiteBinder)) => throw null;\n private CallSite(System.Runtime.CompilerServices.CallSiteBinder binder) : base(default(System.Runtime.CompilerServices.CallSiteBinder)) => throw null;\n}\n\n// Generated from `System.Runtime.CompilerServices.CallSiteBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic abstract class CallSiteBinder\n{\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.ParallelEnumerable` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic static class ParallelEnumerable\n{\n public static System.Linq.ParallelQuery AsParallel(this System.Collections.IEnumerable source) => throw null;\n}\n\n// Generated from `System.Linq.ParallelQuery` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class ParallelQuery : System.Collections.IEnumerable\n{\n System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;\n internal ParallelQuery(System.Linq.Parallel.QuerySettings specifiedSettings) => throw null;\n}\n\nnamespace Parallel\n{\n// Generated from `System.Linq.Parallel.QuerySettings` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\ninternal struct QuerySettings\n{\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Linq\n{\n// Generated from `System.Linq.Queryable` in `System.Linq.Queryable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic static class Queryable\n{\n public static System.Linq.IQueryable AsQueryable(this System.Collections.IEnumerable source) => throw null;\n}\n\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Runtime\n{\nnamespace Serialization\n{\n// Generated from `System.Runtime.Serialization.DataContractAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DataContractAttribute : System.Attribute\n{\n public DataContractAttribute() => throw null;\n}\n\n// Generated from `System.Runtime.Serialization.DataMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class DataMemberAttribute : System.Attribute\n{\n public DataMemberAttribute() => throw null;\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Security\n{\nnamespace Cryptography\n{\n// Generated from `System.Security.Cryptography.PaddingMode` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic enum PaddingMode\n{\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Text\n{\nnamespace RegularExpressions\n{\n// Generated from `System.Text.RegularExpressions.Capture` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Capture\n{\n internal Capture(string text, int index, int length) => throw null;\n public override string ToString() => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.Group` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Group : System.Text.RegularExpressions.Capture\n{\n internal Group(string text, int[] caps, int capcount, string name) : base(default(string), default(int), default(int)) => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.Match` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Match : System.Text.RegularExpressions.Group\n{\n internal Match(System.Text.RegularExpressions.Regex regex, int capcount, string text, int begpos, int len, int startpos) : base(default(string), default(int[]), default(int), default(string)) => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.Regex` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\npublic class Regex : System.Runtime.Serialization.ISerializable\n{\n void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null;\n public System.Text.RegularExpressions.Match Match(string input) => throw null;\n public static System.Text.RegularExpressions.Match Match(string input, string pattern) => throw null;\n public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null;\n public Regex(string pattern) => throw null;\n public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null;\n public string Replace(string input, string replacement) => throw null;\n public override string ToString() => throw null;\n}\n\n// Generated from `System.Text.RegularExpressions.RegexOptions` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`\n[System.Flags]\npublic enum RegexOptions\n{\n IgnoreCase,\n}\n\n}\n}\n}\n\n\n// This file contains auto-generated code.\n\nnamespace System\n{\nnamespace Web\n{\n// Generated from `System.Web.HtmlString` in `../../../resources/stubs/System.Web.cs:34:18:34:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HtmlString : System.Web.IHtmlString\n{\n}\n\n// Generated from `System.Web.HttpContextBase` in `../../../resources/stubs/System.Web.cs:24:18:24:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpContextBase\n{\n public virtual System.Web.HttpRequestBase Request { get => throw null; }\n}\n\n// Generated from `System.Web.HttpCookie` in `../../../resources/stubs/System.Web.cs:173:18:173:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpCookie\n{\n}\n\n// Generated from `System.Web.HttpCookieCollection` in `../../../resources/stubs/System.Web.cs:191:27:191:46; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic abstract class HttpCookieCollection : System.Collections.Specialized.NameObjectCollectionBase\n{\n}\n\n// Generated from `System.Web.HttpRequest` in `../../../resources/stubs/System.Web.cs:145:18:145:28; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpRequest\n{\n}\n\n// Generated from `System.Web.HttpRequestBase` in `../../../resources/stubs/System.Web.cs:10:18:10:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpRequestBase\n{\n public virtual System.Collections.Specialized.NameValueCollection QueryString { get => throw null; }\n}\n\n// Generated from `System.Web.HttpResponse` in `../../../resources/stubs/System.Web.cs:156:18:156:29; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpResponse\n{\n}\n\n// Generated from `System.Web.HttpResponseBase` in `../../../resources/stubs/System.Web.cs:19:18:19:33; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpResponseBase\n{\n}\n\n// Generated from `System.Web.HttpServerUtility` in `../../../resources/stubs/System.Web.cs:41:18:41:34; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpServerUtility\n{\n}\n\n// Generated from `System.Web.IHtmlString` in `../../../resources/stubs/System.Web.cs:30:22:30:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IHtmlString\n{\n}\n\n// Generated from `System.Web.IHttpHandler` in `../../../resources/stubs/System.Web.cs:132:22:132:33; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IHttpHandler\n{\n}\n\n// Generated from `System.Web.IServiceProvider` in `../../../resources/stubs/System.Web.cs:136:22:136:37; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IServiceProvider\n{\n}\n\n// Generated from `System.Web.UnvalidatedRequestValues` in `../../../resources/stubs/System.Web.cs:140:18:140:41; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class UnvalidatedRequestValues\n{\n}\n\n// Generated from `System.Web.UnvalidatedRequestValuesBase` in `../../../resources/stubs/System.Web.cs:5:18:5:45; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class UnvalidatedRequestValuesBase\n{\n}\n\nnamespace Mvc\n{\n// Generated from `System.Web.Mvc.ActionMethodSelectorAttribute` in `../../../resources/stubs/System.Web.cs:240:18:240:46; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ActionMethodSelectorAttribute : System.Attribute\n{\n}\n\n// Generated from `System.Web.Mvc.ActionResult` in `../../../resources/stubs/System.Web.cs:232:18:232:29; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ActionResult\n{\n}\n\n// Generated from `System.Web.Mvc.ControllerContext` in `../../../resources/stubs/System.Web.cs:210:18:210:34; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ControllerContext\n{\n}\n\n// Generated from `System.Web.Mvc.FilterAttribute` in `../../../resources/stubs/System.Web.cs:236:18:236:32; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class FilterAttribute : System.Attribute\n{\n}\n\n// Generated from `System.Web.Mvc.GlobalFilterCollection` in `../../../resources/stubs/System.Web.cs:280:18:280:39; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class GlobalFilterCollection\n{\n}\n\n// Generated from `System.Web.Mvc.IFilterProvider` in `../../../resources/stubs/System.Web.cs:276:15:276:29; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\ninternal interface IFilterProvider\n{\n}\n\n// Generated from `System.Web.Mvc.IViewDataContainer` in `../../../resources/stubs/System.Web.cs:218:22:218:39; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic interface IViewDataContainer\n{\n}\n\n// Generated from `System.Web.Mvc.ViewContext` in `../../../resources/stubs/System.Web.cs:214:18:214:28; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ViewContext : System.Web.Mvc.ControllerContext\n{\n}\n\n// Generated from `System.Web.Mvc.ViewResult` in `../../../resources/stubs/System.Web.cs:272:18:272:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ViewResult : System.Web.Mvc.ViewResultBase\n{\n}\n\n// Generated from `System.Web.Mvc.ViewResultBase` in `../../../resources/stubs/System.Web.cs:268:18:268:31; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class ViewResultBase : System.Web.Mvc.ActionResult\n{\n}\n\n}\nnamespace Routing\n{\n// Generated from `System.Web.Routing.RequestContext` in `../../../resources/stubs/System.Web.cs:299:18:299:31; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class RequestContext\n{\n}\n\n}\nnamespace Script\n{\nnamespace Serialization\n{\n// Generated from `System.Web.Script.Serialization.JavaScriptTypeResolver` in `../../../resources/stubs/System.Web.cs:364:27:364:48; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic abstract class JavaScriptTypeResolver\n{\n}\n\n}\n}\nnamespace Security\n{\n// Generated from `System.Web.Security.MembershipUser` in `../../../resources/stubs/System.Web.cs:322:18:322:31; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class MembershipUser\n{\n}\n\n}\nnamespace SessionState\n{\n// Generated from `System.Web.SessionState.HttpSessionState` in `../../../resources/stubs/System.Web.cs:200:18:200:33; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class HttpSessionState\n{\n}\n\n}\nnamespace UI\n{\n// Generated from `System.Web.UI.Control` in `../../../resources/stubs/System.Web.cs:76:18:76:24; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class Control\n{\n}\n\nnamespace WebControls\n{\n// Generated from `System.Web.UI.WebControls.WebControl` in `../../../resources/stubs/System.Web.cs:104:18:104:27; System.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null`\npublic class WebControl : System.Web.UI.Control\n{\n}\n\n}\n}\n}\n}\n\n\n | diff --git a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Dapper/2.0.90/Dapper.csproj b/csharp/ql/test/resources/stubs/Dapper/2.0.90/Dapper.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Dapper/2.0.90/Dapper.csproj +++ b/csharp/ql/test/resources/stubs/Dapper/2.0.90/Dapper.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj +++ b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Win32.Registry/4.7.0/Microsoft.Win32.Registry.csproj b/csharp/ql/test/resources/stubs/Microsoft.Win32.Registry/4.7.0/Microsoft.Win32.Registry.csproj index e85d095ac53..afc8dcb53ac 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Win32.Registry/4.7.0/Microsoft.Win32.Registry.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Win32.Registry/4.7.0/Microsoft.Win32.Registry.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj b/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj index 618c2e10562..21acef4ba53 100644 --- a/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj +++ b/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj +++ b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj index e0a19817ca4..c5bd405920c 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj +++ b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj +++ b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj index 55204146344..dfa14fb4a16 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj index 55204146344..dfa14fb4a16 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj index 28ab0bdded8..9ebcc948a8e 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj index 8892d1db1e6..d9ae08d3e14 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj index 8892d1db1e6..d9ae08d3e14 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj b/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj index 28e9013b823..1358797c51a 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj index dc65ec7a17f..252eddf5f12 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj b/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj +++ b/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj b/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj index 94080f732d7..018413bd509 100644 --- a/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Principal.Windows/4.7.0/System.Security.Principal.Windows.csproj b/csharp/ql/test/resources/stubs/System.Security.Principal.Windows/4.7.0/System.Security.Principal.Windows.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Principal.Windows/4.7.0/System.Security.Principal.Windows.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Principal.Windows/4.7.0/System.Security.Principal.Windows.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj index 01f1dc2068d..73c71ffe29b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj index d00db04fb4f..070730a8f3e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.7.0/runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.7.0/runtime.native.System.Data.SqlClient.sni.csproj index 94c40b4e84c..2fa29f9485e 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.7.0/runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.7.0/runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj index 36eddf7809c..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net5.0 + net6.0 true bin\ false diff --git a/docs/ql-libraries/dataflow/dataflow.md b/docs/ql-libraries/dataflow/dataflow.md index 1a83d0c8e05..31a8e12a5cc 100644 --- a/docs/ql-libraries/dataflow/dataflow.md +++ b/docs/ql-libraries/dataflow/dataflow.md @@ -92,7 +92,7 @@ Recommendations: See the C/C++ implementation, which makes use of this feature. Another use of this indirection is to hide synthesized local steps that are only relevant for global flow. See the C# implementation for an example of this. -* Define `predicate localFlow(Node node1, Node node2) { localFlowStep*(node1, node2) }`. +* Define `pragma[inline] predicate localFlow(Node node1, Node node2) { localFlowStep*(node1, node2) }`. * Make the local flow step relation in `simpleLocalFlowStep` follow def-to-first-use and use-to-next-use steps for SSA variables. Def-use steps also work, but the upside of `use-use` steps is that sources defined in terms diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 8b14e2a95af..13287d2972c 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -1,111 +1,112 @@ -package,sink,source,summary,sink:bean-validation,sink:create-file,sink:groovy,sink:header-splitting,sink:information-leak,sink:intent-start,sink:jexl,sink:jndi-injection,sink:ldap,sink:logging,sink:mvel,sink:ognl-injection,sink:open-url,sink:pending-intent-sent,sink:set-hostname-verifier,sink:sql,sink:url-open-stream,sink:url-redirect,sink:write-file,sink:xpath,sink:xslt,sink:xss,source:contentprovider,source:remote,summary:taint,summary:value -android.app,16,,103,,,,,,7,,,,,,,,9,,,,,,,,,,,18,85 -android.content,24,27,96,,,,,,16,,,,,,,,,,8,,,,,,,27,,31,65 -android.database,59,,30,,,,,,,,,,,,,,,,59,,,,,,,,,30, -android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,45,15 -android.os,,,122,,,,,,,,,,,,,,,,,,,,,,,,,41,81 -android.util,6,16,,,,,,,,,,,6,,,,,,,,,,,,,,16,, -android.webkit,3,2,,,,,,,,,,,,,,,,,,,,,,,3,,2,, -androidx.slice,2,5,88,,,,,,,,,,,,,,2,,,,,,,,,5,,27,61 -cn.hutool.core.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.fasterxml.jackson.databind,,,6,,,,,,,,,,,,,,,,,,,,,,,,,6, -com.google.common.base,,,85,,,,,,,,,,,,,,,,,,,,,,,,,62,23 -com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,17 -com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,2,551 -com.google.common.flogger,29,,,,,,,,,,,,29,,,,,,,,,,,,,,,, -com.google.common.io,6,,73,,,,,,,,,,,,,,,,,6,,,,,,,,72,1 -com.opensymphony.xwork2.ognl,3,,,,,,,,,,,,,,3,,,,,,,,,,,,,, -com.unboundid.ldap.sdk,17,,,,,,,,,,,17,,,,,,,,,,,,,,,,, -flexjson,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1 -groovy.lang,26,,,,,26,,,,,,,,,,,,,,,,,,,,,,, -groovy.util,5,,,,,5,,,,,,,,,,,,,,,,,,,,,,, -jakarta.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,2,,7,, -jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,100,23 -jakarta.ws.rs.client,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,, -jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,9,, -jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,2,,,,,,,94,55 -java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -java.io,37,,31,,15,,,,,,,,,,,,,,,,,22,,,,,,31, -java.lang,8,,58,,,,,,,,,,8,,,,,,,,,,,,,,,46,12 -java.net,10,3,7,,,,,,,,,,,,,10,,,,,,,,,,,3,7, -java.nio,15,,6,,13,,,,,,,,,,,,,,,,,2,,,,,,6, -java.sql,7,,,,,,,,,,,,,,,,,,7,,,,,,,,,, -java.util,34,,438,,,,,,,,,,34,,,,,,,,,,,,,,,24,414 -javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,2,,7,, -javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,100,23 -javax.management.remote,2,,,,,,,,,,2,,,,,,,,,,,,,,,,,, -javax.naming,7,,,,,,,,,,6,1,,,,,,,,,,,,,,,,, -javax.net.ssl,2,,,,,,,,,,,,,,,,,2,,,,,,,,,,, -javax.script,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,, -javax.servlet,4,21,2,,,,3,1,,,,,,,,,,,,,,,,,,,21,2, -javax.validation,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,1,, -javax.ws.rs.client,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,, -javax.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,9,, -javax.ws.rs.core,3,,149,,,,1,,,,,,,,,,,,,,2,,,,,,,94,55 -javax.xml.transform,1,,6,,,,,,,,,,,,,,,,,,,,,1,,,,6, -javax.xml.xpath,3,,,,,,,,,,,,,,,,,,,,,,3,,,,,, -jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,10 -net.sf.saxon.s9api,5,,,,,,,,,,,,,,,,,,,,,,,5,,,,, -ognl,6,,,,,,,,,,,,,,6,,,,,,,,,,,,,, -org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,6, -org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.io,93,2,565,,78,,,,,,,,,,,15,,,,,,,,,,,2,551,14 -org.apache.commons.jexl2,15,,,,,,,,,15,,,,,,,,,,,,,,,,,,, -org.apache.commons.jexl3,15,,,,,,,,,15,,,,,,,,,,,,,,,,,,, -org.apache.commons.lang3,,,424,,,,,,,,,,,,,,,,,,,,,,,,,293,131 -org.apache.commons.logging,6,,,,,,,,,,,,6,,,,,,,,,,,,,,,, -org.apache.commons.ognl,6,,,,,,,,,,,,,,6,,,,,,,,,,,,,, -org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,220,52 -org.apache.directory.ldap.client.api,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,, -org.apache.hc.core5.function,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.hc.core5.http,1,2,39,,,,,,,,,,,,,,,,,,,,,,1,,2,39, -org.apache.hc.core5.net,,,2,,,,,,,,,,,,,,,,,,,,,,,,,2, -org.apache.hc.core5.util,,,24,,,,,,,,,,,,,,,,,,,,,,,,,18,6 -org.apache.http,27,3,70,,,,,,,,,,,,,25,,,,,,,,,2,,3,62,8 -org.apache.ibatis.jdbc,6,,,,,,,,,,,,,,,,,,6,,,,,,,,,, -org.apache.log4j,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,, -org.apache.logging.log4j,359,,8,,,,,,,,,,359,,,,,,,,,,,,,,,4,4 -org.apache.shiro.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.shiro.jndi,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,, -org.codehaus.groovy.control,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,, -org.dom4j,20,,,,,,,,,,,,,,,,,,,,,,20,,,,,, -org.hibernate,7,,,,,,,,,,,,,,,,,,7,,,,,,,,,, -org.jboss.logging,324,,,,,,,,,,,,324,,,,,,,,,,,,,,,, -org.jooq,1,,,,,,,,,,,,,,,,,,1,,,,,,,,,, -org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,198,38 -org.mvel2,16,,,,,,,,,,,,,16,,,,,,,,,,,,,,, -org.scijava.log,13,,,,,,,,,,,,13,,,,,,,,,,,,,,,, -org.slf4j,55,,6,,,,,,,,,,55,,,,,,,,,,,,,,,2,4 -org.springframework.beans,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,26 -org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,13 -org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,3, -org.springframework.http,14,,70,,,,,,,,,,,,,14,,,,,,,,,,,,60,10 -org.springframework.jdbc.core,10,,,,,,,,,,,,,,,,,,10,,,,,,,,,, -org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,9,,,,,,,,,, -org.springframework.jndi,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,, -org.springframework.ldap,47,,,,,,,,,,33,14,,,,,,,,,,,,,,,,, -org.springframework.security.web.savedrequest,,6,,,,,,,,,,,,,,,,,,,,,,,,,6,, -org.springframework.ui,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,32 -org.springframework.util,,,139,,,,,,,,,,,,,,,,,,,,,,,,,87,52 -org.springframework.validation,,,13,,,,,,,,,,,,,,,,,,,,,,,,,13, -org.springframework.web.client,13,3,,,,,,,,,,,,,,13,,,,,,,,,,,3,, -org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,8,, -org.springframework.web.multipart,,12,13,,,,,,,,,,,,,,,,,,,,,,,,12,13, -org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,2,,,,,,,,,,,,, -org.springframework.web.util,,,163,,,,,,,,,,,,,,,,,,,,,,,,,138,25 -org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,3,, -play.mvc,,4,,,,,,,,,,,,,,,,,,,,,,,,,4,, -ratpack.core.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,3, -ratpack.core.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,6,4, -ratpack.core.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,10,10, -ratpack.exec,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,48 -ratpack.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,3, -ratpack.func,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,35 -ratpack.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,6,4, -ratpack.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,10,10, -ratpack.util,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,35 +package,sink,source,summary,sink:bean-validation,sink:create-file,sink:groovy,sink:header-splitting,sink:information-leak,sink:intent-start,sink:jexl,sink:jndi-injection,sink:ldap,sink:logging,sink:mvel,sink:ognl-injection,sink:open-url,sink:pending-intent-sent,sink:set-hostname-verifier,sink:sql,sink:url-open-stream,sink:url-redirect,sink:write-file,sink:xpath,sink:xslt,sink:xss,source:android-widget,source:contentprovider,source:remote,summary:taint,summary:value +android.app,16,,103,,,,,,7,,,,,,,,9,,,,,,,,,,,,18,85 +android.content,24,27,100,,,,,,16,,,,,,,,,,8,,,,,,,,27,,31,69 +android.database,59,,30,,,,,,,,,,,,,,,,59,,,,,,,,,,30, +android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 +android.os,,,122,,,,,,,,,,,,,,,,,,,,,,,,,,41,81 +android.util,6,16,,,,,,,,,,,6,,,,,,,,,,,,,,,16,, +android.webkit,3,2,,,,,,,,,,,,,,,,,,,,,,,3,,,2,, +android.widget,,1,1,,,,,,,,,,,,,,,,,,,,,,,1,,,1, +androidx.slice,2,5,88,,,,,,,,,,,,,,2,,,,,,,,,,5,,27,61 +cn.hutool.core.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.fasterxml.jackson.databind,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,6, +com.google.common.base,,,85,,,,,,,,,,,,,,,,,,,,,,,,,,62,23 +com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,17 +com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,,2,551 +com.google.common.flogger,29,,,,,,,,,,,,29,,,,,,,,,,,,,,,,, +com.google.common.io,6,,73,,,,,,,,,,,,,,,,,6,,,,,,,,,72,1 +com.opensymphony.xwork2.ognl,3,,,,,,,,,,,,,,3,,,,,,,,,,,,,,, +com.unboundid.ldap.sdk,17,,,,,,,,,,,17,,,,,,,,,,,,,,,,,, +flexjson,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +groovy.lang,26,,,,,26,,,,,,,,,,,,,,,,,,,,,,,, +groovy.util,5,,,,,5,,,,,,,,,,,,,,,,,,,,,,,, +jakarta.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,2,,,7,, +jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 +jakarta.ws.rs.client,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, +jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,9,, +jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,2,,,,,,,,94,55 +java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +java.io,37,,31,,15,,,,,,,,,,,,,,,,,22,,,,,,,31, +java.lang,8,,58,,,,,,,,,,8,,,,,,,,,,,,,,,,46,12 +java.net,10,3,7,,,,,,,,,,,,,10,,,,,,,,,,,,3,7, +java.nio,15,,6,,13,,,,,,,,,,,,,,,,,2,,,,,,,6, +java.sql,7,,,,,,,,,,,,,,,,,,7,,,,,,,,,,, +java.util,34,,438,,,,,,,,,,34,,,,,,,,,,,,,,,,24,414 +javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,2,,,7,, +javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 +javax.management.remote,2,,,,,,,,,,2,,,,,,,,,,,,,,,,,,, +javax.naming,7,,,,,,,,,,6,1,,,,,,,,,,,,,,,,,, +javax.net.ssl,2,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, +javax.script,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, +javax.servlet,4,21,2,,,,3,1,,,,,,,,,,,,,,,,,,,,21,2, +javax.validation,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,,1,, +javax.ws.rs.client,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, +javax.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,9,, +javax.ws.rs.core,3,,149,,,,1,,,,,,,,,,,,,,2,,,,,,,,94,55 +javax.xml.transform,1,,6,,,,,,,,,,,,,,,,,,,,,1,,,,,6, +javax.xml.xpath,3,,,,,,,,,,,,,,,,,,,,,,3,,,,,,, +jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,10 +net.sf.saxon.s9api,5,,,,,,,,,,,,,,,,,,,,,,,5,,,,,, +ognl,6,,,,,,,,,,,,,,6,,,,,,,,,,,,,,, +org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,6, +org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.io,93,2,565,,78,,,,,,,,,,,15,,,,,,,,,,,,2,551,14 +org.apache.commons.jexl2,15,,,,,,,,,15,,,,,,,,,,,,,,,,,,,, +org.apache.commons.jexl3,15,,,,,,,,,15,,,,,,,,,,,,,,,,,,,, +org.apache.commons.lang3,,,424,,,,,,,,,,,,,,,,,,,,,,,,,,293,131 +org.apache.commons.logging,6,,,,,,,,,,,,6,,,,,,,,,,,,,,,,, +org.apache.commons.ognl,6,,,,,,,,,,,,,,6,,,,,,,,,,,,,,, +org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,,220,52 +org.apache.directory.ldap.client.api,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,, +org.apache.hc.core5.function,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.hc.core5.http,1,2,39,,,,,,,,,,,,,,,,,,,,,,1,,,2,39, +org.apache.hc.core5.net,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,2, +org.apache.hc.core5.util,,,24,,,,,,,,,,,,,,,,,,,,,,,,,,18,6 +org.apache.http,27,3,70,,,,,,,,,,,,,25,,,,,,,,,2,,,3,62,8 +org.apache.ibatis.jdbc,6,,,,,,,,,,,,,,,,,,6,,,,,,,,,,, +org.apache.log4j,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,,, +org.apache.logging.log4j,359,,8,,,,,,,,,,359,,,,,,,,,,,,,,,,4,4 +org.apache.shiro.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.shiro.jndi,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,, +org.codehaus.groovy.control,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, +org.dom4j,20,,,,,,,,,,,,,,,,,,,,,,20,,,,,,, +org.hibernate,7,,,,,,,,,,,,,,,,,,7,,,,,,,,,,, +org.jboss.logging,324,,,,,,,,,,,,324,,,,,,,,,,,,,,,,, +org.jooq,1,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, +org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,,198,38 +org.mvel2,16,,,,,,,,,,,,,16,,,,,,,,,,,,,,,, +org.scijava.log,13,,,,,,,,,,,,13,,,,,,,,,,,,,,,,, +org.slf4j,55,,6,,,,,,,,,,55,,,,,,,,,,,,,,,,2,4 +org.springframework.beans,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,26 +org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,13 +org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,3, +org.springframework.http,14,,70,,,,,,,,,,,,,14,,,,,,,,,,,,,60,10 +org.springframework.jdbc.core,10,,,,,,,,,,,,,,,,,,10,,,,,,,,,,, +org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,9,,,,,,,,,,, +org.springframework.jndi,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,, +org.springframework.ldap,47,,,,,,,,,,33,14,,,,,,,,,,,,,,,,,, +org.springframework.security.web.savedrequest,,6,,,,,,,,,,,,,,,,,,,,,,,,,,6,, +org.springframework.ui,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,32 +org.springframework.util,,,139,,,,,,,,,,,,,,,,,,,,,,,,,,87,52 +org.springframework.validation,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,13, +org.springframework.web.client,13,3,,,,,,,,,,,,,,13,,,,,,,,,,,,3,, +org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,,8,, +org.springframework.web.multipart,,12,13,,,,,,,,,,,,,,,,,,,,,,,,,12,13, +org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,2,,,,,,,,,,,,,, +org.springframework.web.util,,,163,,,,,,,,,,,,,,,,,,,,,,,,,,138,25 +org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,3,, +play.mvc,,4,,,,,,,,,,,,,,,,,,,,,,,,,,4,, +ratpack.core.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,3, +ratpack.core.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,6,4, +ratpack.core.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,10,10, +ratpack.exec,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,48 +ratpack.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,3, +ratpack.func,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,35 +ratpack.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,6,4, +ratpack.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,10,10, +ratpack.util,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,35 diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index b4c5f42a80d..84470186ecc 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -7,7 +7,7 @@ Java framework & library support :widths: auto Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE‑022` :sub:`Path injection`,`CWE‑036` :sub:`Path traversal`,`CWE‑079` :sub:`Cross-site scripting`,`CWE‑089` :sub:`SQL injection`,`CWE‑090` :sub:`LDAP injection`,`CWE‑094` :sub:`Code injection`,`CWE‑319` :sub:`Cleartext transmission` - Android,``android.*``,45,411,108,,,3,67,,, + Android,``android.*``,46,416,108,,,3,67,,, `Apache Commons Collections `_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1600,,,,,,,, `Apache Commons IO `_,``org.apache.commons.io``,2,565,93,78,,,,,,15 `Apache Commons Lang `_,``org.apache.commons.lang3``,,424,,,,,,,, @@ -19,5 +19,5 @@ Java framework & library support Java extensions,"``javax.*``, ``jakarta.*``",54,552,32,,,4,,1,1,2 `Spring `_,``org.springframework.*``,29,472,96,,,,19,14,,29 Others,"``androidx.slice``, ``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.opensymphony.xwork2.ognl``, ``com.unboundid.ldap.sdk``, ``flexjson``, ``groovy.lang``, ``groovy.util``, ``jodd.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.apache.commons.codec``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.logging.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jboss.logging``, ``org.jooq``, ``org.mvel2``, ``org.scijava.log``, ``org.slf4j``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``",44,283,921,,,,14,18,, - Totals,,182,6220,1424,106,6,10,107,33,1,81 + Totals,,183,6225,1424,106,6,10,107,33,1,81 diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index bea9cace0ff..bc5ef79c7a7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -78,10 +78,12 @@ private import FlowSummary private module Frameworks { private import internal.ContainerFlow private import semmle.code.java.frameworks.android.Android + private import semmle.code.java.frameworks.android.ContentProviders private import semmle.code.java.frameworks.android.Intent private import semmle.code.java.frameworks.android.Notifications private import semmle.code.java.frameworks.android.Slice private import semmle.code.java.frameworks.android.SQLite + private import semmle.code.java.frameworks.android.Widget private import semmle.code.java.frameworks.android.XssSinks private import semmle.code.java.frameworks.ApacheHttp private import semmle.code.java.frameworks.apache.Collections diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll index 5debcf7b178..50dcb8901ea 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll @@ -1290,7 +1290,7 @@ class DataFlowCallOption extends TDataFlowCallOption { } } -/** Content tagged with the type of a containing object. */ +/** A `Content` tagged with the type of a containing object. */ class TypedContent extends MkTypedContent { private Content c; private DataFlowType t; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll index 1ae6749877d..695f20110c1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -74,12 +74,14 @@ private module ThisFlow { * Holds if data can flow from `node1` to `node2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localFlow(Node node1, Node node2) { localFlowStep*(node1, node2) } /** * Holds if data can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) } /** diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index 1ded4e7bed1..3cd828078bc 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -90,7 +90,9 @@ module Public { predicate contains(SummaryComponent c) { c = this.drop(_).head() } /** Gets the bottom element of this stack. */ - SummaryComponent bottom() { result = this.drop(this.length() - 1).head() } + SummaryComponent bottom() { + this = TSingletonSummaryComponentStack(result) or result = this.tail().bottom() + } /** Gets a textual representation of this stack. */ string toString() { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll index 59608d792f2..4797dcfaf59 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll @@ -21,12 +21,14 @@ private import semmle.code.java.frameworks.JaxWS * Holds if taint can flow from `src` to `sink` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localTaint(DataFlow::Node src, DataFlow::Node sink) { localTaintStep*(src, sink) } /** * Holds if taint can flow from `src` to `sink` in zero or more * local (intra-procedural) steps. */ +pragma[inline] predicate localExprTaint(Expr src, Expr sink) { localTaint(DataFlow::exprNode(src), DataFlow::exprNode(sink)) } diff --git a/java/ql/lib/semmle/code/java/frameworks/Thrift.qll b/java/ql/lib/semmle/code/java/frameworks/Thrift.qll index bf826cfe47e..a441c6f7e56 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Thrift.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Thrift.qll @@ -25,6 +25,7 @@ class ThriftIface extends Interface { this.getFile() instanceof ThriftGeneratedFile } + /** Gets an implementation of a method of this interface. */ Method getAnImplementingMethod() { result.getDeclaringType().(Class).getASupertype+() = this and result.overrides+(this.getAMethod()) and diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Android.qll b/java/ql/lib/semmle/code/java/frameworks/android/Android.qll index 41ad2d14968..b1a0d49e96f 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Android.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Android.qll @@ -177,42 +177,6 @@ private class UriModel extends SummaryModelCsv { } } -private class ContentProviderSourceModels extends SourceModelCsv { - override predicate row(string row) { - row = - [ - // ContentInterface models are here for backwards compatibility (it was removed in API 28) - "android.content;ContentInterface;true;call;(String,String,String,Bundle);;Parameter[0..3];contentprovider", - "android.content;ContentProvider;true;call;(String,String,String,Bundle);;Parameter[0..3];contentprovider", - "android.content;ContentProvider;true;call;(String,String,Bundle);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;delete;(Uri,String,String[]);;Parameter[0..2];contentprovider", - "android.content;ContentInterface;true;delete;(Uri,Bundle);;Parameter[0..1];contentprovider", - "android.content;ContentProvider;true;delete;(Uri,Bundle);;Parameter[0..1];contentprovider", - "android.content;ContentInterface;true;getType;(Uri);;Parameter[0];contentprovider", - "android.content;ContentProvider;true;getType;(Uri);;Parameter[0];contentprovider", - "android.content;ContentInterface;true;insert;(Uri,ContentValues,Bundle);;Parameter[0];contentprovider", - "android.content;ContentProvider;true;insert;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;insert;(Uri,ContentValues);;Parameter[0..1];contentprovider", - "android.content;ContentInterface;true;openAssetFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", - "android.content;ContentProvider;true;openAssetFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", - "android.content;ContentProvider;true;openAssetFile;(Uri,String);;Parameter[0];contentprovider", - "android.content;ContentInterface;true;openTypedAssetFile;(Uri,String,Bundle,CancellationSignal);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;openTypedAssetFile;(Uri,String,Bundle,CancellationSignal);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;openTypedAssetFile;(Uri,String,Bundle);;Parameter[0..2];contentprovider", - "android.content;ContentInterface;true;openFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", - "android.content;ContentProvider;true;openFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", - "android.content;ContentProvider;true;openFile;(Uri,String);;Parameter[0];contentprovider", - "android.content;ContentInterface;true;query;(Uri,String[],Bundle,CancellationSignal);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;query;(Uri,String[],Bundle,CancellationSignal);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;query;(Uri,String[],String,String[],String);;Parameter[0..4];contentprovider", - "android.content;ContentProvider;true;query;(Uri,String[],String,String[],String,CancellationSignal);;Parameter[0..4];contentprovider", - "android.content;ContentInterface;true;update;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;update;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider", - "android.content;ContentProvider;true;update;(Uri,ContentValues,String,String[]);;Parameter[0..3];contentprovider" - ] - } -} - /** Interface for classes whose instances can be written to and restored from a Parcel. */ class TypeParcelable extends Interface { TypeParcelable() { this.hasQualifiedName("android.os", "Parcelable") } diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll b/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll new file mode 100644 index 00000000000..42c22fcf871 --- /dev/null +++ b/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll @@ -0,0 +1,59 @@ +/** + * Provides classes and predicates for working with Content Providers. + */ + +import java +import semmle.code.java.dataflow.ExternalFlow + +/** The class `android.content.ContentValues`. */ +class ContentValues extends Class { + ContentValues() { this.hasQualifiedName("android.content", "ContentValues") } +} + +private class ContentProviderSourceModels extends SourceModelCsv { + override predicate row(string row) { + row = + [ + // ContentInterface models are here for backwards compatibility (it was removed in API 28) + "android.content;ContentInterface;true;call;(String,String,String,Bundle);;Parameter[0..3];contentprovider", + "android.content;ContentProvider;true;call;(String,String,String,Bundle);;Parameter[0..3];contentprovider", + "android.content;ContentProvider;true;call;(String,String,Bundle);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;delete;(Uri,String,String[]);;Parameter[0..2];contentprovider", + "android.content;ContentInterface;true;delete;(Uri,Bundle);;Parameter[0..1];contentprovider", + "android.content;ContentProvider;true;delete;(Uri,Bundle);;Parameter[0..1];contentprovider", + "android.content;ContentInterface;true;getType;(Uri);;Parameter[0];contentprovider", + "android.content;ContentProvider;true;getType;(Uri);;Parameter[0];contentprovider", + "android.content;ContentInterface;true;insert;(Uri,ContentValues,Bundle);;Parameter[0];contentprovider", + "android.content;ContentProvider;true;insert;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;insert;(Uri,ContentValues);;Parameter[0..1];contentprovider", + "android.content;ContentInterface;true;openAssetFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", + "android.content;ContentProvider;true;openAssetFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", + "android.content;ContentProvider;true;openAssetFile;(Uri,String);;Parameter[0];contentprovider", + "android.content;ContentInterface;true;openTypedAssetFile;(Uri,String,Bundle,CancellationSignal);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;openTypedAssetFile;(Uri,String,Bundle,CancellationSignal);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;openTypedAssetFile;(Uri,String,Bundle);;Parameter[0..2];contentprovider", + "android.content;ContentInterface;true;openFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", + "android.content;ContentProvider;true;openFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider", + "android.content;ContentProvider;true;openFile;(Uri,String);;Parameter[0];contentprovider", + "android.content;ContentInterface;true;query;(Uri,String[],Bundle,CancellationSignal);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;query;(Uri,String[],Bundle,CancellationSignal);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;query;(Uri,String[],String,String[],String);;Parameter[0..4];contentprovider", + "android.content;ContentProvider;true;query;(Uri,String[],String,String[],String,CancellationSignal);;Parameter[0..4];contentprovider", + "android.content;ContentInterface;true;update;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;update;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider", + "android.content;ContentProvider;true;update;(Uri,ContentValues,String,String[]);;Parameter[0..3];contentprovider" + ] + } +} + +private class SummaryModels extends SummaryModelCsv { + override predicate row(string row) { + row = + [ + "android.content;ContentValues;false;put;;;Argument[0];MapKey of Argument[-1];value", + "android.content;ContentValues;false;put;;;Argument[1];MapValue of Argument[-1];value", + "android.content;ContentValues;false;putAll;;;MapKey of Argument[0];MapKey of Argument[-1];value", + "android.content;ContentValues;false;putAll;;;MapValue of Argument[0];MapValue of Argument[-1];value" + ] + } +} diff --git a/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll b/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll index 1d189cca569..684df41ac56 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll @@ -1,3 +1,5 @@ +/** Provides classes and predicates for working with SQLite databases. */ + import java import Android import semmle.code.java.dataflow.FlowSteps @@ -24,6 +26,20 @@ class TypeDatabaseUtils extends Class { TypeDatabaseUtils() { hasQualifiedName("android.database", "DatabaseUtils") } } +/** + * The class `android.database.sqlite.SQLiteOpenHelper`. + */ +class TypeSQLiteOpenHelper extends Class { + TypeSQLiteOpenHelper() { this.hasQualifiedName("android.database.sqlite", "SQLiteOpenHelper") } +} + +/** + * The class `android.database.sqlite.SQLiteStatement`. + */ +class TypeSQLiteStatement extends Class { + TypeSQLiteStatement() { this.hasQualifiedName("android.database.sqlite", "SQLiteStatement") } +} + private class SQLiteSinkCsv extends SinkModelCsv { override predicate row(string row) { row = diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll b/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll new file mode 100644 index 00000000000..c5eda29547b --- /dev/null +++ b/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll @@ -0,0 +1,23 @@ +/** Provides classes and predicates for working with Android widgets. */ + +import java +import semmle.code.java.dataflow.ExternalFlow +import semmle.code.java.dataflow.FlowSources + +private class AndroidWidgetSourceModels extends SourceModelCsv { + override predicate row(string row) { + row = "android.widget;EditText;true;getText;;;ReturnValue;android-widget" + } +} + +private class DefaultAndroidWidgetSources extends RemoteFlowSource { + DefaultAndroidWidgetSources() { sourceNode(this, "android-widget") } + + override string getSourceType() { result = "Android widget source" } +} + +private class AndroidWidgetSummaryModels extends SummaryModelCsv { + override predicate row(string row) { + row = "android.widget;EditText;true;getText;;;Argument[-1];ReturnValue;taint" + } +} diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll index 5ee8f25724e..27ada4d6ff0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll @@ -15,6 +15,7 @@ class StrutsAnnotation extends Annotation { class StrutsActionAnnotation extends StrutsAnnotation { StrutsActionAnnotation() { this.getType().hasName("Action") } + /** Gets a callable annotated with this annotation. */ Callable getActionCallable() { result = this.getAnnotatedElement() or diff --git a/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidDatabaseQuery.qll b/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidDatabaseQuery.qll new file mode 100644 index 00000000000..0a1f306677f --- /dev/null +++ b/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidDatabaseQuery.qll @@ -0,0 +1,131 @@ +/** Provides classes and predicates to reason about cleartext storage in Android databases. */ + +import java +import semmle.code.java.dataflow.DataFlow +import semmle.code.java.frameworks.android.ContentProviders +import semmle.code.java.frameworks.android.Intent +import semmle.code.java.frameworks.android.SQLite +import semmle.code.java.security.CleartextStorageQuery + +private class LocalDatabaseCleartextStorageSink extends CleartextStorageSink { + LocalDatabaseCleartextStorageSink() { localDatabaseInput(_, this.asExpr()) } +} + +private class LocalDatabaseCleartextStorageStep extends CleartextStorageAdditionalTaintStep { + override predicate step(DataFlow::Node n1, DataFlow::Node n2) { + // EditText.getText() return type is parsed as `Object`, so we need to + // add a taint step for `Object.toString` to model `editText.getText().toString()` + exists(MethodAccess ma, Method m | + ma.getMethod() = m and + m.getDeclaringType() instanceof TypeObject and + m.hasName("toString") + | + n1.asExpr() = ma.getQualifier() and n2.asExpr() = ma + ) + } +} + +/** The creation of an object that can be used to store data in a local database. */ +class LocalDatabaseOpenMethodAccess extends Storable, Call { + LocalDatabaseOpenMethodAccess() { + exists(Method m | this.(MethodAccess).getMethod() = m | + m.getDeclaringType().getASupertype*() instanceof TypeSQLiteOpenHelper and + m.hasName("getWritableDatabase") + or + m.getDeclaringType() instanceof TypeSQLiteDatabase and + m.hasName(["create", "openDatabase", "openOrCreateDatabase", "compileStatement"]) + or + m.getDeclaringType().getASupertype*() instanceof TypeContext and + m.hasName("openOrCreateDatabase") + ) + or + this.(ClassInstanceExpr).getConstructedType() instanceof ContentValues + } + + override Expr getAnInput() { + exists(LocalDatabaseFlowConfig config, DataFlow::Node database | + localDatabaseInput(database, result) and + config.hasFlow(DataFlow::exprNode(this), database) + ) + } + + override Expr getAStore() { + exists(LocalDatabaseFlowConfig config, DataFlow::Node database | + localDatabaseStore(database, result) and + config.hasFlow(DataFlow::exprNode(this), database) + ) + } +} + +/** A method that is both a database input and a database store. */ +private class LocalDatabaseInputStoreMethod extends Method { + LocalDatabaseInputStoreMethod() { + this.getDeclaringType() instanceof TypeSQLiteDatabase and + this.getName().matches("exec%SQL") + } +} + +/** + * Holds if `input` is a value being prepared for being stored into the SQLite dataabse `database`. + * This can be done using prepared statements, using the class `ContentValues`, or directly + * appending `input` to a SQL query. + */ +private predicate localDatabaseInput(DataFlow::Node database, Argument input) { + exists(Method m | input.getCall().getCallee() = m | + m instanceof LocalDatabaseInputStoreMethod and + database.asExpr() = input.getCall().getQualifier() + or + m.getDeclaringType() instanceof TypeSQLiteDatabase and + m.hasName("compileStatement") and + database.asExpr() = input.getCall() + or + m.getDeclaringType() instanceof ContentValues and + m.hasName("put") and + input.getPosition() = 1 and + database.asExpr() = input.getCall().getQualifier() + ) +} + +/** + * Holds if `store` is a method call for storing a previously appended input value, + * either through the use of prepared statements, via the `ContentValues` class, or + * directly executing a raw SQL query. + */ +private predicate localDatabaseStore(DataFlow::Node database, MethodAccess store) { + exists(Method m | store.getMethod() = m | + m instanceof LocalDatabaseInputStoreMethod and + database.asExpr() = store.getQualifier() + or + m.getDeclaringType() instanceof TypeSQLiteDatabase and + m.getName().matches(["insert%", "replace%", "update%"]) and + database.asExpr() = store.getAnArgument() and + database.getType() instanceof ContentValues + or + m.getDeclaringType() instanceof TypeSQLiteStatement and + m.hasName(["executeInsert", "executeUpdateDelete"]) and + database.asExpr() = store.getQualifier() + ) +} + +private class LocalDatabaseFlowConfig extends DataFlow::Configuration { + LocalDatabaseFlowConfig() { this = "LocalDatabaseFlowConfig" } + + override predicate isSource(DataFlow::Node source) { + source.asExpr() instanceof LocalDatabaseOpenMethodAccess + } + + override predicate isSink(DataFlow::Node sink) { + localDatabaseInput(sink, _) or + localDatabaseStore(sink, _) + } + + override predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { + // Adds a step for tracking databases through field flow, that is, a database is opened and + // assigned to a field, and then an input or store method is called on that field elsewhere. + exists(Field f | + f.getType() instanceof TypeSQLiteDatabase and + f.getAnAssignedValue() = n1.asExpr() and + f = n2.asExpr().(FieldRead).getField() + ) + } +} diff --git a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll index c0c45975d8b..ceaae6fb40e 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll @@ -14,7 +14,11 @@ import java private string suspicious() { - result = ["%password%", "%passwd%", "%account%", "%accnt%", "%trusted%"] + result = + [ + "%password%", "%passwd%", "pwd", "%account%", "%accnt%", "%trusted%", "%refresh%token%", + "%secret%token" + ] } private string nonSuspicious() { diff --git a/java/ql/lib/tutorial.qll b/java/ql/lib/tutorial.qll index 8cb1797a532..190d054d5ac 100644 --- a/java/ql/lib/tutorial.qll +++ b/java/ql/lib/tutorial.qll @@ -6,122 +6,22 @@ */ class Person extends string { Person() { - this = "Ronil" or - this = "Dina" or - this = "Ravi" or - this = "Bruce" or - this = "Jo" or - this = "Aida" or - this = "Esme" or - this = "Charlie" or - this = "Fred" or - this = "Meera" or - this = "Maya" or - this = "Chad" or - this = "Tiana" or - this = "Laura" or - this = "George" or - this = "Will" or - this = "Mary" or - this = "Almira" or - this = "Susannah" or - this = "Rhoda" or - this = "Cynthia" or - this = "Eunice" or - this = "Olive" or - this = "Virginia" or - this = "Angeline" or - this = "Helen" or - this = "Cornelia" or - this = "Harriet" or - this = "Mahala" or - this = "Abby" or - this = "Margaret" or - this = "Deb" or - this = "Minerva" or - this = "Severus" or - this = "Lavina" or - this = "Adeline" or - this = "Cath" or - this = "Elisa" or - this = "Lucretia" or - this = "Anne" or - this = "Eleanor" or - this = "Joanna" or - this = "Adam" or - this = "Agnes" or - this = "Rosanna" or - this = "Clara" or - this = "Melissa" or - this = "Amy" or - this = "Isabel" or - this = "Jemima" or - this = "Cordelia" or - this = "Melinda" or - this = "Delila" or - this = "Jeremiah" or - this = "Elijah" or - this = "Hester" or - this = "Walter" or - this = "Oliver" or - this = "Hugh" or - this = "Aaron" or - this = "Reuben" or - this = "Eli" or - this = "Amos" or - this = "Augustus" or - this = "Theodore" or - this = "Ira" or - this = "Timothy" or - this = "Cyrus" or - this = "Horace" or - this = "Simon" or - this = "Asa" or - this = "Frank" or - this = "Nelson" or - this = "Leonard" or - this = "Harrison" or - this = "Anthony" or - this = "Louis" or - this = "Milton" or - this = "Noah" or - this = "Cornelius" or - this = "Abdul" or - this = "Warren" or - this = "Harvey" or - this = "Dennis" or - this = "Wesley" or - this = "Sylvester" or - this = "Gilbert" or - this = "Sullivan" or - this = "Edmund" or - this = "Wilson" or - this = "Perry" or - this = "Matthew" or - this = "Simba" or - this = "Nala" or - this = "Rafiki" or - this = "Shenzi" or - this = "Ernest" or - this = "Gertrude" or - this = "Oscar" or - this = "Lilian" or - this = "Raymond" or - this = "Elgar" or - this = "Elmer" or - this = "Herbert" or - this = "Maude" or - this = "Mae" or - this = "Otto" or - this = "Edwin" or - this = "Ophelia" or - this = "Parsley" or - this = "Sage" or - this = "Rosemary" or - this = "Thyme" or - this = "Garfunkel" or - this = "King Basil" or - this = "Stephen" + this = + [ + "Ronil", "Dina", "Ravi", "Bruce", "Jo", "Aida", "Esme", "Charlie", "Fred", "Meera", "Maya", + "Chad", "Tiana", "Laura", "George", "Will", "Mary", "Almira", "Susannah", "Rhoda", + "Cynthia", "Eunice", "Olive", "Virginia", "Angeline", "Helen", "Cornelia", "Harriet", + "Mahala", "Abby", "Margaret", "Deb", "Minerva", "Severus", "Lavina", "Adeline", "Cath", + "Elisa", "Lucretia", "Anne", "Eleanor", "Joanna", "Adam", "Agnes", "Rosanna", "Clara", + "Melissa", "Amy", "Isabel", "Jemima", "Cordelia", "Melinda", "Delila", "Jeremiah", "Elijah", + "Hester", "Walter", "Oliver", "Hugh", "Aaron", "Reuben", "Eli", "Amos", "Augustus", + "Theodore", "Ira", "Timothy", "Cyrus", "Horace", "Simon", "Asa", "Frank", "Nelson", + "Leonard", "Harrison", "Anthony", "Louis", "Milton", "Noah", "Cornelius", "Abdul", "Warren", + "Harvey", "Dennis", "Wesley", "Sylvester", "Gilbert", "Sullivan", "Edmund", "Wilson", + "Perry", "Matthew", "Simba", "Nala", "Rafiki", "Shenzi", "Ernest", "Gertrude", "Oscar", + "Lilian", "Raymond", "Elgar", "Elmer", "Herbert", "Maude", "Mae", "Otto", "Edwin", + "Ophelia", "Parsley", "Sage", "Rosemary", "Thyme", "Garfunkel", "King Basil", "Stephen" + ] } /** Gets the hair color of the person. If the person is bald, there is no result. */ @@ -936,25 +836,12 @@ class Person extends string { /** Holds if the person is deceased. */ predicate isDeceased() { - this = "Ernest" or - this = "Gertrude" or - this = "Oscar" or - this = "Lilian" or - this = "Edwin" or - this = "Raymond" or - this = "Elgar" or - this = "Elmer" or - this = "Herbert" or - this = "Maude" or - this = "Mae" or - this = "Otto" or - this = "Ophelia" or - this = "Parsley" or - this = "Sage" or - this = "Rosemary" or - this = "Thyme" or - this = "Garfunkel" or - this = "King Basil" + this = + [ + "Ernest", "Gertrude", "Oscar", "Lilian", "Edwin", "Raymond", "Elgar", "Elmer", "Herbert", + "Maude", "Mae", "Otto", "Ophelia", "Parsley", "Sage", "Rosemary", "Thyme", "Garfunkel", + "King Basil" + ] } /** Gets a parent of the person (alive or deceased). */ @@ -1195,12 +1082,7 @@ class Person extends string { } /** Holds if the person is allowed in the region. Initially, all villagers are allowed in every region. */ - predicate isAllowedIn(string region) { - region = "north" or - region = "south" or - region = "east" or - region = "west" - } + predicate isAllowedIn(string region) { region = ["north", "south", "east", "west"] } } /** Returns a parent of the person. */ diff --git a/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.java b/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.java new file mode 100644 index 00000000000..0145125448f --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.java @@ -0,0 +1,27 @@ +public void sqliteStorageUnsafe(Context ctx, String name, String password) { + // BAD - sensitive information saved in cleartext. + SQLiteDatabase db = ctx.openOrCreateDatabase("test", Context.MODE_PRIVATE, null); + db.execSQL("INSERT INTO users VALUES (?, ?)", new String[] {name, password}); +} + +public void sqliteStorageSafe(Context ctx, String name, String password) { + // GOOD - sensitive information encrypted with a custom method. + SQLiteDatabase db = ctx.openOrCreateDatabase("test", Context.MODE_PRIVATE, null); + db.execSQL("INSERT INTO users VALUES (?, ?)", new String[] {name, encrypt(password)}); +} + +public void sqlCipherStorageSafe(String name, String password, String databasePassword) { + // GOOD - sensitive information saved using SQLCipher. + net.sqlcipher.database.SQLiteDatabase db = + net.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase("test", databasePassword, null); + db.execSQL("INSERT INTO users VALUES (?, ?)", new String[] {name, password}); +} + +private static String encrypt(String cleartext) { + // Use an encryption or strong hashing algorithm in the real world. + // The example below just returns a SHA-256 hash. + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8)); + String encoded = Base64.getEncoder().encodeToString(hash); + return encoded; +} \ No newline at end of file diff --git a/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.qhelp b/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.qhelp new file mode 100644 index 00000000000..f8e6183f36f --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.qhelp @@ -0,0 +1,36 @@ + + + +

+ SQLite is a lightweight database engine commonly used in Android devices to store data. By itself, SQLite does not offer any encryption mechanism by default and stores all data in cleartext, which introduces a risk if sensitive data like credentials, authentication tokens or personal identifiable information (PII) are directly stored in a SQLite database. The information could be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components. +

+
+ + +

+ Use SQLCipher or similar libraries to add encryption capabilities to SQLite. Alternatively, encrypt sensitive data using cryptographically secure algorithms before storing it in the database. +

+
+ + +

+ In the first example, sensitive user information is stored in cleartext. +

+ +

+ In the second and third examples, the code encrypts sensitive information before saving it to the database. +

+ +
+ + +
  • + Android Developers: + Work with data more securely +
  • +
  • + SQLCipher: + Android Application Integration +
  • +
    +
    diff --git a/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.ql b/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.ql new file mode 100644 index 00000000000..df394db8b4c --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.ql @@ -0,0 +1,23 @@ +/** + * @name Cleartext storage of sensitive information using a local database on Android + * @description Cleartext Storage of Sensitive Information using + * a local database on Android allows access for users with root + * privileges or unexpected exposure from chained vulnerabilities. + * @kind problem + * @problem.severity warning + * @precision medium + * @id java/android/cleartext-storage-database + * @tags security + * external/cwe/cwe-312 + */ + +import java +import semmle.code.java.security.CleartextStorageAndroidDatabaseQuery + +from SensitiveSource data, LocalDatabaseOpenMethodAccess s, Expr input, Expr store +where + input = s.getAnInput() and + store = s.getAStore() and + data.flowsTo(input) +select store, "SQLite database $@ containing $@ is stored $@. Data was added $@.", s, s.toString(), + data, "sensitive data", store, "here", input, "here" diff --git a/java/ql/src/change-notes/2021-08-17-cleartext-storage-database-query.md b/java/ql/src/change-notes/2021-08-17-cleartext-storage-database-query.md new file mode 100644 index 00000000000..ce71dca1a5f --- /dev/null +++ b/java/ql/src/change-notes/2021-08-17-cleartext-storage-database-query.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* A new query "Cleartext storage of sensitive information using a local database on Android" (`java/android/cleartext-storage-database`) has been added. This query finds instances of sensitive data being stored in local databases without encryption, which may expose it to attackers or malicious applications. diff --git a/java/ql/src/utils/model-generator/RegenerateModels.py b/java/ql/src/utils/model-generator/RegenerateModels.py new file mode 100755 index 00000000000..3b2920a5e8a --- /dev/null +++ b/java/ql/src/utils/model-generator/RegenerateModels.py @@ -0,0 +1,53 @@ +#!/usr/bin/python3 + +# Tool to regenerate existing framework CSV models. + +from pathlib import Path +import json +import os +import requests +import shutil +import subprocess +import tempfile +import sys + + +defaultModelPath = "java/ql/lib/semmle/code/java/frameworks" +lgtmSlugToModelFile = { + # "apache/commons-beanutils": "apache/BeanUtilsGenerated.qll", + # "apache/commons-codec": "apache/CodecGenerated.qll", + # "apache/commons-lang": "apache/Lang3Generated.qll", + "apache/commons-io": "apache/IOGenerated.qll", +} + + +def findGitRoot(): + return subprocess.check_output( + ["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() + + +def regenerateModel(lgtmSlug, extractedDb): + tmpDir = tempfile.mkdtemp() + print("============================================================") + print("Generating models for " + lgtmSlug) + print("============================================================") + # check if lgtmSlug exists as key + if lgtmSlug not in lgtmSlugToModelFile: + print("ERROR: slug " + lgtmSlug + + " is not mapped to a model file in script " + sys.argv[0]) + sys.exit(1) + modelFile = defaultModelPath + "/" + lgtmSlugToModelFile[lgtmSlug] + codeQlRoot = findGitRoot() + targetModel = codeQlRoot + "/" + modelFile + subprocess.check_call([codeQlRoot + "/java/ql/src/utils/model-generator/GenerateFlowModel.py", extractedDb, + targetModel]) + print("Regenerated " + targetModel) + shutil.rmtree(tmpDir) + + +if len(sys.argv) == 3: + lgtmSlug = sys.argv[1] + db = sys.argv[2] + regenerateModel(lgtmSlug, db) +else: + print('error') diff --git a/java/ql/test/TestUtilities/InlineExpectationsTest.qll b/java/ql/test/TestUtilities/InlineExpectationsTest.qll index 52a790cca28..7d605a491ee 100644 --- a/java/ql/test/TestUtilities/InlineExpectationsTest.qll +++ b/java/ql/test/TestUtilities/InlineExpectationsTest.qll @@ -93,7 +93,7 @@ private import InlineExpectationsTestPrivate /** - * Base class for tests with inline expectations. The test extends this class to provide the actual + * The base class for tests with inline expectations. The test extends this class to provide the actual * results of the query, which are then compared with the expected results in comments to produce a * list of failure messages that point out where the actual results differ from the expected * results. @@ -123,6 +123,15 @@ abstract class InlineExpectationsTest extends string { */ abstract predicate hasActualResult(Location location, string element, string tag, string value); + /** + * Like `hasActualResult`, but returns results that do not require a matching annotation. + * A failure will still arise if there is an annotation that does not match any results, but not vice versa. + * Override this predicate to specify optional results. + */ + predicate hasOptionalResult(Location location, string element, string tag, string value) { + none() + } + final predicate hasFailureMessage(FailureLocatable element, string message) { exists(ActualResult actualResult | actualResult.getTest() = this and @@ -134,7 +143,8 @@ abstract class InlineExpectationsTest extends string { ) or not exists(ValidExpectation expectation | expectation.matchesActualResult(actualResult)) and - message = "Unexpected result: " + actualResult.getExpectationText() + message = "Unexpected result: " + actualResult.getExpectationText() and + not actualResult.isOptional() ) ) or @@ -243,9 +253,13 @@ private string expectationPattern() { private newtype TFailureLocatable = TActualResult( - InlineExpectationsTest test, Location location, string element, string tag, string value + InlineExpectationsTest test, Location location, string element, string tag, string value, + boolean optional ) { - test.hasActualResult(location, element, tag, value) + test.hasActualResult(location, element, tag, value) and + optional = false + or + test.hasOptionalResult(location, element, tag, value) and optional = true } or TValidExpectation(ExpectationComment comment, string tag, string value, string knownFailure) { exists(TColumn column, string tags | @@ -277,8 +291,9 @@ class ActualResult extends FailureLocatable, TActualResult { string element; string tag; string value; + boolean optional; - ActualResult() { this = TActualResult(test, location, element, tag, value) } + ActualResult() { this = TActualResult(test, location, element, tag, value, optional) } override string toString() { result = element } @@ -289,6 +304,8 @@ class ActualResult extends FailureLocatable, TActualResult { override string getTag() { result = tag } override string getValue() { result = value } + + predicate isOptional() { optional = true } } abstract private class Expectation extends FailureLocatable { diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.expected b/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.java b/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.java new file mode 100644 index 00000000000..8dc61543ed6 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.java @@ -0,0 +1,144 @@ +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.util.Base64; +import android.app.Activity; +import android.content.ContentValues; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteStatement; + +public class CleartextStorageAndroidDatabaseTest extends Activity { + + public void testCleartextStorageAndroiDatabaseSafe1(Context ctx, String name, String password) { + SQLiteDatabase db = ctx.openOrCreateDatabase("test", Context.MODE_PRIVATE, null); + db.execSQL("CREATE TABLE IF NOT EXISTS users(user VARCHAR, password VARCHAR);"); // Safe + } + + public void testCleartextStorageAndroiDatabaseSafe2(Context ctx, String name, String password) { + SQLiteDatabase db = ctx.openOrCreateDatabase("test", Context.MODE_PRIVATE, null); + db.execSQL("DROP TABLE passwords;"); // Safe - no sensitive value being stored + } + + public void testCleartextStorageAndroiDatabase0(Context ctx, String name, String password) { + SQLiteDatabase db = ctx.openOrCreateDatabase("test", Context.MODE_PRIVATE, null); + String query = "INSERT INTO users VALUES ('" + name + "', '" + password + "');"; + db.execSQL(query); // $ hasCleartextStorageAndroidDatabase + } + + public void testCleartextStorageAndroiDatabase1(Context ctx, String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + String query = "INSERT INTO users VALUES ('" + name + "', '" + password + "');"; + db.execSQL(query); // $ hasCleartextStorageAndroidDatabase + } + + public void testCleartextStorageAndroiDatabase2(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("", null); + String query = "INSERT INTO users VALUES (?, ?)"; + db.execSQL(query, new String[] {name, password}); // $ hasCleartextStorageAndroidDatabase + } + + //@formatter:off + public void testCleartextStorageAndroiDatabase3(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.create(null); + String query = "INSERT INTO users VALUES (?, ?)"; + db.execPerConnectionSQL(query, new String[] {name, password}); // $ hasCleartextStorageAndroidDatabase + } + //@formatter:on + + public void testCleartextStorageAndroiDatabaseSafe3(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // Safe - ContentValues aren't added to any database + } + + public void testCleartextStorageAndroiDatabase4(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.insert("table", null, cv); + } + + public void testCleartextStorageAndroiDatabase5(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.insertOrThrow("table", null, cv); + } + + public void testCleartextStorageAndroiDatabase6(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.insertWithOnConflict("table", null, cv, 0); + } + + public void testCleartextStorageAndroiDatabase7(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.replace("table", null, cv); + } + + public void testCleartextStorageAndroiDatabase8(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.replaceOrThrow("table", null, cv); + } + + public void testCleartextStorageAndroiDatabase9(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.update("table", cv, "", new String[] {}); + } + + public void testCleartextStorageAndroiDatabase10(String name, String password) { + SQLiteDatabase db = SQLiteDatabase.openDatabase("", null, 0); + ContentValues cv = new ContentValues(); + cv.put("username", name); + cv.put("password", password); // $ hasCleartextStorageAndroidDatabase + db.updateWithOnConflict("table", cv, "", new String[] {}, 0); + } + + public void testCleartextStorageAndroiDatabaseSafe4(SQLiteDatabase db, String name, + String password) { + String query = "INSERT INTO users VALUES ('" + name + "', '" + password + "');"; + SQLiteStatement stmt = db.compileStatement(query); // Safe - statement isn't executed + } + + public void testCleartextStorageAndroiDatabase11(SQLiteDatabase db, String name, + String password) { + String query = "INSERT INTO users VALUES ('" + name + "', '" + password + "');"; + SQLiteStatement stmt = db.compileStatement(query); // $ hasCleartextStorageAndroidDatabase + stmt.executeUpdateDelete(); + } + + public void testCleartextStorageAndroiDatabase12(SQLiteDatabase db, String name, + String password) { + String query = "INSERT INTO users VALUES ('" + name + "', '" + password + "');"; + SQLiteStatement stmt = db.compileStatement(query); // $ hasCleartextStorageAndroidDatabase + stmt.executeInsert(); + } + + public void testCleartextStorageAndroiDatabaseSafe5(String name, String password) + throws Exception { + SQLiteDatabase db = SQLiteDatabase.create(null); + String query = "INSERT INTO users VALUES (?, ?)"; + db.execSQL(query, new String[] {name, encrypt(password)}); // Safe + } + + private static String encrypt(String cleartext) throws Exception { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8)); + String encoded = Base64.getEncoder().encodeToString(hash); + return encoded; + } +} diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.ql b/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.ql new file mode 100644 index 00000000000..421b3a408c4 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageAndroidDatabaseTest.ql @@ -0,0 +1,22 @@ +import java +import semmle.code.java.security.CleartextStorageAndroidDatabaseQuery +import TestUtilities.InlineExpectationsTest + +class CleartextStorageAndroidDatabaseTest extends InlineExpectationsTest { + CleartextStorageAndroidDatabaseTest() { this = "CleartextStorageAndroidDatabaseTest" } + + override string getARelevantTag() { result = "hasCleartextStorageAndroidDatabase" } + + override predicate hasActualResult(Location location, string element, string tag, string value) { + tag = "hasCleartextStorageAndroidDatabase" and + exists(SensitiveSource data, LocalDatabaseOpenMethodAccess s, Expr input, Expr store | + input = s.getAnInput() and + store = s.getAStore() and + data.flowsTo(input) + | + input.getLocation() = location and + element = input.toString() and + value = "" + ) + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/annotation/IntRange.java b/java/ql/test/stubs/google-android-9.0.0/android/annotation/IntRange.java new file mode 100644 index 00000000000..fdd1786ea5e --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/annotation/IntRange.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * 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. + */ +package android.annotation; + +public @interface IntRange { + long from() default Long.MIN_VALUE; + + long to() default Long.MAX_VALUE; + +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/database/DatabaseUtils.java b/java/ql/test/stubs/google-android-9.0.0/android/database/DatabaseUtils.java new file mode 100644 index 00000000000..0d0414c9fdf --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/database/DatabaseUtils.java @@ -0,0 +1,46 @@ +package android.database; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.os.ParcelFileDescriptor; + +public class DatabaseUtils { + + public static ParcelFileDescriptor blobFileDescriptorForQuery(SQLiteDatabase db, String query, + String[] selectionArgs) { + return null; + } + + public static long longForQuery(SQLiteDatabase db, String query, String[] selectionArgs) { + return 0; + + } + + public static String stringForQuery(SQLiteDatabase db, String query, String[] selectionArgs) { + return null; + + } + + public static void createDbFromSqlStatements(Context context, String dbName, int dbVersion, String sqlStatements) { + + } + + public static int queryNumEntries(SQLiteDatabase db, String table, String selection) { + return 0; + + } + + public static int queryNumEntries(SQLiteDatabase db, String table, String selection, String[] selectionArgs) { + return 0; + + } + + public static String[] appendSelectionArgs(String[] originalValues, String[] newValues) { + return null; + } + + public static String concatenateWhere(String a, String b) { + return null; + } + +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/database/SQLException.java b/java/ql/test/stubs/google-android-9.0.0/android/database/SQLException.java new file mode 100644 index 00000000000..87da8071d5e --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/database/SQLException.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * 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. + */ + +package android.database; + +public class SQLException extends RuntimeException { + public SQLException() { + } + + public SQLException(String error) { + } + + public SQLException(String error, Throwable cause) { + } + +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/database/sqlite/SQLiteException.java b/java/ql/test/stubs/google-android-9.0.0/android/database/sqlite/SQLiteException.java new file mode 100644 index 00000000000..323251bc00b --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/database/sqlite/SQLiteException.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * 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. + */ + +package android.database.sqlite; +import android.database.SQLException; + +public class SQLiteException extends SQLException { + public SQLiteException() { + } + + public SQLiteException(String error) { + } + + public SQLiteException(String error, Throwable cause) { + } + +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/database/sqlite/SQLiteQueryBuilder.java b/java/ql/test/stubs/google-android-9.0.0/android/database/sqlite/SQLiteQueryBuilder.java new file mode 100644 index 00000000000..01b8942c6d7 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/database/sqlite/SQLiteQueryBuilder.java @@ -0,0 +1,57 @@ +package android.database.sqlite; + +import java.util.Map; +import java.util.Set; + +import android.content.ContentValues; +import android.os.CancellationSignal; + +public abstract class SQLiteQueryBuilder { + public abstract void delete(SQLiteDatabase db, String selection, String[] selectionArgs); + + public abstract void insert(SQLiteDatabase db, ContentValues values); + + public abstract void query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, + String groupBy, String having, String sortOrder); + + public abstract void query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, + String groupBy, String having, String sortOrder, String limit); + + public abstract void query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, + String groupBy, String having, String sortOrder, String limit, CancellationSignal cancellationSignal); + + public abstract void update(SQLiteDatabase db, ContentValues values, String selection, String[] selectionArgs); + + public static String buildQueryString(boolean distinct, String tables, String[] columns, String where, + String groupBy, String having, String orderBy, String limit) { + return null; + } + + public abstract String buildQuery(String[] projectionIn, String selection, String groupBy, String having, String sortOrder, + String limit); + + public abstract String buildQuery(String[] projectionIn, String selection, String[] selectionArgs, String groupBy, + String having, String sortOrder, String limit); + + public abstract String buildUnionQuery(String[] subQueries, String sortOrder, String limit); + + public abstract String buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, + Set columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, + String selection, String[] selectionArgs, String groupBy, String having); + + public abstract String buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, + Set columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, + String selection, String groupBy, String having); + + public static void appendColumns(StringBuilder s, String[] columns) { + } + + public abstract void setProjectionMap(Map columnMap); + + public abstract void setTables(String inTables); + + public abstract void appendWhere(CharSequence inWhere); + + public abstract void appendWhereStandalone(CharSequence inWhere); + +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java index 0df04265046..1a2ff3cc1da 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java @@ -16,7 +16,6 @@ package android.webkit; import java.io.InputStream; -import java.io.StringBufferInputStream; import java.util.Map; /** diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java index e6a7d5d7050..33c9a1b8a57 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java @@ -15,11 +15,8 @@ */ package android.webkit; +import java.net.CookieManager; import android.content.Context; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; /** * Manages settings state for a WebView. When a WebView is first created, it diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java index d9625b70771..3065a9df966 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java @@ -18,6 +18,7 @@ import android.content.Context; import android.view.View; public class WebView extends View { + public WebView(Context context) { super(context); } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java index 4b1bd58498b..03a98480210 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java @@ -15,9 +15,6 @@ */ package android.webkit; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - public class WebViewClient { /** * Give the host application a chance to take over the control when a new url is diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/DebugResultInclusion.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/DebugResultInclusion.ql new file mode 100644 index 00000000000..9be2929fd41 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/DebugResultInclusion.ql @@ -0,0 +1,67 @@ +/** + * @name Debug result inclusion + * @description Use this query to understand why some alerts are included or excluded from the + * results of boosted queries. The results for this query are the union of the alerts + * generated by each boosted query. Each alert includes an explanation why it was + * included or excluded for each of the four security queries. + * @kind problem + * @problem.severity error + * @id adaptive-threat-modeling/js/debug-result-inclusion + */ + +import javascript +import experimental.adaptivethreatmodeling.ATMConfig +import extraction.ExtractEndpointData + +string getAReasonSinkExcluded(DataFlow::Node sinkCandidate, Query query) { + query instanceof NosqlInjectionQuery and + result = NosqlInjectionATM::SinkEndpointFilter::getAReasonSinkExcluded(sinkCandidate) + or + query instanceof SqlInjectionQuery and + result = SqlInjectionATM::SinkEndpointFilter::getAReasonSinkExcluded(sinkCandidate) + or + query instanceof TaintedPathQuery and + result = TaintedPathATM::SinkEndpointFilter::getAReasonSinkExcluded(sinkCandidate) + or + query instanceof XssQuery and + result = XssATM::SinkEndpointFilter::getAReasonSinkExcluded(sinkCandidate) +} + +pragma[inline] +string getDescriptionForAlertCandidate( + DataFlow::Node sourceCandidate, DataFlow::Node sinkCandidate, Query query +) { + result = "excluded[reason=" + getAReasonSinkExcluded(sinkCandidate, query) + "]" + or + getATMCfg(query).isKnownSink(sinkCandidate) and + result = "excluded[reason=known-sink]" + or + not exists(getAReasonSinkExcluded(sinkCandidate, query)) and + not getDataFlowCfg(query).hasFlow(sourceCandidate, sinkCandidate) and + ( + if + getDataFlowCfg(query).isSource(sourceCandidate) or + getDataFlowCfg(query).isSource(sourceCandidate, _) + then result = "no flow" + else result = "not a known source" + ) + or + getDataFlowCfg(query).hasFlow(sourceCandidate, sinkCandidate) and + result = "included" +} + +pragma[inline] +string getDescriptionForAlert(DataFlow::Node sourceCandidate, DataFlow::Node sinkCandidate) { + result = + concat(Query query | + | + query.getName() + ": " + + getDescriptionForAlertCandidate(sourceCandidate, sinkCandidate, query), ", " + ) +} + +from DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink +where cfg.hasFlow(source, sink) +select sink, + "This is an ATM result that may depend on $@ [" + getDescriptionForAlert(source, sink) + "]", + source, "a user-provided value" diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/EndToEndEvaluation.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/EndToEndEvaluation.qll new file mode 100644 index 00000000000..8bdd2015ec1 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/EndToEndEvaluation.qll @@ -0,0 +1,11 @@ +private import javascript +private import extraction.Exclusions as Exclusions + +/** + * Holds if the flow from `source` to `sink` should be excluded from the results of an end-to-end + * evaluation query. + */ +pragma[inline] +predicate isFlowExcluded(DataFlow::Node source, DataFlow::Node sink) { + Exclusions::isFileExcluded([source.getFile(), sink.getFile()]) +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/EndpointScoresIntegrationTest.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/EndpointScoresIntegrationTest.ql new file mode 100644 index 00000000000..bd7bc019475 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/EndpointScoresIntegrationTest.ql @@ -0,0 +1,27 @@ +/** + * EndpointScoresIntegrationTest.ql + * + * Extract scores for each test endpoint that is an argument to a function call in the database. + * This is used by integration tests to verify that QL and the modeling codebase agree on the scores + * of a set of test endpoints. + */ + +import javascript +import experimental.adaptivethreatmodeling.ATMConfig +import experimental.adaptivethreatmodeling.FeaturizationConfig +import experimental.adaptivethreatmodeling.EndpointScoring::ModelScoring as ModelScoring + +/** + * A featurization config that featurizes endpoints that are arguments to function calls. + * + * This should only be used in extraction queries and tests. + */ +class FunctionArgumentFeaturizationConfig extends FeaturizationConfig { + FunctionArgumentFeaturizationConfig() { this = "FunctionArgumentFeaturization" } + + override DataFlow::Node getAnEndpointToFeaturize() { + exists(DataFlow::CallNode call | result = call.getAnArgument()) + } +} + +query predicate endpointScores = ModelScoring::endpointScores/3; diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/ModelCheck.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/ModelCheck.ql new file mode 100644 index 00000000000..21458738fa5 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/ModelCheck.ql @@ -0,0 +1,16 @@ +/** + * ModelCheck.ql + * + * Returns checksums of ATM models. + */ + +/** + * The `availableMlModels` template predicate. + * + * This is populated by the evaluator with metadata for the available machine learning models. + */ +external predicate availableMlModels( + string modelChecksum, string modelLanguage, string modelName, string modelType +); + +select any(string checksum | availableMlModels(checksum, "javascript", _, _)) diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjection.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjection.ql new file mode 100644 index 00000000000..9cb452c675e --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjection.ql @@ -0,0 +1,24 @@ +/** + * NosqlInjection.ql + * + * Version of the standard NoSQL injection query with an output relation ready to plug into the + * evaluation pipeline. + */ + +import semmle.javascript.security.dataflow.NosqlInjection +import EndToEndEvaluation as EndToEndEvaluation + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource +where + cfg instanceof NosqlInjection::Configuration and + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjectionATM.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjectionATM.ql new file mode 100644 index 00000000000..38b2de667cf --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjectionATM.ql @@ -0,0 +1,28 @@ +/** + * NosqlInjectionATM.ql + * + * Version of the boosted NoSQL injection query with an output relation ready to plug into the + * evaluation pipeline. + */ + +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.NosqlInjectionATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + getScoreForFlow(source, sink) = score +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjectionATMLite.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjectionATMLite.ql new file mode 100644 index 00000000000..1db2d35bd75 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/NosqlInjectionATMLite.ql @@ -0,0 +1,29 @@ +/** + * NosqlInjectionATMLite.ql + * + * Arbitrarily ranked version of the boosted NoSQL injection query with an output relation ready to + * plug into the evaluation pipeline. This is useful (a) for evaluating the performance of endpoint + * filters, and (b) as a baseline to compare the model against. + */ + +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.NosqlInjectionATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + score = 0 +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjection.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjection.ql new file mode 100644 index 00000000000..d50bbb71208 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjection.ql @@ -0,0 +1,24 @@ +/** + * SqlInjection.ql + * + * Version of the standard SQL injection query with an output relation ready to plug into the + * evaluation pipeline. + */ + +import semmle.javascript.security.dataflow.SqlInjection +import EndToEndEvaluation as EndToEndEvaluation + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource +where + cfg instanceof SqlInjection::Configuration and + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjectionATM.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjectionATM.ql new file mode 100644 index 00000000000..da6dbe18972 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjectionATM.ql @@ -0,0 +1,28 @@ +/** + * SqlInjectionATM.ql + * + * Version of the boosted SQL injection query with an output relation ready to plug into the + * evaluation pipeline. + */ + +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.SqlInjectionATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + getScoreForFlow(source, sink) = score +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjectionATMLite.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjectionATMLite.ql new file mode 100644 index 00000000000..2d07af7a317 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/SqlInjectionATMLite.ql @@ -0,0 +1,29 @@ +/** + * SqlInjectionATMLite.ql + * + * Arbitrarily ranked version of the boosted SQL injection query with an output relation ready to + * plug into the evaluation pipeline. This is useful (a) for evaluating the performance of endpoint + * filters, and (b) as a baseline to compare the model against. + */ + +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.SqlInjectionATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + score = 0 +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPath.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPath.ql new file mode 100644 index 00000000000..3289d743352 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPath.ql @@ -0,0 +1,24 @@ +/** + * TaintedPath.ql + * + * Version of the standard path injection query with an output relation ready to plug into the + * evaluation pipeline. + */ + +import semmle.javascript.security.dataflow.TaintedPath +import EndToEndEvaluation as EndToEndEvaluation + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource +where + cfg instanceof TaintedPath::Configuration and + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPathATM.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPathATM.ql new file mode 100644 index 00000000000..b4fc49a6eb6 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPathATM.ql @@ -0,0 +1,28 @@ +/** + * TaintedPathATM.ql + * + * Version of the boosted path injection query with an output relation ready to plug into the + * evaluation pipeline. + */ + +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.TaintedPathATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + getScoreForFlow(source, sink) = score +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPathATMLite.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPathATMLite.ql new file mode 100644 index 00000000000..74ff55e72a6 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/TaintedPathATMLite.ql @@ -0,0 +1,29 @@ +/** + * TaintedPathATMLite.ql + * + * Arbitrarily ranked version of the boosted path injection query with an output relation ready to + * plug into the evaluation pipeline. This is useful (a) for evaluating the performance of endpoint + * filters, and (b) as a baseline to compare the model against. + */ + +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.TaintedPathATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + score = 0 +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/Xss.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/Xss.ql new file mode 100644 index 00000000000..fb5849c201f --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/Xss.ql @@ -0,0 +1,24 @@ +/** + * Xss.ql + * + * Version of the standard XSS query with an output relation ready to plug into the evaluation + * pipeline. + */ + +import semmle.javascript.security.dataflow.DomBasedXss +import EndToEndEvaluation as EndToEndEvaluation + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource +where + cfg instanceof DomBasedXss::Configuration and + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/XssATM.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/XssATM.ql new file mode 100644 index 00000000000..2db5d017bb9 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/XssATM.ql @@ -0,0 +1,29 @@ +/** + * XssATM.ql + * + * Version of the boosted XSS query with an output relation ready to plug into the evaluation + * pipeline. + */ + +import javascript +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.XssATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + getScoreForFlow(source, sink) = score +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/XssATMLite.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/XssATMLite.ql new file mode 100644 index 00000000000..52f9ab68ea2 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/evaluation/XssATMLite.ql @@ -0,0 +1,30 @@ +/** + * XssATMLite.ql + * + * Arbitrarily ranked version of the boosted XSS query with an output relation ready to plug into + * the evaluation pipeline. This is useful (a) for evaluating the performance of endpoint filters, + * and (b) as a baseline to compare the model against. + */ + +import javascript +import ATM::ResultsInfo +import EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.XssATM + +from + DataFlow::Configuration cfg, DataFlow::Node source, DataFlow::Node sink, string filePathSink, + int startLineSink, int endLineSink, int startColumnSink, int endColumnSink, string filePathSource, + int startLineSource, int endLineSource, int startColumnSource, int endColumnSource, float score +where + cfg.hasFlow(source, sink) and + not EndToEndEvaluation::isFlowExcluded(source, sink) and + not isFlowLikelyInBaseQuery(source, sink) and + sink.hasLocationInfo(filePathSink, startLineSink, startColumnSink, endLineSink, endColumnSink) and + source + .hasLocationInfo(filePathSource, startLineSource, startColumnSource, endLineSource, + endColumnSource) and + score = 0 +select source, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + sink, startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink, score order by + score desc, startLineSource, startColumnSource, endLineSource, endColumnSource, filePathSource, + startLineSink, startColumnSink, endLineSink, endColumnSink, filePathSink diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountAlertsAndEndpoints.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountAlertsAndEndpoints.ql new file mode 100644 index 00000000000..23fdf7a2073 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountAlertsAndEndpoints.ql @@ -0,0 +1,26 @@ +/* + * For internal use only. + * + * [DEPRECATED] Counts alerts and sinks for JavaScript security queries. + * + * This query is deprecated due to the performance implications of bringing in data flow + * configurations from multiple queries. Instead use `CountSourcesAndSinks.ql` to count sinks for + * JavaScript security queries, and count alerts by running the standard or evaluation queries for + * each security vulnerability. + */ + +import semmle.javascript.security.dataflow.NosqlInjection +import semmle.javascript.security.dataflow.SqlInjection +import semmle.javascript.security.dataflow.TaintedPath +import semmle.javascript.security.dataflow.DomBasedXss + +int numAlerts(DataFlow::Configuration cfg) { + result = count(DataFlow::Node source, DataFlow::Node sink | cfg.hasFlow(source, sink)) +} + +select numAlerts(any(NosqlInjection::Configuration cfg)) as numNosqlAlerts, + numAlerts(any(SqlInjection::Configuration cfg)) as numSqlAlerts, + numAlerts(any(TaintedPath::Configuration cfg)) as numTaintedPathAlerts, + numAlerts(any(DomBasedXss::Configuration cfg)) as numXssAlerts, + count(NosqlInjection::Sink sink) as numNosqlSinks, count(SqlInjection::Sink sink) as numSqlSinks, + count(TaintedPath::Sink sink) as numTaintedPathSinks, count(DomBasedXss::Sink sink) as numXssSinks diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountSourcesAndSinks.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountSourcesAndSinks.ql new file mode 100644 index 00000000000..997c61bc096 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountSourcesAndSinks.ql @@ -0,0 +1,72 @@ +/* + * For internal use only. + * + * Counts sources and sinks for JavaScript security queries. + */ + +import javascript +import semmle.javascript.dataflow.Configuration +// javascript/ql/lib/semmle/javascript/security/dataflow$ ls *Query.qll | sed -e 's/\(.*\)Query.qll/import semmle.javascript.security.dataflow.\1Query as \1/' +import semmle.javascript.security.dataflow.BrokenCryptoAlgorithmQuery as BrokenCryptoAlgorithm +import semmle.javascript.security.dataflow.BuildArtifactLeakQuery as BuildArtifactLeak +import semmle.javascript.security.dataflow.CleartextLoggingQuery as CleartextLogging +import semmle.javascript.security.dataflow.CleartextStorageQuery as CleartextStorage +import semmle.javascript.security.dataflow.ClientSideUrlRedirectQuery as ClientSideUrlRedirect +import semmle.javascript.security.dataflow.CodeInjectionQuery as CodeInjection +import semmle.javascript.security.dataflow.CommandInjectionQuery as CommandInjection +import semmle.javascript.security.dataflow.ConditionalBypassQuery as ConditionalBypass +import semmle.javascript.security.dataflow.CorsMisconfigurationForCredentialsQuery as CorsMisconfigurationForCredentials +import semmle.javascript.security.dataflow.DeepObjectResourceExhaustionQuery as DeepObjectResourceExhaustion +import semmle.javascript.security.dataflow.DifferentKindsComparisonBypassQuery as DifferentKindsComparisonBypass +import semmle.javascript.security.dataflow.DomBasedXssQuery as DomBasedXss +import semmle.javascript.security.dataflow.ExceptionXssQuery as ExceptionXss +import semmle.javascript.security.dataflow.ExternalAPIUsedWithUntrustedDataQuery as ExternalAPIUsedWithUntrustedData +import semmle.javascript.security.dataflow.FileAccessToHttpQuery as FileAccessToHttp +import semmle.javascript.security.dataflow.HardcodedCredentialsQuery as HardcodedCredentials +import semmle.javascript.security.dataflow.HardcodedDataInterpretedAsCodeQuery as HardcodedDataInterpretedAsCode +import semmle.javascript.security.dataflow.HostHeaderPoisoningInEmailGenerationQuery as HostHeaderPoisoningInEmailGeneration +import semmle.javascript.security.dataflow.HttpToFileAccessQuery as HttpToFileAccess +import semmle.javascript.security.dataflow.ImproperCodeSanitizationQuery as ImproperCodeSanitization +import semmle.javascript.security.dataflow.IncompleteHtmlAttributeSanitizationQuery as IncompleteHtmlAttributeSanitization +import semmle.javascript.security.dataflow.IndirectCommandInjectionQuery as IndirectCommandInjection +import semmle.javascript.security.dataflow.InsecureDownloadQuery as InsecureDownload +import semmle.javascript.security.dataflow.InsecureRandomnessQuery as InsecureRandomness +import semmle.javascript.security.dataflow.InsufficientPasswordHashQuery as InsufficientPasswordHash +import semmle.javascript.security.dataflow.LogInjectionQuery as LogInjection +import semmle.javascript.security.dataflow.LoopBoundInjectionQuery as LoopBoundInjection +import semmle.javascript.security.dataflow.NosqlInjectionQuery as NosqlInjection +import semmle.javascript.security.dataflow.PostMessageStarQuery as PostMessageStar +import semmle.javascript.security.dataflow.PrototypePollutingAssignmentQuery as PrototypePollutingAssignment +import semmle.javascript.security.dataflow.PrototypePollutionQuery as PrototypePollution +import semmle.javascript.security.dataflow.ReflectedXssQuery as ReflectedXss +import semmle.javascript.security.dataflow.RegExpInjectionQuery as RegExpInjection +import semmle.javascript.security.dataflow.RemotePropertyInjectionQuery as RemotePropertyInjection +import semmle.javascript.security.dataflow.RequestForgeryQuery as RequestForgery +import semmle.javascript.security.dataflow.ServerSideUrlRedirectQuery as ServerSideUrlRedirect +import semmle.javascript.security.dataflow.ShellCommandInjectionFromEnvironmentQuery as ShellCommandInjectionFromEnvironment +import semmle.javascript.security.dataflow.SqlInjectionQuery as SqlInjection +import semmle.javascript.security.dataflow.StackTraceExposureQuery as StackTraceExposure +import semmle.javascript.security.dataflow.StoredXssQuery as StoredXss +import semmle.javascript.security.dataflow.TaintedFormatStringQuery as TaintedFormatString +import semmle.javascript.security.dataflow.TaintedPathQuery as TaintedPath +import semmle.javascript.security.dataflow.TemplateObjectInjectionQuery as TemplateObjectInjection +import semmle.javascript.security.dataflow.TypeConfusionThroughParameterTamperingQuery as TypeConfusionThroughParameterTampering +import semmle.javascript.security.dataflow.UnsafeDeserializationQuery as UnsafeDeserialization +import semmle.javascript.security.dataflow.UnsafeDynamicMethodAccessQuery as UnsafeDynamicMethodAccess +import semmle.javascript.security.dataflow.UnsafeHtmlConstructionQuery as UnsafeHtmlConstruction +import semmle.javascript.security.dataflow.UnsafeJQueryPluginQuery as UnsafeJQueryPlugin +import semmle.javascript.security.dataflow.UnsafeShellCommandConstructionQuery as UnsafeShellCommandConstruction +import semmle.javascript.security.dataflow.UnvalidatedDynamicMethodCallQuery as UnvalidatedDynamicMethodCall +import semmle.javascript.security.dataflow.XmlBombQuery as XmlBomb +import semmle.javascript.security.dataflow.XpathInjectionQuery as XpathInjection +import semmle.javascript.security.dataflow.XssThroughDomQuery as XssThroughDom +import semmle.javascript.security.dataflow.XxeQuery as Xxe +import semmle.javascript.security.dataflow.ZipSlipQuery as ZipSlip + +DataFlow::Node getASink(Configuration cfg) { cfg.isSink(result) or cfg.isSink(result, _) } + +DataFlow::Node getASource(Configuration cfg) { cfg.isSource(result) or cfg.isSource(result, _) } + +from Configuration cfg, int sources, int sinks +where count(getASource(cfg)) = sources and count(getASink(cfg)) = sinks +select cfg, sources, sinks diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Exclusions.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Exclusions.qll new file mode 100644 index 00000000000..79d3486e2db --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Exclusions.qll @@ -0,0 +1,49 @@ +/* + * For internal use only. + * + * Defines files that should be excluded from the evaluation of ML models. + */ + +private import javascript +private import semmle.javascript.filters.ClassifyFiles as ClassifyFiles + +/** Holds if the file should be excluded from end-to-end evaluation. */ +predicate isFileExcluded(File file) { + // Ignore files that are outside the root folder of the analyzed source location. + // + // If the file doesn't have a relative path, then the source file is located outside the root + // folder of the analyzed source location, meaning that the files are additional files added to + // the database like standard library files that we would like to ignore. + not exists(file.getRelativePath()) + or + // Ignore files based on their path. + exists(string ignorePattern, string separator | + ignorePattern = + // Exclude test files + "(tests?|test[_-]?case|" + + // Exclude library files + // + // - The Bower and npm package managers store packages in bower_components and node_modules + // folders respectively. + // - Specific exclusion for end-to-end: `applications/examples/static/epydoc` contains + // library code from Epydoc. + "3rd[_-]?party|bower_components|extern(s|al)?|node_modules|resources|third[_-]?party|_?vendor|" + + "applications" + separator + "examples" + separator + "static" + separator + "epydoc|" + + // Exclude generated code + "gen|\\.?generated|" + + // Exclude benchmarks + "benchmarks?|" + + // Exclude documentation + "docs?|documentation)" and + separator = "(\\/|\\.)" and + exists( + file.getRelativePath() + .toLowerCase() + .regexpFind(separator + ignorePattern + separator + "|" + "^" + ignorePattern + separator + + "|" + separator + ignorePattern + "$", _, _) + ) + ) + or + // Ignore externs, generated, library, and test files. + ClassifyFiles::classify(file, ["externs", "generated", "library", "test"]) +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.ql new file mode 100644 index 00000000000..73dab4af324 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.ql @@ -0,0 +1,11 @@ +/* + * For internal use only. + * + * Extracts training and evaluation data we can use to train ML models for ML-powered queries. + */ + +import ExtractEndpointData as ExtractEndpointData + +query predicate endpoints = ExtractEndpointData::endpoints/5; + +query predicate tokenFeatures = ExtractEndpointData::tokenFeatures/3; diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll new file mode 100644 index 00000000000..bea47423797 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll @@ -0,0 +1,195 @@ +/* + * For internal use only. + * + * Library code for training and evaluation data we can use to train ML models for ML-powered + * queries. + */ + +import javascript +import Exclusions as Exclusions +import evaluation.EndToEndEvaluation as EndToEndEvaluation +import experimental.adaptivethreatmodeling.ATMConfig +import experimental.adaptivethreatmodeling.CoreKnowledge as CoreKnowledge +import experimental.adaptivethreatmodeling.EndpointFeatures as EndpointFeatures +import experimental.adaptivethreatmodeling.EndpointScoring as EndpointScoring +import experimental.adaptivethreatmodeling.EndpointTypes +import experimental.adaptivethreatmodeling.FilteringReasons +import experimental.adaptivethreatmodeling.NosqlInjectionATM as NosqlInjectionATM +import experimental.adaptivethreatmodeling.SqlInjectionATM as SqlInjectionATM +import experimental.adaptivethreatmodeling.TaintedPathATM as TaintedPathATM +import experimental.adaptivethreatmodeling.XssATM as XssATM +import Labels +import NoFeaturizationRestrictionsConfig +import Queries + +/** Gets the ATM configuration object for the specified query. */ +ATMConfig getATMCfg(Query query) { + query instanceof NosqlInjectionQuery and + result instanceof NosqlInjectionATM::NosqlInjectionATMConfig + or + query instanceof SqlInjectionQuery and result instanceof SqlInjectionATM::SqlInjectionATMConfig + or + query instanceof TaintedPathQuery and result instanceof TaintedPathATM::TaintedPathATMConfig + or + query instanceof XssQuery and result instanceof XssATM::DomBasedXssATMConfig +} + +/** Gets the ATM data flow configuration for the specified query. */ +DataFlow::Configuration getDataFlowCfg(Query query) { + query instanceof NosqlInjectionQuery and result instanceof NosqlInjectionATM::Configuration + or + query instanceof SqlInjectionQuery and result instanceof SqlInjectionATM::Configuration + or + query instanceof TaintedPathQuery and result instanceof TaintedPathATM::Configuration + or + query instanceof XssQuery and result instanceof XssATM::Configuration +} + +/** Gets a known sink for the specified query. */ +private DataFlow::Node getASink(Query query) { + getATMCfg(query).isKnownSink(result) and + // Only consider the source code for the project being analyzed. + exists(result.getFile().getRelativePath()) +} + +/** Gets a data flow node that is known not to be a sink for the specified query. */ +private DataFlow::Node getANotASink(NotASinkReason reason) { + CoreKnowledge::isOtherModeledArgument(result, reason) and + // Some endpoints can be assigned both a `NotASinkReason` and a `LikelyNotASinkReason`. We + // consider these endpoints to be `LikelyNotASink`, therefore this line excludes them from the + // definition of `NotASink`. + not CoreKnowledge::isOtherModeledArgument(result, any(LikelyNotASinkReason t)) and + not result = getASink(_) and + // Only consider the source code for the project being analyzed. + exists(result.getFile().getRelativePath()) +} + +/** + * Gets a data flow node whose label is unknown for the specified query. + * + * In other words, this is an endpoint that is not `Sink`, `NotASink`, or `LikelyNotASink` for the + * specified query. + */ +private DataFlow::Node getAnUnknown(Query query) { + ( + getATMCfg(query).isEffectiveSink(result) or + getATMCfg(query).isEffectiveSinkWithOverridingScore(result, _, _) + ) and + not result = getASink(query) and + // Only consider the source code for the project being analyzed. + exists(result.getFile().getRelativePath()) +} + +/** Gets the query-specific sink label for the given endpoint, if such a label exists. */ +private EndpointLabel getSinkLabelForEndpoint(DataFlow::Node endpoint, Query query) { + endpoint = getASink(query) and result instanceof SinkLabel + or + endpoint = getANotASink(_) and result instanceof NotASinkLabel + or + endpoint = getAnUnknown(query) and result instanceof UnknownLabel +} + +/** Gets an endpoint that should be extracted. */ +DataFlow::Node getAnEndpoint(Query query) { exists(getSinkLabelForEndpoint(result, query)) } + +/** + * Endpoints and associated metadata. + * + * Note that we draw a distinction between _features_, that are provided to the model at training + * and query time, and _metadata_, that is only provided to the model at training time. + * + * Internal: See the design document for + * [extensible extraction queries](https://docs.google.com/document/d/1g3ci2Nf1hGMG6ZUP0Y4PqCy_8elcoC_dhBvgTxdAWpg) + * for technical information about the design of this predicate. + */ +predicate endpoints( + DataFlow::Node endpoint, string queryName, string key, string value, string valueType +) { + exists(Query query | + // Only provide metadata for labelled endpoints, since we do not extract all endpoints. + endpoint = getAnEndpoint(query) and + queryName = query.getName() and + ( + // Holds if there is a taint flow path from a known source to the endpoint + key = "hasFlowFromSource" and + ( + if FlowFromSource::hasFlowFromSource(endpoint, query) + then value = "true" + else value = "false" + ) and + valueType = "boolean" + or + // Constant expressions always evaluate to a constant primitive value. Therefore they can't ever + // appear in an alert, making them less interesting training examples. + key = "isConstantExpression" and + (if endpoint.asExpr() instanceof ConstantExpr then value = "true" else value = "false") and + valueType = "boolean" + or + // Holds if alerts involving the endpoint are excluded from the end-to-end evaluation. + key = "isExcludedFromEndToEndEvaluation" and + (if Exclusions::isFileExcluded(endpoint.getFile()) then value = "true" else value = "false") and + valueType = "boolean" + or + // The label for this query, considering the endpoint as a sink. + key = "sinkLabel" and + value = getSinkLabelForEndpoint(endpoint, query).getEncoding() and + valueType = "string" + or + // The reason, or reasons, why the endpoint was labeled NotASink for this query. + key = "notASinkReason" and + exists(FilteringReason reason | + endpoint = getANotASink(reason) and + value = reason.getDescription() + ) and + valueType = "string" + ) + ) +} + +/** + * `EndpointFeatures::tokenFeatures` has no results when `featureName` is absent for the endpoint + * `endpoint`. To preserve compatibility with the data pipeline, this relation will instead set + * `featureValue` to the empty string in this case. + */ +predicate tokenFeatures(DataFlow::Node endpoint, string featureName, string featureValue) { + endpoints(endpoint, _, _, _, _) and + ( + EndpointFeatures::tokenFeatures(endpoint, featureName, featureValue) + or + // Performance note: this creates a Cartesian product between `endpoint` and `featureName`. + featureName = EndpointFeatures::getASupportedFeatureName() and + not exists(string value | EndpointFeatures::tokenFeatures(endpoint, featureName, value)) and + featureValue = "" + ) +} + +module FlowFromSource { + predicate hasFlowFromSource(DataFlow::Node endpoint, Query q) { + exists(Configuration cfg | cfg.getQuery() = q | cfg.hasFlow(_, endpoint)) + } + + /** + * A data flow configuration that replicates the data flow configuration for a specific query, but + * replaces the set of sinks with the set of endpoints we're extracting. + * + * We use this to find out when there is flow to a particular endpoint from a known source. + * + * This configuration behaves in a very similar way to the `ForwardExploringConfiguration` class + * from the CodeQL standard libraries for JavaScript. + */ + private class Configuration extends DataFlow::Configuration { + Query q; + + Configuration() { this = getDataFlowCfg(q) } + + Query getQuery() { result = q } + + /** The sinks are the endpoints we're extracting. */ + override predicate isSink(DataFlow::Node sink) { sink = getAnEndpoint(q) } + + /** The sinks are the endpoints we're extracting. */ + override predicate isSink(DataFlow::Node sink, DataFlow::FlowLabel lbl) { + sink = getAnEndpoint(q) + } + } +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointDataEvaluation.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointDataEvaluation.ql new file mode 100644 index 00000000000..52885baec9b --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointDataEvaluation.ql @@ -0,0 +1,25 @@ +/* + * For internal use only. + * + * Extracts evaluation data we can use to evaluate ML models for ML-powered queries. + */ + +import javascript +import ExtractEndpointData as ExtractEndpointData + +query predicate endpoints( + DataFlow::Node endpoint, string queryName, string key, string value, string valueType +) { + ExtractEndpointData::endpoints(endpoint, queryName, key, value, valueType) and + // only select endpoints that are either Sink, NotASink or Unknown + ExtractEndpointData::endpoints(endpoint, queryName, "sinkLabel", ["Sink", "NotASink", "Unknown"], + "string") and + // do not select endpoints filtered out by end-to-end evaluation + ExtractEndpointData::endpoints(endpoint, queryName, "isExcludedFromEndToEndEvaluation", "false", + "boolean") +} + +query predicate tokenFeatures(DataFlow::Node endpoint, string featureName, string featureValue) { + endpoints(endpoint, _, _, _, _) and + ExtractEndpointData::tokenFeatures(endpoint, featureName, featureValue) +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointDataTraining.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointDataTraining.ql new file mode 100644 index 00000000000..20ece497585 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointDataTraining.ql @@ -0,0 +1,26 @@ +/* + * For internal use only. + * + * Extracts training data we can use to train ML models for ML-powered queries. + */ + +import javascript +import ExtractEndpointData as ExtractEndpointData + +query predicate endpoints( + DataFlow::Node endpoint, string queryName, string key, string value, string valueType +) { + ExtractEndpointData::endpoints(endpoint, queryName, key, value, valueType) and + // only select endpoints that are either Sink or NotASink + ExtractEndpointData::endpoints(endpoint, queryName, "sinkLabel", ["Sink", "NotASink"], "string") and + // do not select endpoints filtered out by end-to-end evaluation + ExtractEndpointData::endpoints(endpoint, queryName, "isExcludedFromEndToEndEvaluation", "false", + "boolean") and + // only select endpoints that can be part of a tainted flow + ExtractEndpointData::endpoints(endpoint, queryName, "isConstantExpression", "false", "boolean") +} + +query predicate tokenFeatures(DataFlow::Node endpoint, string featureName, string featureValue) { + endpoints(endpoint, _, _, _, _) and + ExtractEndpointData::tokenFeatures(endpoint, featureName, featureValue) +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointLabelEncoding.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointLabelEncoding.ql new file mode 100644 index 00000000000..298757fcb4c --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointLabelEncoding.ql @@ -0,0 +1,11 @@ +/** + * @name Endpoint types + * @description Maps endpoint type encodings to human-readable descriptions. + * @kind table + * @id js/ml-powered/model-building/endpoint-type-encodings + */ + +import experimental.adaptivethreatmodeling.EndpointTypes + +from EndpointType type +select type.getEncoding() as encoding, type.getDescription() as description order by encoding diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractMisclassifiedEndpointFeatures.ql b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractMisclassifiedEndpointFeatures.ql new file mode 100644 index 00000000000..95fa096fee4 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractMisclassifiedEndpointFeatures.ql @@ -0,0 +1,44 @@ +/* + * For internal use only. + * + * Query for finding misclassified endpoints which we can use to debug ML-powered queries. + */ + +import javascript +import experimental.adaptivethreatmodeling.AdaptiveThreatModeling +import experimental.adaptivethreatmodeling.ATMConfig +import experimental.adaptivethreatmodeling.BaseScoring +import experimental.adaptivethreatmodeling.EndpointFeatures as EndpointFeatures +import experimental.adaptivethreatmodeling.EndpointTypes +import semmle.javascript.security.dataflow.NosqlInjectionCustomizations + +/** The positive endpoint type for which you wish to find misclassified examples. */ +EndpointType getEndpointType() { result instanceof NosqlInjectionSinkType } + +/** Get a positive endpoint. This will be run through the classifier to determine whether it is misclassified. */ +DataFlow::Node getAPositiveEndpoint() { result instanceof NosqlInjection::Sink } + +/** An ATM configuration to find misclassified endpoints of type `getEndpointType()`. */ +class ExtractMisclassifiedEndpointsATMConfig extends ATMConfig { + ExtractMisclassifiedEndpointsATMConfig() { this = "ExtractMisclassifiedEndpointsATMConfig" } + + override predicate isEffectiveSink(DataFlow::Node sinkCandidate) { + sinkCandidate = getAPositiveEndpoint() + } + + override EndpointType getASinkEndpointType() { result = getEndpointType() } +} + +/** Get an endpoint from `getAPositiveEndpoint()` that is incorrectly excluded from the results. */ +DataFlow::Node getAMisclassifedEndpoint() { + any(ExtractMisclassifiedEndpointsATMConfig config).isEffectiveSink(result) and + not any(ScoringResults results).shouldResultBeIncluded(_, result) +} + +/** The token features for each misclassified endpoint. */ +query predicate tokenFeaturesForMisclassifiedEndpoints( + DataFlow::Node endpoint, string featureName, string featureValue +) { + endpoint = getAMisclassifedEndpoint() and + EndpointFeatures::tokenFeatures(endpoint, featureName, featureValue) +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Labels.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Labels.qll new file mode 100644 index 00000000000..85ced189b30 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Labels.qll @@ -0,0 +1,29 @@ +/* + * For internal use only. + * + * Labels used in training and evaluation data to indicate knowledge about whether an endpoint is a + * sink for a particular security query. + */ + +newtype TEndpointLabel = + TSinkLabel() or + TNotASinkLabel() or + TUnknownLabel() + +abstract class EndpointLabel extends TEndpointLabel { + abstract string getEncoding(); + + string toString() { result = getEncoding() } +} + +class SinkLabel extends EndpointLabel, TSinkLabel { + override string getEncoding() { result = "Sink" } +} + +class NotASinkLabel extends EndpointLabel, TNotASinkLabel { + override string getEncoding() { result = "NotASink" } +} + +class UnknownLabel extends EndpointLabel, TUnknownLabel { + override string getEncoding() { result = "Unknown" } +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/NoFeaturizationRestrictionsConfig.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/NoFeaturizationRestrictionsConfig.qll new file mode 100644 index 00000000000..c2d9a0e1d21 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/NoFeaturizationRestrictionsConfig.qll @@ -0,0 +1,16 @@ +/* + * For internal use only. + */ + +private import experimental.adaptivethreatmodeling.FeaturizationConfig + +/** + * A featurization config that featurizes all endpoints. + * + * This should only be used in extraction queries and tests. + */ +class NoRestrictionsFeaturizationConfig extends FeaturizationConfig { + NoRestrictionsFeaturizationConfig() { this = "NoRestrictionsFeaturization" } + + override DataFlow::Node getAnEndpointToFeaturize() { any() } +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Queries.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Queries.qll new file mode 100644 index 00000000000..51dd3ffec84 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Queries.qll @@ -0,0 +1,33 @@ +/* + * For internal use only. + * + * Represents the security queries for which we currently have ML-powered versions. + */ + +newtype TQuery = + TNosqlInjectionQuery() or + TSqlInjectionQuery() or + TTaintedPathQuery() or + TXssQuery() + +abstract class Query extends TQuery { + abstract string getName(); + + string toString() { result = getName() } +} + +class NosqlInjectionQuery extends Query, TNosqlInjectionQuery { + override string getName() { result = "NosqlInjection" } +} + +class SqlInjectionQuery extends Query, TSqlInjectionQuery { + override string getName() { result = "SqlInjection" } +} + +class TaintedPathQuery extends Query, TTaintedPathQuery { + override string getName() { result = "TaintedPath" } +} + +class XssQuery extends Query, TXssQuery { + override string getName() { result = "Xss" } +} diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/qlpack.yml b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/qlpack.yml new file mode 100644 index 00000000000..3063b150d0d --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/qlpack.yml @@ -0,0 +1,8 @@ +name: codeql/javascript-experimental-atm-model-building +extractor: javascript +library: false +groups: + - javascript + - experimental +dependencies: + codeql/javascript-experimental-atm-lib: "*" diff --git a/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/EndpointFeatures.expected b/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/EndpointFeatures.expected new file mode 100644 index 00000000000..45758ff0bd0 --- /dev/null +++ b/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/EndpointFeatures.expected @@ -0,0 +1,16711 @@ +tokenFeatures +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:3:25:3:33 | "express" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:3:25:3:33 | "express" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:3:25:3:33 | "express" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:3:25:3:33 | "express" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:4:28:4:40 | "body-parser" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:4:28:4:40 | "body-parser" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:4:28:4:40 | "body-parser" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:4:28:4:40 | "body-parser" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:10:9:10:25 | bodyParser.json() | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:10:9:10:25 | bodyParser.json() | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:10:9:10:25 | bodyParser.json() | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:10:9:10:25 | bodyParser.json() | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:10:9:10:25 | bodyParser.json() | calleeName | use | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:10:9:10:25 | bodyParser.json() | receiverName | app | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:10:12:16 | "/find" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:10:12:16 | "/find" | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:10:12:16 | "/find" | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:10:12:16 | "/find" | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:10:12:16 | "/find" | calleeName | post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:10:12:16 | "/find" | receiverName | app | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:19:15:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:19:15:1 | (req, r ... OT OK\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:19:15:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:19:15:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:19:15:1 | (req, r ... OT OK\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:12:19:15:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | calleeName | parse | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | enclosingFunctionBody | req res v JSON parse req body x getCollection find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:13:22:13:31 | req.body.x | receiverName | JSON | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:24:14:32 | { id: v } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:24:14:32 | { id: v } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:24:14:32 | { id: v } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:24:14:32 | { id: v } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:24:14:32 | { id: v } | enclosingFunctionBody | req res v JSON parse req body x getCollection find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:24:14:32 | { id: v } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:30:14:30 | v | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:30:14:30 | v | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:30:14:30 | v | enclosingFunctionBody | req res v JSON parse req body x getCollection find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:14:30:14:30 | v | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:10:20:16 | "/find" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:10:20:16 | "/find" | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:10:20:16 | "/find" | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:10:20:16 | "/find" | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:10:20:16 | "/find" | calleeName | post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:10:20:16 | "/find" | receiverName | app | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:19:24:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:19:24:1 | (req, r ... OT OK\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:19:24:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:19:24:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:19:24:1 | (req, r ... OT OK\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:20:19:24:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | calleeName | parse | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | enclosingFunctionBody | req res v JSON parse req body x getMongooseModel find id v getMongooseQuery find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:21:22:21:31 | req.body.x | receiverName | JSON | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:27:22:35 | { id: v } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:27:22:35 | { id: v } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:27:22:35 | { id: v } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:27:22:35 | { id: v } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:27:22:35 | { id: v } | enclosingFunctionBody | req res v JSON parse req body x getMongooseModel find id v getMongooseQuery find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:27:22:35 | { id: v } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:33:22:33 | v | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:33:22:33 | v | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:33:22:33 | v | enclosingFunctionBody | req res v JSON parse req body x getMongooseModel find id v getMongooseQuery find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:22:33:22:33 | v | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:27:23:35 | { id: v } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:27:23:35 | { id: v } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:27:23:35 | { id: v } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:27:23:35 | { id: v } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:27:23:35 | { id: v } | enclosingFunctionBody | req res v JSON parse req body x getMongooseModel find id v getMongooseQuery find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:27:23:35 | { id: v } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:33:23:33 | v | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:33:23:33 | v | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:33:23:33 | v | enclosingFunctionBody | req res v JSON parse req body x getMongooseModel find id v getMongooseQuery find id v | +| autogenerated/NosqlAndSqlInjection/typed/typedClient.ts:23:33:23:33 | v | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:1:24:1:32 | "mongodb" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:1:24:1:32 | "mongodb" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:1:24:1:32 | "mongodb" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:1:24:1:32 | "mongodb" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | enclosingFunctionBody | fn dbClient connect process env DB_URL err client db client db process env DB_NAME fn err | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | enclosingFunctionName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:22:8:39 | process.env.DB_URL | receiverName | dbClient | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | enclosingFunctionBody | fn dbClient connect process env DB_URL err client db client db process env DB_NAME fn err | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | enclosingFunctionName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:42:8:43 | {} | receiverName | dbClient | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | enclosingFunctionBody | fn dbClient connect process env DB_URL err client db client db process env DB_NAME fn err | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | enclosingFunctionName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:8:46:11:5 | (err, c ... ;\\n } | receiverName | dbClient | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | calleeAccessPath | mongodb MongoClient connect client db | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | calleeName | db | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | enclosingFunctionBody | fn dbClient connect process env DB_URL err client db client db process env DB_NAME fn err | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | enclosingFunctionName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:9:22:9:40 | process.env.DB_NAME | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:10:17:10:19 | err | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:10:17:10:19 | err | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:10:17:10:19 | err | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:10:17:10:19 | err | calleeName | fn | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:10:17:10:19 | err | enclosingFunctionBody | fn dbClient connect process env DB_URL err client db client db process env DB_NAME fn err | +| autogenerated/NosqlAndSqlInjection/untyped/dbo.js:10:17:10:19 | err | enclosingFunctionName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:15:33:15:38 | schema | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:15:33:15:38 | schema | calleeAccessPath | ajv compile | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:15:33:15:38 | schema | calleeAccessPathWithStructuralInfo | ajv instanceorreturn member compile instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:15:33:15:38 | schema | calleeApiName | ajv | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:15:33:15:38 | schema | calleeName | compile | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:15:33:15:38 | schema | receiverName | ajv | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:10:21:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:10:21:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:10:21:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:10:21:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:10:21:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:10:21:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:29:37:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:29:37:1 | (req, r ... });\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:29:37:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:29:37:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:29:37:1 | (req, r ... });\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:21:29:37:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:25:22:56 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:22:59:36:5 | (err, d ... K\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:23:33:23:37 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:23:25:48 | JSON.pa ... y.data) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:23:25:48 | JSON.pa ... y.data) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:23:25:48 | JSON.pa ... y.data) | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:23:25:48 | JSON.pa ... y.data) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | calleeName | parse | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:25:34:25:47 | req.query.data | receiverName | JSON | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | calleeAccessPath | ajv compile | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | calleeAccessPathWithStructuralInfo | ajv instanceorreturn member compile instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | calleeApiName | ajv | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | calleeName | checkSchema | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:26:25:26:29 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:27:22:27:26 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:30:22:30:26 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:33:22:33:26 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | enclosingFunctionBody | req res MongoClient connect mongodb://localhost:27017/test err db doc db collection doc query JSON parse req query data checkSchema query doc find query ajv validate schema query doc find query validate query doc find query doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/json-schema-validator.js:35:18:35:22 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-from.js:1:24:1:31 | "marsdb" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-from.js:1:24:1:31 | "marsdb" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-from.js:1:24:1:31 | "marsdb" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-from.js:1:24:1:31 | "marsdb" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:1:25:1:33 | "express" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:1:25:1:33 | "express" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:1:25:1:33 | "express" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:1:25:1:33 | "express" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:2:28:2:40 | "body-parser" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:2:28:2:40 | "body-parser" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:2:28:2:40 | "body-parser" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:2:28:2:40 | "body-parser" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:3:20:3:39 | './marsdb-flow-from' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:3:20:3:39 | './marsdb-flow-from' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:3:20:3:39 | './marsdb-flow-from' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:3:20:3:39 | './marsdb-flow-from' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:9:7:49 | bodyPar ... true }) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:9:7:49 | bodyPar ... true }) | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:9:7:49 | bodyPar ... true }) | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:9:7:49 | bodyPar ... true }) | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:9:7:49 | bodyPar ... true }) | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:9:7:49 | bodyPar ... true }) | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:31:7:48 | { extended: true } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:31:7:48 | { extended: true } | calleeAccessPath | body-parser urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:31:7:48 | { extended: true } | calleeAccessPathWithStructuralInfo | body-parser member urlencoded instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:31:7:48 | { extended: true } | calleeApiName | body-parser | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:31:7:48 | { extended: true } | calleeName | urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:31:7:48 | { extended: true } | receiverName | bodyParser | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:43:7:46 | true | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:7:43:7:46 | true | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:10:9:26 | "/documents/find" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:10:9:26 | "/documents/find" | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:10:9:26 | "/documents/find" | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:10:9:26 | "/documents/find" | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:10:9:26 | "/documents/find" | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:10:9:26 | "/documents/find" | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:29:15:1 | (req, r ... ery);\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:29:15:1 | (req, r ... ery);\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:29:15:1 | (req, r ... ery);\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:29:15:1 | (req, r ... ery);\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:29:15:1 | (req, r ... ery);\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:9:29:15:1 | (req, r ... ery);\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:10:17:10:18 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:10:17:10:18 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:10:17:10:18 | {} | enclosingFunctionBody | req res query query title req body title db myDoc find query | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:10:17:10:18 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | calleeAccessPath | marsdb Collection find | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | calleeAccessPathWithStructuralInfo | marsdb member Collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | calleeApiName | marsdb | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | enclosingFunctionBody | req res query query title req body title db myDoc find query | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb-flow-to.js:14:17:14:21 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:1:25:1:33 | "express" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:1:25:1:33 | "express" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:1:25:1:33 | "express" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:1:25:1:33 | "express" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:2:20:2:27 | "marsdb" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:2:20:2:27 | "marsdb" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:2:20:2:27 | "marsdb" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:2:20:2:27 | "marsdb" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:3:24:3:36 | "body-parser" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:3:24:3:36 | "body-parser" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:3:24:3:36 | "body-parser" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:3:24:3:36 | "body-parser" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:9:9:49 | bodyPar ... true }) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:9:9:49 | bodyPar ... true }) | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:9:9:49 | bodyPar ... true }) | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:9:9:49 | bodyPar ... true }) | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:9:9:49 | bodyPar ... true }) | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:9:9:49 | bodyPar ... true }) | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:31:9:48 | { extended: true } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:31:9:48 | { extended: true } | calleeAccessPath | body-parser urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:31:9:48 | { extended: true } | calleeAccessPathWithStructuralInfo | body-parser member urlencoded instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:31:9:48 | { extended: true } | calleeApiName | body-parser | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:31:9:48 | { extended: true } | calleeName | urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:31:9:48 | { extended: true } | receiverName | bodyParser | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:43:9:46 | true | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:9:43:9:46 | true | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:10:11:26 | "/documents/find" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:10:11:26 | "/documents/find" | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:10:11:26 | "/documents/find" | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:10:11:26 | "/documents/find" | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:10:11:26 | "/documents/find" | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:10:11:26 | "/documents/find" | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:29:17:1 | (req, r ... ery);\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:29:17:1 | (req, r ... ery);\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:29:17:1 | (req, r ... ery);\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:29:17:1 | (req, r ... ery);\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:29:17:1 | (req, r ... ery);\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:11:29:17:1 | (req, r ... ery);\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:12:17:12:18 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:12:17:12:18 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:12:17:12:18 | {} | enclosingFunctionBody | req res query query title req body title doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:12:17:12:18 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | calleeAccessPath | marsdb Collection find | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | calleeAccessPathWithStructuralInfo | marsdb member Collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | calleeApiName | marsdb | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | enclosingFunctionBody | req res query query title req body title doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/marsdb.js:16:12:16:16 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:1:25:1:33 | "express" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:1:25:1:33 | "express" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:1:25:1:33 | "express" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:1:25:1:33 | "express" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:2:23:2:33 | "minimongo" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:2:23:2:33 | "minimongo" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:2:23:2:33 | "minimongo" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:2:23:2:33 | "minimongo" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:3:24:3:36 | "body-parser" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:3:24:3:36 | "body-parser" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:3:24:3:36 | "body-parser" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:3:24:3:36 | "body-parser" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:9:11:49 | bodyPar ... true }) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:9:11:49 | bodyPar ... true }) | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:9:11:49 | bodyPar ... true }) | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:9:11:49 | bodyPar ... true }) | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:9:11:49 | bodyPar ... true }) | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:9:11:49 | bodyPar ... true }) | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:31:11:48 | { extended: true } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:31:11:48 | { extended: true } | calleeAccessPath | body-parser urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:31:11:48 | { extended: true } | calleeAccessPathWithStructuralInfo | body-parser member urlencoded instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:31:11:48 | { extended: true } | calleeApiName | body-parser | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:31:11:48 | { extended: true } | calleeName | urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:31:11:48 | { extended: true } | receiverName | bodyParser | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:43:11:46 | true | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:11:43:11:46 | true | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:10:13:26 | "/documents/find" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:10:13:26 | "/documents/find" | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:10:13:26 | "/documents/find" | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:10:13:26 | "/documents/find" | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:10:13:26 | "/documents/find" | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:10:13:26 | "/documents/find" | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:29:19:1 | (req, r ... ery);\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:29:19:1 | (req, r ... ery);\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:29:19:1 | (req, r ... ery);\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:29:19:1 | (req, r ... ery);\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:29:19:1 | (req, r ... ery);\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:13:29:19:1 | (req, r ... ery);\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:14:17:14:18 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:14:17:14:18 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:14:17:14:18 | {} | enclosingFunctionBody | req res query query title req body title doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:14:17:14:18 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | calleeAccessPath | minimongo MemoryDb myDocs find | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | calleeAccessPathWithStructuralInfo | minimongo member MemoryDb instanceorreturn member myDocs member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | calleeApiName | minimongo | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | enclosingFunctionBody | req res query query title req body title doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/minimongo.js:18:12:18:16 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:1:25:1:33 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:1:25:1:33 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:1:25:1:33 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:1:25:1:33 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:2:25:2:33 | 'mongodb' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:2:25:2:33 | 'mongodb' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:2:25:2:33 | 'mongodb' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:2:25:2:33 | 'mongodb' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:3:28:3:40 | 'body-parser' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:3:28:3:40 | 'body-parser' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:3:28:3:40 | 'body-parser' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:3:28:3:40 | 'body-parser' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:9:9:49 | bodyPar ... true }) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:9:9:49 | bodyPar ... true }) | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:9:9:49 | bodyPar ... true }) | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:9:9:49 | bodyPar ... true }) | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:9:9:49 | bodyPar ... true }) | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:9:9:49 | bodyPar ... true }) | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:31:9:48 | { extended: true } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:31:9:48 | { extended: true } | calleeAccessPath | body-parser urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:31:9:48 | { extended: true } | calleeAccessPathWithStructuralInfo | body-parser member urlencoded instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:31:9:48 | { extended: true } | calleeApiName | body-parser | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:31:9:48 | { extended: true } | calleeName | urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:31:9:48 | { extended: true } | receiverName | bodyParser | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:43:9:46 | true | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:9:43:9:46 | true | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:10:11:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:10:11:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:10:11:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:10:11:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:10:11:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:10:11:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:29:35:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:29:35:1 | (req, r ... });\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:29:35:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:29:35:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:29:35:1 | (req, r ... });\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:11:29:35:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:12:19:12:20 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:12:19:12:20 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:12:19:12:20 | {} | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:12:19:12:20 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:25:14:56 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:14:59:34:5 | (err, d ... }\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:15:31:15:35 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:18:16:18:20 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:16:21:47 | { title ... title } | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:25:21:45 | '' + qu ... y.title | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:25:21:45 | '' + qu ... y.title | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:25:21:45 | '' + qu ... y.title | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:21:25:21:45 | '' + qu ... y.title | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:16:24:52 | { title ... tr(1) } | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:25:24:50 | query.b ... bstr(1) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:25:24:50 | query.b ... bstr(1) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:25:24:50 | query.b ... bstr(1) | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:25:24:50 | query.b ... bstr(1) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:49:24:49 | 1 | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:49:24:49 | 1 | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:49:24:49 | 1 | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:49:24:49 | 1 | calleeName | substr | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:49:24:49 | 1 | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:24:49:24:49 | 1 | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:18:29:33 | { title: title } | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:27:29:31 | title | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:27:29:31 | title | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:27:29:31 | title | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:29:27:29:31 | title | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:18:32:45 | { title ... itle) } | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:27:32:43 | JSON.parse(title) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:27:32:43 | JSON.parse(title) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:27:32:43 | JSON.parse(title) | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:27:32:43 | JSON.parse(title) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | calleeName | parse | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query doc find title query body title doc find title query body title substr 1 title req body title title string doc find title title doc find title JSON parse title | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:32:38:32:42 | title | receiverName | JSON | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:9:37:14 | '/:id' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:9:37:14 | '/:id' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:9:37:14 | '/:id' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:9:37:14 | '/:id' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:9:37:14 | '/:id' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:9:37:14 | '/:id' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:17:45:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:17:45:1 | (req, r ... });\\n} | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:17:45:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:17:45:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:17:45:1 | (req, r ... });\\n} | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:37:17:45:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:38:17:38:36 | { id: req.param.id } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:38:17:38:36 | { id: req.param.id } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:38:17:38:36 | { id: req.param.id } | enclosingFunctionBody | req res query id req param id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:38:17:38:36 | { id: req.param.id } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | enclosingFunctionBody | req res query id req param id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:25:39:56 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | enclosingFunctionBody | req res query id req param id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:39:59:44:5 | (err, d ... ;\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | enclosingFunctionBody | req res query id req param id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:40:31:40:35 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | enclosingFunctionBody | req res query id req param id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:43:16:43:20 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:10:47:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:10:47:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:10:47:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:10:47:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:10:47:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:10:47:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:29:56:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:29:56:1 | (req, r ... });\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:29:56:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:29:56:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:29:56:1 | (req, r ... });\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:47:29:56:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:48:19:48:20 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:48:19:48:20 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:48:19:48:20 | {} | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:48:19:48:20 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:25:50:56 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:50:59:55:5 | (err, d ... ;\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:51:31:51:35 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:54:16:54:20 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:10:58:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:10:58:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:10:58:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:10:58:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:10:58:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:10:58:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:29:67:1 | (req, r ... \\n\\t});\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:29:67:1 | (req, r ... \\n\\t});\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:29:67:1 | (req, r ... \\n\\t});\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:29:67:1 | (req, r ... \\n\\t});\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:29:67:1 | (req, r ... \\n\\t});\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:58:29:67:1 | (req, r ... \\n\\t});\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:59:16:59:17 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:59:16:59:17 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:59:16:59:17 | {} | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err client doc client db MASTER collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:59:16:59:17 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err client doc client db MASTER collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:22:61:53 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err client doc client db MASTER collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:61:56:66:2 | (err, c ... ry);\\n\\t} | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | calleeAccessPath | mongodb MongoClient connect client db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | calleeName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err client doc client db MASTER collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:23:62:30 | "MASTER" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | calleeAccessPath | mongodb MongoClient connect client db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err client doc client db MASTER collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:62:44:62:48 | 'doc' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | calleeAccessPath | mongodb MongoClient connect client db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err client doc client db MASTER collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:65:12:65:16 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:10:69:29 | "/logs/count-by-tag" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:10:69:29 | "/logs/count-by-tag" | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:10:69:29 | "/logs/count-by-tag" | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:10:69:29 | "/logs/count-by-tag" | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:10:69:29 | "/logs/count-by-tag" | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:10:69:29 | "/logs/count-by-tag" | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:32:86:1 | (req, r ... g });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:32:86:1 | (req, r ... g });\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:32:86:1 | (req, r ... g });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:32:86:1 | (req, r ... g });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:32:86:1 | (req, r ... g });\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:69:32:86:1 | (req, r ... g });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:23:72:40 | process.env.DB_URL | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:43:72:44 | {} | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:72:47:78:3 | (err, c ... });\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | calleeAccessPath | mongodb MongoClient connect client db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | calleeName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:74:11:74:29 | process.env.DB_NAME | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | calleeAccessPath | mongodb MongoClient connect client db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:75:19:75:24 | "logs" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | calleeAccessPath | mongodb MongoClient connect client db collection count | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn member collection instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:14:77:26 | { tags: tag } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:22:77:24 | tag | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:22:77:24 | tag | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:22:77:24 | tag | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:77:22:77:24 | tag | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:80:29:80:38 | "./dbo.js" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:80:29:80:38 | "./dbo.js" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:80:29:80:38 | "./dbo.js" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:80:29:80:38 | "./dbo.js" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:80:29:80:38 | "./dbo.js" | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:80:29:80:38 | "./dbo.js" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | calleeAccessPath | mongodb MongoClient connect client db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:83:17:83:22 | "logs" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | calleeAccessPath | mongodb MongoClient connect client db collection count | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param client member db instanceorreturn member collection instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:12:85:24 | { tags: tag } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:20:85:22 | tag | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:20:85:22 | tag | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:20:85:22 | tag | enclosingFunctionBody | req res tag req query tag MongoClient connect process env DB_URL err client client db process env DB_NAME collection logs count tags tag importedDbo require ./dbo.js importedDbo db collection logs count tags tag | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:85:20:85:22 | tag | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:9:89:14 | '/:id' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:9:89:14 | '/:id' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:9:89:14 | '/:id' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:9:89:14 | '/:id' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:9:89:14 | '/:id' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:9:89:14 | '/:id' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:17:91:1 | (req, r ... ram);\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:17:91:1 | (req, r ... ram);\\n} | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:17:91:1 | (req, r ... ram);\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:17:91:1 | (req, r ... ram);\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:17:91:1 | (req, r ... ram);\\n} | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:89:17:91:1 | (req, r ... ram);\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:93:15:93:31 | { id: params.id } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:93:15:93:31 | { id: params.id } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:93:15:93:31 | { id: params.id } | enclosingFunctionBody | params query id params id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:93:15:93:31 | { id: params.id } | enclosingFunctionName | useParams | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | enclosingFunctionBody | params query id params id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | enclosingFunctionName | useParams | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:23:94:54 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | enclosingFunctionBody | params query id params id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | enclosingFunctionName | useParams | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:94:57:99:3 | (err, d ... y);\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | enclosingFunctionBody | params query id params id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | enclosingFunctionName | useParams | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:95:29:95:33 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | enclosingFunctionBody | params query id params id MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | enclosingFunctionName | useParams | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:98:14:98:18 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:10:102:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:10:102:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:10:102:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:10:102:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:10:102:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:10:102:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:29:104:1 | (req, r ... ery);\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:29:104:1 | (req, r ... ery);\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:29:104:1 | (req, r ... ery);\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:29:104:1 | (req, r ... ery);\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:29:104:1 | (req, r ... ery);\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:102:29:104:1 | (req, r ... ery);\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:106:17:106:18 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:106:17:106:18 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:106:17:106:18 | {} | enclosingFunctionBody | queries query query title queries title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:106:17:106:18 | {} | enclosingFunctionName | useQuery | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | enclosingFunctionBody | queries query query title queries title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | enclosingFunctionName | useQuery | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:23:108:54 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | enclosingFunctionBody | queries query query title queries title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | enclosingFunctionName | useQuery | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:108:57:113:3 | (err, d ... y);\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | enclosingFunctionBody | queries query query title queries title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | enclosingFunctionName | useQuery | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:109:29:109:33 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | enclosingFunctionBody | queries query query title queries title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | enclosingFunctionName | useQuery | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb.js:112:14:112:18 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:1:25:1:33 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:1:25:1:33 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:1:25:1:33 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:1:25:1:33 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:2:25:2:33 | 'mongodb' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:2:25:2:33 | 'mongodb' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:2:25:2:33 | 'mongodb' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:2:25:2:33 | 'mongodb' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:3:28:3:40 | 'body-parser' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:3:28:3:40 | 'body-parser' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:3:28:3:40 | 'body-parser' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:3:28:3:40 | 'body-parser' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:9:9:50 | bodyPar ... alse }) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:9:9:50 | bodyPar ... alse }) | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:9:9:50 | bodyPar ... alse }) | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:9:9:50 | bodyPar ... alse }) | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:9:9:50 | bodyPar ... alse }) | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:9:9:50 | bodyPar ... alse }) | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:31:9:49 | { extended: false } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:31:9:49 | { extended: false } | calleeAccessPath | body-parser urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:31:9:49 | { extended: false } | calleeAccessPathWithStructuralInfo | body-parser member urlencoded instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:31:9:49 | { extended: false } | calleeApiName | body-parser | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:31:9:49 | { extended: false } | calleeName | urlencoded | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:31:9:49 | { extended: false } | receiverName | bodyParser | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:43:9:47 | false | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:9:43:9:47 | false | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:10:11:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:10:11:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:10:11:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:10:11:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:10:11:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:10:11:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:29:20:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:29:20:1 | (req, r ... });\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:29:20:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:29:20:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:29:20:1 | (req, r ... });\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:11:29:20:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:12:19:12:20 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:12:19:12:20 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:12:19:12:20 | {} | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:12:19:12:20 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:25:14:56 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:14:59:19:5 | (err, d ... ;\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:15:31:15:35 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | enclosingFunctionBody | req res query query title req body title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:18:16:18:20 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:10:22:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:10:22:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:10:22:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:10:22:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:10:22:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:10:22:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:29:31:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:29:31:1 | (req, r ... });\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:29:31:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:29:31:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:29:31:1 | (req, r ... });\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:22:29:31:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:23:19:23:20 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:23:19:23:20 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:23:19:23:20 | {} | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:23:19:23:20 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:25:25:56 | 'mongod ... 7/test' | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | calleeAccessPath | mongodb MongoClient connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:25:59:30:5 | (err, d ... ;\\n } | receiverName | MongoClient | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | calleeAccessPath | mongodb MongoClient connect db collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | calleeName | collection | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:26:31:26:35 | 'doc' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | calleeAccessPath | mongodb MongoClient connect db collection find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | calleeAccessPathWithStructuralInfo | mongodb member MongoClient member connect functionalarg param db member collection instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | calleeApiName | mongodb | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | enclosingFunctionBody | req res query query title req query title MongoClient connect mongodb://localhost:27017/test err db doc db collection doc doc find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongodb_bodySafe.js:29:16:29:20 | query | receiverName | doc | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:2:25:2:33 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:2:25:2:33 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:2:25:2:33 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:2:25:2:33 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:3:28:3:40 | 'body-parser' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:3:28:3:40 | 'body-parser' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:3:28:3:40 | 'body-parser' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:3:28:3:40 | 'body-parser' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:4:26:4:35 | 'mongoose' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:4:26:4:35 | 'mongoose' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:4:26:4:35 | 'mongoose' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:4:26:4:35 | 'mongoose' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:6:18:6:50 | 'mongod ... table1' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:6:18:6:50 | 'mongod ... table1' | calleeAccessPath | mongoose connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:6:18:6:50 | 'mongod ... table1' | calleeAccessPathWithStructuralInfo | mongoose member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:6:18:6:50 | 'mongod ... table1' | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:6:18:6:50 | 'mongod ... table1' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:6:18:6:50 | 'mongod ... table1' | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:9:9:9:25 | BodyParser.json() | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:9:9:9:25 | BodyParser.json() | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:9:9:9:25 | BodyParser.json() | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:9:9:9:25 | BodyParser.json() | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:9:9:9:25 | BodyParser.json() | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:9:9:9:25 | BodyParser.json() | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:33:11:42 | 'Document' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:33:11:42 | 'Document' | calleeAccessPath | mongoose model | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:33:11:42 | 'Document' | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:33:11:42 | 'Document' | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:33:11:42 | 'Document' | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:33:11:42 | 'Document' | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:45:17:1 | {\\n t ... tring\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:45:17:1 | {\\n t ... tring\\n} | calleeAccessPath | mongoose model | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:45:17:1 | {\\n t ... tring\\n} | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:45:17:1 | {\\n t ... tring\\n} | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:45:17:1 | {\\n t ... tring\\n} | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:11:45:17:1 | {\\n t ... tring\\n} | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:12:12:15:5 | {\\n ... e\\n } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:12:12:15:5 | {\\n ... e\\n } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:13:15:13:20 | String | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:13:15:13:20 | String | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:14:17:14:20 | true | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:14:17:14:20 | true | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:16:11:16:16 | String | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:16:11:16:16 | String | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:10:19:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:10:19:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:10:19:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:10:19:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:10:19:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:10:19:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:29:132:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:29:132:1 | (req, r ... // OK\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:29:132:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:29:132:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:29:132:1 | (req, r ... // OK\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:19:29:132:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:20:19:20:20 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:20:19:20:20 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:20:19:20:20 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | calleeAccessPath | mongoose model aggregate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member aggregate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | calleeName | aggregate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:24:24:30 | [query] | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:25:24:29 | query | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:25:24:29 | query | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:24:25:24:29 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | calleeAccessPath | mongoose model count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:27:20:27:24 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | calleeAccessPath | mongoose model deleteMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member deleteMany instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | calleeName | deleteMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:30:25:30:29 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | calleeAccessPath | mongoose model deleteOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member deleteOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | calleeName | deleteOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:33:24:33:28 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | calleeAccessPath | mongoose model distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member distinct instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | calleeName | distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:23:36:28 | 'type' | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | calleeAccessPath | mongoose model distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member distinct instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | calleeName | distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:36:31:36:35 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:39:19:39:23 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:42:22:42:26 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | calleeAccessPath | mongoose model findOneAndDelete | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndDelete instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | calleeName | findOneAndDelete | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:45:31:45:35 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | calleeAccessPath | mongoose model findOneAndRemove | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndRemove instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | calleeName | findOneAndRemove | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:48:31:48:35 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | calleeAccessPath | mongoose model findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | calleeName | findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:51:31:51:35 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | calleeAccessPath | mongoose model replaceOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member replaceOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | calleeName | replaceOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:54:25:54:29 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | calleeAccessPath | mongoose model update | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member update instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | calleeName | update | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:57:21:57:25 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | calleeAccessPath | mongoose model updateMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member updateMany instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | calleeName | updateMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:60:25:60:29 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | calleeAccessPath | mongoose model updateOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member updateOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | calleeName | updateOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:21:63:25 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:33:63:33 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:33:63:33 | X | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:33:63:33 | X | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:33:63:33 | X | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:63:33:63:33 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | calleeAccessPath | mongoose model findByIdAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findByIdAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | calleeName | findByIdAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:29:65:29 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | calleeAccessPath | mongoose model findByIdAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findByIdAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | calleeName | findByIdAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:32:65:36 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | calleeAccessPath | mongoose model findByIdAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findByIdAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | calleeName | findByIdAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:65:39:65:50 | function(){} | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:21:67:21 | X | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:21:67:21 | X | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:21:67:21 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:24:67:24 | Y | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:24:67:24 | Y | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:24:67:24 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:27:67:31 | query | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:27:67:31 | query | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:67:27:67:31 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:8:68:12 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:8:68:12 | query | calleeAccessPath | mongoose Query and | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:8:68:12 | query | calleeAccessPathWithStructuralInfo | mongoose member Query instanceorreturn member and instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:8:68:12 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:8:68:12 | query | calleeName | and | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:8:68:12 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:15:68:26 | function(){} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:15:68:26 | function(){} | calleeAccessPath | mongoose Query and | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:15:68:26 | function(){} | calleeAccessPathWithStructuralInfo | mongoose member Query instanceorreturn member and instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:15:68:26 | function(){} | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:15:68:26 | function(){} | calleeName | and | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:68:15:68:26 | function(){} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | calleeAccessPath | mongoose model where | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | calleeName | where | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:71:20:71:24 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:72:16:72:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:72:16:72:20 | query | calleeAccessPath | mongoose model where where | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:72:16:72:20 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:72:16:72:20 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:72:16:72:20 | query | calleeName | where | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:72:16:72:20 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:73:8:73:12 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:73:8:73:12 | query | calleeAccessPath | mongoose model where where and | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:73:8:73:12 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn member and instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:73:8:73:12 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:73:8:73:12 | query | calleeName | and | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:73:8:73:12 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:74:7:74:11 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:74:7:74:11 | query | calleeAccessPath | mongoose model where where and or | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:74:7:74:11 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn member and instanceorreturn member or instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:74:7:74:11 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:74:7:74:11 | query | calleeName | or | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:74:7:74:11 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:13:75:13 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:13:75:13 | X | calleeAccessPath | mongoose model where where and or distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:13:75:13 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn member and instanceorreturn member or instanceorreturn member distinct instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:13:75:13 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:13:75:13 | X | calleeName | distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:13:75:13 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:16:75:20 | query | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:16:75:20 | query | calleeAccessPath | mongoose model where where and or distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:16:75:20 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn member and instanceorreturn member or instanceorreturn member distinct instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:16:75:20 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:16:75:20 | query | calleeName | distinct | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:75:16:75:20 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:76:12:76:16 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:76:12:76:16 | query | calleeAccessPath | mongoose model where where and or distinct comment | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:76:12:76:16 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn member and instanceorreturn member or instanceorreturn member distinct instanceorreturn member comment instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:76:12:76:16 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:76:12:76:16 | query | calleeName | comment | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:76:12:76:16 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:77:10:77:14 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:77:10:77:14 | query | calleeAccessPath | mongoose model where where and or distinct comment count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:77:10:77:14 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member where instanceorreturn member where instanceorreturn member and instanceorreturn member or instanceorreturn member distinct instanceorreturn member comment instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:77:10:77:14 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:77:10:77:14 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:77:10:77:14 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | calleeAccessPath | mongoose createConnection | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | calleeName | createConnection | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:28:81:28 | X | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:37:81:41 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:37:81:41 | query | calleeAccessPath | mongoose createConnection count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:37:81:41 | query | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:37:81:41 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:37:81:41 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:81:37:81:41 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | calleeAccessPath | mongoose createConnection | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | calleeName | createConnection | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:28:82:28 | X | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:37:82:37 | Y | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:37:82:37 | Y | calleeAccessPath | mongoose createConnection model | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:37:82:37 | Y | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:37:82:37 | Y | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:37:82:37 | Y | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:37:82:37 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:46:82:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:46:82:50 | query | calleeAccessPath | mongoose createConnection model count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:46:82:50 | query | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn member model instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:46:82:50 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:46:82:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:82:46:82:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | calleeAccessPath | mongoose createConnection | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | calleeName | createConnection | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:28:83:28 | X | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:47:83:51 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:47:83:51 | query | calleeAccessPath | mongoose createConnection models count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:47:83:51 | query | calleeAccessPathWithStructuralInfo | mongoose member createConnection instanceorreturn member models member member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:47:83:51 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:47:83:51 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:83:47:83:51 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:19:85:19 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:22:85:51 | (err, r ... (query) | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | calleeAccessPath | mongoose model findOne res count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne functionalarg param res member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:85:46:85:50 | query | receiverName | res | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:19:86:19 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:22:86:51 | (err, r ... (query) | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | calleeAccessPath | mongoose model findOne err count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne functionalarg param err member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:86:46:86:50 | query | receiverName | err | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:19:87:19 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:27:87:56 | (err, r ... (query) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:27:87:56 | (err, r ... (query) | calleeAccessPath | mongoose model findOne exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:27:87:56 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn member exec instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:27:87:56 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:27:87:56 | (err, r ... (query) | calleeName | exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:27:87:56 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | calleeAccessPath | mongoose model findOne exec res count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn member exec functionalarg param res member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:87:51:87:55 | query | receiverName | res | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:19:88:19 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:27:88:56 | (err, r ... (query) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:27:88:56 | (err, r ... (query) | calleeAccessPath | mongoose model findOne exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:27:88:56 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn member exec instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:27:88:56 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:27:88:56 | (err, r ... (query) | calleeName | exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:27:88:56 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | calleeAccessPath | mongoose model findOne exec err count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn member exec functionalarg param err member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:88:51:88:55 | query | receiverName | err | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:19:89:19 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:27:89:51 | (res) = ... (query) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:27:89:51 | (res) = ... (query) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:27:89:51 | (res) = ... (query) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:27:89:51 | (res) = ... (query) | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:27:89:51 | (res) = ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | calleeAccessPath | mongoose model findOne count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:89:46:89:50 | query | receiverName | res | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:19:90:19 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:27:90:27 | Y | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:27:90:27 | Y | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:27:90:27 | Y | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:27:90:27 | Y | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:27:90:27 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:30:90:54 | (err) = ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:30:90:54 | (err) = ... (query) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:30:90:54 | (err) = ... (query) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:30:90:54 | (err) = ... (query) | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:30:90:54 | (err) = ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:49:90:53 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:49:90:53 | query | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:49:90:53 | query | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:49:90:53 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:49:90:53 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:90:49:90:53 | query | receiverName | err | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:16:92:16 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:19:92:51 | (err, r ... (query) | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:46:92:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:46:92:50 | query | calleeAccessPath | mongoose model find res count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:46:92:50 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find functionalarg param res member member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:46:92:50 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:46:92:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:92:46:92:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:16:93:16 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:19:93:48 | (err, r ... (query) | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | calleeAccessPath | mongoose model find err count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find functionalarg param err member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:93:43:93:47 | query | receiverName | err | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:16:94:16 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:24:94:56 | (err, r ... (query) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:24:94:56 | (err, r ... (query) | calleeAccessPath | mongoose model find exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:24:94:56 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn member exec instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:24:94:56 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:24:94:56 | (err, r ... (query) | calleeName | exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:24:94:56 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:51:94:55 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:51:94:55 | query | calleeAccessPath | mongoose model find exec res count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:51:94:55 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn member exec functionalarg param res member member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:51:94:55 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:51:94:55 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:94:51:94:55 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:16:95:16 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:24:95:53 | (err, r ... (query) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:24:95:53 | (err, r ... (query) | calleeAccessPath | mongoose model find exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:24:95:53 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn member exec instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:24:95:53 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:24:95:53 | (err, r ... (query) | calleeName | exec | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:24:95:53 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | calleeAccessPath | mongoose model find exec err count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn member exec functionalarg param err member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:95:48:95:52 | query | receiverName | err | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:16:96:16 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:24:96:51 | (res) = ... (query) | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:24:96:51 | (res) = ... (query) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:24:96:51 | (res) = ... (query) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:24:96:51 | (res) = ... (query) | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:24:96:51 | (res) = ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:46:96:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:46:96:50 | query | calleeAccessPath | mongoose model find count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:46:96:50 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn member member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:46:96:50 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:46:96:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:96:46:96:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:16:97:16 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:24:97:24 | Y | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:24:97:24 | Y | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:24:97:24 | Y | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:24:97:24 | Y | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:24:97:24 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:27:97:51 | (err) = ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:27:97:51 | (err) = ... (query) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:27:97:51 | (err) = ... (query) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:27:97:51 | (err) = ... (query) | calleeName | then | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:27:97:51 | (err) = ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:46:97:50 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:46:97:50 | query | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:46:97:50 | query | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:46:97:50 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:46:97:50 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:97:46:97:50 | query | receiverName | err | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | calleeAccessPath | mongoose model count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:17:99:17 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | calleeAccessPath | mongoose model count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:20:99:49 | (err, r ... (query) | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | calleeAccessPath | mongoose model count res count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member count functionalarg param res member count instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | calleeName | count | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:99:44:99:48 | query | receiverName | res | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:29:102:38 | "constant" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:29:102:38 | "constant" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:29:102:38 | "constant" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:41:102:50 | "constant" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:41:102:50 | "constant" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:41:102:50 | "constant" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:53:102:62 | "constant" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:53:102:62 | "constant" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:102:53:102:62 | "constant" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:8:111:8 | X | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:8:111:8 | X | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:8:111:8 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:11:111:11 | Y | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:11:111:11 | Y | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:11:111:11 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:14:111:18 | query | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:14:111:18 | query | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:111:14:111:18 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | calleeAccessPath | mongoose model findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | calleeName | findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:28:113:28 | X | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | calleeAccessPath | mongoose model findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | calleeName | findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:31:113:35 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | calleeAccessPath | mongoose model findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | calleeName | findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:113:38:113:52 | function () { } | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | calleeAccessPath | mongoose model deleteMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member deleteMany instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | calleeName | deleteMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:116:22:116:25 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | calleeAccessPath | mongoose model deleteOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member deleteOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | calleeName | deleteOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:117:21:117:24 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | calleeAccessPath | mongoose model geoSearch | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member geoSearch instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | calleeName | geoSearch | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:118:21:118:24 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | calleeAccessPath | mongoose model remove | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member remove instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | calleeName | remove | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:119:18:119:21 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | calleeAccessPath | mongoose model replaceOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member replaceOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | calleeName | replaceOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:22:120:25 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | calleeAccessPath | mongoose model replaceOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member replaceOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | calleeName | replaceOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:120:28:120:28 | Y | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:121:16:121:19 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | calleeAccessPath | mongoose model findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | calleeName | findOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:122:19:122:22 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | calleeAccessPath | mongoose model findById | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findById instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | calleeName | findById | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:123:20:123:21 | id | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | calleeAccessPath | mongoose model findOneAndDelete | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndDelete instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | calleeName | findOneAndDelete | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:124:28:124:31 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | calleeAccessPath | mongoose model findOneAndRemove | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndRemove instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | calleeName | findOneAndRemove | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:125:28:125:31 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | calleeAccessPath | mongoose model findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | calleeName | findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:28:126:31 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | calleeAccessPath | mongoose model findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member findOneAndUpdate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | calleeName | findOneAndUpdate | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:126:34:126:34 | Y | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | calleeAccessPath | mongoose model update | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member update instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | calleeName | update | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:18:127:21 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | calleeAccessPath | mongoose model update | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member update instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | calleeName | update | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:127:24:127:24 | Y | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | calleeAccessPath | mongoose model updateMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member updateMany instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | calleeName | updateMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:22:128:25 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | calleeAccessPath | mongoose model updateMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member updateMany instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | calleeName | updateMany | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:128:28:128:28 | Y | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | calleeAccessPath | mongoose model updateOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member updateOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | calleeName | updateOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:21:129:24 | cond | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | calleeAccessPath | mongoose model updateOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member updateOne instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | calleeName | updateOne | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:129:27:129:27 | Y | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:16:130:26 | { _id: id } | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:23:130:24 | id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:23:130:24 | id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:130:23:130:24 | id | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:16:131:35 | { _id: { $eq: id } } | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:23:131:33 | { $eq: id } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:23:131:33 | { $eq: id } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:23:131:33 | { $eq: id } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:30:131:31 | id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:30:131:31 | id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongoose.js:131:30:131:31 | id | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:2:25:2:33 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:2:25:2:33 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:2:25:2:33 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:2:25:2:33 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:3:28:3:40 | 'body-parser' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:3:28:3:40 | 'body-parser' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:3:28:3:40 | 'body-parser' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:3:28:3:40 | 'body-parser' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:4:26:4:35 | 'mongoose' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:4:26:4:35 | 'mongoose' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:4:26:4:35 | 'mongoose' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:4:26:4:35 | 'mongoose' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:6:18:6:50 | 'mongod ... table1' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:6:18:6:50 | 'mongod ... table1' | calleeAccessPath | mongoose connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:6:18:6:50 | 'mongod ... table1' | calleeAccessPathWithStructuralInfo | mongoose member connect instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:6:18:6:50 | 'mongod ... table1' | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:6:18:6:50 | 'mongod ... table1' | calleeName | connect | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:6:18:6:50 | 'mongod ... table1' | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:33:10:42 | 'Document' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:33:10:42 | 'Document' | calleeAccessPath | mongoose model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:33:10:42 | 'Document' | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:33:10:42 | 'Document' | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:33:10:42 | 'Document' | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:33:10:42 | 'Document' | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:45:16:1 | {\\n t ... tring\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:45:16:1 | {\\n t ... tring\\n} | calleeAccessPath | mongoose model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:45:16:1 | {\\n t ... tring\\n} | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:45:16:1 | {\\n t ... tring\\n} | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:45:16:1 | {\\n t ... tring\\n} | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:10:45:16:1 | {\\n t ... tring\\n} | receiverName | Mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:11:12:14:5 | {\\n ... e\\n } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:11:12:14:5 | {\\n ... e\\n } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:12:15:12:20 | String | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:12:15:12:20 | String | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:13:17:13:20 | true | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:13:17:13:20 | true | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:15:11:15:16 | String | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:15:11:15:16 | String | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:9:18:25 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:9:18:25 | '/documents/find' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:9:18:25 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:9:18:25 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:9:18:25 | '/documents/find' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:9:18:25 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:28:24:1 | (req, r ... ery);\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:28:24:1 | (req, r ... ery);\\n} | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:28:24:1 | (req, r ... ery);\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:28:24:1 | (req, r ... ery);\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:28:24:1 | (req, r ... ery);\\n} | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:18:28:24:1 | (req, r ... ery);\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:19:19:19:20 | {} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:19:19:19:20 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:19:19:19:20 | {} | enclosingFunctionBody | req res query query title JSON parse req query data title Document find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:19:19:19:20 | {} | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | calleeName | parse | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | enclosingFunctionBody | req res query query title JSON parse req query data title Document find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:20:30:20:43 | req.query.data | receiverName | JSON | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | enclosingFunctionBody | req res query query title JSON parse req query data title Document find query | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseJsonParse.js:23:19:23:23 | query | receiverName | Document | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:39:3:47 | 'MyModel' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:39:3:47 | 'MyModel' | calleeAccessPath | mongoose model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:39:3:47 | 'MyModel' | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:39:3:47 | 'MyModel' | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:39:3:47 | 'MyModel' | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:39:3:47 | 'MyModel' | receiverName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:50:3:60 | getSchema() | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:50:3:60 | getSchema() | calleeAccessPath | mongoose model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:50:3:60 | getSchema() | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:50:3:60 | getSchema() | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:50:3:60 | getSchema() | calleeName | model | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModel.js:3:50:3:60 | getSchema() | receiverName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:7:9:7:25 | bodyParser.json() | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:7:9:7:25 | bodyParser.json() | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:7:9:7:25 | bodyParser.json() | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:7:9:7:25 | bodyParser.json() | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:7:9:7:25 | bodyParser.json() | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:7:9:7:25 | bodyParser.json() | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:10:9:16 | '/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:10:9:16 | '/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:10:9:16 | '/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:10:9:16 | '/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:10:9:16 | '/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:10:9:16 | '/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:19:14:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:19:14:1 | (req, r ... // OK\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:19:14:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:19:14:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:19:14:1 | (req, r ... // OK\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:9:19:14:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | calleeName | parse | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:10:22:10:31 | req.body.x | receiverName | JSON | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:16:11:24 | { id: v } | receiverName | MyModel | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:22:11:22 | v | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:22:11:22 | v | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:22:11:22 | v | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:11:22:11:22 | v | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:16:12:34 | { id: req.body.id } | receiverName | MyModel | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:22:12:32 | req.body.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:22:12:32 | req.body.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:22:12:32 | req.body.id | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:12:22:12:32 | req.body.id | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | calleeAccessPath | mongoose model find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | calleeAccessPathWithStructuralInfo | mongoose member model instanceorreturn member find instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | calleeApiName | mongoose | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | calleeName | find | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:16:13:39 | { id: ` ... .id}` } | receiverName | MyModel | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:22:13:37 | `${req.body.id}` | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:22:13:37 | `${req.body.id}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:22:13:37 | `${req.body.id}` | enclosingFunctionBody | req res v JSON parse req body x MyModel find id v MyModel find id req body id MyModel find id req body id | +| autogenerated/NosqlAndSqlInjection/untyped/mongooseModelClient.js:13:22:13:37 | `${req.body.id}` | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | calleeAccessPath | pg-promise IDatabase one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | calleeAccessPathWithStructuralInfo | pg-promise member IDatabase instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | enclosingFunctionBody | req res taint req params x db one taint res end | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:8:17:8:21 | taint | enclosingFunctionName | onRequest | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:9:13:17 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:9:13:17 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:9:13:17 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:9:13:17 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:26:13:31 | '/foo' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:26:13:31 | '/foo' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:26:13:31 | '/foo' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:26:13:31 | '/foo' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:26:13:31 | '/foo' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:34:13:76 | (req, r ... q, res) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:34:13:76 | (req, r ... q, res) | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:34:13:76 | (req, r ... q, res) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:34:13:76 | (req, r ... q, res) | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise-types.ts:13:34:13:76 | (req, r ... q, res) | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:1:21:1:32 | 'pg-promise' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:1:21:1:32 | 'pg-promise' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:1:21:1:32 | 'pg-promise' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:1:21:1:32 | 'pg-promise' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:9:3:17 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:9:3:17 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:9:3:17 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:9:3:17 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:26:3:31 | '/foo' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:26:3:31 | '/foo' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:26:3:31 | '/foo' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:26:3:31 | '/foo' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:26:3:31 | '/foo' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:34:66:1 | (req, r ... \\n );\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:34:66:1 | (req, r ... \\n );\\n} | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:34:66:1 | (req, r ... \\n );\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:34:66:1 | (req, r ... \\n );\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:3:34:66:1 | (req, r ... \\n );\\n} | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | calleeAccessPath | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | calleeName | pgp | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:4:18:4:52 | process ... TRING'] | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:34 | "SELECT ... ategory | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:34 | "SELECT ... ategory | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:34 | "SELECT ... ategory | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:34 | "SELECT ... ategory | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:55 | "SELECT ... PRICE" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:55 | "SELECT ... PRICE" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:55 | "SELECT ... PRICE" | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:6:15:7:55 | "SELECT ... PRICE" | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | calleeAccessPath | pg-promise any | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member any instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | calleeName | any | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:9:10:9:14 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | calleeAccessPath | pg-promise many | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member many instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | calleeName | many | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:10:11:10:15 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | calleeAccessPath | pg-promise manyOrNone | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member manyOrNone instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | calleeName | manyOrNone | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:11:17:11:21 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | calleeAccessPath | pg-promise map | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member map instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | calleeName | map | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:12:10:12:14 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | calleeAccessPath | pg-promise multi | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member multi instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | calleeName | multi | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:13:12:13:16 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | calleeAccessPath | pg-promise multiResult | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member multiResult instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | calleeName | multiResult | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:14:18:14:22 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | calleeAccessPath | pg-promise none | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member none instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | calleeName | none | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:15:11:15:15 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:16:10:16:14 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | calleeAccessPath | pg-promise oneOrNone | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member oneOrNone instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | calleeName | oneOrNone | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:17:16:17:20 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | calleeAccessPath | pg-promise query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:18:12:18:16 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | calleeAccessPath | pg-promise result | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member result instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | calleeName | result | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:19:13:19:17 | query | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:21:10:23:3 | {\\n t ... OK\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:22:11:22:15 | query | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:22:11:22:15 | query | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:22:11:22:15 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:22:11:22:15 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:24:10:27:3 | {\\n t ... OK\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:25:11:25:44 | 'SELECT ... d = $1' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:25:11:25:44 | 'SELECT ... d = $1' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:25:11:25:44 | 'SELECT ... d = $1' | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:25:11:25:44 | 'SELECT ... d = $1' | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:26:13:26:25 | req.params.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:26:13:26:25 | req.params.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:26:13:26:25 | req.params.id | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:26:13:26:25 | req.params.id | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:28:10:31:3 | {\\n t ... ter\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:29:11:29:48 | 'SELECT ... $1:raw' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:29:11:29:48 | 'SELECT ... $1:raw' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:29:11:29:48 | 'SELECT ... $1:raw' | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:29:11:29:48 | 'SELECT ... $1:raw' | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:30:13:30:25 | req.params.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:30:13:30:25 | req.params.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:30:13:30:25 | req.params.id | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:30:13:30:25 | req.params.id | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:32:10:35:3 | {\\n t ... OK\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:33:11:33:45 | 'SELECT ... = $1^' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:33:11:33:45 | 'SELECT ... = $1^' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:33:11:33:45 | 'SELECT ... = $1^' | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:33:11:33:45 | 'SELECT ... = $1^' | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:34:13:34:25 | req.params.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:34:13:34:25 | req.params.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:34:13:34:25 | req.params.id | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:34:13:34:25 | req.params.id | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:36:10:43:3 | {\\n t ... ]\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:37:11:37:79 | 'SELECT ... o = $3' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:37:11:37:79 | 'SELECT ... o = $3' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:37:11:37:79 | 'SELECT ... o = $3' | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:37:11:37:79 | 'SELECT ... o = $3' | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:38:13:42:5 | [\\n ... n\\n ] | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:38:13:42:5 | [\\n ... n\\n ] | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:38:13:42:5 | [\\n ... n\\n ] | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:38:13:42:5 | [\\n ... n\\n ] | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:39:7:39:19 | req.params.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:39:7:39:19 | req.params.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:39:7:39:19 | req.params.id | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:39:7:39:19 | req.params.id | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:40:7:40:21 | req.params.name | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:40:7:40:21 | req.params.name | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:40:7:40:21 | req.params.name | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:40:7:40:21 | req.params.name | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:41:7:41:20 | req.params.foo | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:41:7:41:20 | req.params.foo | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:41:7:41:20 | req.params.foo | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:41:7:41:20 | req.params.foo | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:44:10:50:3 | {\\n t ... }\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:45:11:45:70 | 'SELECT ... {name}' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:45:11:45:70 | 'SELECT ... {name}' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:45:11:45:70 | 'SELECT ... {name}' | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:45:11:45:70 | 'SELECT ... {name}' | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:46:13:49:5 | {\\n ... n\\n } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:46:13:49:5 | {\\n ... n\\n } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:46:13:49:5 | {\\n ... n\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:46:13:49:5 | {\\n ... n\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:47:11:47:23 | req.params.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:47:11:47:23 | req.params.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:47:11:47:23 | req.params.id | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:47:11:47:23 | req.params.id | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:48:13:48:27 | req.params.name | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:48:13:48:27 | req.params.name | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:48:13:48:27 | req.params.name | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:48:13:48:27 | req.params.name | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | calleeAccessPath | pg-promise one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:51:10:58:3 | {\\n t ... }\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:52:11:52:121 | "SELECT ... lue%\\"" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:52:11:52:121 | "SELECT ... lue%\\"" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:52:11:52:121 | "SELECT ... lue%\\"" | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:52:11:52:121 | "SELECT ... lue%\\"" | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:53:13:57:5 | {\\n ... e\\n } | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:53:13:57:5 | {\\n ... e\\n } | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:53:13:57:5 | {\\n ... e\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:53:13:57:5 | {\\n ... e\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:54:11:54:23 | req.params.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:54:11:54:23 | req.params.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:54:11:54:23 | req.params.id | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:54:11:54:23 | req.params.id | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:55:13:55:27 | req.params.name | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:55:13:55:27 | req.params.name | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:55:13:55:27 | req.params.name | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:55:13:55:27 | req.params.name | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:56:14:56:29 | req.params.title | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:56:14:56:29 | req.params.title | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:56:14:56:29 | req.params.title | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:56:14:56:29 | req.params.title | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | calleeAccessPath | pg-promise task | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member task instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | calleeName | task | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:59:11:61:3 | t => {\\n ... OK\\n } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | calleeAccessPath | pg-promise task t one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member task functionalarg param t member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:60:20:60:24 | query | receiverName | t | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | calleeAccessPath | pg-promise task | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member task instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | calleeName | task | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:5:63:30 | { cnd: ... uery) } | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:12:63:28 | t => t.one(query) | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:12:63:28 | t => t.one(query) | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:12:63:28 | t => t.one(query) | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:12:63:28 | t => t.one(query) | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | calleeAccessPath | pg-promise task 0 cnd t one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member task functionalarg 0 cnd param t member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:63:23:63:27 | query | receiverName | t | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | calleeAccessPath | pg-promise task | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member task instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | calleeName | task | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:5:64:21 | t => t.one(query) | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | calleeAccessPath | pg-promise task t one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | calleeAccessPathWithStructuralInfo | pg-promise instanceorreturn instanceorreturn member task functionalarg param t member one instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | calleeApiName | pg-promise | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | calleeName | one | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | enclosingFunctionBody | req res db pgp process DB_CONNECTION_STRING env DB_CONNECTION_STRING query SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE db any query db many query db manyOrNone query db map query db multi query db multiResult query db none query db one query db oneOrNone query db query query db result query db one text query db one text SELECT * FROM news where id = $1 values req params id db one text SELECT * FROM news where id = $1:raw values req params id db one text SELECT * FROM news where id = $1^ values req params id db one text SELECT * FROM news where id = $1:raw AND name = $2:raw AND foo = $3 values req params id req params name req params foo db one text SELECT * FROM news where id = ${id}:raw AND name = ${name} values id req params id name req params name db one text SELECT * FROM news where id = ${id}:value AND name LIKE '%${name}:value%' AND title LIKE "%${title}:value%" values id req params id name req params name title req params title db task t t one query db task cnd t t one query t t one query | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | enclosingFunctionName | get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/pg-promise.js:64:16:64:20 | query | receiverName | t | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:2:23:2:29 | "redis" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:2:23:2:29 | "redis" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:2:23:2:29 | "redis" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:2:23:2:29 | "redis" | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:5:25:5:33 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:5:25:5:33 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:5:25:5:33 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:5:25:5:33 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:9:7:37 | require ... .json() | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:9:7:37 | require ... .json() | calleeAccessPath | express use | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:9:7:37 | require ... .json() | calleeAccessPathWithStructuralInfo | express instanceorreturn member use instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:9:7:37 | require ... .json() | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:9:7:37 | require ... .json() | calleeName | use | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:9:7:37 | require ... .json() | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:17:7:29 | 'body-parser' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:17:7:29 | 'body-parser' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:17:7:29 | 'body-parser' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:7:17:7:29 | 'body-parser' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:10:9:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:10:9:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:10:9:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:10:9:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:10:9:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:10:9:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:29:33:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:29:33:1 | (req, r ... OT OK\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:29:33:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:29:33:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:29:33:1 | (req, r ... OT OK\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:9:29:33:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:16:10:27 | req.body.key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:10:30:10:36 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:20:14:22 | key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:14:25:14:31 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:20:15:35 | ["key", "value"] | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:21:15:25 | "key" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:21:15:25 | "key" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:21:15:25 | "key" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:21:15:25 | "key" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:28:15:34 | "value" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:28:15:34 | "value" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:28:15:34 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:15:28:15:34 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:16:18:18 | key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:18:21:18:27 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | calleeAccessPath | redis createClient hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member hmset instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | calleeName | hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:18:19:22 | "key" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | calleeAccessPath | redis createClient hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member hmset instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | calleeName | hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:25:19:31 | "field" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | calleeAccessPath | redis createClient hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member hmset instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | calleeName | hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:34:19:40 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | argumentIndex | 3 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | calleeAccessPath | redis createClient hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member hmset instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | calleeName | hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:43:19:45 | key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | argumentIndex | 4 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | calleeAccessPath | redis createClient hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member hmset instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | calleeName | hmset | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:19:48:19:55 | "value2" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | calleeAccessPath | redis createClient multi set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member multi instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:14:24:23 | "constant" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | calleeAccessPath | redis createClient multi set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member multi instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:24:26:24:32 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | calleeAccessPath | redis createClient multi set set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member multi instanceorreturn member set instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:14:25:16 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | calleeAccessPath | redis createClient multi set set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member multi instanceorreturn member set instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:25:19:25:25 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | calleeAccessPath | redis createClient multi set set get | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member multi instanceorreturn member set instanceorreturn member set instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:26:14:26:16 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | calleeAccessPath | redis createClient multi set set get exec | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member multi instanceorreturn member set instanceorreturn member set instanceorreturn member get instanceorreturn member exec instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | calleeName | exec | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:27:15:27:41 | functio ... es) { } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | calleeAccessPath | redis createClient duplicate | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member duplicate instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | calleeName | duplicate | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:29:22:31:5 | (err, n ... K\\n } | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | calleeAccessPath | redis createClient duplicate newClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member duplicate functionalarg param newClient member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:23:30:25 | key | receiverName | newClient | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | calleeAccessPath | redis createClient duplicate newClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member duplicate functionalarg param newClient member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:30:28:30:34 | "value" | receiverName | newClient | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | calleeAccessPath | redis createClient duplicate set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member duplicate instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:28:32:30 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | calleeAccessPath | redis createClient duplicate set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member duplicate instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | enclosingFunctionBody | req res client set req body key value key req body key key string client set key value client set key value client set key value client hmset key field value key value2 client multi set constant value set key value get key exec err replies client duplicate err newClient newClient set key value client duplicate set key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:32:33:32:39 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:10:37:26 | '/documents/find' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:10:37:26 | '/documents/find' | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:10:37:26 | '/documents/find' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:10:37:26 | '/documents/find' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:10:37:26 | '/documents/find' | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:10:37:26 | '/documents/find' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:29:53:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:29:53:1 | (req, r ... // OK\\n} | calleeAccessPath | express post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:29:53:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:29:53:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:29:53:1 | (req, r ... // OK\\n} | calleeName | post | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:37:29:53:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:16:39:18 | key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | calleeAccessPath | redis createClient set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member set instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | calleeApiName | redis | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | calleeName | set | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:39:21:39:27 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | calleeName | promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:32:41:41 | client.set | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | calleeAccessPath | util promisify bind | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn member bind instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | calleeName | bind | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:41:49:41:54 | client | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | calleeName | setAsync | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:27:43:29 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | calleeName | setAsync | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:43:32:43:38 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | calleeAccessPath | redis createClient setAsync util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member setAsync util member promisify instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | calleeApiName | redis util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | calleeName | promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:45:33:45:42 | client.set | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | calleeName | setAsync | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:34:46:36 | key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | calleeName | setAsync | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:46:39:46:45 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | calleeAccessPath | redis createClient unrelated util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | calleeAccessPathWithStructuralInfo | redis member createClient instanceorreturn member unrelated util member promisify instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | calleeApiName | redis util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | calleeName | promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:48:34:48:41 | () => {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | calleeName | unrelated | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:35:49:37 | key | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | calleeName | unrelated | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:49:40:49:46 | "value" | receiverName | client | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | calleeName | promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:33:51:45 | client.foobar | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | calleeAccessPath | util promisify bind | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn member bind instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | calleeName | bind | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:51:53:51:58 | client | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | calleeName | unrelated | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:28:52:30 | key | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | calleeAccessPath | util promisify | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | calleeApiName | util | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | calleeName | unrelated | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | enclosingFunctionBody | req res key req body key client set key value setAsync promisify client set bind client foo1 setAsync key value client setAsync promisify client set foo2 client setAsync key value client unrelated promisify foo3 client unrelated key value unrelated promisify client foobar bind client foo4 unrelated key value | +| autogenerated/NosqlAndSqlInjection/untyped/redis.js:52:33:52:39 | "value" | enclosingFunctionName | app.post#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:4:23:4:31 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:4:23:4:31 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:4:23:4:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:4:23:4:31 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:5:23:5:31 | 'sqlite3' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:5:23:5:31 | 'sqlite3' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:5:23:5:31 | 'sqlite3' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:5:23:5:31 | 'sqlite3' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:8:18:8:28 | 'socket.io' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:8:18:8:28 | 'socket.io' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:8:18:8:28 | 'socket.io' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:8:18:8:28 | 'socket.io' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:7:9:18 | 'connection' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:7:9:18 | 'connection' | calleeAccessPath | socket.io on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:7:9:18 | 'connection' | calleeAccessPathWithStructuralInfo | socket.io instanceorreturn member on instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:7:9:18 | 'connection' | calleeApiName | socket.io | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:7:9:18 | 'connection' | calleeName | on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:7:9:18 | 'connection' | receiverName | io | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:21:13:1 | (socket ... });\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:21:13:1 | (socket ... });\\n} | calleeAccessPath | socket.io on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:21:13:1 | (socket ... });\\n} | calleeAccessPathWithStructuralInfo | socket.io instanceorreturn member on instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:21:13:1 | (socket ... });\\n} | calleeApiName | socket.io | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:21:13:1 | (socket ... });\\n} | calleeName | on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:9:21:13:1 | (socket ... });\\n} | receiverName | io | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | calleeAccessPath | socket.io on socket on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | calleeAccessPathWithStructuralInfo | socket.io instanceorreturn member on functionalarg param socket member on instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | calleeApiName | socket.io | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | calleeName | on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | enclosingFunctionBody | socket socket on newuser handle db run INSERT INTO users(name) VALUES handle | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | enclosingFunctionName | io.on#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:13:10:21 | 'newuser' | receiverName | socket | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | calleeAccessPath | socket.io on socket on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | calleeAccessPathWithStructuralInfo | socket.io instanceorreturn member on functionalarg param socket member on instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | calleeApiName | socket.io | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | calleeName | on | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | enclosingFunctionBody | socket socket on newuser handle db run INSERT INTO users(name) VALUES handle | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | enclosingFunctionName | io.on#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:10:24:12:3 | (handle ... `);\\n } | receiverName | socket | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | calleeAccessPath | sqlite3 verbose Database run | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | calleeAccessPathWithStructuralInfo | sqlite3 member verbose instanceorreturn member Database instanceorreturn member run instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | calleeApiName | sqlite3 | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | calleeName | run | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | enclosingFunctionBody | socket socket on newuser handle db run INSERT INTO users(name) VALUES handle | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | enclosingFunctionName | io.on#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/socketio.js:11:12:11:53 | `INSERT ... andle}` | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:1:23:1:31 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:1:23:1:31 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:1:23:1:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:1:23:1:31 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:2:13:2:28 | require('mssql') | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:2:13:2:28 | require('mssql') | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:2:21:2:27 | 'mssql' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:2:21:2:27 | 'mssql' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:2:21:2:27 | 'mssql' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:2:21:2:27 | 'mssql' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:9:5:19 | '/post/:id' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:9:5:19 | '/post/:id' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:9:5:19 | '/post/:id' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:9:5:19 | '/post/:id' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:9:5:19 | '/post/:id' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:9:5:19 | '/post/:id' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:22:10:1 | async f ... "'");\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:22:10:1 | async f ... "'");\\n} | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:22:10:1 | async f ... "'");\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:22:10:1 | async f ... "'");\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:22:10:1 | async f ... "'");\\n} | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:5:22:10:1 | async f ... "'");\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | calleeAccessPath | mssql Request query | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | calleeAccessPathWithStructuralInfo | mssql member Request instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | calleeApiName | mssql | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | enclosingFunctionBody | req res sql query select * from mytable where id = req params id sql Request query select * from mytable where id = ' req params id ' | +| autogenerated/NosqlAndSqlInjection/untyped/tst2.js:9:27:9:84 | "select ... d + "'" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:3:20:3:23 | 'pg' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:3:20:3:23 | 'pg' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:3:20:3:23 | 'pg' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:3:20:3:23 | 'pg' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:34 | "SELECT ... ategory | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:34 | "SELECT ... ategory | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:34 | "SELECT ... ategory | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:34 | "SELECT ... ategory | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:55 | "SELECT ... PRICE" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:55 | "SELECT ... PRICE" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:55 | "SELECT ... PRICE" | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:7:16:8:55 | "SELECT ... PRICE" | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | calleeAccessPath | pg Pool query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | calleeAccessPathWithStructuralInfo | pg member Pool instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | calleeApiName | pg | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:14:9:19 | query1 | receiverName | pool | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | calleeAccessPath | pg Pool query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | calleeAccessPathWithStructuralInfo | pg member Pool instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | calleeApiName | pg | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:22:9:23 | [] | receiverName | pool | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | calleeAccessPath | pg Pool query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | calleeAccessPathWithStructuralInfo | pg member Pool instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | calleeApiName | pg | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:9:26:11:3 | functio ... lts\\n } | receiverName | pool | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:14:16:15:32 | "SELECT ... PRICE" | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:14:16:15:32 | "SELECT ... PRICE" | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:14:16:15:32 | "SELECT ... PRICE" | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:14:16:15:32 | "SELECT ... PRICE" | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | calleeAccessPath | pg Pool query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | calleeAccessPathWithStructuralInfo | pg member Pool instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | calleeApiName | pg | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:14:16:19 | query2 | receiverName | pool | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | calleeAccessPath | pg Pool query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | calleeAccessPathWithStructuralInfo | pg member Pool instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | calleeApiName | pg | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:22:16:42 | [req.pa ... tegory] | receiverName | pool | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:23:16:41 | req.params.category | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:23:16:41 | req.params.category | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:23:16:41 | req.params.category | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:23:16:41 | req.params.category | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | argumentIndex | 2 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | calleeAccessPath | pg Pool query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | calleeAccessPathWithStructuralInfo | pg member Pool instanceorreturn member query instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | calleeApiName | pg | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | calleeName | query | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | enclosingFunctionBody | req res query1 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=' req params category ' ORDER BY PRICE pool query query1 err results query2 SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE pool query query2 req params category err results | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | enclosingFunctionName | handler | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:16:45:18:3 | functio ... lts\\n } | receiverName | pool | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:9:21:17 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:9:21:17 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:9:21:17 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:9:21:17 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:26:21:31 | '/foo' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:26:21:31 | '/foo' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:26:21:31 | '/foo' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:26:21:31 | '/foo' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:26:21:31 | '/foo' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:34:21:40 | handler | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:34:21:40 | handler | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:34:21:40 | handler | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:34:21:40 | handler | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/tst3.js:21:34:21:40 | handler | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:3:23:3:31 | 'sqlite3' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:3:23:3:31 | 'sqlite3' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:3:23:3:31 | 'sqlite3' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:3:23:3:31 | 'sqlite3' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:16:6:22 | 'myApp' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:16:6:22 | 'myApp' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:16:6:22 | 'myApp' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:16:6:22 | 'myApp' | calleeName | module | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:16:6:22 | 'myApp' | receiverName | angular | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:25:6:35 | ['ngRoute'] | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:25:6:35 | ['ngRoute'] | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:25:6:35 | ['ngRoute'] | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:25:6:35 | ['ngRoute'] | calleeName | module | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:25:6:35 | ['ngRoute'] | receiverName | angular | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:26:6:34 | 'ngRoute' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:6:26:6:34 | 'ngRoute' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:13:7:22 | 'FindPost' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:13:7:22 | 'FindPost' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:13:7:22 | 'FindPost' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:13:7:22 | 'FindPost' | calleeName | controller | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:25:9:1 | functio ... '"');\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:25:9:1 | functio ... '"');\\n} | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:25:9:1 | functio ... '"');\\n} | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:7:25:9:1 | functio ... '"');\\n} | calleeName | controller | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:60 | 'SELECT ... rams.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:60 | 'SELECT ... rams.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:60 | 'SELECT ... rams.id | enclosingFunctionBody | $routeParams db get SELECT * FROM Post WHERE id = " $routeParams id " | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:60 | 'SELECT ... rams.id | enclosingFunctionName | controller#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | calleeAccessPath | sqlite3 verbose Database get | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | calleeAccessPathWithStructuralInfo | sqlite3 member verbose instanceorreturn member Database instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | calleeApiName | sqlite3 | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | enclosingFunctionBody | $routeParams db get SELECT * FROM Post WHERE id = " $routeParams id " | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | enclosingFunctionName | controller#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/tst4.js:8:10:8:66 | 'SELECT ... d + '"' | receiverName | db | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:4:23:4:31 | 'express' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:4:23:4:31 | 'express' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:4:23:4:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:4:23:4:31 | 'express' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:5:23:5:31 | 'sqlite3' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:5:23:5:31 | 'sqlite3' | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:5:23:5:31 | 'sqlite3' | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:5:23:5:31 | 'sqlite3' | calleeName | require | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:9:9:19 | '/post/:id' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:9:9:19 | '/post/:id' | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:9:9:19 | '/post/:id' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:9:9:19 | '/post/:id' | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:9:9:19 | '/post/:id' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:9:9:19 | '/post/:id' | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:22:11:1 | functio ... '"');\\n} | argumentIndex | 1 | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:22:11:1 | functio ... '"');\\n} | calleeAccessPath | express get | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:22:11:1 | functio ... '"');\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:22:11:1 | functio ... '"');\\n} | calleeApiName | express | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:22:11:1 | functio ... '"');\\n} | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:9:22:11:1 | functio ... '"');\\n} | receiverName | app | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:58 | 'SELECT ... rams.id | calleeAccessPath | | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:58 | 'SELECT ... rams.id | calleeAccessPathWithStructuralInfo | | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:58 | 'SELECT ... rams.id | enclosingFunctionBody | req res db get SELECT * FROM Post WHERE id = " req params id " | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:58 | 'SELECT ... rams.id | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | argumentIndex | 0 | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | calleeAccessPath | sqlite3 verbose Database get | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | calleeAccessPathWithStructuralInfo | sqlite3 member verbose instanceorreturn member Database instanceorreturn member get instanceorreturn | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | calleeApiName | sqlite3 | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | calleeName | get | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | enclosingFunctionBody | req res db get SELECT * FROM Post WHERE id = " req params id " | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/NosqlAndSqlInjection/untyped/tst.js:10:10:10:64 | 'SELECT ... d + '"' | receiverName | db | +| autogenerated/TaintedPath/TaintedPath-es6.js:6:27:11:1 | functio ... h)));\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath-es6.js:6:27:11:1 | functio ... h)));\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath-es6.js:6:27:11:1 | functio ... h)));\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:6:27:11:1 | functio ... h)));\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath-es6.js:6:27:11:1 | functio ... h)));\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | enclosingFunctionBody | req res path parse req url true query path res write readFileSync join public path | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:20:7:26 | req.url | enclosingFunctionName | createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | enclosingFunctionBody | req res path parse req url true query path res write readFileSync join public path | +| autogenerated/TaintedPath/TaintedPath-es6.js:7:29:7:32 | true | enclosingFunctionName | createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | enclosingFunctionBody | req res path parse req url true query path res write readFileSync join public path | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | enclosingFunctionName | createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:13:10:46 | readFil ... path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | enclosingFunctionBody | req res path parse req url true query path res write readFileSync join public path | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:26:10:45 | join("public", path) | enclosingFunctionName | createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | calleeName | join | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | enclosingFunctionBody | req res path parse req url true query path res write readFileSync join public path | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:31:10:38 | "public" | enclosingFunctionName | createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | calleeName | join | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | enclosingFunctionBody | req res path parse req url true query path res write readFileSync join public path | +| autogenerated/TaintedPath/TaintedPath-es6.js:10:41:10:44 | path | enclosingFunctionName | createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:1:18:1:21 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:1:18:1:21 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:1:18:1:21 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:1:18:1:21 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:2:20:2:25 | 'http' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:2:20:2:25 | 'http' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:2:20:2:25 | 'http' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:2:20:2:25 | 'http' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:3:19:3:23 | 'url' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:3:19:3:23 | 'url' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:3:19:3:23 | 'url' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:3:19:3:23 | 'url' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:4:24:4:42 | 'sanitize-filename' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:4:24:4:42 | 'sanitize-filename' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:4:24:4:42 | 'sanitize-filename' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:4:24:4:42 | 'sanitize-filename' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:5:26:5:31 | 'path' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:5:26:5:31 | 'path' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:5:26:5:31 | 'path' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:5:26:5:31 | 'path' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:8:32:61:1 | functio ... h)));\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:8:32:61:1 | functio ... h)));\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:8:32:61:1 | functio ... h)));\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:8:32:61:1 | functio ... h)));\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:8:32:61:1 | functio ... h)));\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:8:32:61:1 | functio ... h)));\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:9:24:9:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:9:33:9:36 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:12:13:12:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:12:29:12:32 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:15:13:15:49 | fs.read ... + path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:15:29:15:48 | "/home/user/" + path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | calleeAccessPath | url parse query path startsWith | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member startsWith instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | calleeName | startsWith | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:17:23:17:35 | "/home/user/" | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:18:17:18:37 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:18:33:18:36 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | calleeAccessPath | url parse query path indexOf | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member indexOf instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | calleeName | indexOf | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:20:20:20:27 | "secret" | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:21:17:21:37 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:21:33:21:36 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | calleeAccessPath | fs existsSync | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | calleeAccessPathWithStructuralInfo | fs member existsSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | calleeName | existsSync | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:23:21:23:24 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:24:17:24:37 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:24:33:24:36 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:27:15:27:35 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:27:31:27:34 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:30:15:30:35 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:30:31:30:34 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:33:15:33:35 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:33:31:33:34 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:35:10:35:23 | sanitize(path) | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:35:10:35:23 | sanitize(path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:35:10:35:23 | sanitize(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:35:10:35:23 | sanitize(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:36:13:36:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:36:29:36:32 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:38:20:38:26 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:38:29:38:32 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:40:13:40:54 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:40:29:40:53 | pathMod ... e(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | calleeAccessPath | path basename | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | calleeAccessPathWithStructuralInfo | path member basename instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | calleeName | basename | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:40:49:40:52 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:42:13:42:53 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:42:29:42:52 | pathMod ... e(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | calleeAccessPath | path dirname | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | calleeAccessPathWithStructuralInfo | path member dirname instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | calleeName | dirname | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:42:48:42:51 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:44:13:44:53 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:44:29:44:52 | pathMod ... e(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | calleeAccessPath | path extname | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | calleeAccessPathWithStructuralInfo | path member extname instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | calleeName | extname | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:44:48:44:51 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:46:13:46:50 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:46:29:46:49 | pathMod ... n(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:46:45:46:48 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:48:13:48:59 | fs.read ... th, z)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:48:29:48:58 | pathMod ... ath, z) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:48:45:48:45 | x | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:48:48:48:48 | y | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | argumentIndex | 2 | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:48:51:48:54 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | argumentIndex | 3 | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | calleeAccessPath | path join | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:48:57:48:57 | z | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:50:13:50:55 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:50:29:50:54 | pathMod ... e(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | calleeName | normalize | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:50:50:50:53 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:52:13:52:57 | fs.read ... path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:52:29:52:56 | pathMod ... , path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | calleeAccessPath | path relative | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | calleeName | relative | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:52:49:52:49 | x | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | calleeAccessPath | path relative | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | calleeName | relative | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:52:52:52:55 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:54:13:54:57 | fs.read ... th, x)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:54:29:54:56 | pathMod ... ath, x) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | calleeAccessPath | path relative | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | calleeName | relative | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:54:49:54:52 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | calleeAccessPath | path relative | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | calleeName | relative | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:54:55:54:55 | x | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:56:13:56:53 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:56:29:56:52 | pathMod ... e(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | calleeName | resolve | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:56:48:56:51 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:58:13:58:62 | fs.read ... th, z)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:58:29:58:61 | pathMod ... ath, z) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | calleeName | resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:58:48:58:48 | x | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | calleeName | resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:58:51:58:51 | y | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | argumentIndex | 2 | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | calleeName | resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:58:54:58:57 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | argumentIndex | 3 | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | calleeName | resolve | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:58:60:58:60 | z | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:60:13:60:62 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:60:29:60:61 | pathMod ... h(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | calleeAccessPath | path toNamespacedPath | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | calleeAccessPathWithStructuralInfo | path member toNamespacedPath instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | calleeName | toNamespacedPath | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path res write fs readFileSync /home/user/ path path startsWith /home/user/ res write fs readFileSync path path indexOf secret 1 res write fs readFileSync path fs existsSync path res write fs readFileSync path path foo.txt res write fs readFileSync path path foo.txt path bar.txt res write fs readFileSync path path foo.txt path bar.txt someOpaqueCondition res write fs readFileSync path path sanitize path res write fs readFileSync path path url parse req url true query path res write fs readFileSync pathModule basename path res write fs readFileSync pathModule dirname path res write fs readFileSync pathModule extname path res write fs readFileSync pathModule join path res write fs readFileSync pathModule join x y path z res write fs readFileSync pathModule normalize path res write fs readFileSync pathModule relative x path res write fs readFileSync pathModule relative path x res write fs readFileSync pathModule resolve path res write fs readFileSync pathModule resolve x y path z res write fs readFileSync pathModule toNamespacedPath path | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:60:57:60:60 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:63:16:63:22 | 'myApp' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:63:16:63:22 | 'myApp' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:63:16:63:22 | 'myApp' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:63:16:63:22 | 'myApp' | calleeName | module | +| autogenerated/TaintedPath/TaintedPath.js:63:16:63:22 | 'myApp' | receiverName | angular | +| autogenerated/TaintedPath/TaintedPath.js:63:25:63:26 | [] | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:63:25:63:26 | [] | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:63:25:63:26 | [] | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:63:25:63:26 | [] | calleeName | module | +| autogenerated/TaintedPath/TaintedPath.js:63:25:63:26 | [] | receiverName | angular | +| autogenerated/TaintedPath/TaintedPath.js:64:16:64:27 | 'myCustomer' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:64:16:64:27 | 'myCustomer' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:64:16:64:27 | 'myCustomer' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:64:16:64:27 | 'myCustomer' | calleeName | directive | +| autogenerated/TaintedPath/TaintedPath.js:64:30:68:5 | functio ... }\\n } | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:64:30:68:5 | functio ... }\\n } | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:64:30:68:5 | functio ... }\\n } | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:64:30:68:5 | functio ... }\\n } | calleeName | directive | +| autogenerated/TaintedPath/TaintedPath.js:69:16:69:27 | 'myCustomer' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:69:16:69:27 | 'myCustomer' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:69:16:69:27 | 'myCustomer' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:69:16:69:27 | 'myCustomer' | calleeName | directive | +| autogenerated/TaintedPath/TaintedPath.js:69:30:73:5 | functio ... }\\n } | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:69:30:73:5 | functio ... }\\n } | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:69:30:73:5 | functio ... }\\n } | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:69:30:73:5 | functio ... }\\n } | calleeName | directive | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | calleeName | get | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | enclosingFunctionBody | templateUrl Cookie get unsafe | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | enclosingFunctionName | directive#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:71:37:71:44 | "unsafe" | receiverName | Cookie | +| autogenerated/TaintedPath/TaintedPath.js:75:32:80:1 | functio ... OT OK\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:75:32:80:1 | functio ... OT OK\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:75:32:80:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:75:32:80:1 | functio ... OT OK\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:75:32:80:1 | functio ... OT OK\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:75:32:80:1 | functio ... OT OK\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:77:15:77:77 | fs.read ... .query) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:77:31:77:76 | require ... ).query | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:77:39:77:54 | "querystringify" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:77:39:77:54 | "querystringify" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:77:39:77:54 | "querystringify" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:77:39:77:54 | "querystringify" | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:77:39:77:54 | "querystringify" | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:77:39:77:54 | "querystringify" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | calleeAccessPath | querystringify parse | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | calleeAccessPathWithStructuralInfo | querystringify member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | calleeApiName | querystringify | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:77:63:77:69 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:78:15:78:75 | fs.read ... .query) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:78:31:78:74 | require ... ).query | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:78:39:78:52 | "query-string" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:78:39:78:52 | "query-string" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:78:39:78:52 | "query-string" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:78:39:78:52 | "query-string" | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:78:39:78:52 | "query-string" | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:78:39:78:52 | "query-string" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | calleeAccessPath | query-string parse | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | calleeAccessPathWithStructuralInfo | query-string member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | calleeApiName | query-string | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:78:61:78:67 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:79:15:79:74 | fs.read ... .query) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:79:31:79:73 | require ... ).query | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:79:39:79:51 | "querystring" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:79:39:79:51 | "querystring" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:79:39:79:51 | "querystring" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:79:39:79:51 | "querystring" | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:79:39:79:51 | "querystring" | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:79:39:79:51 | "querystring" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | calleeAccessPath | querystring parse | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | calleeAccessPathWithStructuralInfo | querystring member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | calleeApiName | querystring | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | enclosingFunctionBody | req res res write fs readFileSync require querystringify parse req url query res write fs readFileSync require query-string parse req url query res write fs readFileSync require querystring parse req url query | +| autogenerated/TaintedPath/TaintedPath.js:79:60:79:66 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:84:27:84:35 | 'express' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:84:27:84:35 | 'express' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:84:27:84:35 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:84:27:84:35 | 'express' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:84:27:84:35 | 'express' | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:84:27:84:35 | 'express' | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | calleeAccessPath | express get res render | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member render instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | calleeApiName | express | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | calleeName | render | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:87:48:87:60 | req.params[0] | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | calleeAccessPath | express get | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | calleeApiName | express | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | calleeName | get | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:88:21:88:30 | '/views/*' | receiverName | application | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | calleeAccessPath | express get | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | calleeApiName | express | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | calleeName | get | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:88:33:88:43 | views_local | receiverName | application | +| autogenerated/TaintedPath/TaintedPath.js:90:34:90:42 | "./views" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:90:34:90:42 | "./views" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:90:34:90:42 | "./views" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:90:34:90:42 | "./views" | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:90:34:90:42 | "./views" | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:90:34:90:42 | "./views" | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | calleeAccessPath | express get | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | calleeApiName | express | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | calleeName | get | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:91:21:91:30 | '/views/*' | receiverName | application | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | calleeAccessPath | express get | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | calleeApiName | express | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | calleeName | get | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | enclosingFunctionBody | express require express application express views_local req res res render req 0 params 0 application get /views/* views_local views_imported require ./views application get /views/* views_imported | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | enclosingFunctionName | | +| autogenerated/TaintedPath/TaintedPath.js:91:33:91:46 | views_imported | receiverName | application | +| autogenerated/TaintedPath/TaintedPath.js:95:18:95:26 | 'message' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:95:18:95:26 | 'message' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:95:18:95:26 | 'message' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:95:18:95:26 | 'message' | calleeName | addEventListener | +| autogenerated/TaintedPath/TaintedPath.js:95:29:97:1 | (ev) => ... ata);\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:95:29:97:1 | (ev) => ... ata);\\n} | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:95:29:97:1 | (ev) => ... ata);\\n} | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:95:29:97:1 | (ev) => ... ata);\\n} | calleeName | addEventListener | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | calleeName | set | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | enclosingFunctionBody | ev Cookie set unsafe ev data | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | enclosingFunctionName | addEventListener#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:96:14:96:21 | "unsafe" | receiverName | Cookie | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | calleeName | set | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | enclosingFunctionBody | ev Cookie set unsafe ev data | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | enclosingFunctionName | addEventListener#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:96:24:96:30 | ev.data | receiverName | Cookie | +| autogenerated/TaintedPath/TaintedPath.js:99:32:109:1 | functio ... );\\n\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:99:32:109:1 | functio ... );\\n\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:99:32:109:1 | functio ... );\\n\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:99:32:109:1 | functio ... );\\n\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:99:32:109:1 | functio ... );\\n\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:99:32:109:1 | functio ... );\\n\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:100:23:100:29 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:100:32:100:35 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:102:12:102:49 | fs.read ... (path)) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:102:28:102:48 | fs.real ... c(path) | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | calleeAccessPath | fs realpathSync | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | calleeAccessPathWithStructuralInfo | fs member realpathSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | calleeName | realpathSync | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:102:44:102:47 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | calleeAccessPath | fs realpath | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | calleeAccessPathWithStructuralInfo | fs member realpath instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | calleeName | realpath | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:103:14:103:17 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | calleeAccessPath | fs realpath | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | calleeAccessPathWithStructuralInfo | fs member realpath instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | calleeName | realpath | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:104:18:106:18 | functio ... } | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:105:29:105:53 | fs.read ... alpath) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync fs realpathSync path fs realpath path err realpath res write fs readFileSync realpath | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:105:45:105:52 | realpath | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:111:32:120:1 | functio ... bove.\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:111:32:120:1 | functio ... bove.\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:111:32:120:1 | functio ... bove.\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:111:32:120:1 | functio ... bove.\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:111:32:120:1 | functio ... bove.\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:111:32:120:1 | functio ... bove.\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:112:24:112:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:112:33:112:36 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:115:12:115:51 | path.re ... /g, '') | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:115:12:115:51 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:115:12:115:51 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:115:12:115:51 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:115:25:115:46 | /[\\]\\[* ... \\?\\/]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:115:49:115:50 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:116:12:116:36 | path.re ... /g, '') | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:116:12:116:36 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:116:12:116:36 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:116:12:116:36 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | calleeAccessPath | url parse query path replace replace | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:116:25:116:31 | /\\.\\./g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | calleeAccessPath | url parse query path replace replace | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:116:34:116:35 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:119:13:119:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:119:29:119:32 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:122:32:133:1 | functio ... bove.\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:122:32:133:1 | functio ... bove.\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:122:32:133:1 | functio ... bove.\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:122:32:133:1 | functio ... bove.\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:122:32:133:1 | functio ... bove.\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:122:32:133:1 | functio ... bove.\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:123:24:123:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:123:33:123:36 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:128:11:128:50 | path.re ... /g, '') | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:128:11:128:50 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:128:11:128:50 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:128:11:128:50 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:128:24:128:45 | /[\\]\\[* ... \\?\\/]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:128:48:128:49 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:129:12:129:36 | path.re ... /g, '') | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:129:12:129:36 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:129:12:129:36 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:129:12:129:36 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | calleeAccessPath | url parse query path replace replace | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:129:25:129:31 | /\\.\\./g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | calleeAccessPath | url parse query path replace replace | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:129:34:129:35 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:132:13:132:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | enclosingFunctionBody | req res path url parse req url true query path path path path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g path path replace /\\.\\./g res write fs readFileSync path | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:132:29:132:32 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:135:32:139:1 | functio ... OT OK\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:135:32:139:1 | functio ... OT OK\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:135:32:139:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:135:32:139:1 | functio ... OT OK\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:135:32:139:1 | functio ... OT OK\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:135:32:139:1 | functio ... OT OK\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | enclosingFunctionBody | req res path url parse req url true query path require send req path | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:136:23:136:29 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | enclosingFunctionBody | req res path url parse req url true query path require send req path | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:136:32:136:35 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:138:10:138:15 | 'send' | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:138:10:138:15 | 'send' | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:138:10:138:15 | 'send' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:138:10:138:15 | 'send' | calleeName | require | +| autogenerated/TaintedPath/TaintedPath.js:138:10:138:15 | 'send' | enclosingFunctionBody | req res path url parse req url true query path require send req path | +| autogenerated/TaintedPath/TaintedPath.js:138:10:138:15 | 'send' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:138:18:138:20 | req | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:138:18:138:20 | req | calleeAccessPath | send | +| autogenerated/TaintedPath/TaintedPath.js:138:18:138:20 | req | calleeAccessPathWithStructuralInfo | send instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:138:18:138:20 | req | calleeApiName | send | +| autogenerated/TaintedPath/TaintedPath.js:138:18:138:20 | req | enclosingFunctionBody | req res path url parse req url true query path require send req path | +| autogenerated/TaintedPath/TaintedPath.js:138:18:138:20 | req | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:138:23:138:26 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:138:23:138:26 | path | calleeAccessPath | send | +| autogenerated/TaintedPath/TaintedPath.js:138:23:138:26 | path | calleeAccessPathWithStructuralInfo | send instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:138:23:138:26 | path | calleeApiName | send | +| autogenerated/TaintedPath/TaintedPath.js:138:23:138:26 | path | enclosingFunctionBody | req res path url parse req url true query path require send req path | +| autogenerated/TaintedPath/TaintedPath.js:138:23:138:26 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:141:32:163:1 | functio ... OK \\n\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:141:32:163:1 | functio ... OK \\n\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:141:32:163:1 | functio ... OK \\n\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:141:32:163:1 | functio ... OK \\n\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:141:32:163:1 | functio ... OK \\n\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:141:32:163:1 | functio ... OK \\n\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:142:24:142:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:142:33:142:36 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:144:19:144:22 | path | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | calleeName | split | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:146:26:146:28 | "/" | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:148:19:148:33 | split.join("/") | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | calleeAccessPath | url parse query path split join | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:148:30:148:32 | "/" | receiverName | split | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:150:19:150:50 | prefix ... th - 1] | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:152:19:152:26 | split[x] | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:153:19:153:35 | prefix + split[x] | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | calleeName | concat | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:155:33:155:37 | split | receiverName | prefix | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:156:19:156:37 | concatted.join("/") | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | calleeAccessPath | | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:156:34:156:36 | "/" | receiverName | concatted | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | calleeAccessPath | url parse query path split concat | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn member concat instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | calleeName | concat | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:158:33:158:38 | prefix | receiverName | split | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:159:19:159:38 | concatted2.join("/") | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | calleeAccessPath | url parse query path split concat join | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn member concat instanceorreturn member join instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | calleeName | join | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:159:35:159:37 | "/" | receiverName | concatted2 | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path split path split / fs readFileSync split join / fs readFileSync prefix split split length 1 fs readFileSync split x fs readFileSync prefix split x concatted prefix concat split fs readFileSync concatted join / concatted2 split concat prefix fs readFileSync concatted2 join / fs readFileSync split pop | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:161:19:161:29 | split.pop() | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:165:32:196:1 | functio ... lute)\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:165:32:196:1 | functio ... lute)\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/TaintedPath.js:165:32:196:1 | functio ... lute)\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:165:32:196:1 | functio ... lute)\\n} | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:165:32:196:1 | functio ... lute)\\n} | calleeName | createServer | +| autogenerated/TaintedPath/TaintedPath.js:165:32:196:1 | functio ... lute)\\n} | receiverName | http | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:166:24:166:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | calleeName | parse | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:166:33:166:36 | true | receiverName | url | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:169:13:169:69 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:169:29:169:68 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:169:42:169:63 | /[\\]\\[* ... \\?\\/]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:169:66:169:67 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:170:13:170:56 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:170:29:170:55 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:170:42:170:50 | /[abcd]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:170:53:170:54 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:171:13:171:54 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:171:29:171:53 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:171:42:171:48 | /[./]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:171:51:171:52 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:172:13:172:65 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:172:29:172:64 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:172:42:172:59 | /[foobar/foobar]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:172:62:172:63 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:173:13:173:52 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:173:29:173:51 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:173:42:173:46 | /\\//g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:173:49:173:50 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:174:13:174:55 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:174:29:174:54 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:174:42:174:49 | /\\.\|\\//g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:174:52:174:53 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:176:13:176:53 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:176:29:176:52 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:176:42:176:47 | /[.]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:176:50:176:51 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:177:13:177:54 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:177:29:177:53 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:177:42:177:48 | /[..]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:177:51:177:52 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:178:13:178:52 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:178:29:178:51 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:178:42:178:46 | /\\./g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:178:49:178:50 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:179:13:179:58 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:179:29:179:57 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:179:42:179:52 | /\\.\\.\|BLA/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:179:55:179:56 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:182:15:182:55 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:182:31:182:54 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:182:44:182:49 | /[.]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:182:52:182:53 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:183:14:183:55 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:183:30:183:54 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:183:43:183:49 | /[..]/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:183:52:183:53 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:184:15:184:54 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:184:31:184:53 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:184:44:184:48 | /\\./g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:184:51:184:52 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:185:14:185:59 | fs.read ... g, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:185:30:185:58 | path.re ... /g, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:185:43:185:53 | /\\.\\.\|BLA/g | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:185:56:185:57 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:189:13:189:96 | fs.read ... /, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:189:29:189:95 | "prefix ... +/, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | calleeName | normalize | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:189:61:189:64 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:189:75:189:90 | /^(\\.\\.[\\/\\\\])+/ | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:189:93:189:94 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:190:13:190:95 | fs.read ... /, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:190:29:190:94 | "prefix ... +/, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | calleeName | normalize | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:190:61:190:64 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:190:75:190:89 | /(\\.\\.[\\/\\\\])+/ | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:190:92:190:93 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:191:13:191:91 | fs.read ... /, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:191:29:191:90 | "prefix ... +/, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | calleeName | normalize | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:191:61:191:64 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:191:75:191:85 | /(\\.\\.\\/)+/ | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:191:88:191:89 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:192:13:192:91 | fs.read ... /, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:192:29:192:90 | "prefix ... */, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | calleeName | normalize | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:192:61:192:64 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:192:75:192:85 | /(\\.\\.\\/)*/ | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:192:88:192:89 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:194:13:194:74 | fs.read ... /, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:194:29:194:73 | "prefix ... +/, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:194:53:194:68 | /^(\\.\\.[\\/\\\\])+/ | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | calleeAccessPath | url parse query path replace | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | calleeApiName | url | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:194:71:194:72 | '' | receiverName | path | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | calleeApiName | http | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | calleeName | write | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:195:13:195:85 | fs.read ... /, '')) | receiverName | res | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | calleeApiName | fs | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | calleeName | readFileSync | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:195:29:195:84 | pathMod ... +/, '') | receiverName | fs | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | calleeName | normalize | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:195:50:195:53 | path | receiverName | pathModule | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | argumentIndex | 0 | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:195:64:195:79 | /^(\\.\\.[\\/\\\\])+/ | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | calleeApiName | path | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | calleeName | replace | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path replace /[\\]\\[*,;'"`<>\\\\?\\/]/g res write fs readFileSync path replace /[abcd]/g res write fs readFileSync path replace /[./]/g res write fs readFileSync path replace /[foobar/foobar]/g res write fs readFileSync path replace /\\//g res write fs readFileSync path replace /\\.\|\\//g res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g pathModule isAbsolute path res write fs readFileSync path replace /[.]/g res write fs readFileSync path replace /[..]/g res write fs readFileSync path replace /\\./g res write fs readFileSync path replace /\\.\\.\|BLA/g res write fs readFileSync prefix pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.[\\/\\\\])+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)+/ res write fs readFileSync prefix pathModule normalize path replace /(\\.\\.\\/)*/ res write fs readFileSync prefix path replace /^(\\.\\.[\\/\\\\])+/ res write fs readFileSync pathModule normalize path replace /^(\\.\\.[\\/\\\\])+/ | +| autogenerated/TaintedPath/TaintedPath.js:195:82:195:83 | '' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/my-async-fs-module.js:1:20:1:23 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/my-async-fs-module.js:1:20:1:23 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/my-async-fs-module.js:1:20:1:23 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/my-async-fs-module.js:1:20:1:23 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/my-async-fs-module.js:2:29:2:38 | 'bluebird' | argumentIndex | 0 | +| autogenerated/TaintedPath/my-async-fs-module.js:2:29:2:38 | 'bluebird' | calleeAccessPath | | +| autogenerated/TaintedPath/my-async-fs-module.js:2:29:2:38 | 'bluebird' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/my-async-fs-module.js:2:29:2:38 | 'bluebird' | calleeName | require | +| autogenerated/TaintedPath/my-async-fs-module.js:11:33:14:1 | (obj, m ... obj;\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/my-async-fs-module.js:11:33:14:1 | (obj, m ... obj;\\n} | calleeAccessPath | | +| autogenerated/TaintedPath/my-async-fs-module.js:11:33:14:1 | (obj, m ... obj;\\n} | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/my-async-fs-module.js:11:33:14:1 | (obj, m ... obj;\\n} | calleeName | reduce | +| autogenerated/TaintedPath/my-async-fs-module.js:11:33:14:1 | (obj, m ... obj;\\n} | receiverName | methods | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | argumentIndex | 0 | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | calleeAccessPath | bluebird promisify | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | calleeAccessPathWithStructuralInfo | bluebird member promisify instanceorreturn | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | calleeApiName | bluebird | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | calleeName | promisify | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | enclosingFunctionBody | obj method obj method promisify fs method obj | +| autogenerated/TaintedPath/my-async-fs-module.js:12:27:12:36 | fs[method] | enclosingFunctionName | methods.reduce#functionalargument | +| autogenerated/TaintedPath/my-async-fs-module.js:14:4:14:5 | {} | argumentIndex | 1 | +| autogenerated/TaintedPath/my-async-fs-module.js:14:4:14:5 | {} | calleeAccessPath | | +| autogenerated/TaintedPath/my-async-fs-module.js:14:4:14:5 | {} | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/my-async-fs-module.js:14:4:14:5 | {} | calleeName | reduce | +| autogenerated/TaintedPath/my-async-fs-module.js:14:4:14:5 | {} | receiverName | methods | +| autogenerated/TaintedPath/my-fs-module.js:3:18:3:21 | "fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/my-fs-module.js:3:18:3:21 | "fs" | calleeAccessPath | | +| autogenerated/TaintedPath/my-fs-module.js:3:18:3:21 | "fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/my-fs-module.js:3:18:3:21 | "fs" | calleeName | require | +| autogenerated/TaintedPath/my-fs-module.js:3:18:3:21 | "fs" | enclosingFunctionBody | special special require fs require original-fs | +| autogenerated/TaintedPath/my-fs-module.js:3:18:3:21 | "fs" | enclosingFunctionName | require | +| autogenerated/TaintedPath/my-fs-module.js:5:18:5:30 | "original-fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/my-fs-module.js:5:18:5:30 | "original-fs" | calleeAccessPath | | +| autogenerated/TaintedPath/my-fs-module.js:5:18:5:30 | "original-fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/my-fs-module.js:5:18:5:30 | "original-fs" | calleeName | require | +| autogenerated/TaintedPath/my-fs-module.js:5:18:5:30 | "original-fs" | enclosingFunctionBody | special special require fs require original-fs | +| autogenerated/TaintedPath/my-fs-module.js:5:18:5:30 | "original-fs" | enclosingFunctionName | require | +| autogenerated/TaintedPath/normalizedPaths.js:1:18:1:21 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:1:18:1:21 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:1:18:1:21 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:1:18:1:21 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:2:23:2:31 | 'express' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:2:23:2:31 | 'express' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:2:23:2:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:2:23:2:31 | 'express' | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:3:19:3:23 | 'url' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:3:19:3:23 | 'url' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:3:19:3:23 | 'url' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:3:19:3:23 | 'url' | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:4:24:4:42 | 'sanitize-filename' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:4:24:4:42 | 'sanitize-filename' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:4:24:4:42 | 'sanitize-filename' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:4:24:4:42 | 'sanitize-filename' | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:5:26:5:31 | 'path' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:5:26:5:31 | 'path' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:5:26:5:31 | 'path' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:5:26:5:31 | 'path' | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:10:9:10:16 | '/basic' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:10:9:10:16 | '/basic' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:10:9:10:16 | '/basic' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:10:9:10:16 | '/basic' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:10:9:10:16 | '/basic' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:10:9:10:16 | '/basic' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:10:19:18:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:10:19:18:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:10:19:18:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:10:19:18:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:10:19:18:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:10:19:18:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:13:19:13:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:14:19:14:29 | './' + path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:15:19:15:38 | path + '/index.html' | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:16:19:16:53 | pathMod ... .html') | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:16:35:16:38 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:16:41:16:52 | 'index.html' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:17:19:17:57 | pathMod ... , path) | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:17:35:17:50 | '/home/user/www' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | enclosingFunctionBody | req res path req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:17:53:17:56 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:20:9:20:20 | '/normalize' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:20:9:20:20 | '/normalize' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:20:9:20:20 | '/normalize' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:20:9:20:20 | '/normalize' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:20:9:20:20 | '/normalize' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:20:9:20:20 | '/normalize' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:20:23:28:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:20:23:28:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:20:23:28:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:20:23:28:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:20:23:28:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:20:23:28:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:21:14:21:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:21:14:21:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:21:14:21:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:21:14:21:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:21:35:21:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:23:19:23:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:24:19:24:29 | './' + path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:25:19:25:38 | path + '/index.html' | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:26:19:26:53 | pathMod ... .html') | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:26:35:26:38 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:26:41:26:52 | 'index.html' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:27:19:27:57 | pathMod ... , path) | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:27:35:27:50 | '/home/user/www' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | enclosingFunctionBody | req res path pathModule normalize req query path fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html fs readFileSync pathModule join path index.html fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:27:53:27:56 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:30:9:30:32 | '/norma ... solute' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:30:9:30:32 | '/norma ... solute' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:30:9:30:32 | '/norma ... solute' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:30:9:30:32 | '/norma ... solute' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:30:9:30:32 | '/norma ... solute' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:30:9:30:32 | '/norma ... solute' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:30:35:51:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:30:35:51:1 | (req, r ... // OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:30:35:51:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:30:35:51:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:30:35:51:1 | (req, r ... // OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:30:35:51:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:31:14:31:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:31:14:31:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:31:14:31:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:31:14:31:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:31:35:31:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:36:19:36:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:38:24:38:26 | "." | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:39:21:39:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:41:21:41:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:43:24:43:27 | ".." | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:44:21:44:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:46:24:46:28 | "../" | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:47:21:47:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:49:24:49:44 | ".." + ... ule.sep | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path fs readFileSync path path startsWith . fs readFileSync path fs readFileSync path path startsWith .. fs readFileSync path path startsWith ../ fs readFileSync path path startsWith .. pathModule sep fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:50:21:50:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:53:9:53:36 | '/norma ... DotDot' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:53:9:53:36 | '/norma ... DotDot' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:53:9:53:36 | '/norma ... DotDot' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:53:9:53:36 | '/norma ... DotDot' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:53:9:53:36 | '/norma ... DotDot' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:53:9:53:36 | '/norma ... DotDot' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:53:39:69:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:53:39:69:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:53:39:69:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:53:39:69:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:53:39:69:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:53:39:69:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:54:14:54:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:54:14:54:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:54:14:54:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:54:14:54:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:54:35:54:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:56:23:56:26 | ".." | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:59:19:59:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:61:19:61:29 | "./" + path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:63:19:63:38 | path + "/index.html" | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:66:21:66:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync ./ path fs readFileSync path /index.html pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:68:21:68:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:71:9:71:28 | '/prepend-normalize' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:71:9:71:28 | '/prepend-normalize' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:71:9:71:28 | '/prepend-normalize' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:71:9:71:28 | '/prepend-normalize' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:71:9:71:28 | '/prepend-normalize' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:71:9:71:28 | '/prepend-normalize' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:71:31:79:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:71:31:79:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:71:31:79:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:71:31:79:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:71:31:79:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:71:31:79:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:73:14:73:56 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:73:14:73:56 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:73:14:73:56 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize ./ req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:73:14:73:56 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | enclosingFunctionBody | req res path pathModule normalize ./ req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:73:35:73:55 | './' + ... ry.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | enclosingFunctionBody | req res path pathModule normalize ./ req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:75:24:75:27 | ".." | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | enclosingFunctionBody | req res path pathModule normalize ./ req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:76:21:76:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | enclosingFunctionBody | req res path pathModule normalize ./ req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:78:22:78:25 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:81:9:81:19 | '/absolute' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:81:9:81:19 | '/absolute' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:81:9:81:19 | '/absolute' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:81:9:81:19 | '/absolute' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:81:9:81:19 | '/absolute' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:81:9:81:19 | '/absolute' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:81:22:91:1 | (req, r ... '../'\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:81:22:91:1 | (req, r ... '../'\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:81:22:91:1 | (req, r ... '../'\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:81:22:91:1 | (req, r ... '../'\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:81:22:91:1 | (req, r ... '../'\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:81:22:91:1 | (req, r ... '../'\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | calleeAccessPath | express get res write | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | enclosingFunctionBody | req res path req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:87:13:87:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:87:29:87:32 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | calleeAccessPath | express get req query path startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member path member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:89:23:89:38 | '/home/user/www' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | calleeAccessPath | express get res write | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | enclosingFunctionBody | req res path req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:90:15:90:35 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:90:31:90:34 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:93:9:93:30 | '/norma ... solute' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:93:9:93:30 | '/norma ... solute' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:93:9:93:30 | '/norma ... solute' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:93:9:93:30 | '/norma ... solute' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:93:9:93:30 | '/norma ... solute' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:93:9:93:30 | '/norma ... solute' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:93:33:103:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:93:33:103:1 | (req, r ... // OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:93:33:103:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:93:33:103:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:93:33:103:1 | (req, r ... // OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:93:33:103:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:94:14:94:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:94:14:94:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:94:14:94:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:94:14:94:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:94:35:94:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | calleeAccessPath | express get res write | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:99:13:99:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:99:29:99:32 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:101:23:101:38 | '/home/user/www' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | calleeAccessPath | express get res write | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:102:15:102:35 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path res write fs readFileSync path path startsWith /home/user/www res write fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:102:31:102:34 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:105:9:105:25 | '/combined-check' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:105:9:105:25 | '/combined-check' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:105:9:105:25 | '/combined-check' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:105:9:105:25 | '/combined-check' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:105:9:105:25 | '/combined-check' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:105:9:105:25 | '/combined-check' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:105:28:114:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:105:28:114:1 | (req, r ... // OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:105:28:114:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:105:28:114:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:105:28:114:1 | (req, r ... // OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:105:28:114:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:106:14:106:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:106:14:106:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:106:14:106:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith /home/user/www fs readFileSync path path 0 0 / path 0 0 . fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:106:14:106:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith /home/user/www fs readFileSync path path 0 0 / path 0 0 . fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:106:35:106:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith /home/user/www fs readFileSync path path 0 0 / path 0 0 . fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:109:23:109:38 | "/home/user/www" | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith /home/user/www fs readFileSync path path 0 0 / path 0 0 . fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:110:21:110:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path path startsWith /home/user/www fs readFileSync path path 0 0 / path 0 0 . fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:113:21:113:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:116:9:116:19 | '/realpath' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:116:9:116:19 | '/realpath' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:116:9:116:19 | '/realpath' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:116:9:116:19 | '/realpath' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:116:9:116:19 | '/realpath' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:116:9:116:19 | '/realpath' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:116:22:127:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:116:22:127:1 | (req, r ... // OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:116:22:127:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:116:22:127:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:116:22:127:1 | (req, r ... // OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:116:22:127:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:117:14:117:44 | fs.real ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:117:14:117:44 | fs.real ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:117:14:117:44 | fs.real ... y.path) | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:117:14:117:44 | fs.real ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | calleeAccessPath | fs realpathSync | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | calleeAccessPathWithStructuralInfo | fs member realpathSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | calleeName | realpathSync | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:117:30:117:43 | req.query.path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:119:19:119:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:120:19:120:53 | pathMod ... .html') | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:120:35:120:38 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:120:41:120:52 | 'index.html' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | calleeAccessPath | fs realpathSync startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | calleeAccessPathWithStructuralInfo | fs member realpathSync instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:122:23:122:38 | "/home/user/www" | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:123:21:123:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:125:19:125:44 | pathMod ... , path) | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:125:35:125:37 | '.' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:125:40:125:43 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:126:19:126:57 | pathMod ... , path) | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:126:35:126:50 | '/home/user/www' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | enclosingFunctionBody | req res path fs realpathSync req query path fs readFileSync path fs readFileSync pathModule join path index.html path startsWith /home/user/www fs readFileSync path fs readFileSync pathModule join . path fs readFileSync pathModule join /home/user/www path | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:126:53:126:56 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:129:9:129:26 | '/coerce-relative' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:129:9:129:26 | '/coerce-relative' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:129:9:129:26 | '/coerce-relative' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:129:9:129:26 | '/coerce-relative' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:129:9:129:26 | '/coerce-relative' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:129:9:129:26 | '/coerce-relative' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:129:29:136:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:129:29:136:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:129:29:136:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:129:29:136:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:129:29:136:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:129:29:136:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:130:14:130:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:130:14:130:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:130:14:130:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule join . req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:130:14:130:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | enclosingFunctionBody | req res path pathModule join . req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:130:30:130:32 | '.' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | enclosingFunctionBody | req res path pathModule join . req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:130:35:130:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | calleeAccessPath | path join startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | enclosingFunctionBody | req res path pathModule join . req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:132:24:132:27 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | enclosingFunctionBody | req res path pathModule join . req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:133:21:133:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | enclosingFunctionBody | req res path pathModule join . req query path path startsWith .. fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:135:21:135:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:138:9:138:26 | '/coerce-absolute' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:138:9:138:26 | '/coerce-absolute' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:138:9:138:26 | '/coerce-absolute' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:138:9:138:26 | '/coerce-absolute' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:138:9:138:26 | '/coerce-absolute' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:138:9:138:26 | '/coerce-absolute' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:138:29:145:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:138:29:145:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:138:29:145:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:138:29:145:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:138:29:145:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:138:29:145:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:139:14:139:62 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:139:14:139:62 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:139:14:139:62 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule join /home/user/www req query path path startsWith /home/user/www fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:139:14:139:62 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | enclosingFunctionBody | req res path pathModule join /home/user/www req query path path startsWith /home/user/www fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:139:30:139:45 | '/home/user/www' | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | enclosingFunctionBody | req res path pathModule join /home/user/www req query path path startsWith /home/user/www fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:139:48:139:61 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | calleeAccessPath | path join startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | enclosingFunctionBody | req res path pathModule join /home/user/www req query path path startsWith /home/user/www fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:141:23:141:38 | '/home/user/www' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | enclosingFunctionBody | req res path pathModule join /home/user/www req query path path startsWith /home/user/www fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:142:21:142:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | enclosingFunctionBody | req res path pathModule join /home/user/www req query path path startsWith /home/user/www fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:144:21:144:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:147:9:147:37 | '/conca ... zation' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:147:9:147:37 | '/conca ... zation' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:147:9:147:37 | '/conca ... zation' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:147:9:147:37 | '/conca ... zation' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:147:9:147:37 | '/conca ... zation' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:147:9:147:37 | '/conca ... zation' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:147:40:157:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:147:40:157:1 | (req, r ... // OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:147:40:157:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:147:40:157:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:147:40:157:1 | (req, r ... // OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:147:40:157:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:148:14:148:58 | 'foo/' ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:148:14:148:58 | 'foo/' ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:148:14:148:58 | 'foo/' ... y.path) | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:148:14:148:58 | 'foo/' ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:148:44:148:57 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:150:24:150:27 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:151:21:151:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:153:21:153:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | calleeName | includes | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:155:22:155:25 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | enclosingFunctionBody | req res path foo/ pathModule normalize req query path path startsWith .. fs readFileSync path fs readFileSync path path includes .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:156:21:156:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:159:9:159:19 | '/noDotDot' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:159:9:159:19 | '/noDotDot' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:159:9:159:19 | '/noDotDot' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:159:9:159:19 | '/noDotDot' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:159:9:159:19 | '/noDotDot' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:159:9:159:19 | '/noDotDot' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:159:22:171:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:159:22:171:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:159:22:171:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:159:22:171:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:159:22:171:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:159:22:171:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:160:14:160:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:160:14:160:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:160:14:160:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path path includes .. fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:160:14:160:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path path includes .. fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:160:35:160:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | calleeAccessPath | path normalize includes | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member includes instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | calleeName | includes | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | enclosingFunctionBody | req res path pathModule normalize req query path path includes .. fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:162:21:162:24 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | enclosingFunctionBody | req res path pathModule normalize req query path path includes .. fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:165:19:165:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path path includes .. fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:168:21:168:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path path includes .. fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:170:21:170:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:173:9:173:26 | '/join-regression' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:173:9:173:26 | '/join-regression' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:173:9:173:26 | '/join-regression' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:173:9:173:26 | '/join-regression' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:173:9:173:26 | '/join-regression' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:173:9:173:26 | '/join-regression' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:173:29:211:1 | (req, r ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:173:29:211:1 | (req, r ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:173:29:211:1 | (req, r ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:173:29:211:1 | (req, r ... OT OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:173:29:211:1 | (req, r ... OT OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:173:29:211:1 | (req, r ... OT OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | calleeAccessPath | express get req query path startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member path member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:180:23:180:25 | '/' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | calleeAccessPath | express get req query path startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member path member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:181:23:181:26 | '/x' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | calleeAccessPath | express get req query path startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member path member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:182:23:182:25 | '.' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:184:19:184:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:187:21:187:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:189:21:189:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | calleeAccessPath | express get req query path includes | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member path member includes instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | calleeName | includes | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:191:21:191:24 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:192:21:192:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:194:21:194:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | calleeAccessPath | express get req query path includes | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member path member includes instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | calleeName | includes | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:196:22:196:25 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:197:21:197:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:199:21:199:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:201:45:201:48 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:202:33:202:48 | '/home/user/www' | receiverName | normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:203:21:203:34 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:205:21:205:34 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:207:33:207:48 | '/home/user/www' | receiverName | normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:207:80:207:98 | '/home/user/public' | receiverName | normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:208:21:208:34 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | enclosingFunctionBody | req res path req query path pathModule isAbsolute path path path path startsWith / path path path startsWith /x path path path startsWith . path path fs readFileSync path pathModule isAbsolute path fs readFileSync path fs readFileSync path path includes .. fs readFileSync path fs readFileSync path path includes .. pathModule isAbsolute path fs readFileSync path fs readFileSync path normalizedPath pathModule normalize path normalizedPath startsWith /home/user/www fs readFileSync normalizedPath fs readFileSync normalizedPath normalizedPath startsWith /home/user/www normalizedPath startsWith /home/user/public fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:210:21:210:34 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:213:9:213:37 | '/decod ... zation' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:213:9:213:37 | '/decod ... zation' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:213:9:213:37 | '/decod ... zation' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:213:9:213:37 | '/decod ... zation' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:213:9:213:37 | '/decod ... zation' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:213:9:213:37 | '/decod ... zation' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:213:40:223:1 | (req, r ... lized\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:213:40:223:1 | (req, r ... lized\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:213:40:223:1 | (req, r ... lized\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:213:40:223:1 | (req, r ... lized\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:213:40:223:1 | (req, r ... lized\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:213:40:223:1 | (req, r ... lized\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:214:14:214:49 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:214:14:214:49 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:214:14:214:49 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:214:14:214:49 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:214:35:214:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | calleeAccessPath | path normalize startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:216:56:216:59 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:217:21:217:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:219:10:219:33 | decodeU ... t(path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:219:10:219:33 | decodeU ... t(path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:219:10:219:33 | decodeU ... t(path) | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:219:10:219:33 | decodeU ... t(path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:219:29:219:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:219:29:219:32 | path | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:219:29:219:32 | path | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:219:29:219:32 | path | calleeName | decodeURIComponent | +| autogenerated/TaintedPath/normalizedPaths.js:219:29:219:32 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:219:29:219:32 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:221:56:221:59 | '..' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path pathModule isAbsolute path path startsWith .. fs readFileSync path path decodeURIComponent path pathModule isAbsolute path path startsWith .. fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:222:21:222:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:225:9:225:18 | '/replace' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:225:9:225:18 | '/replace' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:225:9:225:18 | '/replace' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:225:9:225:18 | '/replace' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:225:9:225:18 | '/replace' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:225:9:225:18 | '/replace' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:225:21:233:1 | (req, r ... K\\n }\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:225:21:233:1 | (req, r ... K\\n }\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:225:21:233:1 | (req, r ... K\\n }\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:225:21:233:1 | (req, r ... K\\n }\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:225:21:233:1 | (req, r ... K\\n }\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:225:21:233:1 | (req, r ... K\\n }\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:226:14:226:70 | pathMod ... g, ' ') | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:226:14:226:70 | pathMod ... g, ' ') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:226:14:226:70 | pathMod ... g, ' ') | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:226:14:226:70 | pathMod ... g, ' ') | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:226:35:226:48 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | calleeName | replace | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:226:59:226:64 | /%20/g | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | calleeAccessPath | path normalize replace | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | calleeName | replace | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:226:67:226:69 | ' ' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:228:21:228:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:230:12:230:36 | path.re ... /g, '') | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:230:12:230:36 | path.re ... /g, '') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:230:12:230:36 | path.re ... /g, '') | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:230:12:230:36 | path.re ... /g, '') | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | calleeAccessPath | path normalize replace replace | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | calleeName | replace | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:230:25:230:31 | /\\.\\./g | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | calleeAccessPath | path normalize replace replace | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member replace instanceorreturn member replace instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | calleeName | replace | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:230:34:230:35 | '' | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | enclosingFunctionBody | req res path pathModule normalize req query path replace /%20/g pathModule isAbsolute path fs readFileSync path path path replace /\\.\\./g fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:231:21:231:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:235:9:235:23 | '/resolve-path' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:235:9:235:23 | '/resolve-path' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:235:9:235:23 | '/resolve-path' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:235:9:235:23 | '/resolve-path' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:235:9:235:23 | '/resolve-path' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:235:9:235:23 | '/resolve-path' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:235:26:251:1 | (req, r ... arity\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:235:26:251:1 | (req, r ... arity\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:235:26:251:1 | (req, r ... arity\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:235:26:251:1 | (req, r ... arity\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:235:26:251:1 | (req, r ... arity\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:235:26:251:1 | (req, r ... arity\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:236:14:236:47 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:236:14:236:47 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:236:14:236:47 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:236:14:236:47 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | calleeName | resolve | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:236:33:236:46 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:238:19:238:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | calleeAccessPath | path resolve substring | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn member substring instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | calleeName | substring | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:242:22:242:22 | 0 | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | calleeAccessPath | path resolve substring | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn member substring instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | calleeName | substring | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:242:25:242:39 | self.dir.length | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:243:21:243:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:245:21:245:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | calleeAccessPath | path resolve slice | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn member slice instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | calleeName | slice | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:247:18:247:18 | 0 | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | calleeAccessPath | path resolve slice | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn member slice instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | calleeName | slice | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:247:21:247:35 | self.dir.length | receiverName | path | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:248:21:248:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something path substring 0 self dir length self dir fs readFileSync path fs readFileSync path path slice 0 self dir length self dir fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:250:21:250:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:253:9:253:30 | '/relat ... tswith' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:253:9:253:30 | '/relat ... tswith' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:253:9:253:30 | '/relat ... tswith' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:253:9:253:30 | '/relat ... tswith' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:253:9:253:30 | '/relat ... tswith' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:253:9:253:30 | '/relat ... tswith' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:253:33:298:1 | (req, r ... \\n }\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:253:33:298:1 | (req, r ... \\n }\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:253:33:298:1 | (req, r ... \\n }\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:253:33:298:1 | (req, r ... \\n }\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:253:33:298:1 | (req, r ... \\n }\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:253:33:298:1 | (req, r ... \\n }\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:254:14:254:47 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:254:14:254:47 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:254:14:254:47 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:254:14:254:47 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | calleeName | resolve | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:254:33:254:46 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:256:19:256:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:260:38:260:49 | self.webroot | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:260:52:260:55 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | calleeAccessPath | path relative startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn member startsWith instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | calleeName | startsWith | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:261:26:261:46 | ".." + ... ule.sep | receiverName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:262:21:262:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:264:21:264:24 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:267:38:267:41 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:268:42:268:75 | pathMod ... aceDir) | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:268:63:268:74 | workspaceDir | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:268:78:268:84 | newpath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | calleeAccessPath | path relative indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn member indexOf instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | calleeName | indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:269:28:269:48 | '..' + ... ule.sep | receiverName | relativePath | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:270:21:270:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:272:21:272:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:275:38:275:41 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:276:42:276:75 | pathMod ... aceDir) | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:276:63:276:74 | workspaceDir | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:276:78:276:84 | newpath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | calleeAccessPath | path relative indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn member indexOf instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | calleeName | indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:277:28:277:32 | '../' | receiverName | relativePath | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:278:21:278:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:280:21:280:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:283:38:283:41 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:284:42:284:75 | pathMod ... aceDir) | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:284:63:284:74 | workspaceDir | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:284:78:284:84 | newpath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:285:28:285:39 | relativePath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | calleeAccessPath | path normalize indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member indexOf instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | calleeName | indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:285:50:285:54 | '../' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:286:21:286:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:288:21:288:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:291:38:291:41 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:292:42:292:75 | pathMod ... aceDir) | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:292:63:292:74 | workspaceDir | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | calleeAccessPath | path relative | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | calleeAccessPathWithStructuralInfo | path member relative instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | calleeName | relative | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:292:78:292:84 | newpath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | calleeAccessPath | path normalize | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | calleeName | normalize | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:293:28:293:39 | relativePath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | calleeAccessPath | path normalize indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | calleeAccessPathWithStructuralInfo | path member normalize instanceorreturn member indexOf instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | calleeName | indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:293:50:293:54 | '../' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:294:21:294:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path self something relative pathModule relative self webroot path relative startsWith .. pathModule sep relative .. fs readFileSync path fs readFileSync path newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf .. pathModule sep 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ 0 fs readFileSync newpath fs readFileSync newpath newpath pathModule normalize path relativePath pathModule relative pathModule normalize workspaceDir newpath pathModule normalize relativePath indexOf ../ fs readFileSync newpath fs readFileSync newpath | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:296:21:296:27 | newpath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:300:28:300:43 | "is-path-inside" | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:300:28:300:43 | "is-path-inside" | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:300:28:300:43 | "is-path-inside" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:300:28:300:43 | "is-path-inside" | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:301:28:301:43 | "path-is-inside" | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:301:28:301:43 | "path-is-inside" | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:301:28:301:43 | "path-is-inside" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:301:28:301:43 | "path-is-inside" | calleeName | require | +| autogenerated/TaintedPath/normalizedPaths.js:302:9:302:32 | '/pseud ... ations' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:302:9:302:32 | '/pseud ... ations' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:302:9:302:32 | '/pseud ... ations' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:302:9:302:32 | '/pseud ... ations' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:302:9:302:32 | '/pseud ... ations' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:302:9:302:32 | '/pseud ... ations' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:302:35:336:1 | (req, r ... \\n\\n\\t}\\n\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:302:35:336:1 | (req, r ... \\n\\n\\t}\\n\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:302:35:336:1 | (req, r ... \\n\\n\\t}\\n\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:302:35:336:1 | (req, r ... \\n\\n\\t}\\n\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:302:35:336:1 | (req, r ... \\n\\n\\t}\\n\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:302:35:336:1 | (req, r ... \\n\\n\\t}\\n\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:304:18:304:21 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:306:19:306:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:309:19:309:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | calleeAccessPath | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | calleeAccessPathWithStructuralInfo | path-is-inside instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | calleeApiName | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | calleeName | pathIsInside | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:312:19:312:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | calleeAccessPath | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | calleeAccessPathWithStructuralInfo | path-is-inside instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | calleeApiName | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | calleeName | pathIsInside | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:312:25:312:28 | SAFE | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:313:19:313:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:316:19:316:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:320:39:320:42 | SAFE | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:320:45:320:48 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | calleeAccessPath | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | calleeAccessPathWithStructuralInfo | path-is-inside instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | calleeApiName | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | calleeName | pathIsInside | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:321:19:321:32 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | calleeAccessPath | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | calleeAccessPathWithStructuralInfo | path-is-inside instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | calleeApiName | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | calleeName | pathIsInside | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:321:35:321:38 | SAFE | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:322:19:322:32 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:325:19:325:32 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | calleeAccessPath | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | calleeAccessPathWithStructuralInfo | path-is-inside instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | calleeApiName | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | calleeName | pathIsInside | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:328:19:328:32 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | calleeAccessPath | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | calleeAccessPathWithStructuralInfo | path-is-inside instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | calleeApiName | path-is-inside | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | calleeName | pathIsInside | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:328:35:328:38 | SAFE | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:329:19:329:32 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | enclosingFunctionBody | req res path req query path fs readFileSync path isPathInside path SAFE fs readFileSync path fs readFileSync path pathIsInside path SAFE fs readFileSync path fs readFileSync path normalizedPath pathModule join SAFE path pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath pathIsInside normalizedPath SAFE fs readFileSync normalizedPath fs readFileSync normalizedPath | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:332:19:332:32 | normalizedPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:338:9:338:29 | '/yet-a ... prefix' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:338:9:338:29 | '/yet-a ... prefix' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:338:9:338:29 | '/yet-a ... prefix' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:338:9:338:29 | '/yet-a ... prefix' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:338:9:338:29 | '/yet-a ... prefix' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:338:9:338:29 | '/yet-a ... prefix' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:338:32:350:1 | (req, r ... // OK\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:338:32:350:1 | (req, r ... // OK\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:338:32:350:1 | (req, r ... // OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:338:32:350:1 | (req, r ... // OK\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:338:32:350:1 | (req, r ... // OK\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:338:32:350:1 | (req, r ... // OK\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:339:13:339:46 | pathMod ... y.path) | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:339:13:339:46 | pathMod ... y.path) | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:339:13:339:46 | pathMod ... y.path) | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:339:13:339:46 | pathMod ... y.path) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | calleeName | resolve | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:339:32:339:45 | req.query.path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:341:18:341:21 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | calleeName | resolve | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:343:31:343:34 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | calleeAccessPath | path resolve indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn member indexOf instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | calleeName | indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:345:18:345:21 | root | receiverName | abs | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:346:19:346:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | enclosingFunctionBody | req res path pathModule resolve req query path fs readFileSync path abs pathModule resolve path abs indexOf root 0 fs readFileSync path fs readFileSync path | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:349:18:349:21 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:353:9:353:30 | '/yet-a ... refix2' | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:353:9:353:30 | '/yet-a ... refix2' | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:353:9:353:30 | '/yet-a ... refix2' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:353:9:353:30 | '/yet-a ... refix2' | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:353:9:353:30 | '/yet-a ... refix2' | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:353:9:353:30 | '/yet-a ... refix2' | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:353:33:373:1 | (req, r ... ;\\n }\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:353:33:373:1 | (req, r ... ;\\n }\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/normalizedPaths.js:353:33:373:1 | (req, r ... ;\\n }\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:353:33:373:1 | (req, r ... ;\\n }\\n} | calleeApiName | express | +| autogenerated/TaintedPath/normalizedPaths.js:353:33:373:1 | (req, r ... ;\\n }\\n} | calleeName | get | +| autogenerated/TaintedPath/normalizedPaths.js:353:33:373:1 | (req, r ... ;\\n }\\n} | receiverName | app | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:356:19:356:22 | path | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:358:37:358:44 | rootPath | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | calleeAccessPath | path join | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | calleeName | join | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:358:47:358:50 | path | receiverName | pathModule | +| autogenerated/TaintedPath/normalizedPaths.js:361:18:361:28 | requestPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:361:18:361:28 | requestPath | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:361:18:361:28 | requestPath | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:361:18:361:28 | requestPath | calleeName | allowPath | +| autogenerated/TaintedPath/normalizedPaths.js:361:18:361:28 | requestPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:361:18:361:28 | requestPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:361:31:361:38 | rootPath | argumentIndex | 1 | +| autogenerated/TaintedPath/normalizedPaths.js:361:31:361:38 | rootPath | calleeAccessPath | | +| autogenerated/TaintedPath/normalizedPaths.js:361:31:361:38 | rootPath | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/normalizedPaths.js:361:31:361:38 | rootPath | calleeName | allowPath | +| autogenerated/TaintedPath/normalizedPaths.js:361:31:361:38 | rootPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:361:31:361:38 | rootPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:363:21:363:31 | requestPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:366:21:366:31 | requestPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | calleeApiName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | calleeName | readFileSync | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:368:19:368:28 | targetPath | receiverName | fs | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | argumentIndex | 0 | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | calleeAccessPath | path join indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | calleeAccessPathWithStructuralInfo | path member join instanceorreturn member indexOf instanceorreturn | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | calleeApiName | path | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | calleeName | indexOf | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | enclosingFunctionBody | req res path req query path fs readFileSync path requestPath pathModule join rootPath path targetPath allowPath requestPath rootPath targetPath rootPath fs readFileSync requestPath targetPath requestPath fs readFileSync requestPath fs readFileSync targetPath allowPath requestPath rootPath requestPath indexOf rootPath 0 | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/normalizedPaths.js:371:32:371:39 | rootPath | receiverName | requestPath | +| autogenerated/TaintedPath/other-fs-libraries.js:1:20:1:25 | "http" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:1:20:1:25 | "http" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:1:20:1:25 | "http" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:1:20:1:25 | "http" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:2:17:2:21 | "url" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:2:17:2:21 | "url" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:2:17:2:21 | "url" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:2:17:2:21 | "url" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:3:16:3:19 | "fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:3:16:3:19 | "fs" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:3:16:3:19 | "fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:3:16:3:19 | "fs" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:4:24:4:36 | "graceful-fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:4:24:4:36 | "graceful-fs" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:4:24:4:36 | "graceful-fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:4:24:4:36 | "graceful-fs" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:5:21:5:30 | "fs-extra" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:5:21:5:30 | "fs-extra" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:5:21:5:30 | "fs-extra" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:5:21:5:30 | "fs-extra" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:6:24:6:36 | "original-fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:6:24:6:36 | "original-fs" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:6:24:6:36 | "original-fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:6:24:6:36 | "original-fs" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:8:32:25:1 | functio ... OT OK\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:8:32:25:1 | functio ... OT OK\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/other-fs-libraries.js:8:32:25:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:8:32:25:1 | functio ... OT OK\\n} | calleeApiName | http | +| autogenerated/TaintedPath/other-fs-libraries.js:8:32:25:1 | functio ... OT OK\\n} | calleeName | createServer | +| autogenerated/TaintedPath/other-fs-libraries.js:8:32:25:1 | functio ... OT OK\\n} | receiverName | http | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:9:24:9:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | calleeName | parse | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:9:33:9:36 | true | receiverName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:11:19:11:22 | path | receiverName | fs | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | calleeAccessPath | graceful-fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | calleeAccessPathWithStructuralInfo | graceful-fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | calleeApiName | graceful-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:12:27:12:30 | path | receiverName | gracefulFs | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | calleeAccessPath | fs-extra readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | calleeAccessPathWithStructuralInfo | fs-extra member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | calleeApiName | fs-extra | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:13:24:13:27 | path | receiverName | fsExtra | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | calleeAccessPath | original-fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | calleeAccessPathWithStructuralInfo | original-fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | calleeApiName | original-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:14:27:14:30 | path | receiverName | originalFs | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | calleeAccessPath | fs readFileSync original-fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn original-fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | calleeApiName | fs original-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:16:34:16:37 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | calleeAccessPath | fs readFileSync original-fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn original-fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | calleeApiName | fs original-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:17:35:17:38 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:19:11:19:26 | "./my-fs-module" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:19:11:19:26 | "./my-fs-module" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:19:11:19:26 | "./my-fs-module" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:19:11:19:26 | "./my-fs-module" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:19:11:19:26 | "./my-fs-module" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:19:11:19:26 | "./my-fs-module" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | calleeAccessPath | fs readFileSync original-fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn original-fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | calleeApiName | fs original-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:19:56:19:59 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:21:36:23:10 | process ... : "fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:21:36:23:10 | process ... : "fs" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:21:36:23:10 | process ... : "fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:21:36:23:10 | process ... : "fs" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:21:36:23:10 | process ... : "fs" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:21:36:23:10 | process ... : "fs" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path gracefulFs readFileSync path fsExtra readFileSync path originalFs readFileSync path getFsModule true readFileSync path getFsModule false readFileSync path require ./my-fs-module require true readFileSync path flexibleModuleName require process electron versions electron original-fs fs flexibleModuleName readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:24:35:24:38 | path | receiverName | flexibleModuleName | +| autogenerated/TaintedPath/other-fs-libraries.js:29:20:29:23 | "fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:29:20:29:23 | "fs" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:29:20:29:23 | "fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:29:20:29:23 | "fs" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:29:20:29:23 | "fs" | enclosingFunctionBody | special special require fs require original-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:29:20:29:23 | "fs" | enclosingFunctionName | getFsModule | +| autogenerated/TaintedPath/other-fs-libraries.js:31:20:31:32 | "original-fs" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:31:20:31:32 | "original-fs" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:31:20:31:32 | "original-fs" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:31:20:31:32 | "original-fs" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:31:20:31:32 | "original-fs" | enclosingFunctionBody | special special require fs require original-fs | +| autogenerated/TaintedPath/other-fs-libraries.js:31:20:31:32 | "original-fs" | enclosingFunctionName | getFsModule | +| autogenerated/TaintedPath/other-fs-libraries.js:35:20:35:25 | "util" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:35:20:35:25 | "util" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:35:20:35:25 | "util" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:35:20:35:25 | "util" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:37:19:43:1 | functio ... OT OK\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:37:19:43:1 | functio ... OT OK\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/other-fs-libraries.js:37:19:43:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:37:19:43:1 | functio ... OT OK\\n} | calleeApiName | http | +| autogenerated/TaintedPath/other-fs-libraries.js:37:19:43:1 | functio ... OT OK\\n} | calleeName | createServer | +| autogenerated/TaintedPath/other-fs-libraries.js:37:19:43:1 | functio ... OT OK\\n} | receiverName | http | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:38:24:38:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | calleeName | parse | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:38:33:38:36 | true | receiverName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | calleeAccessPath | util promisify | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | calleeApiName | util | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | calleeName | promisify | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:40:18:40:32 | fs.readFileSync | receiverName | util | +| autogenerated/TaintedPath/other-fs-libraries.js:40:35:40:38 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:40:35:40:38 | path | calleeAccessPath | util promisify | +| autogenerated/TaintedPath/other-fs-libraries.js:40:35:40:38 | path | calleeAccessPathWithStructuralInfo | util member promisify instanceorreturn instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:40:35:40:38 | path | calleeApiName | util | +| autogenerated/TaintedPath/other-fs-libraries.js:40:35:40:38 | path | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:40:35:40:38 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:41:11:41:20 | "bluebird" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:41:11:41:20 | "bluebird" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:41:11:41:20 | "bluebird" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:41:11:41:20 | "bluebird" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:41:11:41:20 | "bluebird" | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:41:11:41:20 | "bluebird" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | calleeAccessPath | bluebird promisify | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | calleeAccessPathWithStructuralInfo | bluebird member promisify instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | calleeApiName | bluebird | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | calleeName | promisify | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:41:33:41:47 | fs.readFileSync | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:41:50:41:53 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:41:50:41:53 | path | calleeAccessPath | bluebird promisify | +| autogenerated/TaintedPath/other-fs-libraries.js:41:50:41:53 | path | calleeAccessPathWithStructuralInfo | bluebird member promisify instanceorreturn instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:41:50:41:53 | path | calleeApiName | bluebird | +| autogenerated/TaintedPath/other-fs-libraries.js:41:50:41:53 | path | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:41:50:41:53 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:42:11:42:20 | "bluebird" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:42:11:42:20 | "bluebird" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:42:11:42:20 | "bluebird" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:42:11:42:20 | "bluebird" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:42:11:42:20 | "bluebird" | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:42:11:42:20 | "bluebird" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | calleeAccessPath | bluebird promisifyAll | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | calleeAccessPathWithStructuralInfo | bluebird member promisifyAll instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | calleeApiName | bluebird | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | calleeName | promisifyAll | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:42:36:42:37 | fs | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | calleeAccessPath | bluebird promisifyAll readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | calleeAccessPathWithStructuralInfo | bluebird member promisifyAll instanceorreturn member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | calleeApiName | bluebird | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | enclosingFunctionBody | req res path url parse req url true query path util promisify fs readFileSync path require bluebird promisify fs readFileSync path require bluebird promisifyAll fs readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:42:53:42:56 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:46:25:46:46 | "./my-a ... module" | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:46:25:46:46 | "./my-a ... module" | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:46:25:46:46 | "./my-a ... module" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:46:25:46:46 | "./my-a ... module" | calleeName | require | +| autogenerated/TaintedPath/other-fs-libraries.js:48:19:53:1 | functio ... OT OK\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:48:19:53:1 | functio ... OT OK\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/other-fs-libraries.js:48:19:53:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:48:19:53:1 | functio ... OT OK\\n} | calleeApiName | http | +| autogenerated/TaintedPath/other-fs-libraries.js:48:19:53:1 | functio ... OT OK\\n} | calleeName | createServer | +| autogenerated/TaintedPath/other-fs-libraries.js:48:19:53:1 | functio ... OT OK\\n} | receiverName | http | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path asyncFS readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:49:24:49:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | calleeName | parse | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path asyncFS readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:49:33:49:36 | true | receiverName | url | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path asyncFS readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:51:19:51:22 | path | receiverName | fs | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | calleeAccessPath | | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path asyncFS readFileSync path | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/other-fs-libraries.js:52:24:52:27 | path | receiverName | asyncFS | +| autogenerated/TaintedPath/pupeteer.js:1:27:1:37 | 'puppeteer' | argumentIndex | 0 | +| autogenerated/TaintedPath/pupeteer.js:1:27:1:37 | 'puppeteer' | calleeAccessPath | | +| autogenerated/TaintedPath/pupeteer.js:1:27:1:37 | 'puppeteer' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/pupeteer.js:1:27:1:37 | 'puppeteer' | calleeName | require | +| autogenerated/TaintedPath/pupeteer.js:2:30:2:44 | 'parse-torrent' | argumentIndex | 0 | +| autogenerated/TaintedPath/pupeteer.js:2:30:2:44 | 'parse-torrent' | calleeAccessPath | | +| autogenerated/TaintedPath/pupeteer.js:2:30:2:44 | 'parse-torrent' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/pupeteer.js:2:30:2:44 | 'parse-torrent' | calleeName | require | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | argumentIndex | 0 | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | calleeAccessPath | parse-torrent | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | calleeAccessPathWithStructuralInfo | parse-torrent instanceorreturn | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | calleeApiName | parse-torrent | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | calleeName | parseTorrent | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | enclosingFunctionBody | tainted dir/ parseTorrent torrent name .torrent.data browser puppeteer launch page browser newPage page pdf path tainted format a4 pages browser pages i 0 i something i pages i screenshot path tainted browser close | +| autogenerated/TaintedPath/pupeteer.js:5:41:5:47 | torrent | enclosingFunctionName | | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | argumentIndex | 0 | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | calleeAccessPath | puppeteer launch newPage pdf | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | calleeAccessPathWithStructuralInfo | puppeteer member launch instanceorreturn member newPage instanceorreturn member pdf instanceorreturn | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | calleeApiName | puppeteer | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | calleeName | pdf | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | enclosingFunctionBody | tainted dir/ parseTorrent torrent name .torrent.data browser puppeteer launch page browser newPage page pdf path tainted format a4 pages browser pages i 0 i something i pages i screenshot path tainted browser close | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | enclosingFunctionName | | +| autogenerated/TaintedPath/pupeteer.js:9:20:9:50 | { path: ... 'a4' } | receiverName | page | +| autogenerated/TaintedPath/pupeteer.js:9:28:9:34 | tainted | calleeAccessPath | | +| autogenerated/TaintedPath/pupeteer.js:9:28:9:34 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/pupeteer.js:9:28:9:34 | tainted | enclosingFunctionBody | tainted dir/ parseTorrent torrent name .torrent.data browser puppeteer launch page browser newPage page pdf path tainted format a4 pages browser pages i 0 i something i pages i screenshot path tainted browser close | +| autogenerated/TaintedPath/pupeteer.js:9:28:9:34 | tainted | enclosingFunctionName | | +| autogenerated/TaintedPath/pupeteer.js:9:45:9:48 | 'a4' | calleeAccessPath | | +| autogenerated/TaintedPath/pupeteer.js:9:45:9:48 | 'a4' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/pupeteer.js:9:45:9:48 | 'a4' | enclosingFunctionBody | tainted dir/ parseTorrent torrent name .torrent.data browser puppeteer launch page browser newPage page pdf path tainted format a4 pages browser pages i 0 i something i pages i screenshot path tainted browser close | +| autogenerated/TaintedPath/pupeteer.js:9:45:9:48 | 'a4' | enclosingFunctionName | | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | argumentIndex | 0 | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | calleeAccessPath | puppeteer launch pages screenshot | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | calleeAccessPathWithStructuralInfo | puppeteer member launch instanceorreturn member pages instanceorreturn member member screenshot instanceorreturn | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | calleeApiName | puppeteer | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | calleeName | screenshot | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | enclosingFunctionBody | tainted dir/ parseTorrent torrent name .torrent.data browser puppeteer launch page browser newPage page pdf path tainted format a4 pages browser pages i 0 i something i pages i screenshot path tainted browser close | +| autogenerated/TaintedPath/pupeteer.js:13:29:13:45 | { path: tainted } | enclosingFunctionName | | +| autogenerated/TaintedPath/pupeteer.js:13:37:13:43 | tainted | calleeAccessPath | | +| autogenerated/TaintedPath/pupeteer.js:13:37:13:43 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/pupeteer.js:13:37:13:43 | tainted | enclosingFunctionBody | tainted dir/ parseTorrent torrent name .torrent.data browser puppeteer launch page browser newPage page pdf path tainted format a4 pages browser pages i 0 i something i pages i screenshot path tainted browser close | +| autogenerated/TaintedPath/pupeteer.js:13:37:13:43 | tainted | enclosingFunctionName | | +| autogenerated/TaintedPath/tainted-access-paths.js:1:18:1:21 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:1:18:1:21 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-access-paths.js:1:18:1:21 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-access-paths.js:1:18:1:21 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/tainted-access-paths.js:2:20:2:25 | 'http' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:2:20:2:25 | 'http' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-access-paths.js:2:20:2:25 | 'http' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-access-paths.js:2:20:2:25 | 'http' | calleeName | require | +| autogenerated/TaintedPath/tainted-access-paths.js:3:19:3:23 | 'url' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:3:19:3:23 | 'url' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-access-paths.js:3:19:3:23 | 'url' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-access-paths.js:3:19:3:23 | 'url' | calleeName | require | +| autogenerated/TaintedPath/tainted-access-paths.js:5:32:32:1 | functio ... OT OK\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:5:32:32:1 | functio ... OT OK\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/tainted-access-paths.js:5:32:32:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:5:32:32:1 | functio ... OT OK\\n} | calleeApiName | http | +| autogenerated/TaintedPath/tainted-access-paths.js:5:32:32:1 | functio ... OT OK\\n} | calleeName | createServer | +| autogenerated/TaintedPath/tainted-access-paths.js:5:32:32:1 | functio ... OT OK\\n} | receiverName | http | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:6:24:6:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | calleeName | parse | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:6:33:6:36 | true | receiverName | url | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:8:19:8:22 | path | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:12:19:12:25 | obj.sub | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:16:19:16:25 | obj.sub | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:20:21:20:28 | obj.sub2 | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:26:19:26:26 | obj.sub3 | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:29:21:29:28 | obj.sub4 | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:30:23:30:30 | obj.sub4 | receiverName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path obj bla something path fs readFileSync obj sub obj sub safe fs readFileSync obj sub obj sub2 safe random fs readFileSync obj sub2 random obj sub3 safe fs readFileSync obj sub3 obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 fs readFileSync obj sub4 | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-access-paths.js:31:23:31:30 | obj.sub4 | receiverName | fs | +| autogenerated/TaintedPath/tainted-array-steps.js:1:18:1:21 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:1:18:1:21 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:1:18:1:21 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:1:18:1:21 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/tainted-array-steps.js:2:20:2:25 | 'http' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:2:20:2:25 | 'http' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:2:20:2:25 | 'http' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:2:20:2:25 | 'http' | calleeName | require | +| autogenerated/TaintedPath/tainted-array-steps.js:3:19:3:23 | 'url' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:3:19:3:23 | 'url' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:3:19:3:23 | 'url' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:3:19:3:23 | 'url' | calleeName | require | +| autogenerated/TaintedPath/tainted-array-steps.js:4:24:4:42 | 'sanitize-filename' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:4:24:4:42 | 'sanitize-filename' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:4:24:4:42 | 'sanitize-filename' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:4:24:4:42 | 'sanitize-filename' | calleeName | require | +| autogenerated/TaintedPath/tainted-array-steps.js:5:26:5:31 | 'path' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:5:26:5:31 | 'path' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:5:26:5:31 | 'path' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:5:26:5:31 | 'path' | calleeName | require | +| autogenerated/TaintedPath/tainted-array-steps.js:8:32:15:1 | functio ... ENCY]\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:8:32:15:1 | functio ... ENCY]\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/tainted-array-steps.js:8:32:15:1 | functio ... ENCY]\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:8:32:15:1 | functio ... ENCY]\\n} | calleeApiName | http | +| autogenerated/TaintedPath/tainted-array-steps.js:8:32:15:1 | functio ... ENCY]\\n} | calleeName | createServer | +| autogenerated/TaintedPath/tainted-array-steps.js:8:32:15:1 | functio ... ENCY]\\n} | receiverName | http | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:9:24:9:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | calleeName | parse | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:9:33:9:36 | true | receiverName | url | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | calleeApiName | http | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | calleeName | write | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:10:13:10:55 | fs.read ... n('/')) | receiverName | res | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:10:29:10:54 | ['publi ... in('/') | receiverName | fs | +| autogenerated/TaintedPath/tainted-array-steps.js:10:51:10:53 | '/' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:10:51:10:53 | '/' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:10:51:10:53 | '/' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:10:51:10:53 | '/' | calleeName | join | +| autogenerated/TaintedPath/tainted-array-steps.js:10:51:10:53 | '/' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:10:51:10:53 | '/' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | calleeName | map | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:13:21:13:40 | x => x.toLowerCase() | receiverName | parts | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | calleeApiName | http | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | calleeName | write | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:14:13:14:44 | fs.read ... n('/')) | receiverName | res | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:14:29:14:43 | parts.join('/') | receiverName | fs | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | calleeName | join | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync public path join / parts public path parts parts map x x toLowerCase res write fs readFileSync parts join / | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-array-steps.js:14:40:14:42 | '/' | receiverName | parts | +| autogenerated/TaintedPath/tainted-require.js:1:23:1:31 | 'express' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-require.js:1:23:1:31 | 'express' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-require.js:1:23:1:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-require.js:1:23:1:31 | 'express' | calleeName | require | +| autogenerated/TaintedPath/tainted-require.js:5:9:5:20 | '/some/path' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-require.js:5:9:5:20 | '/some/path' | calleeAccessPath | express get | +| autogenerated/TaintedPath/tainted-require.js:5:9:5:20 | '/some/path' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/tainted-require.js:5:9:5:20 | '/some/path' | calleeApiName | express | +| autogenerated/TaintedPath/tainted-require.js:5:9:5:20 | '/some/path' | calleeName | get | +| autogenerated/TaintedPath/tainted-require.js:5:9:5:20 | '/some/path' | receiverName | app | +| autogenerated/TaintedPath/tainted-require.js:5:23:8:1 | functio ... e"));\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-require.js:5:23:8:1 | functio ... e"));\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/tainted-require.js:5:23:8:1 | functio ... e"));\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/tainted-require.js:5:23:8:1 | functio ... e"));\\n} | calleeApiName | express | +| autogenerated/TaintedPath/tainted-require.js:5:23:8:1 | functio ... e"));\\n} | calleeName | get | +| autogenerated/TaintedPath/tainted-require.js:5:23:8:1 | functio ... e"));\\n} | receiverName | app | +| autogenerated/TaintedPath/tainted-require.js:7:19:7:37 | req.param("module") | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-require.js:7:19:7:37 | req.param("module") | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-require.js:7:19:7:37 | req.param("module") | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-require.js:7:19:7:37 | req.param("module") | calleeName | require | +| autogenerated/TaintedPath/tainted-require.js:7:19:7:37 | req.param("module") | enclosingFunctionBody | req res m require req param module | +| autogenerated/TaintedPath/tainted-require.js:7:19:7:37 | req.param("module") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | calleeName | param | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | enclosingFunctionBody | req res m require req param module | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-require.js:7:29:7:36 | "module" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:1:23:1:31 | 'express' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:1:23:1:31 | 'express' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-sendFile.js:1:23:1:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-sendFile.js:1:23:1:31 | 'express' | calleeName | require | +| autogenerated/TaintedPath/tainted-sendFile.js:2:12:2:26 | require('path') | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-sendFile.js:2:12:2:26 | require('path') | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-sendFile.js:2:20:2:25 | 'path' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:2:20:2:25 | 'path' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-sendFile.js:2:20:2:25 | 'path' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-sendFile.js:2:20:2:25 | 'path' | calleeName | require | +| autogenerated/TaintedPath/tainted-sendFile.js:6:9:6:23 | '/some/path/:x' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:6:9:6:23 | '/some/path/:x' | calleeAccessPath | express get | +| autogenerated/TaintedPath/tainted-sendFile.js:6:9:6:23 | '/some/path/:x' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:6:9:6:23 | '/some/path/:x' | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:6:9:6:23 | '/some/path/:x' | calleeName | get | +| autogenerated/TaintedPath/tainted-sendFile.js:6:9:6:23 | '/some/path/:x' | receiverName | app | +| autogenerated/TaintedPath/tainted-sendFile.js:6:26:28:1 | functio ... ata/'\\n} | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:6:26:28:1 | functio ... ata/'\\n} | calleeAccessPath | express get | +| autogenerated/TaintedPath/tainted-sendFile.js:6:26:28:1 | functio ... ata/'\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:6:26:28:1 | functio ... ata/'\\n} | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:6:26:28:1 | functio ... ata/'\\n} | calleeName | get | +| autogenerated/TaintedPath/tainted-sendFile.js:6:26:28:1 | functio ... ata/'\\n} | receiverName | app | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:8:16:8:33 | req.param("gimme") | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | calleeName | param | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:8:26:8:32 | "gimme" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | calleeAccessPath | express get res sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendfile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | calleeName | sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:10:16:10:33 | req.param("gimme") | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | calleeName | param | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:10:26:10:32 | "gimme" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:13:16:13:33 | req.param("gimme") | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | calleeName | param | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:13:26:13:32 | "gimme" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:13:36:13:58 | { root: ... cwd() } | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:13:44:13:56 | process.cwd() | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-sendFile.js:13:44:13:56 | process.cwd() | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-sendFile.js:13:44:13:56 | process.cwd() | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:13:44:13:56 | process.cwd() | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | calleeAccessPath | express get res sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendfile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | calleeName | sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:15:16:15:33 | req.param("gimme") | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | calleeName | param | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:15:26:15:32 | "gimme" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | calleeAccessPath | express get res sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendfile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | calleeName | sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:15:36:15:58 | { root: ... cwd() } | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:15:44:15:56 | process.cwd() | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-sendFile.js:15:44:15:56 | process.cwd() | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-sendFile.js:15:44:15:56 | process.cwd() | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:15:44:15:56 | process.cwd() | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:18:16:18:32 | req.param("file") | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | calleeName | param | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:18:26:18:31 | "file" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:18:35:18:60 | { root: ... dir") } | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:18:43:18:58 | req.param("dir") | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-sendFile.js:18:43:18:58 | req.param("dir") | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-sendFile.js:18:43:18:58 | req.param("dir") | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:18:43:18:58 | req.param("dir") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | calleeAccessPath | express get req param | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | calleeName | param | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:18:53:18:57 | "dir" | receiverName | req | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | calleeName | resolve | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:20:30:20:32 | '.' | receiverName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:21:16:21:48 | homeDir ... arams.x | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | calleeAccessPath | express get res sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendfile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | calleeName | sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:22:16:22:37 | 'data/' ... arams.x | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:24:16:24:49 | path.re ... rams.x) | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | calleeName | resolve | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:24:29:24:34 | 'data' | receiverName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | calleeAccessPath | path resolve | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | calleeAccessPathWithStructuralInfo | path member resolve instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | calleeName | resolve | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:24:37:24:48 | req.params.x | receiverName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | calleeAccessPath | express get res sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendfile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | calleeName | sendfile | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:25:16:25:46 | path.jo ... rams.x) | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | calleeAccessPath | path join | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | calleeName | join | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:25:26:25:31 | 'data' | receiverName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | calleeAccessPath | path join | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | calleeName | join | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:25:34:25:45 | req.params.x | receiverName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | calleeAccessPath | express get res sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member sendFile instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | calleeApiName | express | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | calleeName | sendFile | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:27:16:27:56 | homeDir ... rams.x) | receiverName | res | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | calleeAccessPath | path join | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | calleeName | join | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:27:36:27:41 | 'data' | receiverName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | calleeAccessPath | path join | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | calleeAccessPathWithStructuralInfo | path member join instanceorreturn | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | calleeApiName | path | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | calleeName | join | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | enclosingFunctionBody | req res res sendFile req param gimme res sendfile req param gimme res sendFile req param gimme root process cwd res sendfile req param gimme root process cwd res sendFile req param file root req param dir homeDir path resolve . res sendFile homeDir /data/ req params x res sendfile data/ req params x res sendFile path resolve data req params x res sendfile path join data req params x res sendFile homeDir path join data req params x | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | enclosingFunctionName | app.get#functionalargument | +| autogenerated/TaintedPath/tainted-sendFile.js:27:44:27:55 | req.params.x | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:1:18:1:21 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:1:18:1:21 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-string-steps.js:1:18:1:21 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-string-steps.js:1:18:1:21 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/tainted-string-steps.js:2:20:2:25 | 'http' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:2:20:2:25 | 'http' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-string-steps.js:2:20:2:25 | 'http' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-string-steps.js:2:20:2:25 | 'http' | calleeName | require | +| autogenerated/TaintedPath/tainted-string-steps.js:3:19:3:23 | 'url' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:3:19:3:23 | 'url' | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-string-steps.js:3:19:3:23 | 'url' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-string-steps.js:3:19:3:23 | 'url' | calleeName | require | +| autogenerated/TaintedPath/tainted-string-steps.js:5:32:29:1 | functio ... ENCY]\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:5:32:29:1 | functio ... ENCY]\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/tainted-string-steps.js:5:32:29:1 | functio ... ENCY]\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:5:32:29:1 | functio ... ENCY]\\n} | calleeApiName | http | +| autogenerated/TaintedPath/tainted-string-steps.js:5:32:29:1 | functio ... ENCY]\\n} | calleeName | createServer | +| autogenerated/TaintedPath/tainted-string-steps.js:5:32:29:1 | functio ... ENCY]\\n} | receiverName | http | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:6:24:6:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | calleeName | parse | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:6:33:6:36 | true | receiverName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:7:18:7:37 | path.substring(i, j) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | calleeAccessPath | url parse query path substring | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member substring instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | calleeName | substring | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:7:33:7:33 | i | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | calleeAccessPath | url parse query path substring | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member substring instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | calleeName | substring | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:7:36:7:36 | j | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:8:18:8:34 | path.substring(4) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | calleeAccessPath | url parse query path substring | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member substring instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | calleeName | substring | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:8:33:8:33 | 4 | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:9:18:9:37 | path.substring(0, i) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | calleeAccessPath | url parse query path substring | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member substring instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | calleeName | substring | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:9:33:9:33 | 0 | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | calleeAccessPath | url parse query path substring | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member substring instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | calleeName | substring | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:9:36:9:36 | i | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:10:18:10:31 | path.substr(4) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | calleeAccessPath | url parse query path substr | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member substr instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | calleeName | substr | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:10:30:10:30 | 4 | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:11:18:11:30 | path.slice(4) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | calleeAccessPath | url parse query path slice | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member slice instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | calleeName | slice | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:11:29:11:29 | 4 | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:13:18:13:37 | path.concat(unknown) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | calleeAccessPath | url parse query path concat | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member concat instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | calleeName | concat | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:13:30:13:36 | unknown | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:14:18:14:37 | unknown.concat(path) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | calleeName | concat | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:14:33:14:36 | path | receiverName | unknown | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:15:18:15:46 | unknown ... , path) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | calleeName | concat | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:15:33:15:39 | unknown | receiverName | unknown | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | argumentIndex | 1 | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | calleeAccessPath | | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | calleeName | concat | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:15:42:15:45 | path | receiverName | unknown | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:17:18:17:28 | path.trim() | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:18:18:18:35 | path.toLowerCase() | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:20:18:20:32 | path.split('/') | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:20:29:20:31 | '/' | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:21:18:21:35 | path.split('/')[0] | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:21:29:21:31 | '/' | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:22:18:22:35 | path.split('/')[i] | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:22:29:22:31 | '/' | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:23:18:23:36 | path.split(/\\//)[i] | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:23:29:23:32 | /\\// | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:24:18:24:35 | path.split("?")[0] | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:24:29:24:31 | "?" | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:25:18:25:39 | path.sp ... own)[i] | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:25:29:25:35 | unknown | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:26:29:26:35 | unknown | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:27:18:27:36 | path.split(unknown) | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:27:29:27:35 | unknown | receiverName | path | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | calleeApiName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | calleeName | readFileSync | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:28:18:28:35 | path.split("?")[i] | receiverName | fs | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | argumentIndex | 0 | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | calleeAccessPath | url parse query path split | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn member query member path member split instanceorreturn | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | calleeApiName | url | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | calleeName | split | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | enclosingFunctionBody | req res path url parse req url true query path fs readFileSync path substring i j fs readFileSync path substring 4 fs readFileSync path substring 0 i fs readFileSync path substr 4 fs readFileSync path slice 4 fs readFileSync path concat unknown fs readFileSync unknown concat path fs readFileSync unknown concat unknown path fs readFileSync path trim fs readFileSync path toLowerCase fs readFileSync path split / fs readFileSync path 0 split / 0 fs readFileSync path split / i fs readFileSync path split /\\// i fs readFileSync path 0 split ? 0 fs readFileSync path split unknown i fs readFileSync path split unknown whatever fs readFileSync path split unknown fs readFileSync path split ? i | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/tainted-string-steps.js:28:29:28:31 | "?" | receiverName | path | +| autogenerated/TaintedPath/torrents.js:1:30:1:44 | 'parse-torrent' | argumentIndex | 0 | +| autogenerated/TaintedPath/torrents.js:1:30:1:44 | 'parse-torrent' | calleeAccessPath | | +| autogenerated/TaintedPath/torrents.js:1:30:1:44 | 'parse-torrent' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/torrents.js:1:30:1:44 | 'parse-torrent' | calleeName | require | +| autogenerated/TaintedPath/torrents.js:2:20:2:23 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/torrents.js:2:20:2:23 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/torrents.js:2:20:2:23 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/torrents.js:2:20:2:23 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | argumentIndex | 0 | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | calleeAccessPath | parse-torrent | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | calleeAccessPathWithStructuralInfo | parse-torrent instanceorreturn | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | calleeApiName | parse-torrent | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | calleeName | parseTorrent | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | enclosingFunctionBody | dir torrent name parseTorrent torrent name loc dir / name .torrent.data fs readFileSync loc | +| autogenerated/TaintedPath/torrents.js:5:26:5:32 | torrent | enclosingFunctionName | getTorrentData | +| autogenerated/TaintedPath/torrents.js:6:12:6:20 | dir + "/" | calleeAccessPath | | +| autogenerated/TaintedPath/torrents.js:6:12:6:20 | dir + "/" | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/torrents.js:6:12:6:20 | dir + "/" | enclosingFunctionBody | dir torrent name parseTorrent torrent name loc dir / name .torrent.data fs readFileSync loc | +| autogenerated/TaintedPath/torrents.js:6:12:6:20 | dir + "/" | enclosingFunctionName | getTorrentData | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | argumentIndex | 0 | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | calleeApiName | fs | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | calleeName | readFileSync | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | enclosingFunctionBody | dir torrent name parseTorrent torrent name loc dir / name .torrent.data fs readFileSync loc | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | enclosingFunctionName | getTorrentData | +| autogenerated/TaintedPath/torrents.js:7:25:7:27 | loc | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:1:18:1:21 | 'fs' | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:1:18:1:21 | 'fs' | calleeAccessPath | | +| autogenerated/TaintedPath/typescript.ts:1:18:1:21 | 'fs' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/typescript.ts:1:18:1:21 | 'fs' | calleeName | require | +| autogenerated/TaintedPath/typescript.ts:2:20:2:25 | 'http' | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:2:20:2:25 | 'http' | calleeAccessPath | | +| autogenerated/TaintedPath/typescript.ts:2:20:2:25 | 'http' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/typescript.ts:2:20:2:25 | 'http' | calleeName | require | +| autogenerated/TaintedPath/typescript.ts:3:19:3:23 | 'url' | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:3:19:3:23 | 'url' | calleeAccessPath | | +| autogenerated/TaintedPath/typescript.ts:3:19:3:23 | 'url' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/typescript.ts:3:19:3:23 | 'url' | calleeName | require | +| autogenerated/TaintedPath/typescript.ts:4:24:4:42 | 'sanitize-filename' | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:4:24:4:42 | 'sanitize-filename' | calleeAccessPath | | +| autogenerated/TaintedPath/typescript.ts:4:24:4:42 | 'sanitize-filename' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/typescript.ts:4:24:4:42 | 'sanitize-filename' | calleeName | require | +| autogenerated/TaintedPath/typescript.ts:5:26:5:31 | 'path' | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:5:26:5:31 | 'path' | calleeAccessPath | | +| autogenerated/TaintedPath/typescript.ts:5:26:5:31 | 'path' | calleeAccessPathWithStructuralInfo | | +| autogenerated/TaintedPath/typescript.ts:5:26:5:31 | 'path' | calleeName | require | +| autogenerated/TaintedPath/typescript.ts:8:32:34:1 | functio ... nted\\n\\n} | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:8:32:34:1 | functio ... nted\\n\\n} | calleeAccessPath | http createServer | +| autogenerated/TaintedPath/typescript.ts:8:32:34:1 | functio ... nted\\n\\n} | calleeAccessPathWithStructuralInfo | http member createServer instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:8:32:34:1 | functio ... nted\\n\\n} | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:8:32:34:1 | functio ... nted\\n\\n} | calleeName | createServer | +| autogenerated/TaintedPath/typescript.ts:8:32:34:1 | functio ... nted\\n\\n} | receiverName | http | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | calleeAccessPath | url parse | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | calleeApiName | url | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | calleeName | parse | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:9:24:9:30 | req.url | receiverName | url | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | argumentIndex | 1 | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | calleeAccessPath | url parse | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | calleeAccessPathWithStructuralInfo | url member parse instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | calleeApiName | url | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | calleeName | parse | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:9:33:9:36 | true | receiverName | url | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:12:13:12:33 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:12:29:12:32 | path | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:15:15:15:35 | fs.read ... c(path) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:15:31:15:34 | path | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:18:23:18:44 | fs.read ... (path2) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:18:39:18:43 | path2 | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:21:23:21:44 | fs.read ... (path3) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:21:39:21:43 | path3 | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:24:23:24:44 | fs.read ... (path4) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:24:39:24:43 | path4 | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:28:13:28:34 | fs.read ... (path5) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:28:29:28:33 | path5 | receiverName | fs | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | calleeAccessPath | http createServer res write | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | calleeAccessPathWithStructuralInfo | http member createServer functionalarg param res member write instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | calleeApiName | http | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | calleeName | write | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:32:13:32:34 | fs.read ... (path6) | receiverName | res | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | argumentIndex | 0 | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | calleeAccessPath | fs readFileSync | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | calleeAccessPathWithStructuralInfo | fs member readFileSync instanceorreturn | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | calleeApiName | fs | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | calleeName | readFileSync | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | enclosingFunctionBody | req res path url parse req url true query path res write fs readFileSync path path foo.txt res write fs readFileSync path path2 path path2 res write fs readFileSync path2 path3 path path3 res write fs readFileSync path3 path4 path path4 res write fs readFileSync path4 path5 path path5 clean res write fs readFileSync path5 path6 path path6 clean res write fs readFileSync path6 | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | enclosingFunctionName | http.createServer#functionalargument | +| autogenerated/TaintedPath/typescript.ts:32:29:32:33 | path6 | receiverName | fs | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | argumentIndex | 0 | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | calleeAccessPath | express get res render | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param res member render instanceorreturn | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | calleeApiName | express | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | calleeName | render | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | enclosingFunctionBody | req res res render req 0 params 0 | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | enclosingFunctionName | exports | +| autogenerated/TaintedPath/views.js:1:43:1:55 | req.params[0] | receiverName | res | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:23:1:31 | 'message' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:23:1:31 | 'message' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:23:1:31 | 'message' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:23:1:31 | 'message' | calleeName | addEventListener | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:34:3:1 | functio ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:34:3:1 | functio ... OT OK\\n} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:34:3:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:1:34:3:1 | functio ... OT OK\\n} | calleeName | addEventListener | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | calleeName | write | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | enclosingFunctionBody | event document write event data | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | enclosingFunctionName | addEventListener#functionalargument | +| autogenerated/Xss/DomBasedXss/addEventListener.js:2:20:2:29 | event.data | receiverName | document | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:23:5:31 | 'message' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:23:5:31 | 'message' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:23:5:31 | 'message' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:23:5:31 | 'message' | calleeName | addEventListener | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:34:7:1 | functio ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:34:7:1 | functio ... OT OK\\n} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:34:7:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:5:34:7:1 | functio ... OT OK\\n} | calleeName | addEventListener | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | calleeName | write | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | enclosingFunctionBody | data document write data | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | enclosingFunctionName | addEventListener#functionalargument | +| autogenerated/Xss/DomBasedXss/addEventListener.js:6:20:6:23 | data | receiverName | document | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | calleeName | write | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:11:24:11:29 | x.data | receiverName | document | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | calleeName | write | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:12:24:12:33 | event.data | receiverName | document | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | calleeName | write | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:13:24:13:29 | y.data | receiverName | document | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | calleeName | addEventListener | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:29:16:37 | "message" | receiverName | window | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | calleeName | addEventListener | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:40:16:70 | foo.bin ... tems'}) | receiverName | window | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | calleeName | bind | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:49:16:52 | null | receiverName | foo | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | calleeName | bind | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:55:16:69 | {data: 'items'} | receiverName | foo | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:62:16:68 | 'items' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:62:16:68 | 'items' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:62:16:68 | 'items' | enclosingFunctionBody | foo x event y document write x data document write event data document write y data window addEventListener message foo bind null data items | +| autogenerated/Xss/DomBasedXss/addEventListener.js:16:62:16:68 | 'items' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:7:13:7:22 | 'app-root' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:7:13:7:22 | 'app-root' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:8:16:8:37 | './app. ... t.html' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:8:16:8:37 | './app. ... t.html' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:9:14:9:36 | ['./app ... t.css'] | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:9:14:9:36 | ['./app ... t.css'] | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:9:15:9:35 | './app. ... nt.css' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:9:15:9:35 | './app. ... nt.css' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:22:44:22:71 | \\u0275getDOM ... ().href | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:24:44:24:73 | this.ro ... ams.foo | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:25:44:25:78 | this.ro ... ams.foo | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:26:44:26:71 | this.ro ... ragment | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:44:27:82 | this.ro ... ('foo') | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | calleeAccessPath | @angular/router ActivatedRoute snapshot paramMap get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | calleeAccessPathWithStructuralInfo | @angular/router member ActivatedRoute instanceorreturn member snapshot member paramMap member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | calleeApiName | @angular/router | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | calleeName | get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:27:77:27:81 | 'foo' | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:44:28:87 | this.ro ... ('foo') | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | calleeAccessPath | @angular/router ActivatedRoute snapshot queryParamMap get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | calleeAccessPathWithStructuralInfo | @angular/router member ActivatedRoute instanceorreturn member snapshot member queryParamMap member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | calleeApiName | @angular/router | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | calleeName | get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:28:82:28:86 | 'foo' | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | calleeAccessPath | @angular/router ActivatedRoute paramMap subscribe | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | calleeAccessPathWithStructuralInfo | @angular/router member ActivatedRoute instanceorreturn member paramMap member subscribe instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | calleeApiName | @angular/router | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | calleeName | subscribe | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:29:35:31:5 | map => ... K\\n } | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:46:30:59 | map.get('foo') | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | calleeAccessPath | @angular/router ActivatedRoute paramMap subscribe map get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | calleeAccessPathWithStructuralInfo | @angular/router member ActivatedRoute instanceorreturn member paramMap member subscribe functionalarg param map member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | calleeApiName | @angular/router | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | calleeName | get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:30:54:30:58 | 'foo' | receiverName | map | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:33:44:33:74 | this.ro ... 1].path | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:34:44:34:82 | this.ro ... eters.x | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:44:35:91 | this.ro ... et('x') | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | calleeAccessPath | @angular/router ActivatedRoute snapshot url parameterMap get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | calleeAccessPathWithStructuralInfo | @angular/router member ActivatedRoute instanceorreturn member snapshot member url member member parameterMap member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | calleeApiName | @angular/router | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | calleeName | get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:35:88:35:90 | 'x' | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:36:44:36:91 | this.ro ... arams.x | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:38:44:38:58 | this.router.url | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | calleeAccessPath | @angular/core DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | calleeAccessPathWithStructuralInfo | @angular/core member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | calleeApiName | @angular/core | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | enclosingFunctionBody | sanitizer bypassSecurityTrustHtml \u0275getDOM getLocation href sanitizer bypassSecurityTrustHtml route snapshot params foo sanitizer bypassSecurityTrustHtml route snapshot queryParams foo sanitizer bypassSecurityTrustHtml route snapshot fragment sanitizer bypassSecurityTrustHtml route snapshot paramMap get foo sanitizer bypassSecurityTrustHtml route snapshot queryParamMap get foo route paramMap subscribe map sanitizer bypassSecurityTrustHtml map get foo sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 path sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameters x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap get x sanitizer bypassSecurityTrustHtml 1 route snapshot url 1 parameterMap params x sanitizer bypassSecurityTrustHtml router url sanitizer2 bypassSecurityTrustHtml router url | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:40:45:40:59 | this.router.url | enclosingFunctionName | ngOnInit | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | calleeAccessPath | @angular/platform-browser DomSanitizer bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | calleeAccessPathWithStructuralInfo | @angular/platform-browser member DomSanitizer instanceorreturn member bypassSecurityTrustHtml instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | calleeApiName | @angular/platform-browser | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | calleeName | bypassSecurityTrustHtml | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | enclosingFunctionBody | routeSnapshot ActivatedRouteSnapshot sanitizer bypassSecurityTrustHtml routeSnapshot paramMap get foo | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:44:44:76 | routeSn ... ('foo') | enclosingFunctionName | someMethod | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | calleeAccessPath | @angular/router ActivatedRouteSnapshot paramMap get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | calleeAccessPathWithStructuralInfo | @angular/router member ActivatedRouteSnapshot instanceorreturn member paramMap member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | calleeApiName | @angular/router | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | calleeName | get | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | enclosingFunctionBody | routeSnapshot ActivatedRouteSnapshot sanitizer bypassSecurityTrustHtml routeSnapshot paramMap get foo | +| autogenerated/Xss/DomBasedXss/angular2-client.ts:44:71:44:75 | 'foo' | enclosingFunctionName | someMethod | +| autogenerated/Xss/DomBasedXss/classnames.js:7:31:7:84 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:7:31:7:84 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:7:31:7:84 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:7:31:7:84 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:7:32:7:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:7:32:7:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:7:47:7:69 | classNa ... w.name) | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | calleeAccessPath | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | calleeAccessPathWithStructuralInfo | classnames instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | calleeApiName | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | calleeName | classNames | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:7:58:7:68 | window.name | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:7:71:7:83 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:7:71:7:83 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:7:71:7:83 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:7:71:7:83 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:8:31:8:85 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:8:31:8:85 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:8:31:8:85 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:8:31:8:85 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:8:32:8:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:8:32:8:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:8:47:8:70 | classNa ... w.name) | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | calleeAccessPath | classnames/dedupe | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | calleeAccessPathWithStructuralInfo | classnames/dedupe instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | calleeApiName | classnames/dedupe | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | calleeName | classNamesD | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:8:59:8:69 | window.name | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:8:72:8:84 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:8:72:8:84 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:8:72:8:84 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:8:72:8:84 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:9:31:9:85 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:9:31:9:85 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:9:31:9:85 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:9:31:9:85 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:9:32:9:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:9:32:9:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:9:47:9:70 | classNa ... w.name) | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | calleeAccessPath | classnames/bind | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | calleeAccessPathWithStructuralInfo | classnames/bind instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | calleeApiName | classnames/bind | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | calleeName | classNamesB | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:9:59:9:69 | window.name | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:9:72:9:84 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:9:72:9:84 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:9:72:9:84 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:9:72:9:84 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | calleeAccessPath | classnames bind | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | calleeAccessPathWithStructuralInfo | classnames member bind instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | calleeApiName | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | calleeName | bind | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:10:39:10:56 | {foo: window.name} | receiverName | classNames | +| autogenerated/Xss/DomBasedXss/classnames.js:10:45:10:55 | window.name | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:10:45:10:55 | window.name | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:10:45:10:55 | window.name | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:10:45:10:55 | window.name | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:11:31:11:79 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:11:31:11:79 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:11:31:11:79 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:11:31:11:79 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:11:32:11:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:11:32:11:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:11:47:11:64 | unsafeStyle('foo') | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | calleeAccessPath | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | calleeAccessPathWithStructuralInfo | classnames instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | calleeApiName | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | calleeName | unsafeStyle | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:11:59:11:63 | 'foo' | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:11:66:11:78 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:11:66:11:78 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:11:66:11:78 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:11:66:11:78 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | calleeAccessPath | classnames bind | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | calleeAccessPathWithStructuralInfo | classnames member bind instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | calleeApiName | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | calleeName | bind | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:12:37:12:38 | {} | receiverName | classNames | +| autogenerated/Xss/DomBasedXss/classnames.js:13:31:13:83 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:13:31:13:83 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:13:31:13:83 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:13:31:13:83 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:13:32:13:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:13:32:13:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:13:47:13:68 | safeSty ... w.name) | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | calleeAccessPath | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | calleeAccessPathWithStructuralInfo | classnames instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | calleeApiName | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | calleeName | safeStyle | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:13:57:13:67 | window.name | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:13:70:13:82 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:13:70:13:82 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:13:70:13:82 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:13:70:13:82 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:14:31:14:77 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:14:31:14:77 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:14:31:14:77 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:14:31:14:77 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:14:32:14:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:14:32:14:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:14:47:14:62 | safeStyle('foo') | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | calleeAccessPath | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | calleeAccessPathWithStructuralInfo | classnames instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | calleeApiName | classnames | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | calleeName | safeStyle | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:14:57:14:61 | 'foo' | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:14:64:14:76 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:14:64:14:76 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:14:64:14:76 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:14:64:14:76 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:15:31:15:78 | `` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:15:31:15:78 | `` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:15:31:15:78 | `` | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:15:31:15:78 | `` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:15:32:15:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:15:32:15:44 | Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:15:47:15:63 | clsx(window.name) | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | calleeAccessPath | clsx | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | calleeAccessPathWithStructuralInfo | clsx instanceorreturn | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | calleeApiName | clsx | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | calleeName | clsx | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:15:52:15:62 | window.name | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/classnames.js:15:65:15:77 | ">Hello | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/classnames.js:15:65:15:77 | ">Hello | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/classnames.js:15:65:15:77 | ">Hello | enclosingFunctionBody | document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello unsafeStyle classNames bind foo window name document body innerHTML Hello safeStyle classNames bind document body innerHTML Hello document body innerHTML Hello document body innerHTML Hello | +| autogenerated/Xss/DomBasedXss/classnames.js:15:65:15:77 | ">Hello | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/d3.js:1:20:1:23 | 'd3' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:1:20:1:23 | 'd3' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/d3.js:1:20:1:23 | 'd3' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/d3.js:1:20:1:23 | 'd3' | calleeName | require | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | calleeAccessPath | d3 select | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | calleeName | select | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:8:15:8:21 | '#main' | receiverName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | calleeAccessPath | d3 select attr | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | calleeName | attr | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:9:15:9:21 | 'width' | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | calleeAccessPath | d3 select attr | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | calleeName | attr | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:9:24:9:26 | 100 | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | calleeAccessPath | d3 select attr style | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | calleeName | style | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:10:16:10:22 | 'color' | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | calleeAccessPath | d3 select attr style | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | calleeName | style | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:10:25:10:29 | 'red' | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | calleeAccessPath | d3 select attr style html | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | calleeName | html | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:11:15:11:24 | getTaint() | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | calleeAccessPath | d3 select attr style html html | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | calleeName | html | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:12:15:12:29 | d => getTaint() | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | calleeAccessPath | d3 select attr style html html call | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn member call instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | calleeName | call | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:13:15:13:27 | otherFunction | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | calleeAccessPath | d3 select attr style html html html | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn instanceorreturn member html instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | calleeName | html | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | enclosingFunctionBody | d3 select #main attr width 100 style color red html getTaint html d getTaint call otherFunction html d getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:14:15:14:29 | d => getTaint() | enclosingFunctionName | doSomething | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | calleeAccessPath | d3 select attr style html html call selection attr d3 select attr style html html selection attr | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn functionalarg param selection member attr instanceorreturn d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn member call functionalarg param selection member attr instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | calleeName | attr | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | enclosingFunctionBody | selection selection attr foo bar html getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | enclosingFunctionName | otherFunction | +| autogenerated/Xss/DomBasedXss/d3.js:20:15:20:19 | 'foo' | receiverName | selection | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | calleeAccessPath | d3 select attr style html html call selection attr d3 select attr style html html selection attr | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn functionalarg param selection member attr instanceorreturn d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn member call functionalarg param selection member attr instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | calleeName | attr | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | enclosingFunctionBody | selection selection attr foo bar html getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | enclosingFunctionName | otherFunction | +| autogenerated/Xss/DomBasedXss/d3.js:20:22:20:26 | 'bar' | receiverName | selection | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | calleeAccessPath | d3 select attr style html html call selection attr html d3 select attr style html html selection attr html | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | calleeAccessPathWithStructuralInfo | d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn functionalarg param selection member attr instanceorreturn member html instanceorreturn d3 member select instanceorreturn member attr instanceorreturn member style instanceorreturn member html instanceorreturn member html instanceorreturn member call functionalarg param selection member attr instanceorreturn member html instanceorreturn | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | calleeApiName | d3 | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | calleeName | html | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | enclosingFunctionBody | selection selection attr foo bar html getTaint | +| autogenerated/Xss/DomBasedXss/d3.js:21:15:21:24 | getTaint() | enclosingFunctionName | otherFunction | +| autogenerated/Xss/DomBasedXss/dates.js:9:36:9:68 | window. ... ring(1) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:9:36:9:68 | window. ... ring(1) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:9:36:9:68 | window. ... ring(1) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:9:36:9:68 | window. ... ring(1) | calleeName | decodeURIComponent | +| autogenerated/Xss/DomBasedXss/dates.js:9:36:9:68 | window. ... ring(1) | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:9:36:9:68 | window. ... ring(1) | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:9:67:9:67 | 1 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:9:67:9:67 | 1 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:9:67:9:67 | 1 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:9:67:9:67 | 1 | calleeName | substring | +| autogenerated/Xss/DomBasedXss/dates.js:9:67:9:67 | 1 | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:9:67:9:67 | 1 | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:11:31:11:70 | `Time i ... aint)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:11:31:11:70 | `Time i ... aint)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:11:31:11:70 | `Time i ... aint)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:11:31:11:70 | `Time i ... aint)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | calleeAccessPath | date-fns format | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | calleeAccessPathWithStructuralInfo | date-fns member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | calleeApiName | date-fns | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:11:57:11:60 | time | receiverName | dateFns | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | calleeAccessPath | date-fns format | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | calleeAccessPathWithStructuralInfo | date-fns member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | calleeApiName | date-fns | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:11:63:11:67 | taint | receiverName | dateFns | +| autogenerated/Xss/DomBasedXss/dates.js:12:31:12:73 | `Time i ... aint)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:12:31:12:73 | `Time i ... aint)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:12:31:12:73 | `Time i ... aint)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:12:31:12:73 | `Time i ... aint)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | calleeAccessPath | date-fns/esm format | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | calleeAccessPathWithStructuralInfo | date-fns/esm member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | calleeApiName | date-fns/esm | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:12:60:12:63 | time | receiverName | dateFnsEsm | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | calleeAccessPath | date-fns/esm format | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | calleeAccessPathWithStructuralInfo | date-fns/esm member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | calleeApiName | date-fns/esm | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:12:66:12:70 | taint | receiverName | dateFnsEsm | +| autogenerated/Xss/DomBasedXss/dates.js:13:31:13:72 | `Time i ... time)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:13:31:13:72 | `Time i ... time)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:13:31:13:72 | `Time i ... time)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:13:31:13:72 | `Time i ... time)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | calleeAccessPath | date-fns/fp format | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | calleeAccessPathWithStructuralInfo | date-fns/fp member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | calleeApiName | date-fns/fp | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:13:59:13:63 | taint | receiverName | dateFnsFp | +| autogenerated/Xss/DomBasedXss/dates.js:13:66:13:69 | time | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:13:66:13:69 | time | calleeAccessPath | date-fns/fp format | +| autogenerated/Xss/DomBasedXss/dates.js:13:66:13:69 | time | calleeAccessPathWithStructuralInfo | date-fns/fp member format instanceorreturn instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:13:66:13:69 | time | calleeApiName | date-fns/fp | +| autogenerated/Xss/DomBasedXss/dates.js:13:66:13:69 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:13:66:13:69 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:14:31:14:70 | `Time i ... time)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:14:31:14:70 | `Time i ... time)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:14:31:14:70 | `Time i ... time)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:14:31:14:70 | `Time i ... time)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | calleeAccessPath | date-fns format | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | calleeAccessPathWithStructuralInfo | date-fns member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | calleeApiName | date-fns | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:14:57:14:61 | taint | receiverName | dateFns | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | calleeAccessPath | date-fns format | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | calleeAccessPathWithStructuralInfo | date-fns member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | calleeApiName | date-fns | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:14:64:14:67 | time | receiverName | dateFns | +| autogenerated/Xss/DomBasedXss/dates.js:15:31:15:72 | `Time i ... aint)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:15:31:15:72 | `Time i ... aint)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:15:31:15:72 | `Time i ... aint)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:15:31:15:72 | `Time i ... aint)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | calleeAccessPath | date-fns/fp format | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | calleeAccessPathWithStructuralInfo | date-fns/fp member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | calleeApiName | date-fns/fp | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:15:59:15:62 | time | receiverName | dateFnsFp | +| autogenerated/Xss/DomBasedXss/dates.js:15:65:15:69 | taint | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:15:65:15:69 | taint | calleeAccessPath | date-fns/fp format | +| autogenerated/Xss/DomBasedXss/dates.js:15:65:15:69 | taint | calleeAccessPathWithStructuralInfo | date-fns/fp member format instanceorreturn instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:15:65:15:69 | taint | calleeApiName | date-fns/fp | +| autogenerated/Xss/DomBasedXss/dates.js:15:65:15:69 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:15:65:15:69 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:16:31:16:69 | `Time i ... aint)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:16:31:16:69 | `Time i ... aint)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:16:31:16:69 | `Time i ... aint)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:16:31:16:69 | `Time i ... aint)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | calleeAccessPath | moment | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | calleeAccessPathWithStructuralInfo | moment instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | calleeApiName | moment | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | calleeName | moment | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:16:49:16:52 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | calleeAccessPath | moment format | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | calleeAccessPathWithStructuralInfo | moment instanceorreturn member format instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | calleeApiName | moment | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | calleeName | format | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:16:62:16:66 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:17:31:17:65 | `Time i ... mat()}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:17:31:17:65 | `Time i ... mat()}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:17:31:17:65 | `Time i ... mat()}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:17:31:17:65 | `Time i ... mat()}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | calleeAccessPath | moment | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | calleeAccessPathWithStructuralInfo | moment instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | calleeApiName | moment | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | calleeName | moment | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:17:49:17:53 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:18:31:18:66 | `Time i ... aint)}` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/dates.js:18:31:18:66 | `Time i ... aint)}` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/dates.js:18:31:18:66 | `Time i ... aint)}` | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:18:31:18:66 | `Time i ... aint)}` | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | calleeAccessPath | dateformat | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | calleeAccessPathWithStructuralInfo | dateformat instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | calleeApiName | dateformat | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | calleeName | dateformat | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:18:53:18:56 | time | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | calleeAccessPath | dateformat | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | calleeAccessPathWithStructuralInfo | dateformat instanceorreturn | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | calleeApiName | dateformat | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | calleeName | dateformat | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | enclosingFunctionBody | time Date taint decodeURIComponent window location hash substring 1 document body innerHTML Time is dateFns format time taint document body innerHTML Time is dateFnsEsm format time taint document body innerHTML Time is dateFnsFp format taint time document body innerHTML Time is dateFns format taint time document body innerHTML Time is dateFnsFp format time taint document body innerHTML Time is moment time format taint document body innerHTML Time is moment taint format document body innerHTML Time is dateformat time taint | +| autogenerated/Xss/DomBasedXss/dates.js:18:59:18:63 | taint | enclosingFunctionName | main | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:5:3:15 | 'click | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:5:3:15 | 'click | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:5:3:57 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:19:3:41 | encodeU ... nt(loc) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:19:3:41 | encodeU ... nt(loc) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:19:3:41 | encodeU ... nt(loc) | enclosingFunctionBody | loc window location href $ click | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:19:3:41 | encodeU ... nt(loc) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:38:3:40 | loc | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:38:3:40 | loc | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:38:3:40 | loc | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:38:3:40 | loc | calleeName | encodeURIComponent | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:38:3:40 | loc | enclosingFunctionBody | loc window location href $ click | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:38:3:40 | loc | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:45:3:57 | '">click' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:45:3:57 | '">click' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:45:3:57 | '">click' | enclosingFunctionBody | loc window location href $ click | +| autogenerated/Xss/DomBasedXss/encodeuri.js:3:45:3:57 | '">click' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:1:25:1:31 | 'my-id' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:1:25:1:31 | 'my-id' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:1:25:1:31 | 'my-id' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:1:25:1:31 | 'my-id' | calleeName | getElementById | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:1:25:1:31 | 'my-id' | receiverName | document | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:31:2:45 | '

    A link

    | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:31:2:45 | '

    A link

    | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:31:2:83 | '

    ' | enclosingFunctionName | onclick | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:49:2:61 | location.href | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:49:2:61 | location.href | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:49:2:61 | location.href | enclosingFunctionBody | parentNode innerHTML

    A link

    | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:49:2:61 | location.href | enclosingFunctionName | onclick | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:65:2:83 | '">A link' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:65:2:83 | '">A link' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:65:2:83 | '">A link' | enclosingFunctionBody | parentNode innerHTML

    A link

    | +| autogenerated/Xss/DomBasedXss/event-handler-receiver.js:2:65:2:83 | '">A link' | enclosingFunctionName | onclick | +| autogenerated/Xss/DomBasedXss/express.js:1:23:1:31 | 'express' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/express.js:1:23:1:31 | 'express' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/express.js:1:23:1:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/express.js:1:23:1:31 | 'express' | calleeName | require | +| autogenerated/Xss/DomBasedXss/express.js:5:9:5:20 | '/some/path' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/express.js:5:9:5:20 | '/some/path' | calleeAccessPath | express get | +| autogenerated/Xss/DomBasedXss/express.js:5:9:5:20 | '/some/path' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/express.js:5:9:5:20 | '/some/path' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/express.js:5:9:5:20 | '/some/path' | calleeName | get | +| autogenerated/Xss/DomBasedXss/express.js:5:9:5:20 | '/some/path' | receiverName | app | +| autogenerated/Xss/DomBasedXss/express.js:5:23:11:1 | functio ... " });\\n} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/express.js:5:23:11:1 | functio ... " });\\n} | calleeAccessPath | express get | +| autogenerated/Xss/DomBasedXss/express.js:5:23:11:1 | functio ... " });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/express.js:5:23:11:1 | functio ... " });\\n} | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/express.js:5:23:11:1 | functio ... " });\\n} | calleeName | get | +| autogenerated/Xss/DomBasedXss/express.js:5:23:11:1 | functio ... " });\\n} | receiverName | app | +| autogenerated/Xss/DomBasedXss/express.js:7:15:7:33 | req.param("wobble") | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/express.js:7:15:7:33 | req.param("wobble") | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/express.js:7:15:7:33 | req.param("wobble") | enclosingFunctionBody | req res JSDOM req param wobble runScripts dangerously JSDOM req param wobble runScripts outside-only | +| autogenerated/Xss/DomBasedXss/express.js:7:15:7:33 | req.param("wobble") | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | calleeAccessPath | express get req param | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | calleeName | param | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | enclosingFunctionBody | req res JSDOM req param wobble runScripts dangerously JSDOM req param wobble runScripts outside-only | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/express.js:7:25:7:32 | "wobble" | receiverName | req | +| autogenerated/Xss/DomBasedXss/express.js:7:36:7:64 | { runSc ... usly" } | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/express.js:7:36:7:64 | { runSc ... usly" } | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/express.js:7:36:7:64 | { runSc ... usly" } | enclosingFunctionBody | req res JSDOM req param wobble runScripts dangerously JSDOM req param wobble runScripts outside-only | +| autogenerated/Xss/DomBasedXss/express.js:7:36:7:64 | { runSc ... usly" } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | calleeAccessPath | express get req param | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | calleeName | param | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | enclosingFunctionBody | req res JSDOM req param wobble runScripts dangerously JSDOM req param wobble runScripts outside-only | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/express.js:10:25:10:32 | "wobble" | receiverName | req | +| autogenerated/Xss/DomBasedXss/jquery.js:4:5:4:11 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:4:5:4:11 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:4:5:4:11 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:4:5:4:11 | tainted | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:4:5:4:11 | tainted | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:4:5:4:11 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:5:5:5:10 | "body" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:5:5:5:10 | "body" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:5:5:5:10 | "body" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:5:5:5:10 | "body" | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:5:5:5:10 | "body" | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:5:5:5:10 | "body" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:5:13:5:19 | tainted | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/jquery.js:5:13:5:19 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:5:13:5:19 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:5:13:5:19 | tainted | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:5:13:5:19 | tainted | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:5:13:5:19 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:6:5:6:17 | "." + tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:6:5:6:17 | "." + tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:6:5:6:17 | "." + tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:6:5:6:17 | "." + tainted | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:6:5:6:17 | "." + tainted | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:6:5:6:17 | "." + tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:16 | "
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:16 | "
    " | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:34 | "
    " | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:34 | "
    " | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:34 | "
    " | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:34 | "
    " | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:7:5:7:34 | "
    " | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:7:20:7:26 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:7:20:7:26 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:7:20:7:26 | tainted | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:7:20:7:26 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:7:30:7:34 | "\\">" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:7:30:7:34 | "\\">" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:7:30:7:34 | "\\">" | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:7:30:7:34 | "\\">" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:8:5:8:10 | "body" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:8:5:8:10 | "body" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:8:5:8:10 | "body" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:8:5:8:10 | "body" | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:8:5:8:10 | "body" | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:8:5:8:10 | "body" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:8:18:8:34 | "XSS: " + tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:8:18:8:34 | "XSS: " + tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:8:18:8:34 | "XSS: " + tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:8:18:8:34 | "XSS: " + tainted | calleeName | html | +| autogenerated/Xss/DomBasedXss/jquery.js:8:18:8:34 | "XSS: " + tainted | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:8:18:8:34 | "XSS: " + tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:9:5:9:24 | window.location.hash | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:9:5:9:24 | window.location.hash | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:9:5:9:24 | window.location.hash | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:9:5:9:24 | window.location.hash | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:9:5:9:24 | window.location.hash | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:9:5:9:24 | window.location.hash | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:9 | "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:9 | "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:9 | "" | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:9 | "" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:40 | "" + ... "" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:40 | "" + ... "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:40 | "" + ... "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:40 | "" + ... "" | calleeName | $ | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:40 | "" + ... "" | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:10:5:10:40 | "" + ... "" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:10:13:10:31 | location.toString() | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:13:10:31 | location.toString() | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:13:10:31 | location.toString() | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:10:13:10:31 | location.toString() | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:10:35:10:40 | "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:35:10:40 | "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:10:35:10:40 | "" | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:10:35:10:40 | "" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | calleeName | getElementById | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:13:37:13:39 | 'x' | receiverName | document | +| autogenerated/Xss/DomBasedXss/jquery.js:14:19:14:58 | decodeU ... n.hash) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:14:19:14:58 | decodeU ... n.hash) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:14:19:14:58 | decodeU ... n.hash) | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:14:19:14:58 | decodeU ... n.hash) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:14:38:14:57 | window.location.hash | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:14:38:14:57 | window.location.hash | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:14:38:14:57 | window.location.hash | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:14:38:14:57 | window.location.hash | calleeName | decodeURIComponent | +| autogenerated/Xss/DomBasedXss/jquery.js:14:38:14:57 | window.location.hash | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:14:38:14:57 | window.location.hash | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:15:19:15:60 | decodeU ... search) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:15:19:15:60 | decodeU ... search) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:15:19:15:60 | decodeU ... search) | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:15:19:15:60 | decodeU ... search) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:15:38:15:59 | window. ... .search | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:15:38:15:59 | window. ... .search | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:15:38:15:59 | window. ... .search | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:15:38:15:59 | window. ... .search | calleeName | decodeURIComponent | +| autogenerated/Xss/DomBasedXss/jquery.js:15:38:15:59 | window. ... .search | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:15:38:15:59 | window. ... .search | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:16:19:16:64 | decodeU ... ring()) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:16:19:16:64 | decodeU ... ring()) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:16:19:16:64 | decodeU ... ring()) | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:16:19:16:64 | decodeU ... ring()) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jquery.js:16:38:16:63 | window. ... tring() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jquery.js:16:38:16:63 | window. ... tring() | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jquery.js:16:38:16:63 | window. ... tring() | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jquery.js:16:38:16:63 | window. ... tring() | calleeName | decodeURIComponent | +| autogenerated/Xss/DomBasedXss/jquery.js:16:38:16:63 | window. ... tring() | enclosingFunctionBody | tainted document location search $ tainted $ body tainted $ . tainted $
    $ body html XSS: tainted $ window location hash $ location toString elm document getElementById x elm innerHTML decodeURIComponent window location hash elm innerHTML decodeURIComponent window location search elm innerHTML decodeURIComponent window location toString | +| autogenerated/Xss/DomBasedXss/jquery.js:16:38:16:63 | window. ... tring() | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/jwt-server.js:1:23:1:31 | 'express' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:1:23:1:31 | 'express' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jwt-server.js:1:23:1:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jwt-server.js:1:23:1:31 | 'express' | calleeName | require | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:9:6:20 | '/some/path' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:9:6:20 | '/some/path' | calleeAccessPath | express get | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:9:6:20 | '/some/path' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:9:6:20 | '/some/path' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:9:6:20 | '/some/path' | calleeName | get | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:9:6:20 | '/some/path' | receiverName | app | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:23:13:1 | functio ... });\\n} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:23:13:1 | functio ... });\\n} | calleeAccessPath | express get | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:23:13:1 | functio ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:23:13:1 | functio ... });\\n} | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:23:13:1 | functio ... });\\n} | calleeName | get | +| autogenerated/Xss/DomBasedXss/jwt-server.js:6:23:13:1 | functio ... });\\n} | receiverName | app | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | calleeAccessPath | express get req param | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | calleeName | param | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | enclosingFunctionBody | req res taint req param wobble jwt verify taint my-secret-key err decoded JSDOM decoded foo runScripts dangerously | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt-server.js:7:27:7:34 | "wobble" | receiverName | req | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | calleeAccessPath | jsonwebtoken verify | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | calleeAccessPathWithStructuralInfo | jsonwebtoken member verify instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | calleeApiName | jsonwebtoken | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | calleeName | verify | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | enclosingFunctionBody | req res taint req param wobble jwt verify taint my-secret-key err decoded JSDOM decoded foo runScripts dangerously | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:16:9:20 | taint | receiverName | jwt | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | calleeAccessPath | jsonwebtoken verify | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | calleeAccessPathWithStructuralInfo | jsonwebtoken member verify instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | calleeApiName | jsonwebtoken | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | calleeName | verify | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | enclosingFunctionBody | req res taint req param wobble jwt verify taint my-secret-key err decoded JSDOM decoded foo runScripts dangerously | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:23:9:37 | 'my-secret-key' | receiverName | jwt | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | argumentIndex | 2 | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | calleeAccessPath | jsonwebtoken verify | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | calleeAccessPathWithStructuralInfo | jsonwebtoken member verify instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | calleeApiName | jsonwebtoken | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | calleeName | verify | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | enclosingFunctionBody | req res taint req param wobble jwt verify taint my-secret-key err decoded JSDOM decoded foo runScripts dangerously | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt-server.js:9:40:12:5 | functio ... ;\\n } | receiverName | jwt | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:19:11:29 | decoded.foo | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:19:11:29 | decoded.foo | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:19:11:29 | decoded.foo | enclosingFunctionBody | req res taint req param wobble jwt verify taint my-secret-key err decoded JSDOM decoded foo runScripts dangerously | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:19:11:29 | decoded.foo | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:32:11:60 | { runSc ... usly" } | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:32:11:60 | { runSc ... usly" } | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:32:11:60 | { runSc ... usly" } | enclosingFunctionBody | req res taint req param wobble jwt verify taint my-secret-key err decoded JSDOM decoded foo runScripts dangerously | +| autogenerated/Xss/DomBasedXss/jwt-server.js:11:32:11:60 | { runSc ... usly" } | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt.js:4:8:4:17 | loginUrl() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt.js:4:8:4:17 | loginUrl() | calleeAccessPath | jquery post | +| autogenerated/Xss/DomBasedXss/jwt.js:4:8:4:17 | loginUrl() | calleeAccessPathWithStructuralInfo | jquery member post instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt.js:4:8:4:17 | loginUrl() | calleeApiName | jquery | +| autogenerated/Xss/DomBasedXss/jwt.js:4:8:4:17 | loginUrl() | calleeName | post | +| autogenerated/Xss/DomBasedXss/jwt.js:4:8:4:17 | loginUrl() | receiverName | $ | +| autogenerated/Xss/DomBasedXss/jwt.js:4:20:4:32 | {data: "foo"} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/jwt.js:4:20:4:32 | {data: "foo"} | calleeAccessPath | jquery post | +| autogenerated/Xss/DomBasedXss/jwt.js:4:20:4:32 | {data: "foo"} | calleeAccessPathWithStructuralInfo | jquery member post instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt.js:4:20:4:32 | {data: "foo"} | calleeApiName | jquery | +| autogenerated/Xss/DomBasedXss/jwt.js:4:20:4:32 | {data: "foo"} | calleeName | post | +| autogenerated/Xss/DomBasedXss/jwt.js:4:20:4:32 | {data: "foo"} | receiverName | $ | +| autogenerated/Xss/DomBasedXss/jwt.js:4:27:4:31 | "foo" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/jwt.js:4:27:4:31 | "foo" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/jwt.js:4:35:7:1 | (data, ... ENCY]\\n} | argumentIndex | 2 | +| autogenerated/Xss/DomBasedXss/jwt.js:4:35:7:1 | (data, ... ENCY]\\n} | calleeAccessPath | jquery post | +| autogenerated/Xss/DomBasedXss/jwt.js:4:35:7:1 | (data, ... ENCY]\\n} | calleeAccessPathWithStructuralInfo | jquery member post instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt.js:4:35:7:1 | (data, ... ENCY]\\n} | calleeApiName | jquery | +| autogenerated/Xss/DomBasedXss/jwt.js:4:35:7:1 | (data, ... ENCY]\\n} | calleeName | post | +| autogenerated/Xss/DomBasedXss/jwt.js:4:35:7:1 | (data, ... ENCY]\\n} | receiverName | $ | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | calleeAccessPath | jwt-decode | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | calleeAccessPathWithStructuralInfo | jwt-decode instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | calleeApiName | jwt-decode | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | calleeName | jwt_decode | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | enclosingFunctionBody | data xhr decoded jwt_decode data $ jGrowl decoded | +| autogenerated/Xss/DomBasedXss/jwt.js:5:30:5:33 | data | enclosingFunctionName | $.post#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | calleeAccessPath | jquery jGrowl | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | calleeAccessPathWithStructuralInfo | jquery member jGrowl instanceorreturn | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | calleeApiName | jquery | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | calleeName | jGrowl | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | enclosingFunctionBody | data xhr decoded jwt_decode data $ jGrowl decoded | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | enclosingFunctionName | $.post#functionalargument | +| autogenerated/Xss/DomBasedXss/jwt.js:6:14:6:20 | decoded | receiverName | $ | +| autogenerated/Xss/DomBasedXss/nodemailer.js:1:26:1:37 | 'nodemailer' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:1:26:1:37 | 'nodemailer' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:1:26:1:37 | 'nodemailer' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:1:26:1:37 | 'nodemailer' | calleeName | require | +| autogenerated/Xss/DomBasedXss/nodemailer.js:2:23:2:31 | 'express' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:2:23:2:31 | 'express' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:2:23:2:31 | 'express' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:2:23:2:31 | 'express' | calleeName | require | +| autogenerated/Xss/DomBasedXss/nodemailer.js:4:23:4:33 | './backend' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:4:23:4:33 | './backend' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:4:23:4:33 | './backend' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:4:23:4:33 | './backend' | calleeName | require | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:10:6:27 | '/private_message' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:10:6:27 | '/private_message' | calleeAccessPath | express post | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:10:6:27 | '/private_message' | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:10:6:27 | '/private_message' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:10:6:27 | '/private_message' | calleeName | post | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:10:6:27 | '/private_message' | receiverName | app | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:30:15:1 | (req, r ... });\\n} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:30:15:1 | (req, r ... });\\n} | calleeAccessPath | express post | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:30:15:1 | (req, r ... });\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member post instanceorreturn | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:30:15:1 | (req, r ... });\\n} | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:30:15:1 | (req, r ... });\\n} | calleeName | post | +| autogenerated/Xss/DomBasedXss/nodemailer.js:6:30:15:1 | (req, r ... });\\n} | receiverName | app | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | calleeAccessPath | nodemailer createTransport | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | calleeAccessPathWithStructuralInfo | nodemailer member createTransport instanceorreturn | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | calleeApiName | nodemailer | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | calleeName | createTransport | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:7:46:7:47 | {} | receiverName | nodemailer | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | calleeAccessPath | nodemailer createTransport sendMail | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | calleeAccessPathWithStructuralInfo | nodemailer member createTransport instanceorreturn member sendMail instanceorreturn | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | calleeApiName | nodemailer | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | calleeName | sendMail | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:8:22:14:3 | {\\n f ... OK\\n } | receiverName | transport | +| autogenerated/Xss/DomBasedXss/nodemailer.js:9:11:9:33 | 'webmas ... le.com' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:9:11:9:33 | 'webmas ... le.com' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:9:11:9:33 | 'webmas ... le.com' | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:9:11:9:33 | 'webmas ... le.com' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:9:10:48 | backend ... ceiver) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:9:10:48 | backend ... ceiver) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:9:10:48 | backend ... ceiver) | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:9:10:48 | backend ... ceiver) | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | calleeName | getUserEmail | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:10:30:10:47 | req.query.receiver | receiverName | backend | +| autogenerated/Xss/DomBasedXss/nodemailer.js:11:14:11:30 | 'Private message' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:11:14:11:30 | 'Private message' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:11:14:11:30 | 'Private message' | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:11:14:11:30 | 'Private message' | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:12:11:12:69 | `Hi, yo ... sage}.` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:12:11:12:69 | `Hi, yo ... sage}.` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:12:11:12:69 | `Hi, yo ... sage}.` | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:12:11:12:69 | `Hi, yo ... sage}.` | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/nodemailer.js:13:11:13:69 | `Hi, yo ... sage}.` | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:13:11:13:69 | `Hi, yo ... sage}.` | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/nodemailer.js:13:11:13:69 | `Hi, yo ... sage}.` | enclosingFunctionBody | req res transport nodemailer createTransport transport sendMail from webmaster@example.com to backend getUserEmail req query receiver subject Private message text Hi, you got a message from someone. req query message . html Hi, you got a message from someone. req query message . | +| autogenerated/Xss/DomBasedXss/nodemailer.js:13:11:13:69 | `Hi, yo ... sage}.` | enclosingFunctionName | app.post#functionalargument | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:5:4:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:5:4:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:5:4:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:5:4:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:5:4:10 | 'myId' | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:5:4:10 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:18:4:63 | sanitiz ... target | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:18:4:63 | sanitiz ... target | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:18:4:63 | sanitiz ... target | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:18:4:63 | sanitiz ... target | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:18:4:63 | sanitiz ... target | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:4:18:4:63 | sanitiz ... target | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:5:6:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:5:6:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:5:6:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:5:6:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:5:6:10 | 'myId' | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:5:6:10 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:18:6:23 | target | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:18:6:23 | target | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:18:6:23 | target | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:18:6:23 | target | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:18:6:23 | target | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:6:18:6:23 | target | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:5:9:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:5:9:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:5:9:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:5:9:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:5:9:10 | 'myId' | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:5:9:10 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:18:9:24 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:18:9:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:18:9:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:18:9:24 | tainted | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:18:9:24 | tainted | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:9:18:9:24 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:5:13:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:5:13:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:5:13:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:5:13:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:5:13:10 | 'myId' | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:5:13:10 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:18:13:24 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:18:13:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:18:13:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:18:13:24 | tainted | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:18:13:24 | tainted | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:13:18:13:24 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:7:17:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:7:17:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:7:17:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:7:17:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:7:17:12 | 'myId' | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:7:17:12 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:20:17:20 | x | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:20:17:20 | x | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:20:17:20 | x | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:20:17:20 | x | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:20:17:20 | x | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:17:20:17:20 | x | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:7:21:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:7:21:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:7:21:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:7:21:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:7:21:12 | 'myId' | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:7:21:12 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:20:21:20 | x | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:20:21:20 | x | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:20:21:20 | x | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:20:21:20 | x | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:20:21:20 | x | enclosingFunctionBody | target document location search $ myId html sanitize DOMPurify sanitize target target $ myId html target tainted target $ myId html tainted sanitize tainted DOMPurify sanitize tainted $ myId html tainted inner target inner x $ myId html x sanitize x DOMPurify sanitize x $ myId html x | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:21:20:21:20 | x | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:5:32:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:5:32:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:5:32:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:5:32:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:5:32:10 | 'myId' | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:5:32:10 | 'myId' | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:18:32:25 | tainted2 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:18:32:25 | tainted2 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:18:32:25 | tainted2 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:18:32:25 | tainted2 | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:18:32:25 | tainted2 | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:32:18:32:25 | tainted2 | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:34:28:34:35 | tainted2 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:34:28:34:35 | tainted2 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:34:28:34:35 | tainted2 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:34:28:34:35 | tainted2 | calleeName | sanitizeBad | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:34:28:34:35 | tainted2 | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:34:28:34:35 | tainted2 | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:5:36:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:5:36:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:5:36:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:5:36:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:5:36:10 | 'myId' | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:5:36:10 | 'myId' | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:18:36:25 | tainted2 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:18:36:25 | tainted2 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:18:36:25 | tainted2 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:18:36:25 | tainted2 | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:18:36:25 | tainted2 | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:36:18:36:25 | tainted2 | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:5:39:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:5:39:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:5:39:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:5:39:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:5:39:10 | 'myId' | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:5:39:10 | 'myId' | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:18:39:25 | tainted3 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:18:39:25 | tainted3 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:18:39:25 | tainted3 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:18:39:25 | tainted3 | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:18:39:25 | tainted3 | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:39:18:39:25 | tainted3 | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:41:28:41:35 | tainted3 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:41:28:41:35 | tainted3 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:41:28:41:35 | tainted3 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:41:28:41:35 | tainted3 | calleeName | sanitizeBad | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:41:28:41:35 | tainted3 | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:41:28:41:35 | tainted3 | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:5:43:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:5:43:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:5:43:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:5:43:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:5:43:10 | 'myId' | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:5:43:10 | 'myId' | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:18:43:25 | tainted3 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:18:43:25 | tainted3 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:18:43:25 | tainted3 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:18:43:25 | tainted3 | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:18:43:25 | tainted3 | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:43:18:43:25 | tainted3 | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:5:45:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:5:45:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:5:45:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:5:45:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:5:45:10 | 'myId' | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:5:45:10 | 'myId' | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:18:45:56 | sanitiz ... target | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:18:45:56 | sanitiz ... target | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:18:45:56 | sanitiz ... target | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:18:45:56 | sanitiz ... target | calleeName | html | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:18:45:56 | sanitiz ... target | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:18:45:56 | sanitiz ... target | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:41:45:46 | target | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:41:45:46 | target | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:41:45:46 | target | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:41:45:46 | target | calleeName | sanitizeBad | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:41:45:46 | target | enclosingFunctionBody | target document location search sanitizeBad x x tainted2 target $ myId html tainted2 sanitize tainted2 sanitizeBad tainted2 $ myId html tainted2 tainted3 target $ myId html tainted3 sanitize tainted3 sanitizeBad tainted3 $ myId html tainted3 $ myId html sanitize sanitizeBad target target | +| autogenerated/Xss/DomBasedXss/optionalSanitizer.js:45:41:45:46 | target | enclosingFunctionName | badSanitizer | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:38:3:49 | {root: null} | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:38:3:49 | {root: null} | calleeAccessPath | react createContext | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:38:3:49 | {root: null} | calleeAccessPathWithStructuralInfo | react member createContext instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:38:3:49 | {root: null} | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:38:3:49 | {root: null} | calleeName | createContext | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:45:3:48 | null | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-create-context.js:3:45:3:48 | null | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-native.js:6:9:6:20 | '/some/path' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-native.js:6:9:6:20 | '/some/path' | calleeAccessPath | express get | +| autogenerated/Xss/DomBasedXss/react-native.js:6:9:6:20 | '/some/path' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-native.js:6:9:6:20 | '/some/path' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/react-native.js:6:9:6:20 | '/some/path' | calleeName | get | +| autogenerated/Xss/DomBasedXss/react-native.js:6:9:6:20 | '/some/path' | receiverName | app | +| autogenerated/Xss/DomBasedXss/react-native.js:6:23:10:1 | functio ... OT OK\\n} | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/react-native.js:6:23:10:1 | functio ... OT OK\\n} | calleeAccessPath | express get | +| autogenerated/Xss/DomBasedXss/react-native.js:6:23:10:1 | functio ... OT OK\\n} | calleeAccessPathWithStructuralInfo | express instanceorreturn member get instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-native.js:6:23:10:1 | functio ... OT OK\\n} | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/react-native.js:6:23:10:1 | functio ... OT OK\\n} | calleeName | get | +| autogenerated/Xss/DomBasedXss/react-native.js:6:23:10:1 | functio ... OT OK\\n} | receiverName | app | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | calleeAccessPath | express get req param | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member param instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | calleeName | param | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | enclosingFunctionBody | req res tainted req param code WebView html tainted WebView source html tainted | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/react-native.js:7:27:7:32 | "code" | receiverName | req | +| autogenerated/Xss/DomBasedXss/react-native.js:8:18:8:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-native.js:8:18:8:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-native.js:8:18:8:24 | tainted | enclosingFunctionBody | req res tainted req param code WebView html tainted WebView source html tainted | +| autogenerated/Xss/DomBasedXss/react-native.js:8:18:8:24 | tainted | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/react-native.js:9:27:9:33 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-native.js:9:27:9:33 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-native.js:9:27:9:33 | tainted | enclosingFunctionBody | req res tainted req param code WebView html tainted WebView source html tainted | +| autogenerated/Xss/DomBasedXss/react-native.js:9:27:9:33 | tainted | enclosingFunctionName | app.get#functionalargument | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | calleeAccessPath | react useContext | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | calleeAccessPathWithStructuralInfo | react member useContext instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | calleeName | useContext | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | enclosingFunctionBody | useContext MyContext | +| autogenerated/Xss/DomBasedXss/react-use-context.js:5:23:5:31 | MyContext | enclosingFunctionName | useMyContext | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | calleeAccessPath | react useContext root appendChild | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | calleeAccessPathWithStructuralInfo | react member useContext instanceorreturn member root member appendChild instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | calleeName | appendChild | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | enclosingFunctionBody | root useMyContext root appendChild window name | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | enclosingFunctionName | useDoc1 | +| autogenerated/Xss/DomBasedXss/react-use-context.js:10:22:10:32 | window.name | receiverName | root | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | calleeName | appendChild | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | enclosingFunctionBody | root context root appendChild window name | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | enclosingFunctionName | foo | +| autogenerated/Xss/DomBasedXss/react-use-context.js:16:26:16:36 | window.name | receiverName | root | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | calleeName | useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | enclosingFunctionBody | state setState useState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:4:38:4:48 | window.name | enclosingFunctionName | initialState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:42:5:56 | {__html: state} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:42:5:56 | {__html: state} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:42:5:56 | {__html: state} | enclosingFunctionBody | state setState useState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:42:5:56 | {__html: state} | enclosingFunctionName | initialState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:51:5:55 | state | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:51:5:55 | state | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:51:5:55 | state | enclosingFunctionBody | state setState useState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:5:51:5:55 | state | enclosingFunctionName | initialState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | calleeName | useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:9:38:9:42 | 'foo' | enclosingFunctionName | setStateValue | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn member instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | calleeName | setState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:10:14:10:24 | window.name | enclosingFunctionName | setStateValue | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:42:11:56 | {__html: state} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:42:11:56 | {__html: state} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:42:11:56 | {__html: state} | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:42:11:56 | {__html: state} | enclosingFunctionName | setStateValue | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:51:11:55 | state | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:51:11:55 | state | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:51:11:55 | state | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:11:51:11:55 | state | enclosingFunctionName | setStateValue | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | calleeName | useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:15:38:15:42 | 'foo' | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn member instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | calleeName | setState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:16:14:16:30 | () => window.name | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:42:17:56 | {__html: state} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:42:17:56 | {__html: state} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:42:17:56 | {__html: state} | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:42:17:56 | {__html: state} | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:51:17:55 | state | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:51:17:55 | state | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:51:17:55 | state | enclosingFunctionBody | state setState useState foo setState window name div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:17:51:17:55 | state | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | calleeName | useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | enclosingFunctionBody | state setState useState foo setState prev document body innerHTML prev setState window name | +| autogenerated/Xss/DomBasedXss/react-use-state.js:21:38:21:42 | 'foo' | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn member instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | calleeName | setState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | enclosingFunctionBody | state setState useState foo setState prev document body innerHTML prev setState window name | +| autogenerated/Xss/DomBasedXss/react-use-state.js:22:14:24:5 | prev => ... K\\n } | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:23:35:23:38 | prev | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:23:35:23:38 | prev | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:23:35:23:38 | prev | enclosingFunctionBody | state setState useState foo setState prev document body innerHTML prev setState window name | +| autogenerated/Xss/DomBasedXss/react-use-state.js:23:35:23:38 | prev | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn member instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | calleeName | setState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | enclosingFunctionBody | state setState useState foo setState prev document body innerHTML prev setState window name | +| autogenerated/Xss/DomBasedXss/react-use-state.js:25:14:25:30 | () => window.name | enclosingFunctionName | setStateValueLazy | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | calleeName | useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | enclosingFunctionBody | state setState useState foo setState safe setState also safe div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:29:38:29:42 | 'foo' | enclosingFunctionName | setStateValueSafe | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn member instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | calleeName | setState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | enclosingFunctionBody | state setState useState foo setState safe setState also safe div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:30:14:30:19 | 'safe' | enclosingFunctionName | setStateValueSafe | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | calleeAccessPath | react useState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | calleeAccessPathWithStructuralInfo | react member useState instanceorreturn member instanceorreturn | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | calleeApiName | react | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | calleeName | setState | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | enclosingFunctionBody | state setState useState foo setState safe setState also safe div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:31:14:31:30 | () => 'also safe' | enclosingFunctionName | setStateValueSafe | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:42:32:56 | {__html: state} | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:42:32:56 | {__html: state} | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:42:32:56 | {__html: state} | enclosingFunctionBody | state setState useState foo setState safe setState also safe div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:42:32:56 | {__html: state} | enclosingFunctionName | setStateValueSafe | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:51:32:55 | state | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:51:32:55 | state | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:51:32:55 | state | enclosingFunctionBody | state setState useState foo setState safe setState also safe div dangerouslySetInnerHTML __html state | +| autogenerated/Xss/DomBasedXss/react-use-state.js:32:51:32:55 | state | enclosingFunctionName | setStateValueSafe | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | calleeAccessPath | express get req query data toString replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member data member toString instanceorreturn member replace instanceorreturn | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | enclosingFunctionBody | s amp /&/g lt //g s toString replace amp & replace lt < replace gt > | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:18:4:20 | amp | enclosingFunctionName | escapeHtml | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | calleeAccessPath | express get req query data toString replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member data member toString instanceorreturn member replace instanceorreturn | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | enclosingFunctionBody | s amp /&/g lt //g s toString replace amp & replace lt < replace gt > | +| autogenerated/Xss/DomBasedXss/sanitiser.js:4:23:4:29 | '&' | enclosingFunctionName | escapeHtml | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | calleeAccessPath | express get req query data toString replace replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member data member toString instanceorreturn member replace instanceorreturn member replace instanceorreturn | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | enclosingFunctionBody | s amp /&/g lt //g s toString replace amp & replace lt < replace gt > | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:18:5:19 | lt | enclosingFunctionName | escapeHtml | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | calleeAccessPath | express get req query data toString replace replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member data member toString instanceorreturn member replace instanceorreturn member replace instanceorreturn | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | enclosingFunctionBody | s amp /&/g lt //g s toString replace amp & replace lt < replace gt > | +| autogenerated/Xss/DomBasedXss/sanitiser.js:5:22:5:27 | '<' | enclosingFunctionName | escapeHtml | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | calleeAccessPath | express get req query data toString replace replace replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member data member toString instanceorreturn member replace instanceorreturn member replace instanceorreturn member replace instanceorreturn | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | enclosingFunctionBody | s amp /&/g lt //g s toString replace amp & replace lt < replace gt > | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:18:6:19 | gt | enclosingFunctionName | escapeHtml | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | calleeAccessPath | express get req query data toString replace replace replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | calleeAccessPathWithStructuralInfo | express instanceorreturn member get functionalarg param req member query member data member toString instanceorreturn member replace instanceorreturn member replace instanceorreturn member replace instanceorreturn | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | calleeApiName | express | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | enclosingFunctionBody | s amp /&/g lt //g s toString replace amp & replace lt < replace gt > | +| autogenerated/Xss/DomBasedXss/sanitiser.js:6:22:6:27 | '>' | enclosingFunctionName | escapeHtml | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:19:11:22 | /'/g | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:19:11:22 | /'/g | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:19:11:22 | /'/g | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:19:11:22 | /'/g | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:19:11:22 | /'/g | enclosingFunctionBody | s s toString replace /'/g %22 replace /"/g %27 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:19:11:22 | /'/g | enclosingFunctionName | escapeAttr | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:25:11:29 | '%22' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:25:11:29 | '%22' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:25:11:29 | '%22' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:25:11:29 | '%22' | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:25:11:29 | '%22' | enclosingFunctionBody | s s toString replace /'/g %22 replace /"/g %27 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:11:25:11:29 | '%22' | enclosingFunctionName | escapeAttr | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:19:12:22 | /"/g | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:19:12:22 | /"/g | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:19:12:22 | /"/g | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:19:12:22 | /"/g | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:19:12:22 | /"/g | enclosingFunctionBody | s s toString replace /'/g %22 replace /"/g %27 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:19:12:22 | /"/g | enclosingFunctionName | escapeAttr | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:25:12:29 | '%27' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:25:12:29 | '%27' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:25:12:29 | '%27' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:25:12:29 | '%27' | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:25:12:29 | '%27' | enclosingFunctionBody | s s toString replace /'/g %22 replace /"/g %27 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:12:25:12:29 | '%27' | enclosingFunctionName | escapeAttr | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:19:18:30 | " escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:19:18:30 | "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:19:18:91 | "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:19:18:91 | "" | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:19:18:91 | "" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:34:18:52 | escapeAttr(tainted) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:34:18:52 | escapeAttr(tainted) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:34:18:52 | escapeAttr(tainted) | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:34:18:52 | escapeAttr(tainted) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:56:18:60 | "\\">" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:56:18:60 | "\\">" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:56:18:60 | "\\">" | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:56:18:60 | "\\">" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:64:18:82 | escapeHtml(tainted) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:64:18:82 | escapeHtml(tainted) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:64:18:82 | escapeHtml(tainted) | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:64:18:82 | escapeHtml(tainted) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:86:18:91 | "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:86:18:91 | "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:86:18:91 | "" | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:18:86:18:91 | "" | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:25 | "
    " | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:25 | "
    " | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:25 | "
    " | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:25 | "
    " | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:58 | "
    " ...
    " | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:58 | "
    " ...
    " | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:58 | "
    " ...
    " | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:19:19:58 | "
    " ...
    " | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:29:19:47 | escapeAttr(tainted) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:29:19:47 | escapeAttr(tainted) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:29:19:47 | escapeAttr(tainted) | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:29:19:47 | escapeAttr(tainted) | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:51:19:58 | "
    " | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:51:19:58 | "
    " | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:51:19:58 | "
    " | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:19:51:19:58 | "
    " | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | calleeName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:22:18:22:24 | tainted | receiverName | regex | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:21:23:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:29:23:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:29:23:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:29:23:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:29:23:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:39:23:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:39:23:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:39:23:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:23:39:23:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:21:25:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:29:25:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:29:25:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:29:25:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:29:25:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:39:25:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:39:25:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:39:25:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:25:39:25:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | calleeName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:27:19:27:25 | tainted | receiverName | regex | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:21:28:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:29:28:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:29:28:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:29:28:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:29:28:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:39:28:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:39:28:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:39:28:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:28:39:28:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:21:30:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:29:30:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:29:30:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:29:30:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:29:30:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:39:30:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:39:30:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:39:30:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:30:39:30:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | calleeName | exec | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:32:18:32:24 | tainted | receiverName | regex | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:21:33:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:29:33:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:29:33:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:29:33:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:29:33:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:39:33:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:39:33:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:39:33:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:33:39:33:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:21:35:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:29:35:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:29:35:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:29:35:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:29:35:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:39:35:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:39:35:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:39:35:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:35:39:35:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | calleeName | exec | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:37:18:37:24 | tainted | receiverName | regex | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:21:38:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:29:38:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:29:38:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:29:38:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:29:38:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:39:38:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:39:38:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:39:38:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:38:39:38:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:21:40:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:29:40:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:29:40:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:29:40:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:29:40:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:39:40:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:39:40:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:39:40:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:40:39:40:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | calleeName | exec | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:42:18:42:24 | tainted | receiverName | regex | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:21:43:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:29:43:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:29:43:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:29:43:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:29:43:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:39:43:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:39:43:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:39:43:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:43:39:43:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:25 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:25 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:25 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:25 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:44 | '' + ... '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:44 | '' + ... '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:44 | '' + ... '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:21:45:44 | '' + ... '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:29:45:35 | tainted | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:29:45:35 | tainted | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:29:45:35 | tainted | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:29:45:35 | tainted | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:39:45:44 | '
    ' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:39:45:44 | '
    ' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:39:45:44 | '
    ' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:45:39:45:44 | '
    ' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:19:48:46 | tainted ... /g, '') | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:19:48:46 | tainted ... /g, '') | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:19:48:46 | tainted ... /g, '') | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:19:48:46 | tainted ... /g, '') | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:35:48:41 | /<\\w+/g | receiverName | tainted | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | calleeName | replace | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | enclosingFunctionBody | tainted window name elt document createElement elt innerHTML escapeHtml tainted elt innerHTML
    escapeAttr tainted
    regex /[<>'"&]/ regex test tainted elt innerHTML tainted elt innerHTML tainted regex test tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted regex exec tainted null elt innerHTML tainted elt innerHTML tainted elt innerHTML tainted replace /<\\w+/g | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/sanitiser.js:48:44:48:45 | '' | receiverName | tainted | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | calleeName | setItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:28:2:36 | 'session' | receiverName | sessionStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | calleeName | setItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:2:39:2:62 | documen ... .search | receiverName | sessionStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | calleeName | setItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:26:3:32 | 'local' | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | calleeName | setItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:3:35:3:58 | documen ... .search | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:7:5:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:7:5:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:7:5:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:7:5:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:7:5:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:7:5:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:20:5:52 | session ... ssion') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:20:5:52 | session ... ssion') | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:20:5:52 | session ... ssion') | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:20:5:52 | session ... ssion') | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:20:5:52 | session ... ssion') | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:20:5:52 | session ... ssion') | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:5:43:5:51 | 'session' | receiverName | sessionStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:7:6:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:7:6:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:7:6:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:7:6:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:7:6:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:7:6:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:20:6:50 | localSt ... ssion') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:20:6:50 | localSt ... ssion') | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:20:6:50 | localSt ... ssion') | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:20:6:50 | localSt ... ssion') | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:20:6:50 | localSt ... ssion') | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:20:6:50 | localSt ... ssion') | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:6:41:6:49 | 'session' | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:7:7:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:7:7:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:7:7:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:7:7:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:7:7:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:7:7:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:20:7:50 | session ... local') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:20:7:50 | session ... local') | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:20:7:50 | session ... local') | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:20:7:50 | session ... local') | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:20:7:50 | session ... local') | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:20:7:50 | session ... local') | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:7:43:7:49 | 'local' | receiverName | sessionStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:7:8:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:7:8:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:7:8:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:7:8:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:7:8:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:7:8:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:20:8:48 | localSt ... local') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:20:8:48 | localSt ... local') | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:20:8:48 | localSt ... local') | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:20:8:48 | localSt ... local') | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:20:8:48 | localSt ... local') | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:20:8:48 | localSt ... local') | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:8:41:8:47 | 'local' | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:10:37:10:43 | 'local' | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:7:12:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:7:12:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:7:12:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:7:12:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:7:12:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:7:12:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:31 | " something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:31 | "" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:54 | "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:54 | "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:54 | "" | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:54 | "" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:20:12:54 | "" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:35:12:38 | href | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:35:12:38 | href | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:35:12:38 | href | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:35:12:38 | href | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:42:12:54 | ">foobar" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:42:12:54 | ">foobar" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:42:12:54 | ">foobar" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:12:42:12:54 | ">foobar" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | calleeName | indexOf | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:14:22:14:25 | "\\"" | receiverName | href | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:7:17:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:7:17:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:7:17:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:7:17:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:7:17:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:7:17:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:31 | " something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:31 | "" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:45 | "" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:45 | "" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:45 | "" | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:45 | "" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:20:17:45 | "" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:35:17:38 | href | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:35:17:38 | href | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:35:17:38 | href | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:35:17:38 | href | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:42:17:45 | "/>" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:42:17:45 | "/>" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:42:17:45 | "/>" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:17:42:17:45 | "/>" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:19:38:19:44 | 'local' | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | calleeName | indexOf | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:20:23:20:26 | "\\"" | receiverName | href2 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:7:23:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:7:23:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:7:23:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:7:23:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:7:23:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:7:23:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:33 | "\\n something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:33 | "\\n" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:57 | "\\n" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:57 | "\\n" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:57 | "\\n" | calleeName | html | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:57 | "\\n" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:20:23:57 | "\\n" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:37:23:41 | href2 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:37:23:41 | href2 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:37:23:41 | href2 | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:37:23:41 | href2 | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:45:23:57 | ">foobar" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:45:23:57 | ">foobar" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:45:23:57 | ">foobar" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:23:45:23:57 | ">foobar" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | calleeName | getItem | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:25:38:25:44 | 'local' | receiverName | localStorage | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | calleeName | indexOf | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:26:23:26:26 | "\\"" | receiverName | href3 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:7:29:12 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:7:29:12 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:7:29:12 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:7:29:12 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:7:29:12 | 'myId' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:7:29:12 | 'myId' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:20:29:35 | '\\r\\nfoobar href indexOf " 1 $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:20:29:35 | '\\r\\nfoobar href indexOf " 1 $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:20:29:73 | '\\r\\n' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:39:29:43 | href3 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:39:29:43 | href3 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:39:29:43 | href3 | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:39:29:43 | href3 | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:47:29:50 | '">' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:47:29:50 | '">' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:47:29:50 | '">' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:47:29:50 | '">' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:54:29:64 | "something" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:54:29:64 | "something" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:54:29:64 | "something" | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:54:29:64 | "something" | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:68:29:73 | '' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:68:29:73 | '' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:68:29:73 | '' | enclosingFunctionBody | sessionStorage setItem session document location search localStorage setItem local document location search $ myId html sessionStorage getItem session $ myId html localStorage getItem session $ myId html sessionStorage getItem local $ myId html localStorage getItem local href localStorage getItem local $ myId html something | +| autogenerated/Xss/DomBasedXss/stored-xss.js:29:68:29:73 | '' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:16:1:51 | documen ... deAt(0) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:16:1:51 | documen ... deAt(0) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:16:1:51 | documen ... deAt(0) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:16:1:51 | documen ... deAt(0) | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:16:1:51 | documen ... deAt(0) | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:50:1:50 | 0 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:50:1:50 | 0 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:50:1:50 | 0 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:1:50:1:50 | 0 | calleeName | charCodeAt | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:3:16:3:32 | document.location | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:3:16:3:32 | document.location | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:3:16:3:32 | document.location | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:3:16:3:32 | document.location | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:3:16:3:32 | document.location | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:4:16:4:37 | documen ... on.href | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:4:16:4:37 | documen ... on.href | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:4:16:4:37 | documen ... on.href | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:4:16:4:37 | documen ... on.href | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:4:16:4:37 | documen ... on.href | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:5:16:5:47 | documen ... lueOf() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:5:16:5:47 | documen ... lueOf() | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:5:16:5:47 | documen ... lueOf() | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:5:16:5:47 | documen ... lueOf() | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:5:16:5:47 | documen ... lueOf() | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:6:16:6:43 | documen ... f.sup() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:6:16:6:43 | documen ... f.sup() | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:6:16:6:43 | documen ... f.sup() | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:6:16:6:43 | documen ... f.sup() | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:6:16:6:43 | documen ... f.sup() | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:7:16:7:51 | documen ... rCase() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:7:16:7:51 | documen ... rCase() | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:7:16:7:51 | documen ... rCase() | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:7:16:7:51 | documen ... rCase() | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:7:16:7:51 | documen ... rCase() | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:8:16:8:48 | documen ... mLeft() | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:8:16:8:48 | documen ... mLeft() | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:8:16:8:48 | documen ... mLeft() | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:8:16:8:48 | documen ... mLeft() | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:8:16:8:48 | documen ... mLeft() | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:16:9:58 | String. ... n.href) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:16:9:58 | String. ... n.href) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:16:9:58 | String. ... n.href) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:16:9:58 | String. ... n.href) | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:16:9:58 | String. ... n.href) | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:36:9:57 | documen ... on.href | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:36:9:57 | documen ... on.href | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:36:9:57 | documen ... on.href | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:36:9:57 | documen ... on.href | calleeName | fromCharCode | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:9:36:9:57 | documen ... on.href | receiverName | String | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:16:10:45 | String( ... n.href) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:16:10:45 | String( ... n.href) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:16:10:45 | String( ... n.href) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:16:10:45 | String( ... n.href) | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:16:10:45 | String( ... n.href) | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:23:10:44 | documen ... on.href | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:23:10:44 | documen ... on.href | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:23:10:44 | documen ... on.href | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:10:23:10:44 | documen ... on.href | calleeName | String | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:11:16:11:45 | escape( ... n.href) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:11:16:11:45 | escape( ... n.href) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:11:16:11:45 | escape( ... n.href) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:11:16:11:45 | escape( ... n.href) | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:11:16:11:45 | escape( ... n.href) | receiverName | document | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:12:16:12:61 | escape( ... href))) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:12:16:12:61 | escape( ... href))) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:12:16:12:61 | escape( ... href))) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:12:16:12:61 | escape( ... href))) | calleeName | write | +| autogenerated/Xss/DomBasedXss/string-manipulations.js:12:16:12:61 | escape( ... href))) | receiverName | document | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | calleeName | substring | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:7:59:7:59 | 1 | receiverName | target | +| autogenerated/Xss/DomBasedXss/translate.js:9:5:9:19 | 'original-term' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:9:5:9:19 | 'original-term' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:9:5:9:19 | 'original-term' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:9:5:9:19 | 'original-term' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/translate.js:9:5:9:19 | 'original-term' | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:9:5:9:19 | 'original-term' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:9:27:9:50 | searchP ... 'term') | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:9:27:9:50 | searchP ... 'term') | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:9:27:9:50 | searchP ... 'term') | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:9:27:9:50 | searchP ... 'term') | calleeName | html | +| autogenerated/Xss/DomBasedXss/translate.js:9:27:9:50 | searchP ... 'term') | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:9:27:9:50 | searchP ... 'term') | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | calleeName | get | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:9:44:9:49 | 'term' | receiverName | searchParams | +| autogenerated/Xss/DomBasedXss/translate.js:11:5:11:21 | 'translated-term' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:11:5:11:21 | 'translated-term' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:11:5:11:21 | 'translated-term' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:11:5:11:21 | 'translated-term' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/translate.js:11:5:11:21 | 'translated-term' | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:11:5:11:21 | 'translated-term' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:11:29:11:63 | transla ... term')] | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:11:29:11:63 | transla ... term')] | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:11:29:11:63 | transla ... term')] | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:11:29:11:63 | transla ... term')] | calleeName | html | +| autogenerated/Xss/DomBasedXss/translate.js:11:29:11:63 | transla ... term')] | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:11:29:11:63 | transla ... term')] | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | calleeName | get | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | enclosingFunctionBody | translate own goal backpass fumble feint target document location search searchParams URLSearchParams target substring 1 $ original-term html searchParams get term $ translated-term html translate searchParams get term | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | enclosingFunctionName | | +| autogenerated/Xss/DomBasedXss/translate.js:11:56:11:61 | 'term' | receiverName | searchParams | +| autogenerated/Xss/DomBasedXss/tst3.js:1:35:1:39 | "foo" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:1:35:1:39 | "foo" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:1:35:1:39 | "foo" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:1:35:1:39 | "foo" | calleeName | getElementById | +| autogenerated/Xss/DomBasedXss/tst3.js:1:35:1:39 | "foo" | receiverName | document | +| autogenerated/Xss/DomBasedXss/tst3.js:2:23:2:74 | decodeU ... str(1)) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:2:23:2:74 | decodeU ... str(1)) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:2:23:2:74 | decodeU ... str(1)) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:2:23:2:74 | decodeU ... str(1)) | calleeName | parse | +| autogenerated/Xss/DomBasedXss/tst3.js:2:23:2:74 | decodeU ... str(1)) | receiverName | JSON | +| autogenerated/Xss/DomBasedXss/tst3.js:2:42:2:73 | window. ... bstr(1) | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:2:42:2:73 | window. ... bstr(1) | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:2:42:2:73 | window. ... bstr(1) | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:2:42:2:73 | window. ... bstr(1) | calleeName | decodeURIComponent | +| autogenerated/Xss/DomBasedXss/tst3.js:2:72:2:72 | 1 | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:2:72:2:72 | 1 | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:2:72:2:72 | 1 | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:2:72:2:72 | 1 | calleeName | substr | +| autogenerated/Xss/DomBasedXss/tst3.js:4:18:4:22 | "src" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:4:18:4:22 | "src" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:4:18:4:22 | "src" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:4:18:4:22 | "src" | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:4:18:4:22 | "src" | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:4:25:4:32 | data.src | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:4:25:4:32 | data.src | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:4:25:4:32 | data.src | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:4:25:4:32 | data.src | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:4:25:4:32 | data.src | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:5:18:5:23 | "HREF" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:5:18:5:23 | "HREF" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:5:18:5:23 | "HREF" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:5:18:5:23 | "HREF" | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:5:18:5:23 | "HREF" | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:5:26:5:31 | data.p | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:5:26:5:31 | data.p | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:5:26:5:31 | data.p | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:5:26:5:31 | data.p | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:5:26:5:31 | data.p | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:6:18:6:24 | "width" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:6:18:6:24 | "width" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:6:18:6:24 | "width" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:6:18:6:24 | "width" | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:6:18:6:24 | "width" | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:6:27:6:32 | data.w | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:6:27:6:32 | data.w | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:6:27:6:32 | data.w | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:6:27:6:32 | data.w | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:6:27:6:32 | data.w | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:7:18:7:29 | "xlink:href" | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:7:18:7:29 | "xlink:href" | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:7:18:7:29 | "xlink:href" | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:7:18:7:29 | "xlink:href" | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:7:18:7:29 | "xlink:href" | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:7:32:7:37 | data.p | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:7:32:7:37 | data.p | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:7:32:7:37 | data.p | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:7:32:7:37 | data.p | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:7:32:7:37 | data.p | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:9:20:9:26 | 'xlink' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:9:20:9:26 | 'xlink' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:9:20:9:26 | 'xlink' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:9:20:9:26 | 'xlink' | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:9:20:9:26 | 'xlink' | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:9:29:9:34 | 'href' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:9:29:9:34 | 'href' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:9:29:9:34 | 'href' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:9:29:9:34 | 'href' | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:9:29:9:34 | 'href' | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:9:37:9:42 | data.p | argumentIndex | 2 | +| autogenerated/Xss/DomBasedXss/tst3.js:9:37:9:42 | data.p | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:9:37:9:42 | data.p | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:9:37:9:42 | data.p | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:9:37:9:42 | data.p | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:10:20:10:27 | 'foobar' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:10:20:10:27 | 'foobar' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:10:20:10:27 | 'foobar' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:10:20:10:27 | 'foobar' | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:10:20:10:27 | 'foobar' | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:10:30:10:35 | 'href' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:10:30:10:35 | 'href' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:10:30:10:35 | 'href' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:10:30:10:35 | 'href' | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:10:30:10:35 | 'href' | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:10:38:10:43 | data.p | argumentIndex | 2 | +| autogenerated/Xss/DomBasedXss/tst3.js:10:38:10:43 | data.p | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:10:38:10:43 | data.p | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:10:38:10:43 | data.p | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:10:38:10:43 | data.p | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:11:20:11:24 | 'baz' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:11:20:11:24 | 'baz' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:11:20:11:24 | 'baz' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:11:20:11:24 | 'baz' | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:11:20:11:24 | 'baz' | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:11:27:11:33 | 'width' | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:11:27:11:33 | 'width' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:11:27:11:33 | 'width' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:11:27:11:33 | 'width' | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:11:27:11:33 | 'width' | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:11:36:11:41 | data.w | argumentIndex | 2 | +| autogenerated/Xss/DomBasedXss/tst3.js:11:36:11:41 | data.w | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:11:36:11:41 | data.w | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:11:36:11:41 | data.w | calleeName | setAttributeNS | +| autogenerated/Xss/DomBasedXss/tst3.js:11:36:11:41 | data.w | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:15:20:15:20 | p | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst3.js:15:20:15:20 | p | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:15:20:15:20 | p | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:15:20:15:20 | p | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:15:20:15:20 | p | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst3.js:15:23:15:29 | data[p] | argumentIndex | 1 | +| autogenerated/Xss/DomBasedXss/tst3.js:15:23:15:29 | data[p] | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst3.js:15:23:15:29 | data[p] | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst3.js:15:23:15:29 | data[p] | calleeName | setAttribute | +| autogenerated/Xss/DomBasedXss/tst3.js:15:23:15:29 | data[p] | receiverName | foo | +| autogenerated/Xss/DomBasedXss/tst.js:5:5:5:10 | 'myId' | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst.js:5:5:5:10 | 'myId' | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst.js:5:5:5:10 | 'myId' | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst.js:5:5:5:10 | 'myId' | calleeName | $ | +| autogenerated/Xss/DomBasedXss/tst.js:5:5:5:10 | 'myId' | enclosingFunctionBody | target document location search $ myId html target document write document write $
    $
    $
    params URL document location searchParams $ name html params get name searchParams URLSearchParams target substring 1 $ name html searchParams get name | +| autogenerated/Xss/DomBasedXss/tst.js:5:5:5:10 | 'myId' | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/tst.js:5:18:5:23 | target | argumentIndex | 0 | +| autogenerated/Xss/DomBasedXss/tst.js:5:18:5:23 | target | calleeAccessPath | | +| autogenerated/Xss/DomBasedXss/tst.js:5:18:5:23 | target | calleeAccessPathWithStructuralInfo | | +| autogenerated/Xss/DomBasedXss/tst.js:5:18:5:23 | target | calleeName | html | +| autogenerated/Xss/DomBasedXss/tst.js:5:18:5:23 | target | enclosingFunctionBody | target document location search $ myId html target document write document write $
    $
    $
    params URL document location searchParams $ name html params get name searchParams URLSearchParams target substring 1 $ name html searchParams get name | +| autogenerated/Xss/DomBasedXss/tst.js:5:18:5:23 | target | enclosingFunctionName | test | +| autogenerated/Xss/DomBasedXss/tst.js:8:18:8:35 | " document write $
    $
    $
    params URL document location searchParams $ name html params get name searchParams URLSearchParams target substring 1 $ name html searchParams get name | +| autogenerated/Xss/DomBasedXss/tst.js:8:18:8:35 | "