Projects STRLCPY bearer Commits 4ef9a796
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■
    cmd/compilerules/main.go
    skipped 7 lines
    8 8   "github.com/bearer/bearer/pkg/ast/languages/ruby"
    9 9   "github.com/bearer/bearer/pkg/commands/process/settings"
    10 10   "github.com/bearer/bearer/pkg/flag"
     11 + "github.com/bearer/bearer/pkg/util/maputil"
    11 12   "github.com/bearer/bearer/pkg/util/souffle/compiler"
    12 13   filewriter "github.com/bearer/bearer/pkg/util/souffle/writer/file"
    13 14   "golang.org/x/exp/slices"
    skipped 23 lines
    37 38   writer := filewriter.New(ruleFile)
    38 39   
    39 40   var rules []*settings.Rule
    40  - for _, rule := range config.BuiltInRules {
     41 + for _, rule := range maputil.ToSortedSlice(config.BuiltInRules) {
    41 42   if slices.Contains(rule.Languages, "ruby") {
    42 43   rules = append(rules, rule)
    43 44   }
    44 45   }
    45  - for _, rule := range config.Rules {
     46 + for _, rule := range maputil.ToSortedSlice(config.Rules) {
    46 47   if slices.Contains(rule.Languages, "ruby") {
    47 48   rules = append(rules, rule)
    48 49   }
    skipped 8 lines
  • ■ ■ ■ ■ ■
    pkg/ast/languages/ruby/patterns/patterns.go
    skipped 83 lines
    84 84   var variableConstraints []writerbase.Literal
    85 85   var variableElements []writerbase.LiteralElement
    86 86   
     87 + seen := set.New[string]()
    87 88   for _, variable := range inputParams.Variables {
    88  - souffleVariables := w.variableNodes[variable.Name]
     89 + if !seen.Add(variable.Name) {
     90 + continue
     91 + }
    89 92   
     93 + souffleVariables := w.variableNodes[variable.Name]
    90 94   if len(souffleVariables) == 0 {
    91 95   continue
    92 96   }
    skipped 200 lines
  • pkg/souffle/rules/generated.cpp
    Unable to diff as the file is too large.
  • ■ ■ ■ ■ ■ ■
    souffle/generated/rules.dl
    1  -// rule ruby_third_parties_scout_apm
    2  -.decl Rule_Match_ruby_third_parties_scout_apm_0(node: AST_NodeId, node7: AST_NodeId)
    3  -.output Rule_Match_ruby_third_parties_scout_apm_0
    4  -Rule_Match_ruby_third_parties_scout_apm_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_user"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    5  -.decl Rule_Match_ruby_third_parties_scout_apm_1(node: AST_NodeId, node7: AST_NodeId)
    6  -.output Rule_Match_ruby_third_parties_scout_apm_1
    7  -Rule_Match_ruby_third_parties_scout_apm_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    8  -// rule ruby_rails_render_using_user_input_sanitized
    9  -.decl Rule_Match_ruby_rails_render_using_user_input_sanitized_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    10  -.output Rule_Match_ruby_rails_render_using_user_input_sanitized_0
    11  -Rule_Match_ruby_rails_render_using_user_input_sanitized_0(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     1 +// rule blowfish_init
     2 +.decl Rule_Match_blowfish_init_0(node: AST_NodeId)
     3 +.output Rule_Match_blowfish_init_0
     4 +Rule_Match_blowfish_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     5 +// rule google_dataflow_client_init
     6 +.decl Rule_Match_google_dataflow_client_init_1(node: AST_NodeId, node7: AST_NodeId)
     7 +.output Rule_Match_google_dataflow_client_init_1
     8 +Rule_Match_google_dataflow_client_init_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, _).
     9 +// rule google_dataflow_config
     10 +.decl Rule_Match_google_dataflow_config_0(node: AST_NodeId, node2: AST_NodeId)
     11 +.output Rule_Match_google_dataflow_config_0
     12 +Rule_Match_google_dataflow_config_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure").
     13 +.decl Rule_Match_google_dataflow_config_1(node: AST_NodeId, node2: AST_NodeId)
     14 +.output Rule_Match_google_dataflow_config_1
     15 +Rule_Match_google_dataflow_config_1(node1, node2) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     16 +// rule google_dataflow_description_classes
     17 +.decl Rule_Match_google_dataflow_description_classes_1(node: AST_NodeId, node2: AST_NodeId)
     18 +.output Rule_Match_google_dataflow_description_classes_1
     19 +Rule_Match_google_dataflow_description_classes_1(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get_snapshot").
     20 +// rule google_dataflow_message_text_classes
     21 +// rule google_dataflow_snapshots_client_init
     22 +.decl Rule_Match_google_dataflow_snapshots_client_init_1(node: AST_NodeId)
     23 +.output Rule_Match_google_dataflow_snapshots_client_init_1
     24 +Rule_Match_google_dataflow_snapshots_client_init_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "snapshots").
     25 +// rule google_dataflow_template_metadata_init
     26 +// rule google_dataflow_templates_service_client_init
     27 +.decl Rule_Match_google_dataflow_templates_service_client_init_1(node: AST_NodeId)
     28 +.output Rule_Match_google_dataflow_templates_service_client_init_1
     29 +Rule_Match_google_dataflow_templates_service_client_init_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "templates_service").
    12 30  // rule google_dataflow_value_classes
    13  -// rule ruby_lang_http_url_using_user_input_net_http_new
    14  -.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_new_1(node: AST_NodeId, node5: AST_NodeId)
    15  -.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_new_1
    16  -Rule_Match_ruby_lang_http_url_using_user_input_net_http_new_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    17  -// rule ruby_third_parties_open_telemetry
    18  -.decl Rule_Match_ruby_third_parties_open_telemetry_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    19  -.output Rule_Match_ruby_third_parties_open_telemetry_0
    20  -Rule_Match_ruby_third_parties_open_telemetry_0(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    21  -.decl Rule_Match_ruby_third_parties_open_telemetry_1(node: AST_NodeId, node6: AST_NodeId)
    22  -.output Rule_Match_ruby_third_parties_open_telemetry_1
    23  -Rule_Match_ruby_third_parties_open_telemetry_1(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    24  -// rule ruby_third_parties_bigquery_dataset
    25  -.decl Rule_Match_ruby_third_parties_bigquery_dataset_0(node: AST_NodeId, node2: AST_NodeId)
    26  -.output Rule_Match_ruby_third_parties_bigquery_dataset_0
    27  -Rule_Match_ruby_third_parties_bigquery_dataset_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "dataset").
    28  -// rule ruby_rails_insecure_smtp
    29  -// rule ruby_rails_insecure_communication
    30  -// rule ruby_lang_path_using_user_input
    31  -.decl Rule_Match_ruby_lang_path_using_user_input_0(node: AST_NodeId, node3: AST_NodeId)
    32  -.output Rule_Match_ruby_lang_path_using_user_input_0
    33  -Rule_Match_ruby_lang_path_using_user_input_0(node1, node3) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Dir"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    34  -.decl Rule_Match_ruby_lang_path_using_user_input_1(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    35  -.output Rule_Match_ruby_lang_path_using_user_input_1
    36  -Rule_Match_ruby_lang_path_using_user_input_1(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    37  -.decl Rule_Match_ruby_lang_path_using_user_input_2(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    38  -.output Rule_Match_ruby_lang_path_using_user_input_2
    39  -Rule_Match_ruby_lang_path_using_user_input_2(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    40  -.decl Rule_Match_ruby_lang_path_using_user_input_3(node: AST_NodeId, node5: AST_NodeId)
    41  -.output Rule_Match_ruby_lang_path_using_user_input_3
    42  -Rule_Match_ruby_lang_path_using_user_input_3(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    43  -.decl Rule_Match_ruby_lang_path_using_user_input_4(node: AST_NodeId, node4: AST_NodeId)
    44  -.output Rule_Match_ruby_lang_path_using_user_input_4
    45  -Rule_Match_ruby_lang_path_using_user_input_4(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "open"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    46  -.decl Rule_Match_ruby_lang_path_using_user_input_5(node: AST_NodeId, node5: AST_NodeId)
    47  -.output Rule_Match_ruby_lang_path_using_user_input_5
    48  -Rule_Match_ruby_lang_path_using_user_input_5(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PStore"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    49  -.decl Rule_Match_ruby_lang_path_using_user_input_6(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    50  -.output Rule_Match_ruby_lang_path_using_user_input_6
    51  -Rule_Match_ruby_lang_path_using_user_input_6(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    52  -.decl Rule_Match_ruby_lang_path_using_user_input_7(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    53  -.output Rule_Match_ruby_lang_path_using_user_input_7
    54  -Rule_Match_ruby_lang_path_using_user_input_7(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    55  -.decl Rule_Match_ruby_lang_path_using_user_input_8(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    56  -.output Rule_Match_ruby_lang_path_using_user_input_8
    57  -Rule_Match_ruby_lang_path_using_user_input_8(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "+"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    58  -.decl Rule_Match_ruby_lang_path_using_user_input_9(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    59  -.output Rule_Match_ruby_lang_path_using_user_input_9
    60  -Rule_Match_ruby_lang_path_using_user_input_9(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "/"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    61  -.decl Rule_Match_ruby_lang_path_using_user_input_10(node: AST_NodeId, node5: AST_NodeId)
    62  -.output Rule_Match_ruby_lang_path_using_user_input_10
    63  -Rule_Match_ruby_lang_path_using_user_input_10(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cd"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    64  -.decl Rule_Match_ruby_lang_path_using_user_input_11(node: AST_NodeId, node5: AST_NodeId)
    65  -.output Rule_Match_ruby_lang_path_using_user_input_11
    66  -Rule_Match_ruby_lang_path_using_user_input_11(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    67  -.decl Rule_Match_ruby_lang_path_using_user_input_12(node: AST_NodeId, node5: AST_NodeId)
    68  -.output Rule_Match_ruby_lang_path_using_user_input_12
    69  -Rule_Match_ruby_lang_path_using_user_input_12(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "default_system_path"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    70  -.decl Rule_Match_ruby_lang_path_using_user_input_13(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    71  -.output Rule_Match_ruby_lang_path_using_user_input_13
    72  -Rule_Match_ruby_lang_path_using_user_input_13(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    73  -.decl Rule_Match_ruby_lang_path_using_user_input_14(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    74  -.output Rule_Match_ruby_lang_path_using_user_input_14
    75  -Rule_Match_ruby_lang_path_using_user_input_14(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    76  -.decl Rule_Match_ruby_lang_path_using_user_input_15(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    77  -.output Rule_Match_ruby_lang_path_using_user_input_15
    78  -Rule_Match_ruby_lang_path_using_user_input_15(node1, node2, node4) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _), AST_ParentChild(node1, 1, node4), AST_NodeType(node4, _).
    79  -.decl Rule_Match_ruby_lang_path_using_user_input_16(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    80  -.output Rule_Match_ruby_lang_path_using_user_input_16
    81  -Rule_Match_ruby_lang_path_using_user_input_16(node1, node2, node5) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "transact"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    82  -.decl Rule_Match_ruby_lang_path_using_user_input_17(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    83  -.output Rule_Match_ruby_lang_path_using_user_input_17
    84  -Rule_Match_ruby_lang_path_using_user_input_17(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    85  -.decl Rule_Match_ruby_lang_path_using_user_input_18(node: AST_NodeId, node2: AST_NodeId, node6: AST_NodeId)
    86  -.output Rule_Match_ruby_lang_path_using_user_input_18
    87  -Rule_Match_ruby_lang_path_using_user_input_18(node1, node2, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "hash"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
    88  -.decl Rule_Match_ruby_lang_path_using_user_input_19(node: AST_NodeId, node4: AST_NodeId)
    89  -.output Rule_Match_ruby_lang_path_using_user_input_19
    90  -Rule_Match_ruby_lang_path_using_user_input_19(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "send_file"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    91  -// rule ruby_third_parties_clickhouse_insert_rows
    92  -// rule ruby_rails_logger
    93  -.decl Rule_Match_ruby_rails_logger_0(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    94  -.output Rule_Match_ruby_rails_logger_0
    95  -Rule_Match_ruby_rails_logger_0(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Rails"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "logger"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    96  -// rule ruby_third_parties_bigquery_insert_async
    97  -.decl Rule_Match_ruby_third_parties_bigquery_insert_async_0(node: AST_NodeId, node2: AST_NodeId)
    98  -.output Rule_Match_ruby_third_parties_bigquery_insert_async_0
    99  -Rule_Match_ruby_third_parties_bigquery_insert_async_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
    100  -.decl Rule_Match_ruby_third_parties_bigquery_insert_async_1(node: AST_NodeId, node2: AST_NodeId)
    101  -.output Rule_Match_ruby_third_parties_bigquery_insert_async_1
    102  -Rule_Match_ruby_third_parties_bigquery_insert_async_1(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
    103  -.decl Rule_Match_ruby_third_parties_bigquery_insert_async_2(node: AST_NodeId, node2: AST_NodeId)
    104  -.output Rule_Match_ruby_third_parties_bigquery_insert_async_2
    105  -Rule_Match_ruby_third_parties_bigquery_insert_async_2(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     31 +// rule open_telemetry_current_span
     32 +.decl Rule_Match_open_telemetry_current_span_0(node: AST_NodeId)
     33 +.output Rule_Match_open_telemetry_current_span_0
     34 +Rule_Match_open_telemetry_current_span_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "OpenTelemetry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Trace"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "current_span").
     35 +.decl Rule_Match_open_telemetry_current_span_1(node: AST_NodeId)
     36 +.output Rule_Match_open_telemetry_current_span_1
     37 +Rule_Match_open_telemetry_current_span_1(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    106 38  // rule openssl_dsa_init
    107 39  .decl Rule_Match_openssl_dsa_init_0(node: AST_NodeId)
    108 40  .output Rule_Match_openssl_dsa_init_0
    109 41  Rule_Match_openssl_dsa_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    110  -// rule ruby_lang_http_insecure_curb
    111  -.decl Rule_Match_ruby_lang_http_insecure_curb_0(node: AST_NodeId)
    112  -.output Rule_Match_ruby_lang_http_insecure_curb_0
    113  -Rule_Match_ruby_lang_http_insecure_curb_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    114  -// rule ruby_third_parties_bigquery_table
    115  -.decl Rule_Match_ruby_third_parties_bigquery_table_0(node: AST_NodeId, node2: AST_NodeId)
    116  -.output Rule_Match_ruby_third_parties_bigquery_table_0
    117  -Rule_Match_ruby_third_parties_bigquery_table_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "table").
    118  -.decl Rule_Match_ruby_third_parties_bigquery_table_1(node: AST_NodeId, node2: AST_NodeId)
    119  -.output Rule_Match_ruby_third_parties_bigquery_table_1
    120  -Rule_Match_ruby_third_parties_bigquery_table_1(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "create_table").
    121  -// rule ruby_third_parties_airbrake
    122  -.decl Rule_Match_ruby_third_parties_airbrake_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    123  -.output Rule_Match_ruby_third_parties_airbrake_0
    124  -Rule_Match_ruby_third_parties_airbrake_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    125  -.decl Rule_Match_ruby_third_parties_airbrake_2(node: AST_NodeId, node5: AST_NodeId)
    126  -.output Rule_Match_ruby_third_parties_airbrake_2
    127  -Rule_Match_ruby_third_parties_airbrake_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "merge_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    128  -.decl Rule_Match_ruby_third_parties_airbrake_3(node: AST_NodeId, node3: AST_NodeId)
    129  -.output Rule_Match_ruby_third_parties_airbrake_3
    130  -Rule_Match_ruby_third_parties_airbrake_3(node1, node3) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_airbrake"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    131  -// rule ruby_third_parties_elasticsearch
    132  -.decl Rule_Match_ruby_third_parties_elasticsearch_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
    133  -.output Rule_Match_ruby_third_parties_elasticsearch_0
    134  -Rule_Match_ruby_third_parties_elasticsearch_0(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
    135  -.decl Rule_Match_ruby_third_parties_elasticsearch_1(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node7: AST_NodeId)
    136  -.output Rule_Match_ruby_third_parties_elasticsearch_1
    137  -Rule_Match_ruby_third_parties_elasticsearch_1(node1, node2, node3, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
     42 +// rule openssl_rsa_init
     43 +// rule rc4_init
     44 +.decl Rule_Match_rc4_init_0(node: AST_NodeId)
     45 +.output Rule_Match_rc4_init_0
     46 +Rule_Match_rc4_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     47 +// rule ruby_lang_cookies
     48 +.decl Rule_Match_ruby_lang_cookies_0(node: AST_NodeId, node5: AST_NodeId)
     49 +.output Rule_Match_ruby_lang_cookies_0
     50 +Rule_Match_ruby_lang_cookies_0(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cookies"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     51 +.decl Rule_Match_ruby_lang_cookies_1(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
     52 +.output Rule_Match_ruby_lang_cookies_1
     53 +Rule_Match_ruby_lang_cookies_1(node1, node5, node7) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "cookies"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, _), AST_ParentChild(node2, 0, node6), AST_NodeType(node6, _), AST_NodeField(node1, node7, "right"), AST_NodeType(node7, _).
    138 54  // rule ruby_lang_deserialization_of_user_input
    139 55  .decl Rule_Match_ruby_lang_deserialization_of_user_input_0(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    140 56  .output Rule_Match_ruby_lang_deserialization_of_user_input_0
    skipped 4 lines
    145 61  .decl Rule_Match_ruby_lang_deserialization_of_user_input_2(node: AST_NodeId, node5: AST_NodeId)
    146 62  .output Rule_Match_ruby_lang_deserialization_of_user_input_2
    147 63  Rule_Match_ruby_lang_deserialization_of_user_input_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Oj"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "object_load"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    148  -// rule ruby_rails_session_key_using_user_input_user_input
    149  -.decl Rule_Match_ruby_rails_session_key_using_user_input_user_input_0(node: AST_NodeId)
    150  -.output Rule_Match_ruby_rails_session_key_using_user_input_user_input_0
    151  -Rule_Match_ruby_rails_session_key_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    152  -.decl Rule_Match_ruby_rails_session_key_using_user_input_user_input_1(node: AST_NodeId)
    153  -.output Rule_Match_ruby_rails_session_key_using_user_input_user_input_1
    154  -Rule_Match_ruby_rails_session_key_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    155  -.decl Rule_Match_ruby_rails_session_key_using_user_input_user_input_2(node: AST_NodeId)
    156  -.output Rule_Match_ruby_rails_session_key_using_user_input_user_input_2
    157  -Rule_Match_ruby_rails_session_key_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    158  -// rule google_dataflow_template_metadata_init
    159  -// rule ruby_lang_path_using_user_input_shell_cmd_proc
    160  -.decl Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_0(node: AST_NodeId, node2: AST_NodeId)
    161  -.output Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_0
    162  -Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
    163  -.decl Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_1(node: AST_NodeId)
    164  -.output Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_1
    165  -Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    166  -// rule ruby_third_parties_bigquery_client
    167  -.decl Rule_Match_ruby_third_parties_bigquery_client_0(node: AST_NodeId)
    168  -.output Rule_Match_ruby_third_parties_bigquery_client_0
    169  -Rule_Match_ruby_third_parties_bigquery_client_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    170  -.decl Rule_Match_ruby_third_parties_bigquery_client_1(node: AST_NodeId)
    171  -.output Rule_Match_ruby_third_parties_bigquery_client_1
    172  -Rule_Match_ruby_third_parties_bigquery_client_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    173  -// rule ruby_lang_weak_encryption_with_data
    174  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_0(node: AST_NodeId, node7: AST_NodeId)
    175  -.output Rule_Match_ruby_lang_weak_encryption_with_data_0
    176  -Rule_Match_ruby_lang_weak_encryption_with_data_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    177  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_1(node: AST_NodeId, node7: AST_NodeId)
    178  -.output Rule_Match_ruby_lang_weak_encryption_with_data_1
    179  -Rule_Match_ruby_lang_weak_encryption_with_data_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    180  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_2(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    181  -.output Rule_Match_ruby_lang_weak_encryption_with_data_2
    182  -Rule_Match_ruby_lang_weak_encryption_with_data_2(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    183  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_3(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    184  -.output Rule_Match_ruby_lang_weak_encryption_with_data_3
    185  -Rule_Match_ruby_lang_weak_encryption_with_data_3(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    186  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_4(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
    187  -.output Rule_Match_ruby_lang_weak_encryption_with_data_4
    188  -Rule_Match_ruby_lang_weak_encryption_with_data_4(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    189  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_5(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
    190  -.output Rule_Match_ruby_lang_weak_encryption_with_data_5
    191  -Rule_Match_ruby_lang_weak_encryption_with_data_5(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    192  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_6(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    193  -.output Rule_Match_ruby_lang_weak_encryption_with_data_6
    194  -Rule_Match_ruby_lang_weak_encryption_with_data_6(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    195  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_7(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
    196  -.output Rule_Match_ruby_lang_weak_encryption_with_data_7
    197  -Rule_Match_ruby_lang_weak_encryption_with_data_7(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    198  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_8(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    199  -.output Rule_Match_ruby_lang_weak_encryption_with_data_8
    200  -Rule_Match_ruby_lang_weak_encryption_with_data_8(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    201  -// rule ruby_third_parties_rollbar_scope
    202  -.decl Rule_Match_ruby_third_parties_rollbar_scope_0(node: AST_NodeId)
    203  -.output Rule_Match_ruby_third_parties_rollbar_scope_0
    204  -Rule_Match_ruby_third_parties_rollbar_scope_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope").
     64 +// rule ruby_lang_deserialization_of_user_input_sanitized_user_input
     65 +.decl Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_0(node: AST_NodeId)
     66 +.output Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_0
     67 +Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JSON"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "parse").
     68 +.decl Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_1(node: AST_NodeId)
     69 +.output Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_1
     70 +Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Nokogiri"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "XML").
     71 +// rule ruby_lang_deserialization_of_user_input_user_input
     72 +.decl Rule_Match_ruby_lang_deserialization_of_user_input_user_input_0(node: AST_NodeId)
     73 +.output Rule_Match_ruby_lang_deserialization_of_user_input_user_input_0
     74 +Rule_Match_ruby_lang_deserialization_of_user_input_user_input_0(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     75 +.decl Rule_Match_ruby_lang_deserialization_of_user_input_user_input_1(node: AST_NodeId, node1: AST_NodeId)
     76 +.output Rule_Match_ruby_lang_deserialization_of_user_input_user_input_1
     77 +Rule_Match_ruby_lang_deserialization_of_user_input_user_input_1(node1, node1) :- AST_NodeType(node1, _).
    205 78  // rule ruby_lang_eval_using_user_input
    206 79  .decl Rule_Match_ruby_lang_eval_using_user_input_0(node: AST_NodeId, node7: AST_NodeId)
    207 80  .output Rule_Match_ruby_lang_eval_using_user_input_0
    skipped 4 lines
    212 85  .decl Rule_Match_ruby_lang_eval_using_user_input_2(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    213 86  .output Rule_Match_ruby_lang_eval_using_user_input_2
    214 87  Rule_Match_ruby_lang_eval_using_user_input_2(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    215  -// rule ruby_rails_render_using_user_input_user_input
    216  -.decl Rule_Match_ruby_rails_render_using_user_input_user_input_0(node: AST_NodeId)
    217  -.output Rule_Match_ruby_rails_render_using_user_input_user_input_0
    218  -Rule_Match_ruby_rails_render_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    219  -.decl Rule_Match_ruby_rails_render_using_user_input_user_input_1(node: AST_NodeId)
    220  -.output Rule_Match_ruby_rails_render_using_user_input_user_input_1
    221  -Rule_Match_ruby_rails_render_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    222  -.decl Rule_Match_ruby_rails_render_using_user_input_user_input_2(node: AST_NodeId)
    223  -.output Rule_Match_ruby_rails_render_using_user_input_user_input_2
    224  -Rule_Match_ruby_rails_render_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    225  -// rule ruby_rails_insecure_disabling_of_callback
    226  -.decl Rule_Match_ruby_rails_insecure_disabling_of_callback_0(node: AST_NodeId, node2: AST_NodeId)
    227  -.output Rule_Match_ruby_rails_insecure_disabling_of_callback_0
    228  -Rule_Match_ruby_rails_insecure_disabling_of_callback_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    229  -// rule ruby_rails_http_verb_confusion
    230  -.decl Rule_Match_ruby_rails_http_verb_confusion_0(node: AST_NodeId)
    231  -.output Rule_Match_ruby_rails_http_verb_confusion_0
    232  -Rule_Match_ruby_rails_http_verb_confusion_0(node1) :- AST_NodeType(node1, "if"), !AST_NodeField(node1, _, "consequence"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?"), AST_NodeField(node1, node5, "alternative"), AST_NodeType(node5, "else").
    233  -.decl Rule_Match_ruby_rails_http_verb_confusion_1(node: AST_NodeId)
    234  -.output Rule_Match_ruby_rails_http_verb_confusion_1
    235  -Rule_Match_ruby_rails_http_verb_confusion_1(node1) :- AST_NodeType(node1, "unless"), !AST_NodeField(node1, _, "consequence"), !AST_NodeField(node1, _, "alternative"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?").
    236  -.decl Rule_Match_ruby_rails_http_verb_confusion_2(node: AST_NodeId)
    237  -.output Rule_Match_ruby_rails_http_verb_confusion_2
    238  -Rule_Match_ruby_rails_http_verb_confusion_2(node1) :- AST_NodeType(node1, "unless_modifier"), AST_NodeField(node1, node2, "body"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "condition"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "request"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "get?").
    239  -// rule ruby_third_parties_rollbar
    240  -.decl Rule_Match_ruby_third_parties_rollbar_0(node: AST_NodeId, node5: AST_NodeId)
    241  -.output Rule_Match_ruby_third_parties_rollbar_0
    242  -Rule_Match_ruby_third_parties_rollbar_0(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "rollbar_context"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    243  -.decl Rule_Match_ruby_third_parties_rollbar_1(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    244  -.output Rule_Match_ruby_third_parties_rollbar_1
    245  -Rule_Match_ruby_third_parties_rollbar_1(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    246  -.decl Rule_Match_ruby_third_parties_rollbar_2(node: AST_NodeId, node6: AST_NodeId)
    247  -.output Rule_Match_ruby_third_parties_rollbar_2
    248  -Rule_Match_ruby_third_parties_rollbar_2(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "log"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    249  -.decl Rule_Match_ruby_third_parties_rollbar_3(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    250  -.output Rule_Match_ruby_third_parties_rollbar_3
    251  -Rule_Match_ruby_third_parties_rollbar_3(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    252  -.decl Rule_Match_ruby_third_parties_rollbar_4(node: AST_NodeId, node5: AST_NodeId)
    253  -.output Rule_Match_ruby_third_parties_rollbar_4
    254  -Rule_Match_ruby_third_parties_rollbar_4(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scoped"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     88 +// rule ruby_lang_eval_using_user_input_user_input
     89 +.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_0(node: AST_NodeId)
     90 +.output Rule_Match_ruby_lang_eval_using_user_input_user_input_0
     91 +Rule_Match_ruby_lang_eval_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     92 +.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_1(node: AST_NodeId)
     93 +.output Rule_Match_ruby_lang_eval_using_user_input_user_input_1
     94 +Rule_Match_ruby_lang_eval_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     95 +.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_2(node: AST_NodeId)
     96 +.output Rule_Match_ruby_lang_eval_using_user_input_user_input_2
     97 +Rule_Match_ruby_lang_eval_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     98 +.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_3(node: AST_NodeId)
     99 +.output Rule_Match_ruby_lang_eval_using_user_input_user_input_3
     100 +Rule_Match_ruby_lang_eval_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     101 +// rule ruby_lang_exception
     102 +.decl Rule_Match_ruby_lang_exception_0(node: AST_NodeId, node4: AST_NodeId)
     103 +.output Rule_Match_ruby_lang_exception_0
     104 +Rule_Match_ruby_lang_exception_0(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "raise"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     105 +// rule ruby_lang_exec_using_user_input
     106 +.decl Rule_Match_ruby_lang_exec_using_user_input_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     107 +.output Rule_Match_ruby_lang_exec_using_user_input_0
     108 +Rule_Match_ruby_lang_exec_using_user_input_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     109 +.decl Rule_Match_ruby_lang_exec_using_user_input_1(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     110 +.output Rule_Match_ruby_lang_exec_using_user_input_1
     111 +Rule_Match_ruby_lang_exec_using_user_input_1(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     112 +.decl Rule_Match_ruby_lang_exec_using_user_input_2(node: AST_NodeId, node5: AST_NodeId)
     113 +.output Rule_Match_ruby_lang_exec_using_user_input_2
     114 +Rule_Match_ruby_lang_exec_using_user_input_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "popen"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     115 +.decl Rule_Match_ruby_lang_exec_using_user_input_3(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     116 +.output Rule_Match_ruby_lang_exec_using_user_input_3
     117 +Rule_Match_ruby_lang_exec_using_user_input_3(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Process"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     118 +.decl Rule_Match_ruby_lang_exec_using_user_input_4(node: AST_NodeId, node5: AST_NodeId)
     119 +.output Rule_Match_ruby_lang_exec_using_user_input_4
     120 +Rule_Match_ruby_lang_exec_using_user_input_4(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Open3"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     121 +.decl Rule_Match_ruby_lang_exec_using_user_input_5(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
     122 +.output Rule_Match_ruby_lang_exec_using_user_input_5
     123 +Rule_Match_ruby_lang_exec_using_user_input_5(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     124 +.decl Rule_Match_ruby_lang_exec_using_user_input_6(node: AST_NodeId, node5: AST_NodeId)
     125 +.output Rule_Match_ruby_lang_exec_using_user_input_6
     126 +Rule_Match_ruby_lang_exec_using_user_input_6(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PTY"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "spawn"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     127 +.decl Rule_Match_ruby_lang_exec_using_user_input_7(node: AST_NodeId, node2: AST_NodeId)
     128 +.output Rule_Match_ruby_lang_exec_using_user_input_7
     129 +Rule_Match_ruby_lang_exec_using_user_input_7(node1, node2) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, _).
     130 +.decl Rule_Match_ruby_lang_exec_using_user_input_8(node: AST_NodeId)
     131 +.output Rule_Match_ruby_lang_exec_using_user_input_8
     132 +Rule_Match_ruby_lang_exec_using_user_input_8(node1) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "string_content"), AST_NodeContent(node2, "{CurioVar0").
     133 +.decl Rule_Match_ruby_lang_exec_using_user_input_9(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     134 +.output Rule_Match_ruby_lang_exec_using_user_input_9
     135 +Rule_Match_ruby_lang_exec_using_user_input_9(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     136 +.decl Rule_Match_ruby_lang_exec_using_user_input_10(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
     137 +.output Rule_Match_ruby_lang_exec_using_user_input_10
     138 +Rule_Match_ruby_lang_exec_using_user_input_10(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     139 +.decl Rule_Match_ruby_lang_exec_using_user_input_11(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     140 +.output Rule_Match_ruby_lang_exec_using_user_input_11
     141 +Rule_Match_ruby_lang_exec_using_user_input_11(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "system"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     142 +// rule ruby_lang_exec_using_user_input_shell
     143 +.decl Rule_Match_ruby_lang_exec_using_user_input_shell_0(node: AST_NodeId)
     144 +.output Rule_Match_ruby_lang_exec_using_user_input_shell_0
     145 +Rule_Match_ruby_lang_exec_using_user_input_shell_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     146 +// rule ruby_lang_exec_using_user_input_shell_cmd_proc
     147 +.decl Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_0(node: AST_NodeId, node2: AST_NodeId)
     148 +.output Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_0
     149 +Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
     150 +.decl Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_1(node: AST_NodeId)
     151 +.output Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_1
     152 +Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    255 153  // rule ruby_lang_exec_using_user_input_user_input
    256 154  .decl Rule_Match_ruby_lang_exec_using_user_input_user_input_0(node: AST_NodeId)
    257 155  .output Rule_Match_ruby_lang_exec_using_user_input_user_input_0
    skipped 7 lines
    265 163  .decl Rule_Match_ruby_lang_exec_using_user_input_user_input_3(node: AST_NodeId)
    266 164  .output Rule_Match_ruby_lang_exec_using_user_input_user_input_3
    267 165  Rule_Match_ruby_lang_exec_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    268  -// rule ruby_third_parties_algolia_client
    269  -.decl Rule_Match_ruby_third_parties_algolia_client_0(node: AST_NodeId)
    270  -.output Rule_Match_ruby_third_parties_algolia_client_0
    271  -Rule_Match_ruby_third_parties_algolia_client_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Algolia"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Search"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Client"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "create").
    272  -// rule ruby_third_parties_sentry
    273  -.decl Rule_Match_ruby_third_parties_sentry_0(node: AST_NodeId, node7: AST_NodeId)
    274  -.output Rule_Match_ruby_third_parties_sentry_0
    275  -Rule_Match_ruby_third_parties_sentry_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Sentry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Breadcrumb"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    276  -.decl Rule_Match_ruby_third_parties_sentry_1(node: AST_NodeId, node5: AST_NodeId)
    277  -.output Rule_Match_ruby_third_parties_sentry_1
    278  -Rule_Match_ruby_third_parties_sentry_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "capture_message"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    279  -.decl Rule_Match_ruby_third_parties_sentry_3(node: AST_NodeId, node6: AST_NodeId)
    280  -.output Rule_Match_ruby_third_parties_sentry_3
    281  -Rule_Match_ruby_third_parties_sentry_3(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    282  -.decl Rule_Match_ruby_third_parties_sentry_8(node: AST_NodeId, node5: AST_NodeId)
    283  -.output Rule_Match_ruby_third_parties_sentry_8
    284  -Rule_Match_ruby_third_parties_sentry_8(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_extras"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    285  -.decl Rule_Match_ruby_third_parties_sentry_13(node: AST_NodeId, node5: AST_NodeId)
    286  -.output Rule_Match_ruby_third_parties_sentry_13
    287  -Rule_Match_ruby_third_parties_sentry_13(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tags"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    288  -.decl Rule_Match_ruby_third_parties_sentry_16(node: AST_NodeId, node5: AST_NodeId)
    289  -.output Rule_Match_ruby_third_parties_sentry_16
    290  -Rule_Match_ruby_third_parties_sentry_16(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_user"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    291  -// rule ruby_lang_deserialization_of_user_input_user_input
    292  -.decl Rule_Match_ruby_lang_deserialization_of_user_input_user_input_0(node: AST_NodeId)
    293  -.output Rule_Match_ruby_lang_deserialization_of_user_input_user_input_0
    294  -Rule_Match_ruby_lang_deserialization_of_user_input_user_input_0(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    295  -.decl Rule_Match_ruby_lang_deserialization_of_user_input_user_input_1(node: AST_NodeId, node1: AST_NodeId)
    296  -.output Rule_Match_ruby_lang_deserialization_of_user_input_user_input_1
    297  -Rule_Match_ruby_lang_deserialization_of_user_input_user_input_1(node1, node1) :- AST_NodeType(node1, _).
    298  -// rule ruby_rails_password_length
     166 +// rule ruby_lang_file_generation
     167 +.decl Rule_Match_ruby_lang_file_generation_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     168 +.output Rule_Match_ruby_lang_file_generation_0
     169 +Rule_Match_ruby_lang_file_generation_0(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     170 +.decl Rule_Match_ruby_lang_file_generation_1(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     171 +.output Rule_Match_ruby_lang_file_generation_1
     172 +Rule_Match_ruby_lang_file_generation_1(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     173 +// rule ruby_lang_file_generation_file
     174 +.decl Rule_Match_ruby_lang_file_generation_file_0(node: AST_NodeId)
     175 +.output Rule_Match_ruby_lang_file_generation_file_0
     176 +Rule_Match_ruby_lang_file_generation_file_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate").
     177 +.decl Rule_Match_ruby_lang_file_generation_file_1(node: AST_NodeId)
     178 +.output Rule_Match_ruby_lang_file_generation_file_1
     179 +Rule_Match_ruby_lang_file_generation_file_1(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     180 +.decl Rule_Match_ruby_lang_file_generation_file_2(node: AST_NodeId)
     181 +.output Rule_Match_ruby_lang_file_generation_file_2
     182 +Rule_Match_ruby_lang_file_generation_file_2(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
     183 +.decl Rule_Match_ruby_lang_file_generation_file_3(node: AST_NodeId)
     184 +.output Rule_Match_ruby_lang_file_generation_file_3
     185 +Rule_Match_ruby_lang_file_generation_file_3(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     186 +.decl Rule_Match_ruby_lang_file_generation_file_4(node: AST_NodeId)
     187 +.output Rule_Match_ruby_lang_file_generation_file_4
     188 +Rule_Match_ruby_lang_file_generation_file_4(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
     189 +.decl Rule_Match_ruby_lang_file_generation_file_5(node: AST_NodeId)
     190 +.output Rule_Match_ruby_lang_file_generation_file_5
     191 +Rule_Match_ruby_lang_file_generation_file_5(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     192 +.decl Rule_Match_ruby_lang_file_generation_file_6(node: AST_NodeId)
     193 +.output Rule_Match_ruby_lang_file_generation_file_6
     194 +Rule_Match_ruby_lang_file_generation_file_6(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
     195 +.decl Rule_Match_ruby_lang_file_generation_file_7(node: AST_NodeId)
     196 +.output Rule_Match_ruby_lang_file_generation_file_7
     197 +Rule_Match_ruby_lang_file_generation_file_7(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     198 +// rule ruby_lang_ftp_using_user_input
     199 +.decl Rule_Match_ruby_lang_ftp_using_user_input_0(node: AST_NodeId, node7: AST_NodeId)
     200 +.output Rule_Match_ruby_lang_ftp_using_user_input_0
     201 +Rule_Match_ruby_lang_ftp_using_user_input_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     202 +.decl Rule_Match_ruby_lang_ftp_using_user_input_1(node: AST_NodeId, node7: AST_NodeId)
     203 +.output Rule_Match_ruby_lang_ftp_using_user_input_1
     204 +Rule_Match_ruby_lang_ftp_using_user_input_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     205 +.decl Rule_Match_ruby_lang_ftp_using_user_input_2(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     206 +.output Rule_Match_ruby_lang_ftp_using_user_input_2
     207 +Rule_Match_ruby_lang_ftp_using_user_input_2(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     208 +// rule ruby_lang_ftp_using_user_input_ftp
     209 +.decl Rule_Match_ruby_lang_ftp_using_user_input_ftp_0(node: AST_NodeId)
     210 +.output Rule_Match_ruby_lang_ftp_using_user_input_ftp_0
     211 +Rule_Match_ruby_lang_ftp_using_user_input_ftp_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     212 +.decl Rule_Match_ruby_lang_ftp_using_user_input_ftp_1(node: AST_NodeId)
     213 +.output Rule_Match_ruby_lang_ftp_using_user_input_ftp_1
     214 +Rule_Match_ruby_lang_ftp_using_user_input_ftp_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
     215 +.decl Rule_Match_ruby_lang_ftp_using_user_input_ftp_2(node: AST_NodeId)
     216 +.output Rule_Match_ruby_lang_ftp_using_user_input_ftp_2
     217 +Rule_Match_ruby_lang_ftp_using_user_input_ftp_2(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
     218 +// rule ruby_lang_ftp_using_user_input_user_input
     219 +.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_0(node: AST_NodeId)
     220 +.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_0
     221 +Rule_Match_ruby_lang_ftp_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     222 +.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_1(node: AST_NodeId)
     223 +.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_1
     224 +Rule_Match_ruby_lang_ftp_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     225 +.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_2(node: AST_NodeId)
     226 +.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_2
     227 +Rule_Match_ruby_lang_ftp_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     228 +.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_3(node: AST_NodeId)
     229 +.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_3
     230 +Rule_Match_ruby_lang_ftp_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     231 +// rule ruby_lang_hardcoded_secret
     232 +.decl Rule_Match_ruby_lang_hardcoded_secret_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     233 +.output Rule_Match_ruby_lang_hardcoded_secret_0
     234 +Rule_Match_ruby_lang_hardcoded_secret_0(node1, node2, node3) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "right"), AST_NodeType(node3, _).
     235 +.decl Rule_Match_ruby_lang_hardcoded_secret_1(node: AST_NodeId, node5: AST_NodeId)
     236 +.output Rule_Match_ruby_lang_hardcoded_secret_1
     237 +Rule_Match_ruby_lang_hardcoded_secret_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     238 +.decl Rule_Match_ruby_lang_hardcoded_secret_2(node: AST_NodeId, node5: AST_NodeId, node6: AST_NodeId)
     239 +.output Rule_Match_ruby_lang_hardcoded_secret_2
     240 +Rule_Match_ruby_lang_hardcoded_secret_2(node1, node5, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, node5, "key"), AST_NodeType(node5, _), AST_NodeField(node4, node6, "value"), AST_NodeType(node6, _).
     241 +.decl Rule_Match_ruby_lang_hardcoded_secret_3(node: AST_NodeId, node3: AST_NodeId)
     242 +.output Rule_Match_ruby_lang_hardcoded_secret_3
     243 +Rule_Match_ruby_lang_hardcoded_secret_3(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar0"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar0")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
     244 +.decl Rule_Match_ruby_lang_hardcoded_secret_4(node: AST_NodeId, node3: AST_NodeId, node4: AST_NodeId)
     245 +.output Rule_Match_ruby_lang_hardcoded_secret_4
     246 +Rule_Match_ruby_lang_hardcoded_secret_4(node1, node3, node4) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, node3, "key"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "value"), AST_NodeType(node4, _).
     247 +// rule ruby_lang_http_get_params
     248 +.decl Rule_Match_ruby_lang_http_get_params_0(node: AST_NodeId, node5: AST_NodeId)
     249 +.output Rule_Match_ruby_lang_http_get_params_0
     250 +Rule_Match_ruby_lang_http_get_params_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode_www_form"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     251 +.decl Rule_Match_ruby_lang_http_get_params_1(node: AST_NodeId, node4: AST_NodeId)
     252 +.output Rule_Match_ruby_lang_http_get_params_1
     253 +Rule_Match_ruby_lang_http_get_params_1(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     254 +.decl Rule_Match_ruby_lang_http_get_params_2(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     255 +.output Rule_Match_ruby_lang_http_get_params_2
     256 +Rule_Match_ruby_lang_http_get_params_2(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    299 257  // rule ruby_lang_http_insecure
    300 258  .decl Rule_Match_ruby_lang_http_insecure_0(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    301 259  .output Rule_Match_ruby_lang_http_insecure_0
    skipped 31 lines
    333 291  .decl Rule_Match_ruby_lang_http_insecure_12(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    334 292  .output Rule_Match_ruby_lang_http_insecure_12
    335 293  Rule_Match_ruby_lang_http_insecure_12(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    336  -// rule ruby_third_parties_clickhouse
    337  -.decl Rule_Match_ruby_third_parties_clickhouse_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    338  -.output Rule_Match_ruby_third_parties_clickhouse_0
    339  -Rule_Match_ruby_third_parties_clickhouse_0(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    340  -// rule ruby_lang_exec_using_user_input_shell
    341  -.decl Rule_Match_ruby_lang_exec_using_user_input_shell_0(node: AST_NodeId)
    342  -.output Rule_Match_ruby_lang_exec_using_user_input_shell_0
    343  -Rule_Match_ruby_lang_exec_using_user_input_shell_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    344  -// rule ruby_rails_permissive_regex_validation
    345  -.decl Rule_Match_ruby_rails_permissive_regex_validation_0(node: AST_NodeId, node7: AST_NodeId)
    346  -.output Rule_Match_ruby_rails_permissive_regex_validation_0
    347  -Rule_Match_ruby_rails_permissive_regex_validation_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":format"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "format")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp1, "key"), (AST_NodeType(tmp1, "simple_symbol"), AST_NodeContent(tmp1, ":with"); AST_NodeType(tmp1, "hash_key_symbol"), AST_NodeContent(tmp1, "with")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
    348  -.decl Rule_Match_ruby_rails_permissive_regex_validation_1(node: AST_NodeId, node5: AST_NodeId)
    349  -.output Rule_Match_ruby_rails_permissive_regex_validation_1
    350  -Rule_Match_ruby_rails_permissive_regex_validation_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates_format_of"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":with"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "with")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    351  -// rule ruby_lang_path_using_user_input_shell_cmd_trans_user_input
    352  -.decl Rule_Match_ruby_lang_path_using_user_input_shell_cmd_trans_user_input_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    353  -.output Rule_Match_ruby_lang_path_using_user_input_shell_cmd_trans_user_input_0
    354  -Rule_Match_ruby_lang_path_using_user_input_shell_cmd_trans_user_input_0(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    355  -// rule ruby_lang_reflection_using_user_input_user_input
    356  -.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_0(node: AST_NodeId)
    357  -.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_0
    358  -Rule_Match_ruby_lang_reflection_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    359  -.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_1(node: AST_NodeId)
    360  -.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_1
    361  -Rule_Match_ruby_lang_reflection_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    362  -.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_2(node: AST_NodeId)
    363  -.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_2
    364  -Rule_Match_ruby_lang_reflection_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    365  -.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_3(node: AST_NodeId)
    366  -.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_3
    367  -Rule_Match_ruby_lang_reflection_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    368  -// rule google_dataflow_message_text_classes
    369  -// rule ruby_rails_default_encryption
    370  -.decl Rule_Match_ruby_rails_default_encryption_0(node: AST_NodeId, node6: AST_NodeId)
    371  -.output Rule_Match_ruby_rails_default_encryption_0
    372  -Rule_Match_ruby_rails_default_encryption_0(node1, node6) :- AST_NodeType(node1, "class"), !AST_NodeField(node1, _, "superclass"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), !AST_NodeField(node3, _, "receiver"), AST_NodeField(node3, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "encrypts"), AST_NodeField(node3, node5, "arguments"), AST_NodeType(node5, "argument_list"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    373  -// rule ruby_lang_hardcoded_secret
    374  -.decl Rule_Match_ruby_lang_hardcoded_secret_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    375  -.output Rule_Match_ruby_lang_hardcoded_secret_0
    376  -Rule_Match_ruby_lang_hardcoded_secret_0(node1, node2, node3) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "right"), AST_NodeType(node3, _).
    377  -.decl Rule_Match_ruby_lang_hardcoded_secret_1(node: AST_NodeId, node5: AST_NodeId)
    378  -.output Rule_Match_ruby_lang_hardcoded_secret_1
    379  -Rule_Match_ruby_lang_hardcoded_secret_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    380  -.decl Rule_Match_ruby_lang_hardcoded_secret_2(node: AST_NodeId, node5: AST_NodeId, node6: AST_NodeId)
    381  -.output Rule_Match_ruby_lang_hardcoded_secret_2
    382  -Rule_Match_ruby_lang_hardcoded_secret_2(node1, node5, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, node5, "key"), AST_NodeType(node5, _), AST_NodeField(node4, node6, "value"), AST_NodeType(node6, _).
    383  -.decl Rule_Match_ruby_lang_hardcoded_secret_3(node: AST_NodeId, node3: AST_NodeId)
    384  -.output Rule_Match_ruby_lang_hardcoded_secret_3
    385  -Rule_Match_ruby_lang_hardcoded_secret_3(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar0"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar0")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    386  -.decl Rule_Match_ruby_lang_hardcoded_secret_4(node: AST_NodeId, node3: AST_NodeId, node4: AST_NodeId)
    387  -.output Rule_Match_ruby_lang_hardcoded_secret_4
    388  -Rule_Match_ruby_lang_hardcoded_secret_4(node1, node3, node4) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, node3, "key"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "value"), AST_NodeType(node4, _).
    389  -// rule ruby_rails_render_using_user_input
    390  -.decl Rule_Match_ruby_rails_render_using_user_input_0(node: AST_NodeId, node5: AST_NodeId)
    391  -.output Rule_Match_ruby_rails_render_using_user_input_0
    392  -Rule_Match_ruby_rails_render_using_user_input_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":inline"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "inline")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    393  -.decl Rule_Match_ruby_rails_render_using_user_input_1(node: AST_NodeId, node5: AST_NodeId)
    394  -.output Rule_Match_ruby_rails_render_using_user_input_1
    395  -Rule_Match_ruby_rails_render_using_user_input_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":html"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "html")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    396  -// rule ruby_lang_file_generation
    397  -.decl Rule_Match_ruby_lang_file_generation_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    398  -.output Rule_Match_ruby_lang_file_generation_0
    399  -Rule_Match_ruby_lang_file_generation_0(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    400  -.decl Rule_Match_ruby_lang_file_generation_1(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    401  -.output Rule_Match_ruby_lang_file_generation_1
    402  -Rule_Match_ruby_lang_file_generation_1(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    403  -// rule ruby_lang_exception
    404  -.decl Rule_Match_ruby_lang_exception_0(node: AST_NodeId, node4: AST_NodeId)
    405  -.output Rule_Match_ruby_lang_exception_0
    406  -Rule_Match_ruby_lang_exception_0(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "raise"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    407  -// rule google_dataflow_config
    408  -.decl Rule_Match_google_dataflow_config_0(node: AST_NodeId, node2: AST_NodeId)
    409  -.output Rule_Match_google_dataflow_config_0
    410  -Rule_Match_google_dataflow_config_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure").
    411  -.decl Rule_Match_google_dataflow_config_1(node: AST_NodeId, node2: AST_NodeId)
    412  -.output Rule_Match_google_dataflow_config_1
    413  -Rule_Match_google_dataflow_config_1(node1, node2) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    414  -// rule ruby_lang_http_url_using_user_input_net_http
    415  -.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_0(node: AST_NodeId, node1: AST_NodeId)
    416  -.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_0
    417  -Rule_Match_ruby_lang_http_url_using_user_input_net_http_0(node1, node1) :- AST_NodeType(node1, _).
    418  -.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_1(node: AST_NodeId, node2: AST_NodeId)
    419  -.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_1
    420  -Rule_Match_ruby_lang_http_url_using_user_input_net_http_1(node1, node2) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    421  -.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_2(node: AST_NodeId, node2: AST_NodeId)
    422  -.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_2
    423  -Rule_Match_ruby_lang_http_url_using_user_input_net_http_2(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start").
    424  -// rule ruby_lang_regex_using_user_input_user_input
    425  -.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_0(node: AST_NodeId)
    426  -.output Rule_Match_ruby_lang_regex_using_user_input_user_input_0
    427  -Rule_Match_ruby_lang_regex_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    428  -.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_1(node: AST_NodeId)
    429  -.output Rule_Match_ruby_lang_regex_using_user_input_user_input_1
    430  -Rule_Match_ruby_lang_regex_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    431  -.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_2(node: AST_NodeId)
    432  -.output Rule_Match_ruby_lang_regex_using_user_input_user_input_2
    433  -Rule_Match_ruby_lang_regex_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    434  -.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_3(node: AST_NodeId)
    435  -.output Rule_Match_ruby_lang_regex_using_user_input_user_input_3
    436  -Rule_Match_ruby_lang_regex_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    437  -// rule ruby_third_parties_new_relic
    438  -.decl Rule_Match_ruby_third_parties_new_relic_0(node: AST_NodeId, node7: AST_NodeId)
    439  -.output Rule_Match_ruby_third_parties_new_relic_0
    440  -Rule_Match_ruby_third_parties_new_relic_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_attributes"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    441  -.decl Rule_Match_ruby_third_parties_new_relic_1(node: AST_NodeId, node7: AST_NodeId)
    442  -.output Rule_Match_ruby_third_parties_new_relic_1
    443  -Rule_Match_ruby_third_parties_new_relic_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_parameters"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    444  -.decl Rule_Match_ruby_third_parties_new_relic_2(node: AST_NodeId, node7: AST_NodeId)
    445  -.output Rule_Match_ruby_third_parties_new_relic_2
    446  -Rule_Match_ruby_third_parties_new_relic_2(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "notice_error"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    447  -// rule ruby_lang_http_get_params
    448  -.decl Rule_Match_ruby_lang_http_get_params_0(node: AST_NodeId, node5: AST_NodeId)
    449  -.output Rule_Match_ruby_lang_http_get_params_0
    450  -Rule_Match_ruby_lang_http_get_params_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode_www_form"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    451  -.decl Rule_Match_ruby_lang_http_get_params_1(node: AST_NodeId, node4: AST_NodeId)
    452  -.output Rule_Match_ruby_lang_http_get_params_1
    453  -Rule_Match_ruby_lang_http_get_params_1(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    454  -.decl Rule_Match_ruby_lang_http_get_params_2(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    455  -.output Rule_Match_ruby_lang_http_get_params_2
    456  -Rule_Match_ruby_lang_http_get_params_2(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    457  -// rule ruby_lang_ftp_using_user_input_ftp
    458  -.decl Rule_Match_ruby_lang_ftp_using_user_input_ftp_0(node: AST_NodeId)
    459  -.output Rule_Match_ruby_lang_ftp_using_user_input_ftp_0
    460  -Rule_Match_ruby_lang_ftp_using_user_input_ftp_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    461  -.decl Rule_Match_ruby_lang_ftp_using_user_input_ftp_1(node: AST_NodeId)
    462  -.output Rule_Match_ruby_lang_ftp_using_user_input_ftp_1
    463  -Rule_Match_ruby_lang_ftp_using_user_input_ftp_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
    464  -.decl Rule_Match_ruby_lang_ftp_using_user_input_ftp_2(node: AST_NodeId)
    465  -.output Rule_Match_ruby_lang_ftp_using_user_input_ftp_2
    466  -Rule_Match_ruby_lang_ftp_using_user_input_ftp_2(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
    467  -// rule ruby_lang_reflection_using_user_input
    468  -.decl Rule_Match_ruby_lang_reflection_using_user_input_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    469  -.output Rule_Match_ruby_lang_reflection_using_user_input_0
    470  -Rule_Match_ruby_lang_reflection_using_user_input_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    471  -.decl Rule_Match_ruby_lang_reflection_using_user_input_1(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    472  -.output Rule_Match_ruby_lang_reflection_using_user_input_1
    473  -Rule_Match_ruby_lang_reflection_using_user_input_1(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    474  -.decl Rule_Match_ruby_lang_reflection_using_user_input_2(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    475  -.output Rule_Match_ruby_lang_reflection_using_user_input_2
    476  -Rule_Match_ruby_lang_reflection_using_user_input_2(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    477  -.decl Rule_Match_ruby_lang_reflection_using_user_input_3(node: AST_NodeId, node2: AST_NodeId)
    478  -.output Rule_Match_ruby_lang_reflection_using_user_input_3
    479  -Rule_Match_ruby_lang_reflection_using_user_input_3(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "to_proc").
    480  -.decl Rule_Match_ruby_lang_reflection_using_user_input_4(node: AST_NodeId, node5: AST_NodeId)
    481  -.output Rule_Match_ruby_lang_reflection_using_user_input_4
    482  -Rule_Match_ruby_lang_reflection_using_user_input_4(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "block_argument"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    483  -.decl Rule_Match_ruby_lang_reflection_using_user_input_5(node: AST_NodeId, node6: AST_NodeId)
    484  -.output Rule_Match_ruby_lang_reflection_using_user_input_5
    485  -Rule_Match_ruby_lang_reflection_using_user_input_5(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "block_argument"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    486  -.decl Rule_Match_ruby_lang_reflection_using_user_input_6(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    487  -.output Rule_Match_ruby_lang_reflection_using_user_input_6
    488  -Rule_Match_ruby_lang_reflection_using_user_input_6(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    489  -// rule ruby_third_parties_honeybadger
    490  -.decl Rule_Match_ruby_third_parties_honeybadger_0(node: AST_NodeId, node5: AST_NodeId)
    491  -.output Rule_Match_ruby_third_parties_honeybadger_0
    492  -Rule_Match_ruby_third_parties_honeybadger_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    493  -.decl Rule_Match_ruby_third_parties_honeybadger_1(node: AST_NodeId, node5: AST_NodeId)
    494  -.output Rule_Match_ruby_third_parties_honeybadger_1
    495  -Rule_Match_ruby_third_parties_honeybadger_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    496  -.decl Rule_Match_ruby_third_parties_honeybadger_2(node: AST_NodeId, node3: AST_NodeId)
    497  -.output Rule_Match_ruby_third_parties_honeybadger_2
    498  -Rule_Match_ruby_third_parties_honeybadger_2(node1, node3) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_honeybadger_context"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    499  -.decl Rule_Match_ruby_third_parties_honeybadger_3(node: AST_NodeId, node5: AST_NodeId)
    500  -.output Rule_Match_ruby_third_parties_honeybadger_3
    501  -Rule_Match_ruby_third_parties_honeybadger_3(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "add_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    502  -// rule openssl_rsa_init
    503  -// rule ruby_lang_cookies
    504  -.decl Rule_Match_ruby_lang_cookies_0(node: AST_NodeId, node5: AST_NodeId)
    505  -.output Rule_Match_ruby_lang_cookies_0
    506  -Rule_Match_ruby_lang_cookies_0(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cookies"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    507  -.decl Rule_Match_ruby_lang_cookies_1(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    508  -.output Rule_Match_ruby_lang_cookies_1
    509  -Rule_Match_ruby_lang_cookies_1(node1, node5, node7) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "cookies"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, _), AST_ParentChild(node2, 0, node6), AST_NodeType(node6, _), AST_NodeField(node1, node7, "right"), AST_NodeType(node7, _).
    510  -// rule ruby_rails_insecure_http_password
    511  -// rule ruby_lang_http_url_using_user_input_path_hash
    512  -.decl Rule_Match_ruby_lang_http_url_using_user_input_path_hash_0(node: AST_NodeId, node3: AST_NodeId)
    513  -.output Rule_Match_ruby_lang_http_url_using_user_input_path_hash_0
    514  -Rule_Match_ruby_lang_http_url_using_user_input_path_hash_0(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    515  -// rule ruby_lang_insecure_ftp
    516  -.decl Rule_Match_ruby_lang_insecure_ftp_0(node: AST_NodeId)
    517  -.output Rule_Match_ruby_lang_insecure_ftp_0
    518  -Rule_Match_ruby_lang_insecure_ftp_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    519  -.decl Rule_Match_ruby_lang_insecure_ftp_1(node: AST_NodeId, node7: AST_NodeId)
    520  -.output Rule_Match_ruby_lang_insecure_ftp_1
    521  -Rule_Match_ruby_lang_insecure_ftp_1(node1, node7) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "do_block"), !AST_NodeField(node6, _, "parameters"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    522  -.decl Rule_Match_ruby_lang_insecure_ftp_2(node: AST_NodeId)
    523  -.output Rule_Match_ruby_lang_insecure_ftp_2
    524  -Rule_Match_ruby_lang_insecure_ftp_2(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
    525  -// rule ruby_lang_logger
    526  -.decl Rule_Match_ruby_lang_logger_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    527  -.output Rule_Match_ruby_lang_logger_0
    528  -Rule_Match_ruby_lang_logger_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "logger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    529  -// rule ruby_rails_redirect_to
    530  -.decl Rule_Match_ruby_rails_redirect_to_0(node: AST_NodeId, node4: AST_NodeId)
    531  -.output Rule_Match_ruby_rails_redirect_to_0
    532  -Rule_Match_ruby_rails_redirect_to_0(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "redirect_to"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    533  -// rule ruby_lang_weak_encryption_with_data_rc4_init
    534  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_rc4_init_0(node: AST_NodeId)
    535  -.output Rule_Match_ruby_lang_weak_encryption_with_data_rc4_init_0
    536  -Rule_Match_ruby_lang_weak_encryption_with_data_rc4_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    537  -// rule ruby_third_parties_datadog_span
    538  -.decl Rule_Match_ruby_third_parties_datadog_span_1(node: AST_NodeId)
    539  -.output Rule_Match_ruby_third_parties_datadog_span_1
    540  -Rule_Match_ruby_third_parties_datadog_span_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "active_span").
    541  -.decl Rule_Match_ruby_third_parties_datadog_span_2(node: AST_NodeId, node8: AST_NodeId)
    542  -.output Rule_Match_ruby_third_parties_datadog_span_2
    543  -Rule_Match_ruby_third_parties_datadog_span_2(node1, node8) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
    544  -// rule ruby_third_parties_bugsnag
    545  -.decl Rule_Match_ruby_third_parties_bugsnag_1(node: AST_NodeId, node5: AST_NodeId)
    546  -.output Rule_Match_ruby_third_parties_bugsnag_1
    547  -Rule_Match_ruby_third_parties_bugsnag_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "leave_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    548  -.decl Rule_Match_ruby_third_parties_bugsnag_2(node: AST_NodeId, node5: AST_NodeId)
    549  -.output Rule_Match_ruby_third_parties_bugsnag_2
    550  -Rule_Match_ruby_third_parties_bugsnag_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    551  -// rule ruby_lang_weak_encryption
    552  -.decl Rule_Match_ruby_lang_weak_encryption_0(node: AST_NodeId)
    553  -.output Rule_Match_ruby_lang_weak_encryption_0
    554  -Rule_Match_ruby_lang_weak_encryption_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest").
    555  -.decl Rule_Match_ruby_lang_weak_encryption_1(node: AST_NodeId)
    556  -.output Rule_Match_ruby_lang_weak_encryption_1
    557  -Rule_Match_ruby_lang_weak_encryption_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest").
    558  -.decl Rule_Match_ruby_lang_weak_encryption_2(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    559  -.output Rule_Match_ruby_lang_weak_encryption_2
    560  -Rule_Match_ruby_lang_weak_encryption_2(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    561  -.decl Rule_Match_ruby_lang_weak_encryption_3(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    562  -.output Rule_Match_ruby_lang_weak_encryption_3
    563  -Rule_Match_ruby_lang_weak_encryption_3(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    564  -.decl Rule_Match_ruby_lang_weak_encryption_4(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    565  -.output Rule_Match_ruby_lang_weak_encryption_4
    566  -Rule_Match_ruby_lang_weak_encryption_4(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    567  -.decl Rule_Match_ruby_lang_weak_encryption_5(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    568  -.output Rule_Match_ruby_lang_weak_encryption_5
    569  -Rule_Match_ruby_lang_weak_encryption_5(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    570  -.decl Rule_Match_ruby_lang_weak_encryption_6(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    571  -.output Rule_Match_ruby_lang_weak_encryption_6
    572  -Rule_Match_ruby_lang_weak_encryption_6(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    573  -.decl Rule_Match_ruby_lang_weak_encryption_7(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
    574  -.output Rule_Match_ruby_lang_weak_encryption_7
    575  -Rule_Match_ruby_lang_weak_encryption_7(node1, node2, node3) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    576  -// rule ruby_lang_http_url_using_user_input_curb
    577  -.decl Rule_Match_ruby_lang_http_url_using_user_input_curb_0(node: AST_NodeId)
    578  -.output Rule_Match_ruby_lang_http_url_using_user_input_curb_0
    579  -Rule_Match_ruby_lang_http_url_using_user_input_curb_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    580  -// rule ruby_lang_exec_using_user_input_shell_cmd_proc
    581  -.decl Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_0(node: AST_NodeId, node2: AST_NodeId)
    582  -.output Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_0
    583  -Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
    584  -.decl Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_1(node: AST_NodeId)
    585  -.output Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_1
    586  -Rule_Match_ruby_lang_exec_using_user_input_shell_cmd_proc_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    587  -// rule ruby_third_parties_algolia
    588  -.decl Rule_Match_ruby_third_parties_algolia_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    589  -.output Rule_Match_ruby_third_parties_algolia_0
    590  -Rule_Match_ruby_third_parties_algolia_0(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     294 +// rule ruby_lang_http_insecure_curb
     295 +.decl Rule_Match_ruby_lang_http_insecure_curb_0(node: AST_NodeId)
     296 +.output Rule_Match_ruby_lang_http_insecure_curb_0
     297 +Rule_Match_ruby_lang_http_insecure_curb_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     298 +// rule ruby_lang_http_insecure_url_hash
     299 +.decl Rule_Match_ruby_lang_http_insecure_url_hash_0(node: AST_NodeId, node3: AST_NodeId)
     300 +.output Rule_Match_ruby_lang_http_insecure_url_hash_0
     301 +Rule_Match_ruby_lang_http_insecure_url_hash_0(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    591 302  // rule ruby_lang_http_post_insecure_with_data
    592 303  .decl Rule_Match_ruby_lang_http_post_insecure_with_data_0(node: AST_NodeId, node7: AST_NodeId, node8: AST_NodeId)
    593 304  .output Rule_Match_ruby_lang_http_post_insecure_with_data_0
    skipped 1 lines
    595 306  .decl Rule_Match_ruby_lang_http_post_insecure_with_data_1(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId, node6: AST_NodeId)
    596 307  .output Rule_Match_ruby_lang_http_post_insecure_with_data_1
    597 308  Rule_Match_ruby_lang_http_post_insecure_with_data_1(node1, node2, node5, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    598  -// rule google_dataflow_templates_service_client_init
    599  -.decl Rule_Match_google_dataflow_templates_service_client_init_1(node: AST_NodeId)
    600  -.output Rule_Match_google_dataflow_templates_service_client_init_1
    601  -Rule_Match_google_dataflow_templates_service_client_init_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "templates_service").
    602  -// rule segment_init
    603  -.decl Rule_Match_segment_init_0(node: AST_NodeId)
    604  -.output Rule_Match_segment_init_0
    605  -Rule_Match_segment_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Segment"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Analytics"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    606  -// rule ruby_third_parties_elasticsearch_client
    607  -.decl Rule_Match_ruby_third_parties_elasticsearch_client_0(node: AST_NodeId)
    608  -.output Rule_Match_ruby_third_parties_elasticsearch_client_0
    609  -Rule_Match_ruby_third_parties_elasticsearch_client_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    610  -.decl Rule_Match_ruby_third_parties_elasticsearch_client_1(node: AST_NodeId)
    611  -.output Rule_Match_ruby_third_parties_elasticsearch_client_1
    612  -Rule_Match_ruby_third_parties_elasticsearch_client_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    613  -// rule ruby_lang_regex_using_user_input
    614  -.decl Rule_Match_ruby_lang_regex_using_user_input_0(node: AST_NodeId, node3: AST_NodeId)
    615  -.output Rule_Match_ruby_lang_regex_using_user_input_0
    616  -Rule_Match_ruby_lang_regex_using_user_input_0(node1, node3) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
    617  -.decl Rule_Match_ruby_lang_regex_using_user_input_1(node: AST_NodeId, node3: AST_NodeId)
    618  -.output Rule_Match_ruby_lang_regex_using_user_input_1
    619  -Rule_Match_ruby_lang_regex_using_user_input_1(node1, node3) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
    620  -.decl Rule_Match_ruby_lang_regex_using_user_input_2(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    621  -.output Rule_Match_ruby_lang_regex_using_user_input_2
    622  -Rule_Match_ruby_lang_regex_using_user_input_2(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Regexp"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    623  -// rule ruby_lang_http_url_using_user_input_excon
    624  -.decl Rule_Match_ruby_lang_http_url_using_user_input_excon_0(node: AST_NodeId)
    625  -.output Rule_Match_ruby_lang_http_url_using_user_input_excon_0
    626  -Rule_Match_ruby_lang_http_url_using_user_input_excon_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    627  -.decl Rule_Match_ruby_lang_http_url_using_user_input_excon_1(node: AST_NodeId)
    628  -.output Rule_Match_ruby_lang_http_url_using_user_input_excon_1
    629  -Rule_Match_ruby_lang_http_url_using_user_input_excon_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Excon"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Connection"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    630  -// rule ruby_lang_weak_encryption_with_data_openssl_rsa_init
    631  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_openssl_rsa_init_0(node: AST_NodeId)
    632  -.output Rule_Match_ruby_lang_weak_encryption_with_data_openssl_rsa_init_0
    633  -Rule_Match_ruby_lang_weak_encryption_with_data_openssl_rsa_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "RSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    634  -// rule ruby_lang_http_insecure_url_hash
    635  -.decl Rule_Match_ruby_lang_http_insecure_url_hash_0(node: AST_NodeId, node3: AST_NodeId)
    636  -.output Rule_Match_ruby_lang_http_insecure_url_hash_0
    637  -Rule_Match_ruby_lang_http_insecure_url_hash_0(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    638  -// rule google_dataflow_client_init
    639  -.decl Rule_Match_google_dataflow_client_init_1(node: AST_NodeId, node7: AST_NodeId)
    640  -.output Rule_Match_google_dataflow_client_init_1
    641  -Rule_Match_google_dataflow_client_init_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, _).
    642  -// rule ruby_lang_jwt
    643  -.decl Rule_Match_ruby_lang_jwt_0(node: AST_NodeId, node5: AST_NodeId)
    644  -.output Rule_Match_ruby_lang_jwt_0
    645  -Rule_Match_ruby_lang_jwt_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JWT"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    646  -// rule ruby_third_parties_segment
    647  -.decl Rule_Match_ruby_third_parties_segment_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    648  -.output Rule_Match_ruby_third_parties_segment_0
    649  -Rule_Match_ruby_third_parties_segment_0(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    650  -// rule ruby_third_parties_google_analytics
    651  -// rule ruby_lang_eval_using_user_input_user_input
    652  -.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_0(node: AST_NodeId)
    653  -.output Rule_Match_ruby_lang_eval_using_user_input_user_input_0
    654  -Rule_Match_ruby_lang_eval_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    655  -.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_1(node: AST_NodeId)
    656  -.output Rule_Match_ruby_lang_eval_using_user_input_user_input_1
    657  -Rule_Match_ruby_lang_eval_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    658  -.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_2(node: AST_NodeId)
    659  -.output Rule_Match_ruby_lang_eval_using_user_input_user_input_2
    660  -Rule_Match_ruby_lang_eval_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    661  -.decl Rule_Match_ruby_lang_eval_using_user_input_user_input_3(node: AST_NodeId)
    662  -.output Rule_Match_ruby_lang_eval_using_user_input_user_input_3
    663  -Rule_Match_ruby_lang_eval_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    664  -// rule google_dataflow_description_classes
    665  -.decl Rule_Match_google_dataflow_description_classes_1(node: AST_NodeId, node2: AST_NodeId)
    666  -.output Rule_Match_google_dataflow_description_classes_1
    667  -Rule_Match_google_dataflow_description_classes_1(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get_snapshot").
    668  -// rule ruby_lang_path_using_user_input_pathname
    669  -.decl Rule_Match_ruby_lang_path_using_user_input_pathname_0(node: AST_NodeId)
    670  -.output Rule_Match_ruby_lang_path_using_user_input_pathname_0
    671  -Rule_Match_ruby_lang_path_using_user_input_pathname_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rails"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "root").
    672  -.decl Rule_Match_ruby_lang_path_using_user_input_pathname_1(node: AST_NodeId)
    673  -.output Rule_Match_ruby_lang_path_using_user_input_pathname_1
    674  -Rule_Match_ruby_lang_path_using_user_input_pathname_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Pathname"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    675  -// rule rc4_init
    676  -.decl Rule_Match_rc4_init_0(node: AST_NodeId)
    677  -.output Rule_Match_rc4_init_0
    678  -Rule_Match_rc4_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    679 309  // rule ruby_lang_http_url_using_user_input
    680 310  .decl Rule_Match_ruby_lang_http_url_using_user_input_0(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    681 311  .output Rule_Match_ruby_lang_http_url_using_user_input_0
    skipped 12 lines
    694 324  Rule_Match_ruby_lang_http_url_using_user_input_5(node1, node3, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "ipaddr"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    695 325  .decl Rule_Match_ruby_lang_http_url_using_user_input_6(node: AST_NodeId, node4: AST_NodeId)
    696 326  .output Rule_Match_ruby_lang_http_url_using_user_input_6
    697  -Rule_Match_ruby_lang_http_url_using_user_input_6(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     327 +Rule_Match_ruby_lang_http_url_using_user_input_6(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    698 328  .decl Rule_Match_ruby_lang_http_url_using_user_input_7(node: AST_NodeId, node6: AST_NodeId)
    699 329  .output Rule_Match_ruby_lang_http_url_using_user_input_7
    700 330  Rule_Match_ruby_lang_http_url_using_user_input_7(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "http"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    skipped 33 lines
    734 364  .decl Rule_Match_ruby_lang_http_url_using_user_input_19(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    735 365  .output Rule_Match_ruby_lang_http_url_using_user_input_19
    736 366  Rule_Match_ruby_lang_http_url_using_user_input_19(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    737  -// rule ruby_lang_ssl_verification
    738  -// rule ruby_lang_weak_encryption_with_data_openssl_dsa_init
    739  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_openssl_dsa_init_0(node: AST_NodeId)
    740  -.output Rule_Match_ruby_lang_weak_encryption_with_data_openssl_dsa_init_0
    741  -Rule_Match_ruby_lang_weak_encryption_with_data_openssl_dsa_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    742  -// rule ruby_third_parties_datadog
    743  -.decl Rule_Match_ruby_third_parties_datadog_1(node: AST_NodeId, node2: AST_NodeId, node6: AST_NodeId)
    744  -.output Rule_Match_ruby_third_parties_datadog_1
    745  -Rule_Match_ruby_third_parties_datadog_1(node1, node2, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tag"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    746  -.decl Rule_Match_ruby_third_parties_datadog_2(node: AST_NodeId, node8: AST_NodeId)
    747  -.output Rule_Match_ruby_third_parties_datadog_2
    748  -Rule_Match_ruby_third_parties_datadog_2(node1, node8) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _), AST_ParentChild(node6, 1, node8), AST_NodeType(node8, _).
     367 +// rule ruby_lang_http_url_using_user_input_curb
     368 +.decl Rule_Match_ruby_lang_http_url_using_user_input_curb_0(node: AST_NodeId)
     369 +.output Rule_Match_ruby_lang_http_url_using_user_input_curb_0
     370 +Rule_Match_ruby_lang_http_url_using_user_input_curb_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     371 +// rule ruby_lang_http_url_using_user_input_excon
     372 +.decl Rule_Match_ruby_lang_http_url_using_user_input_excon_0(node: AST_NodeId)
     373 +.output Rule_Match_ruby_lang_http_url_using_user_input_excon_0
     374 +Rule_Match_ruby_lang_http_url_using_user_input_excon_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     375 +.decl Rule_Match_ruby_lang_http_url_using_user_input_excon_1(node: AST_NodeId)
     376 +.output Rule_Match_ruby_lang_http_url_using_user_input_excon_1
     377 +Rule_Match_ruby_lang_http_url_using_user_input_excon_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Excon"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Connection"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     378 +// rule ruby_lang_http_url_using_user_input_net_http
     379 +.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_0(node: AST_NodeId, node1: AST_NodeId)
     380 +.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_0
     381 +Rule_Match_ruby_lang_http_url_using_user_input_net_http_0(node1, node1) :- AST_NodeType(node1, _).
     382 +.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_1(node: AST_NodeId, node2: AST_NodeId)
     383 +.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_1
     384 +Rule_Match_ruby_lang_http_url_using_user_input_net_http_1(node1, node2) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     385 +.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_2(node: AST_NodeId, node2: AST_NodeId)
     386 +.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_2
     387 +Rule_Match_ruby_lang_http_url_using_user_input_net_http_2(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start").
     388 +// rule ruby_lang_http_url_using_user_input_net_http_new
     389 +.decl Rule_Match_ruby_lang_http_url_using_user_input_net_http_new_1(node: AST_NodeId, node5: AST_NodeId)
     390 +.output Rule_Match_ruby_lang_http_url_using_user_input_net_http_new_1
     391 +Rule_Match_ruby_lang_http_url_using_user_input_net_http_new_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     392 +// rule ruby_lang_http_url_using_user_input_path_hash
     393 +.decl Rule_Match_ruby_lang_http_url_using_user_input_path_hash_0(node: AST_NodeId, node3: AST_NodeId)
     394 +.output Rule_Match_ruby_lang_http_url_using_user_input_path_hash_0
     395 +Rule_Match_ruby_lang_http_url_using_user_input_path_hash_0(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    749 396  // rule ruby_lang_http_url_using_user_input_url_hash
    750 397  .decl Rule_Match_ruby_lang_http_url_using_user_input_url_hash_0(node: AST_NodeId, node3: AST_NodeId)
    751 398  .output Rule_Match_ruby_lang_http_url_using_user_input_url_hash_0
    752 399  Rule_Match_ruby_lang_http_url_using_user_input_url_hash_0(node1, node3) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    753  -// rule ruby_lang_ftp_using_user_input
    754  -.decl Rule_Match_ruby_lang_ftp_using_user_input_0(node: AST_NodeId, node7: AST_NodeId)
    755  -.output Rule_Match_ruby_lang_ftp_using_user_input_0
    756  -Rule_Match_ruby_lang_ftp_using_user_input_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    757  -.decl Rule_Match_ruby_lang_ftp_using_user_input_1(node: AST_NodeId, node7: AST_NodeId)
    758  -.output Rule_Match_ruby_lang_ftp_using_user_input_1
    759  -Rule_Match_ruby_lang_ftp_using_user_input_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    760  -.decl Rule_Match_ruby_lang_ftp_using_user_input_2(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    761  -.output Rule_Match_ruby_lang_ftp_using_user_input_2
    762  -Rule_Match_ruby_lang_ftp_using_user_input_2(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    763  -// rule ruby_third_parties_algolia_index
    764  -.decl Rule_Match_ruby_third_parties_algolia_index_0(node: AST_NodeId, node2: AST_NodeId)
    765  -.output Rule_Match_ruby_third_parties_algolia_index_0
    766  -Rule_Match_ruby_third_parties_algolia_index_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "init_index").
     400 +// rule ruby_lang_http_url_using_user_input_user_input
     401 +.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_0(node: AST_NodeId)
     402 +.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_0
     403 +Rule_Match_ruby_lang_http_url_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     404 +.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_1(node: AST_NodeId)
     405 +.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_1
     406 +Rule_Match_ruby_lang_http_url_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     407 +.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_2(node: AST_NodeId)
     408 +.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_2
     409 +Rule_Match_ruby_lang_http_url_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     410 +.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_3(node: AST_NodeId)
     411 +.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_3
     412 +Rule_Match_ruby_lang_http_url_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     413 +// rule ruby_lang_insecure_ftp
     414 +.decl Rule_Match_ruby_lang_insecure_ftp_0(node: AST_NodeId)
     415 +.output Rule_Match_ruby_lang_insecure_ftp_0
     416 +Rule_Match_ruby_lang_insecure_ftp_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     417 +.decl Rule_Match_ruby_lang_insecure_ftp_1(node: AST_NodeId, node7: AST_NodeId)
     418 +.output Rule_Match_ruby_lang_insecure_ftp_1
     419 +Rule_Match_ruby_lang_insecure_ftp_1(node1, node7) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "do_block"), !AST_NodeField(node6, _, "parameters"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     420 +.decl Rule_Match_ruby_lang_insecure_ftp_2(node: AST_NodeId)
     421 +.output Rule_Match_ruby_lang_insecure_ftp_2
     422 +Rule_Match_ruby_lang_insecure_ftp_2(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
     423 +// rule ruby_lang_jwt
     424 +.decl Rule_Match_ruby_lang_jwt_0(node: AST_NodeId, node5: AST_NodeId)
     425 +.output Rule_Match_ruby_lang_jwt_0
     426 +Rule_Match_ruby_lang_jwt_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JWT"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     427 +// rule ruby_lang_logger
     428 +.decl Rule_Match_ruby_lang_logger_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     429 +.output Rule_Match_ruby_lang_logger_0
     430 +Rule_Match_ruby_lang_logger_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "logger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     431 +// rule ruby_lang_path_using_user_input
     432 +.decl Rule_Match_ruby_lang_path_using_user_input_0(node: AST_NodeId, node3: AST_NodeId)
     433 +.output Rule_Match_ruby_lang_path_using_user_input_0
     434 +Rule_Match_ruby_lang_path_using_user_input_0(node1, node3) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Dir"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     435 +.decl Rule_Match_ruby_lang_path_using_user_input_1(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     436 +.output Rule_Match_ruby_lang_path_using_user_input_1
     437 +Rule_Match_ruby_lang_path_using_user_input_1(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     438 +.decl Rule_Match_ruby_lang_path_using_user_input_2(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     439 +.output Rule_Match_ruby_lang_path_using_user_input_2
     440 +Rule_Match_ruby_lang_path_using_user_input_2(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     441 +.decl Rule_Match_ruby_lang_path_using_user_input_3(node: AST_NodeId, node5: AST_NodeId)
     442 +.output Rule_Match_ruby_lang_path_using_user_input_3
     443 +Rule_Match_ruby_lang_path_using_user_input_3(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     444 +.decl Rule_Match_ruby_lang_path_using_user_input_4(node: AST_NodeId, node4: AST_NodeId)
     445 +.output Rule_Match_ruby_lang_path_using_user_input_4
     446 +Rule_Match_ruby_lang_path_using_user_input_4(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "open"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     447 +.decl Rule_Match_ruby_lang_path_using_user_input_5(node: AST_NodeId, node5: AST_NodeId)
     448 +.output Rule_Match_ruby_lang_path_using_user_input_5
     449 +Rule_Match_ruby_lang_path_using_user_input_5(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PStore"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     450 +.decl Rule_Match_ruby_lang_path_using_user_input_6(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
     451 +.output Rule_Match_ruby_lang_path_using_user_input_6
     452 +Rule_Match_ruby_lang_path_using_user_input_6(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     453 +.decl Rule_Match_ruby_lang_path_using_user_input_7(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     454 +.output Rule_Match_ruby_lang_path_using_user_input_7
     455 +Rule_Match_ruby_lang_path_using_user_input_7(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     456 +.decl Rule_Match_ruby_lang_path_using_user_input_8(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     457 +.output Rule_Match_ruby_lang_path_using_user_input_8
     458 +Rule_Match_ruby_lang_path_using_user_input_8(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "+"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     459 +.decl Rule_Match_ruby_lang_path_using_user_input_9(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     460 +.output Rule_Match_ruby_lang_path_using_user_input_9
     461 +Rule_Match_ruby_lang_path_using_user_input_9(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "/"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     462 +.decl Rule_Match_ruby_lang_path_using_user_input_10(node: AST_NodeId, node5: AST_NodeId)
     463 +.output Rule_Match_ruby_lang_path_using_user_input_10
     464 +Rule_Match_ruby_lang_path_using_user_input_10(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cd"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     465 +.decl Rule_Match_ruby_lang_path_using_user_input_11(node: AST_NodeId, node5: AST_NodeId)
     466 +.output Rule_Match_ruby_lang_path_using_user_input_11
     467 +Rule_Match_ruby_lang_path_using_user_input_11(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     468 +.decl Rule_Match_ruby_lang_path_using_user_input_12(node: AST_NodeId, node5: AST_NodeId)
     469 +.output Rule_Match_ruby_lang_path_using_user_input_12
     470 +Rule_Match_ruby_lang_path_using_user_input_12(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "default_system_path"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     471 +.decl Rule_Match_ruby_lang_path_using_user_input_13(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     472 +.output Rule_Match_ruby_lang_path_using_user_input_13
     473 +Rule_Match_ruby_lang_path_using_user_input_13(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     474 +.decl Rule_Match_ruby_lang_path_using_user_input_14(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     475 +.output Rule_Match_ruby_lang_path_using_user_input_14
     476 +Rule_Match_ruby_lang_path_using_user_input_14(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     477 +.decl Rule_Match_ruby_lang_path_using_user_input_15(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     478 +.output Rule_Match_ruby_lang_path_using_user_input_15
     479 +Rule_Match_ruby_lang_path_using_user_input_15(node1, node2, node4) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _), AST_ParentChild(node1, 1, node4), AST_NodeType(node4, _).
     480 +.decl Rule_Match_ruby_lang_path_using_user_input_16(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     481 +.output Rule_Match_ruby_lang_path_using_user_input_16
     482 +Rule_Match_ruby_lang_path_using_user_input_16(node1, node2, node5) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "transact"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     483 +.decl Rule_Match_ruby_lang_path_using_user_input_17(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     484 +.output Rule_Match_ruby_lang_path_using_user_input_17
     485 +Rule_Match_ruby_lang_path_using_user_input_17(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     486 +.decl Rule_Match_ruby_lang_path_using_user_input_18(node: AST_NodeId, node2: AST_NodeId, node6: AST_NodeId)
     487 +.output Rule_Match_ruby_lang_path_using_user_input_18
     488 +Rule_Match_ruby_lang_path_using_user_input_18(node1, node2, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "hash"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
     489 +.decl Rule_Match_ruby_lang_path_using_user_input_19(node: AST_NodeId, node4: AST_NodeId)
     490 +.output Rule_Match_ruby_lang_path_using_user_input_19
     491 +Rule_Match_ruby_lang_path_using_user_input_19(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "send_file"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     492 +// rule ruby_lang_path_using_user_input_pathname
     493 +.decl Rule_Match_ruby_lang_path_using_user_input_pathname_0(node: AST_NodeId)
     494 +.output Rule_Match_ruby_lang_path_using_user_input_pathname_0
     495 +Rule_Match_ruby_lang_path_using_user_input_pathname_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rails"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "root").
     496 +.decl Rule_Match_ruby_lang_path_using_user_input_pathname_1(node: AST_NodeId)
     497 +.output Rule_Match_ruby_lang_path_using_user_input_pathname_1
     498 +Rule_Match_ruby_lang_path_using_user_input_pathname_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Pathname"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     499 +// rule ruby_lang_path_using_user_input_shell
     500 +.decl Rule_Match_ruby_lang_path_using_user_input_shell_0(node: AST_NodeId)
     501 +.output Rule_Match_ruby_lang_path_using_user_input_shell_0
     502 +Rule_Match_ruby_lang_path_using_user_input_shell_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     503 +// rule ruby_lang_path_using_user_input_shell_cmd_proc
     504 +.decl Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_0(node: AST_NodeId, node2: AST_NodeId)
     505 +.output Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_0
     506 +Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
     507 +.decl Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_1(node: AST_NodeId)
     508 +.output Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_1
     509 +Rule_Match_ruby_lang_path_using_user_input_shell_cmd_proc_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     510 +// rule ruby_lang_path_using_user_input_shell_cmd_trans_user_input
     511 +.decl Rule_Match_ruby_lang_path_using_user_input_shell_cmd_trans_user_input_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     512 +.output Rule_Match_ruby_lang_path_using_user_input_shell_cmd_trans_user_input_0
     513 +Rule_Match_ruby_lang_path_using_user_input_shell_cmd_trans_user_input_0(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    767 514  // rule ruby_lang_path_using_user_input_user_input
    768 515  .decl Rule_Match_ruby_lang_path_using_user_input_user_input_0(node: AST_NodeId)
    769 516  .output Rule_Match_ruby_lang_path_using_user_input_user_input_0
    skipped 7 lines
    777 524  .decl Rule_Match_ruby_lang_path_using_user_input_user_input_3(node: AST_NodeId)
    778 525  .output Rule_Match_ruby_lang_path_using_user_input_user_input_3
    779 526  Rule_Match_ruby_lang_path_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    780  -// rule ruby_lang_exec_using_user_input
    781  -.decl Rule_Match_ruby_lang_exec_using_user_input_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    782  -.output Rule_Match_ruby_lang_exec_using_user_input_0
    783  -Rule_Match_ruby_lang_exec_using_user_input_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    784  -.decl Rule_Match_ruby_lang_exec_using_user_input_1(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
    785  -.output Rule_Match_ruby_lang_exec_using_user_input_1
    786  -Rule_Match_ruby_lang_exec_using_user_input_1(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    787  -.decl Rule_Match_ruby_lang_exec_using_user_input_2(node: AST_NodeId, node5: AST_NodeId)
    788  -.output Rule_Match_ruby_lang_exec_using_user_input_2
    789  -Rule_Match_ruby_lang_exec_using_user_input_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "popen"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    790  -.decl Rule_Match_ruby_lang_exec_using_user_input_3(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    791  -.output Rule_Match_ruby_lang_exec_using_user_input_3
    792  -Rule_Match_ruby_lang_exec_using_user_input_3(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Process"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    793  -.decl Rule_Match_ruby_lang_exec_using_user_input_4(node: AST_NodeId, node5: AST_NodeId)
    794  -.output Rule_Match_ruby_lang_exec_using_user_input_4
    795  -Rule_Match_ruby_lang_exec_using_user_input_4(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Open3"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    796  -.decl Rule_Match_ruby_lang_exec_using_user_input_5(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    797  -.output Rule_Match_ruby_lang_exec_using_user_input_5
    798  -Rule_Match_ruby_lang_exec_using_user_input_5(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    799  -.decl Rule_Match_ruby_lang_exec_using_user_input_6(node: AST_NodeId, node5: AST_NodeId)
    800  -.output Rule_Match_ruby_lang_exec_using_user_input_6
    801  -Rule_Match_ruby_lang_exec_using_user_input_6(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PTY"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "spawn"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    802  -.decl Rule_Match_ruby_lang_exec_using_user_input_7(node: AST_NodeId, node2: AST_NodeId)
    803  -.output Rule_Match_ruby_lang_exec_using_user_input_7
    804  -Rule_Match_ruby_lang_exec_using_user_input_7(node1, node2) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, _).
    805  -.decl Rule_Match_ruby_lang_exec_using_user_input_8(node: AST_NodeId)
    806  -.output Rule_Match_ruby_lang_exec_using_user_input_8
    807  -Rule_Match_ruby_lang_exec_using_user_input_8(node1) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "string_content"), AST_NodeContent(node2, "{CurioVar0").
    808  -.decl Rule_Match_ruby_lang_exec_using_user_input_9(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    809  -.output Rule_Match_ruby_lang_exec_using_user_input_9
    810  -Rule_Match_ruby_lang_exec_using_user_input_9(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    811  -.decl Rule_Match_ruby_lang_exec_using_user_input_10(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
    812  -.output Rule_Match_ruby_lang_exec_using_user_input_10
    813  -Rule_Match_ruby_lang_exec_using_user_input_10(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    814  -.decl Rule_Match_ruby_lang_exec_using_user_input_11(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    815  -.output Rule_Match_ruby_lang_exec_using_user_input_11
    816  -Rule_Match_ruby_lang_exec_using_user_input_11(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "system"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    817  -// rule open_telemetry_current_span
    818  -.decl Rule_Match_open_telemetry_current_span_0(node: AST_NodeId)
    819  -.output Rule_Match_open_telemetry_current_span_0
    820  -Rule_Match_open_telemetry_current_span_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "OpenTelemetry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Trace"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "current_span").
    821  -.decl Rule_Match_open_telemetry_current_span_1(node: AST_NodeId)
    822  -.output Rule_Match_open_telemetry_current_span_1
    823  -Rule_Match_open_telemetry_current_span_1(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    824  -// rule ruby_lang_path_using_user_input_shell
    825  -.decl Rule_Match_ruby_lang_path_using_user_input_shell_0(node: AST_NodeId)
    826  -.output Rule_Match_ruby_lang_path_using_user_input_shell_0
    827  -Rule_Match_ruby_lang_path_using_user_input_shell_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     527 +// rule ruby_lang_reflection_using_user_input
     528 +.decl Rule_Match_ruby_lang_reflection_using_user_input_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     529 +.output Rule_Match_ruby_lang_reflection_using_user_input_0
     530 +Rule_Match_ruby_lang_reflection_using_user_input_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     531 +.decl Rule_Match_ruby_lang_reflection_using_user_input_1(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     532 +.output Rule_Match_ruby_lang_reflection_using_user_input_1
     533 +Rule_Match_ruby_lang_reflection_using_user_input_1(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     534 +.decl Rule_Match_ruby_lang_reflection_using_user_input_2(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     535 +.output Rule_Match_ruby_lang_reflection_using_user_input_2
     536 +Rule_Match_ruby_lang_reflection_using_user_input_2(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     537 +.decl Rule_Match_ruby_lang_reflection_using_user_input_3(node: AST_NodeId, node2: AST_NodeId)
     538 +.output Rule_Match_ruby_lang_reflection_using_user_input_3
     539 +Rule_Match_ruby_lang_reflection_using_user_input_3(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "to_proc").
     540 +.decl Rule_Match_ruby_lang_reflection_using_user_input_4(node: AST_NodeId, node5: AST_NodeId)
     541 +.output Rule_Match_ruby_lang_reflection_using_user_input_4
     542 +Rule_Match_ruby_lang_reflection_using_user_input_4(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "block_argument"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     543 +.decl Rule_Match_ruby_lang_reflection_using_user_input_5(node: AST_NodeId, node6: AST_NodeId)
     544 +.output Rule_Match_ruby_lang_reflection_using_user_input_5
     545 +Rule_Match_ruby_lang_reflection_using_user_input_5(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "block_argument"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     546 +.decl Rule_Match_ruby_lang_reflection_using_user_input_6(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     547 +.output Rule_Match_ruby_lang_reflection_using_user_input_6
     548 +Rule_Match_ruby_lang_reflection_using_user_input_6(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     549 +// rule ruby_lang_reflection_using_user_input_user_input
     550 +.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_0(node: AST_NodeId)
     551 +.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_0
     552 +Rule_Match_ruby_lang_reflection_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     553 +.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_1(node: AST_NodeId)
     554 +.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_1
     555 +Rule_Match_ruby_lang_reflection_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     556 +.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_2(node: AST_NodeId)
     557 +.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_2
     558 +Rule_Match_ruby_lang_reflection_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     559 +.decl Rule_Match_ruby_lang_reflection_using_user_input_user_input_3(node: AST_NodeId)
     560 +.output Rule_Match_ruby_lang_reflection_using_user_input_user_input_3
     561 +Rule_Match_ruby_lang_reflection_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     562 +// rule ruby_lang_regex_using_user_input
     563 +.decl Rule_Match_ruby_lang_regex_using_user_input_0(node: AST_NodeId, node3: AST_NodeId)
     564 +.output Rule_Match_ruby_lang_regex_using_user_input_0
     565 +Rule_Match_ruby_lang_regex_using_user_input_0(node1, node3) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
     566 +.decl Rule_Match_ruby_lang_regex_using_user_input_1(node: AST_NodeId, node3: AST_NodeId)
     567 +.output Rule_Match_ruby_lang_regex_using_user_input_1
     568 +Rule_Match_ruby_lang_regex_using_user_input_1(node1, node3) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
     569 +.decl Rule_Match_ruby_lang_regex_using_user_input_2(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     570 +.output Rule_Match_ruby_lang_regex_using_user_input_2
     571 +Rule_Match_ruby_lang_regex_using_user_input_2(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Regexp"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     572 +// rule ruby_lang_regex_using_user_input_user_input
     573 +.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_0(node: AST_NodeId)
     574 +.output Rule_Match_ruby_lang_regex_using_user_input_user_input_0
     575 +Rule_Match_ruby_lang_regex_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     576 +.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_1(node: AST_NodeId)
     577 +.output Rule_Match_ruby_lang_regex_using_user_input_user_input_1
     578 +Rule_Match_ruby_lang_regex_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     579 +.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_2(node: AST_NodeId)
     580 +.output Rule_Match_ruby_lang_regex_using_user_input_user_input_2
     581 +Rule_Match_ruby_lang_regex_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     582 +.decl Rule_Match_ruby_lang_regex_using_user_input_user_input_3(node: AST_NodeId)
     583 +.output Rule_Match_ruby_lang_regex_using_user_input_user_input_3
     584 +Rule_Match_ruby_lang_regex_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     585 +// rule ruby_lang_ssl_verification
     586 +// rule ruby_lang_weak_encryption
     587 +.decl Rule_Match_ruby_lang_weak_encryption_0(node: AST_NodeId)
     588 +.output Rule_Match_ruby_lang_weak_encryption_0
     589 +Rule_Match_ruby_lang_weak_encryption_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest").
     590 +.decl Rule_Match_ruby_lang_weak_encryption_1(node: AST_NodeId)
     591 +.output Rule_Match_ruby_lang_weak_encryption_1
     592 +Rule_Match_ruby_lang_weak_encryption_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest").
     593 +.decl Rule_Match_ruby_lang_weak_encryption_2(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     594 +.output Rule_Match_ruby_lang_weak_encryption_2
     595 +Rule_Match_ruby_lang_weak_encryption_2(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     596 +.decl Rule_Match_ruby_lang_weak_encryption_3(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     597 +.output Rule_Match_ruby_lang_weak_encryption_3
     598 +Rule_Match_ruby_lang_weak_encryption_3(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     599 +.decl Rule_Match_ruby_lang_weak_encryption_4(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     600 +.output Rule_Match_ruby_lang_weak_encryption_4
     601 +Rule_Match_ruby_lang_weak_encryption_4(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     602 +.decl Rule_Match_ruby_lang_weak_encryption_5(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     603 +.output Rule_Match_ruby_lang_weak_encryption_5
     604 +Rule_Match_ruby_lang_weak_encryption_5(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     605 +.decl Rule_Match_ruby_lang_weak_encryption_6(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     606 +.output Rule_Match_ruby_lang_weak_encryption_6
     607 +Rule_Match_ruby_lang_weak_encryption_6(node1, node2, node3) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     608 +.decl Rule_Match_ruby_lang_weak_encryption_7(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId)
     609 +.output Rule_Match_ruby_lang_weak_encryption_7
     610 +Rule_Match_ruby_lang_weak_encryption_7(node1, node2, node3) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     611 +// rule ruby_lang_weak_encryption_with_data
     612 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_0(node: AST_NodeId, node7: AST_NodeId)
     613 +.output Rule_Match_ruby_lang_weak_encryption_with_data_0
     614 +Rule_Match_ruby_lang_weak_encryption_with_data_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     615 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_1(node: AST_NodeId, node7: AST_NodeId)
     616 +.output Rule_Match_ruby_lang_weak_encryption_with_data_1
     617 +Rule_Match_ruby_lang_weak_encryption_with_data_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     618 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_2(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     619 +.output Rule_Match_ruby_lang_weak_encryption_with_data_2
     620 +Rule_Match_ruby_lang_weak_encryption_with_data_2(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     621 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_3(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     622 +.output Rule_Match_ruby_lang_weak_encryption_with_data_3
     623 +Rule_Match_ruby_lang_weak_encryption_with_data_3(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     624 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_4(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
     625 +.output Rule_Match_ruby_lang_weak_encryption_with_data_4
     626 +Rule_Match_ruby_lang_weak_encryption_with_data_4(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     627 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_5(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
     628 +.output Rule_Match_ruby_lang_weak_encryption_with_data_5
     629 +Rule_Match_ruby_lang_weak_encryption_with_data_5(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     630 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_6(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     631 +.output Rule_Match_ruby_lang_weak_encryption_with_data_6
     632 +Rule_Match_ruby_lang_weak_encryption_with_data_6(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     633 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_7(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
     634 +.output Rule_Match_ruby_lang_weak_encryption_with_data_7
     635 +Rule_Match_ruby_lang_weak_encryption_with_data_7(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     636 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_8(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     637 +.output Rule_Match_ruby_lang_weak_encryption_with_data_8
     638 +Rule_Match_ruby_lang_weak_encryption_with_data_8(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     639 +// rule ruby_lang_weak_encryption_with_data_blowfish_init
     640 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_blowfish_init_0(node: AST_NodeId)
     641 +.output Rule_Match_ruby_lang_weak_encryption_with_data_blowfish_init_0
     642 +Rule_Match_ruby_lang_weak_encryption_with_data_blowfish_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     643 +// rule ruby_lang_weak_encryption_with_data_openssl_dsa_init
     644 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_openssl_dsa_init_0(node: AST_NodeId)
     645 +.output Rule_Match_ruby_lang_weak_encryption_with_data_openssl_dsa_init_0
     646 +Rule_Match_ruby_lang_weak_encryption_with_data_openssl_dsa_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     647 +// rule ruby_lang_weak_encryption_with_data_openssl_rsa_init
     648 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_openssl_rsa_init_0(node: AST_NodeId)
     649 +.output Rule_Match_ruby_lang_weak_encryption_with_data_openssl_rsa_init_0
     650 +Rule_Match_ruby_lang_weak_encryption_with_data_openssl_rsa_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "RSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     651 +// rule ruby_lang_weak_encryption_with_data_rc4_init
     652 +.decl Rule_Match_ruby_lang_weak_encryption_with_data_rc4_init_0(node: AST_NodeId)
     653 +.output Rule_Match_ruby_lang_weak_encryption_with_data_rc4_init_0
     654 +Rule_Match_ruby_lang_weak_encryption_with_data_rc4_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     655 +// rule ruby_rails_default_encryption
     656 +.decl Rule_Match_ruby_rails_default_encryption_0(node: AST_NodeId, node6: AST_NodeId)
     657 +.output Rule_Match_ruby_rails_default_encryption_0
     658 +Rule_Match_ruby_rails_default_encryption_0(node1, node6) :- AST_NodeType(node1, "class"), !AST_NodeField(node1, _, "superclass"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), !AST_NodeField(node3, _, "receiver"), AST_NodeField(node3, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "encrypts"), AST_NodeField(node3, node5, "arguments"), AST_NodeType(node5, "argument_list"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     659 +// rule ruby_rails_http_verb_confusion
     660 +.decl Rule_Match_ruby_rails_http_verb_confusion_0(node: AST_NodeId)
     661 +.output Rule_Match_ruby_rails_http_verb_confusion_0
     662 +Rule_Match_ruby_rails_http_verb_confusion_0(node1) :- AST_NodeType(node1, "if"), !AST_NodeField(node1, _, "consequence"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?"), AST_NodeField(node1, node5, "alternative"), AST_NodeType(node5, "else").
     663 +.decl Rule_Match_ruby_rails_http_verb_confusion_1(node: AST_NodeId)
     664 +.output Rule_Match_ruby_rails_http_verb_confusion_1
     665 +Rule_Match_ruby_rails_http_verb_confusion_1(node1) :- AST_NodeType(node1, "unless"), !AST_NodeField(node1, _, "consequence"), !AST_NodeField(node1, _, "alternative"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?").
     666 +.decl Rule_Match_ruby_rails_http_verb_confusion_2(node: AST_NodeId)
     667 +.output Rule_Match_ruby_rails_http_verb_confusion_2
     668 +Rule_Match_ruby_rails_http_verb_confusion_2(node1) :- AST_NodeType(node1, "unless_modifier"), AST_NodeField(node1, node2, "body"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "condition"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "request"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "get?").
     669 +// rule ruby_rails_insecure_communication
     670 +// rule ruby_rails_insecure_disabling_of_callback
     671 +.decl Rule_Match_ruby_rails_insecure_disabling_of_callback_0(node: AST_NodeId, node2: AST_NodeId)
     672 +.output Rule_Match_ruby_rails_insecure_disabling_of_callback_0
     673 +Rule_Match_ruby_rails_insecure_disabling_of_callback_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     674 +// rule ruby_rails_insecure_http_password
     675 +// rule ruby_rails_insecure_smtp
     676 +// rule ruby_rails_logger
     677 +.decl Rule_Match_ruby_rails_logger_0(node: AST_NodeId, node5: AST_NodeId, node7: AST_NodeId)
     678 +.output Rule_Match_ruby_rails_logger_0
     679 +Rule_Match_ruby_rails_logger_0(node1, node5, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Rails"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "logger"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     680 +// rule ruby_rails_password_length
     681 +// rule ruby_rails_permissive_regex_validation
     682 +.decl Rule_Match_ruby_rails_permissive_regex_validation_0(node: AST_NodeId, node7: AST_NodeId)
     683 +.output Rule_Match_ruby_rails_permissive_regex_validation_0
     684 +Rule_Match_ruby_rails_permissive_regex_validation_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":format"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "format")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp1, "key"), (AST_NodeType(tmp1, "simple_symbol"), AST_NodeContent(tmp1, ":with"); AST_NodeType(tmp1, "hash_key_symbol"), AST_NodeContent(tmp1, "with")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
     685 +.decl Rule_Match_ruby_rails_permissive_regex_validation_1(node: AST_NodeId, node5: AST_NodeId)
     686 +.output Rule_Match_ruby_rails_permissive_regex_validation_1
     687 +Rule_Match_ruby_rails_permissive_regex_validation_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates_format_of"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":with"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "with")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     688 +// rule ruby_rails_redirect_to
     689 +.decl Rule_Match_ruby_rails_redirect_to_0(node: AST_NodeId, node4: AST_NodeId)
     690 +.output Rule_Match_ruby_rails_redirect_to_0
     691 +Rule_Match_ruby_rails_redirect_to_0(node1, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "redirect_to"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     692 +// rule ruby_rails_redirect_to_user_input
     693 +.decl Rule_Match_ruby_rails_redirect_to_user_input_0(node: AST_NodeId)
     694 +.output Rule_Match_ruby_rails_redirect_to_user_input_0
     695 +Rule_Match_ruby_rails_redirect_to_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     696 +.decl Rule_Match_ruby_rails_redirect_to_user_input_1(node: AST_NodeId)
     697 +.output Rule_Match_ruby_rails_redirect_to_user_input_1
     698 +Rule_Match_ruby_rails_redirect_to_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     699 +.decl Rule_Match_ruby_rails_redirect_to_user_input_2(node: AST_NodeId)
     700 +.output Rule_Match_ruby_rails_redirect_to_user_input_2
     701 +Rule_Match_ruby_rails_redirect_to_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     702 +// rule ruby_rails_render_using_user_input
     703 +.decl Rule_Match_ruby_rails_render_using_user_input_0(node: AST_NodeId, node5: AST_NodeId)
     704 +.output Rule_Match_ruby_rails_render_using_user_input_0
     705 +Rule_Match_ruby_rails_render_using_user_input_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":inline"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "inline")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     706 +.decl Rule_Match_ruby_rails_render_using_user_input_1(node: AST_NodeId, node5: AST_NodeId)
     707 +.output Rule_Match_ruby_rails_render_using_user_input_1
     708 +Rule_Match_ruby_rails_render_using_user_input_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":html"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "html")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     709 +// rule ruby_rails_render_using_user_input_sanitized
     710 +.decl Rule_Match_ruby_rails_render_using_user_input_sanitized_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     711 +.output Rule_Match_ruby_rails_render_using_user_input_sanitized_0
     712 +Rule_Match_ruby_rails_render_using_user_input_sanitized_0(node1, node2, node4) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     713 +// rule ruby_rails_render_using_user_input_user_input
     714 +.decl Rule_Match_ruby_rails_render_using_user_input_user_input_0(node: AST_NodeId)
     715 +.output Rule_Match_ruby_rails_render_using_user_input_user_input_0
     716 +Rule_Match_ruby_rails_render_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     717 +.decl Rule_Match_ruby_rails_render_using_user_input_user_input_1(node: AST_NodeId)
     718 +.output Rule_Match_ruby_rails_render_using_user_input_user_input_1
     719 +Rule_Match_ruby_rails_render_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     720 +.decl Rule_Match_ruby_rails_render_using_user_input_user_input_2(node: AST_NodeId)
     721 +.output Rule_Match_ruby_rails_render_using_user_input_user_input_2
     722 +Rule_Match_ruby_rails_render_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     723 +// rule ruby_rails_session
     724 +.decl Rule_Match_ruby_rails_session_0(node: AST_NodeId, node5: AST_NodeId)
     725 +.output Rule_Match_ruby_rails_session_0
     726 +Rule_Match_ruby_rails_session_0(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "session"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     727 +// rule ruby_rails_session_key_using_user_input
     728 +.decl Rule_Match_ruby_rails_session_key_using_user_input_0(node: AST_NodeId, node3: AST_NodeId)
     729 +.output Rule_Match_ruby_rails_session_key_using_user_input_0
     730 +Rule_Match_ruby_rails_session_key_using_user_input_0(node1, node3) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "session"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     731 +// rule ruby_rails_session_key_using_user_input_user_input
     732 +.decl Rule_Match_ruby_rails_session_key_using_user_input_user_input_0(node: AST_NodeId)
     733 +.output Rule_Match_ruby_rails_session_key_using_user_input_user_input_0
     734 +Rule_Match_ruby_rails_session_key_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     735 +.decl Rule_Match_ruby_rails_session_key_using_user_input_user_input_1(node: AST_NodeId)
     736 +.output Rule_Match_ruby_rails_session_key_using_user_input_user_input_1
     737 +Rule_Match_ruby_rails_session_key_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     738 +.decl Rule_Match_ruby_rails_session_key_using_user_input_user_input_2(node: AST_NodeId)
     739 +.output Rule_Match_ruby_rails_session_key_using_user_input_user_input_2
     740 +Rule_Match_ruby_rails_session_key_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     741 +// rule ruby_third_parties_airbrake
     742 +.decl Rule_Match_ruby_third_parties_airbrake_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     743 +.output Rule_Match_ruby_third_parties_airbrake_0
     744 +Rule_Match_ruby_third_parties_airbrake_0(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     745 +.decl Rule_Match_ruby_third_parties_airbrake_2(node: AST_NodeId, node5: AST_NodeId)
     746 +.output Rule_Match_ruby_third_parties_airbrake_2
     747 +Rule_Match_ruby_third_parties_airbrake_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "merge_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     748 +.decl Rule_Match_ruby_third_parties_airbrake_3(node: AST_NodeId, node3: AST_NodeId)
     749 +.output Rule_Match_ruby_third_parties_airbrake_3
     750 +Rule_Match_ruby_third_parties_airbrake_3(node1, node3) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_airbrake"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     751 +// rule ruby_third_parties_algolia
     752 +.decl Rule_Match_ruby_third_parties_algolia_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     753 +.output Rule_Match_ruby_third_parties_algolia_0
     754 +Rule_Match_ruby_third_parties_algolia_0(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     755 +// rule ruby_third_parties_algolia_client
     756 +.decl Rule_Match_ruby_third_parties_algolia_client_0(node: AST_NodeId)
     757 +.output Rule_Match_ruby_third_parties_algolia_client_0
     758 +Rule_Match_ruby_third_parties_algolia_client_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Algolia"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Search"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Client"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "create").
     759 +// rule ruby_third_parties_algolia_index
     760 +.decl Rule_Match_ruby_third_parties_algolia_index_0(node: AST_NodeId, node2: AST_NodeId)
     761 +.output Rule_Match_ruby_third_parties_algolia_index_0
     762 +Rule_Match_ruby_third_parties_algolia_index_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "init_index").
     763 +// rule ruby_third_parties_bigquery
     764 +.decl Rule_Match_ruby_third_parties_bigquery_0(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     765 +.output Rule_Match_ruby_third_parties_bigquery_0
     766 +Rule_Match_ruby_third_parties_bigquery_0(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     767 +// rule ruby_third_parties_bigquery_client
     768 +.decl Rule_Match_ruby_third_parties_bigquery_client_0(node: AST_NodeId)
     769 +.output Rule_Match_ruby_third_parties_bigquery_client_0
     770 +Rule_Match_ruby_third_parties_bigquery_client_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     771 +.decl Rule_Match_ruby_third_parties_bigquery_client_1(node: AST_NodeId)
     772 +.output Rule_Match_ruby_third_parties_bigquery_client_1
     773 +Rule_Match_ruby_third_parties_bigquery_client_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     774 +// rule ruby_third_parties_bigquery_dataset
     775 +.decl Rule_Match_ruby_third_parties_bigquery_dataset_0(node: AST_NodeId, node2: AST_NodeId)
     776 +.output Rule_Match_ruby_third_parties_bigquery_dataset_0
     777 +Rule_Match_ruby_third_parties_bigquery_dataset_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "dataset").
     778 +// rule ruby_third_parties_bigquery_insert_async
     779 +.decl Rule_Match_ruby_third_parties_bigquery_insert_async_0(node: AST_NodeId, node2: AST_NodeId)
     780 +.output Rule_Match_ruby_third_parties_bigquery_insert_async_0
     781 +Rule_Match_ruby_third_parties_bigquery_insert_async_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     782 +.decl Rule_Match_ruby_third_parties_bigquery_insert_async_1(node: AST_NodeId, node2: AST_NodeId)
     783 +.output Rule_Match_ruby_third_parties_bigquery_insert_async_1
     784 +Rule_Match_ruby_third_parties_bigquery_insert_async_1(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     785 +.decl Rule_Match_ruby_third_parties_bigquery_insert_async_2(node: AST_NodeId, node2: AST_NodeId)
     786 +.output Rule_Match_ruby_third_parties_bigquery_insert_async_2
     787 +Rule_Match_ruby_third_parties_bigquery_insert_async_2(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     788 +// rule ruby_third_parties_bigquery_table
     789 +.decl Rule_Match_ruby_third_parties_bigquery_table_0(node: AST_NodeId, node2: AST_NodeId)
     790 +.output Rule_Match_ruby_third_parties_bigquery_table_0
     791 +Rule_Match_ruby_third_parties_bigquery_table_0(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "table").
     792 +.decl Rule_Match_ruby_third_parties_bigquery_table_1(node: AST_NodeId, node2: AST_NodeId)
     793 +.output Rule_Match_ruby_third_parties_bigquery_table_1
     794 +Rule_Match_ruby_third_parties_bigquery_table_1(node1, node2) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "create_table").
     795 +// rule ruby_third_parties_bugsnag
     796 +.decl Rule_Match_ruby_third_parties_bugsnag_1(node: AST_NodeId, node5: AST_NodeId)
     797 +.output Rule_Match_ruby_third_parties_bugsnag_1
     798 +Rule_Match_ruby_third_parties_bugsnag_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "leave_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     799 +.decl Rule_Match_ruby_third_parties_bugsnag_2(node: AST_NodeId, node5: AST_NodeId)
     800 +.output Rule_Match_ruby_third_parties_bugsnag_2
     801 +Rule_Match_ruby_third_parties_bugsnag_2(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     802 +// rule ruby_third_parties_clickhouse
     803 +.decl Rule_Match_ruby_third_parties_clickhouse_0(node: AST_NodeId, node2: AST_NodeId, node4: AST_NodeId)
     804 +.output Rule_Match_ruby_third_parties_clickhouse_0
     805 +Rule_Match_ruby_third_parties_clickhouse_0(node1, node2, node4) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     806 +// rule ruby_third_parties_clickhouse_insert_rows
     807 +// rule ruby_third_parties_datadog
     808 +.decl Rule_Match_ruby_third_parties_datadog_1(node: AST_NodeId, node2: AST_NodeId, node6: AST_NodeId)
     809 +.output Rule_Match_ruby_third_parties_datadog_1
     810 +Rule_Match_ruby_third_parties_datadog_1(node1, node2, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tag"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     811 +.decl Rule_Match_ruby_third_parties_datadog_2(node: AST_NodeId, node8: AST_NodeId)
     812 +.output Rule_Match_ruby_third_parties_datadog_2
     813 +Rule_Match_ruby_third_parties_datadog_2(node1, node8) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _), AST_ParentChild(node6, 1, node8), AST_NodeType(node8, _).
     814 +// rule ruby_third_parties_datadog_span
     815 +.decl Rule_Match_ruby_third_parties_datadog_span_1(node: AST_NodeId)
     816 +.output Rule_Match_ruby_third_parties_datadog_span_1
     817 +Rule_Match_ruby_third_parties_datadog_span_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "active_span").
     818 +.decl Rule_Match_ruby_third_parties_datadog_span_2(node: AST_NodeId, node8: AST_NodeId)
     819 +.output Rule_Match_ruby_third_parties_datadog_span_2
     820 +Rule_Match_ruby_third_parties_datadog_span_2(node1, node8) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
     821 +// rule ruby_third_parties_elasticsearch
     822 +.decl Rule_Match_ruby_third_parties_elasticsearch_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node6: AST_NodeId)
     823 +.output Rule_Match_ruby_third_parties_elasticsearch_0
     824 +Rule_Match_ruby_third_parties_elasticsearch_0(node1, node2, node3, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
     825 +.decl Rule_Match_ruby_third_parties_elasticsearch_1(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node7: AST_NodeId)
     826 +.output Rule_Match_ruby_third_parties_elasticsearch_1
     827 +Rule_Match_ruby_third_parties_elasticsearch_1(node1, node2, node3, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
     828 +// rule ruby_third_parties_elasticsearch_client
     829 +.decl Rule_Match_ruby_third_parties_elasticsearch_client_0(node: AST_NodeId)
     830 +.output Rule_Match_ruby_third_parties_elasticsearch_client_0
     831 +Rule_Match_ruby_third_parties_elasticsearch_client_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     832 +.decl Rule_Match_ruby_third_parties_elasticsearch_client_1(node: AST_NodeId)
     833 +.output Rule_Match_ruby_third_parties_elasticsearch_client_1
     834 +Rule_Match_ruby_third_parties_elasticsearch_client_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     835 +// rule ruby_third_parties_google_analytics
    828 836  // rule ruby_third_parties_google_dataflow
    829 837  .decl Rule_Match_ruby_third_parties_google_dataflow_0(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    830 838  .output Rule_Match_ruby_third_parties_google_dataflow_0
    skipped 13 lines
    844 852  .decl Rule_Match_ruby_third_parties_google_dataflow_5(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
    845 853  .output Rule_Match_ruby_third_parties_google_dataflow_5
    846 854  Rule_Match_ruby_third_parties_google_dataflow_5(node1, node3, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "metadata"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    847  -// rule ruby_rails_redirect_to_user_input
    848  -.decl Rule_Match_ruby_rails_redirect_to_user_input_0(node: AST_NodeId)
    849  -.output Rule_Match_ruby_rails_redirect_to_user_input_0
    850  -Rule_Match_ruby_rails_redirect_to_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    851  -.decl Rule_Match_ruby_rails_redirect_to_user_input_1(node: AST_NodeId)
    852  -.output Rule_Match_ruby_rails_redirect_to_user_input_1
    853  -Rule_Match_ruby_rails_redirect_to_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    854  -.decl Rule_Match_ruby_rails_redirect_to_user_input_2(node: AST_NodeId)
    855  -.output Rule_Match_ruby_rails_redirect_to_user_input_2
    856  -Rule_Match_ruby_rails_redirect_to_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    857  -// rule ruby_lang_http_url_using_user_input_user_input
    858  -.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_0(node: AST_NodeId)
    859  -.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_0
    860  -Rule_Match_ruby_lang_http_url_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    861  -.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_1(node: AST_NodeId)
    862  -.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_1
    863  -Rule_Match_ruby_lang_http_url_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    864  -.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_2(node: AST_NodeId)
    865  -.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_2
    866  -Rule_Match_ruby_lang_http_url_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    867  -.decl Rule_Match_ruby_lang_http_url_using_user_input_user_input_3(node: AST_NodeId)
    868  -.output Rule_Match_ruby_lang_http_url_using_user_input_user_input_3
    869  -Rule_Match_ruby_lang_http_url_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    870  -// rule ruby_lang_file_generation_file
    871  -.decl Rule_Match_ruby_lang_file_generation_file_0(node: AST_NodeId)
    872  -.output Rule_Match_ruby_lang_file_generation_file_0
    873  -Rule_Match_ruby_lang_file_generation_file_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate").
    874  -.decl Rule_Match_ruby_lang_file_generation_file_1(node: AST_NodeId)
    875  -.output Rule_Match_ruby_lang_file_generation_file_1
    876  -Rule_Match_ruby_lang_file_generation_file_1(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    877  -.decl Rule_Match_ruby_lang_file_generation_file_2(node: AST_NodeId)
    878  -.output Rule_Match_ruby_lang_file_generation_file_2
    879  -Rule_Match_ruby_lang_file_generation_file_2(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
    880  -.decl Rule_Match_ruby_lang_file_generation_file_3(node: AST_NodeId)
    881  -.output Rule_Match_ruby_lang_file_generation_file_3
    882  -Rule_Match_ruby_lang_file_generation_file_3(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    883  -.decl Rule_Match_ruby_lang_file_generation_file_4(node: AST_NodeId)
    884  -.output Rule_Match_ruby_lang_file_generation_file_4
    885  -Rule_Match_ruby_lang_file_generation_file_4(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
    886  -.decl Rule_Match_ruby_lang_file_generation_file_5(node: AST_NodeId)
    887  -.output Rule_Match_ruby_lang_file_generation_file_5
    888  -Rule_Match_ruby_lang_file_generation_file_5(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    889  -.decl Rule_Match_ruby_lang_file_generation_file_6(node: AST_NodeId)
    890  -.output Rule_Match_ruby_lang_file_generation_file_6
    891  -Rule_Match_ruby_lang_file_generation_file_6(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
    892  -.decl Rule_Match_ruby_lang_file_generation_file_7(node: AST_NodeId)
    893  -.output Rule_Match_ruby_lang_file_generation_file_7
    894  -Rule_Match_ruby_lang_file_generation_file_7(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    895  -// rule ruby_rails_session_key_using_user_input
    896  -.decl Rule_Match_ruby_rails_session_key_using_user_input_0(node: AST_NodeId, node3: AST_NodeId)
    897  -.output Rule_Match_ruby_rails_session_key_using_user_input_0
    898  -Rule_Match_ruby_rails_session_key_using_user_input_0(node1, node3) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "session"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    899  -// rule ruby_lang_weak_encryption_with_data_blowfish_init
    900  -.decl Rule_Match_ruby_lang_weak_encryption_with_data_blowfish_init_0(node: AST_NodeId)
    901  -.output Rule_Match_ruby_lang_weak_encryption_with_data_blowfish_init_0
    902  -Rule_Match_ruby_lang_weak_encryption_with_data_blowfish_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    903  -// rule google_dataflow_snapshots_client_init
    904  -.decl Rule_Match_google_dataflow_snapshots_client_init_1(node: AST_NodeId)
    905  -.output Rule_Match_google_dataflow_snapshots_client_init_1
    906  -Rule_Match_google_dataflow_snapshots_client_init_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "snapshots").
    907  -// rule ruby_lang_deserialization_of_user_input_sanitized_user_input
    908  -.decl Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_0(node: AST_NodeId)
    909  -.output Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_0
    910  -Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JSON"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "parse").
    911  -.decl Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_1(node: AST_NodeId)
    912  -.output Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_1
    913  -Rule_Match_ruby_lang_deserialization_of_user_input_sanitized_user_input_1(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Nokogiri"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "XML").
    914  -// rule ruby_rails_session
    915  -.decl Rule_Match_ruby_rails_session_0(node: AST_NodeId, node5: AST_NodeId)
    916  -.output Rule_Match_ruby_rails_session_0
    917  -Rule_Match_ruby_rails_session_0(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "session"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    918  -// rule ruby_third_parties_bigquery
    919  -.decl Rule_Match_ruby_third_parties_bigquery_0(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
    920  -.output Rule_Match_ruby_third_parties_bigquery_0
    921  -Rule_Match_ruby_third_parties_bigquery_0(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    922  -// rule blowfish_init
    923  -.decl Rule_Match_blowfish_init_0(node: AST_NodeId)
    924  -.output Rule_Match_blowfish_init_0
    925  -Rule_Match_blowfish_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    926  -// rule ruby_lang_ftp_using_user_input_user_input
    927  -.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_0(node: AST_NodeId)
    928  -.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_0
    929  -Rule_Match_ruby_lang_ftp_using_user_input_user_input_0(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    930  -.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_1(node: AST_NodeId)
    931  -.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_1
    932  -Rule_Match_ruby_lang_ftp_using_user_input_user_input_1(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    933  -.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_2(node: AST_NodeId)
    934  -.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_2
    935  -Rule_Match_ruby_lang_ftp_using_user_input_user_input_2(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    936  -.decl Rule_Match_ruby_lang_ftp_using_user_input_user_input_3(node: AST_NodeId)
    937  -.output Rule_Match_ruby_lang_ftp_using_user_input_user_input_3
    938  -Rule_Match_ruby_lang_ftp_using_user_input_user_input_3(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     855 +// rule ruby_third_parties_honeybadger
     856 +.decl Rule_Match_ruby_third_parties_honeybadger_0(node: AST_NodeId, node5: AST_NodeId)
     857 +.output Rule_Match_ruby_third_parties_honeybadger_0
     858 +Rule_Match_ruby_third_parties_honeybadger_0(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     859 +.decl Rule_Match_ruby_third_parties_honeybadger_1(node: AST_NodeId, node5: AST_NodeId)
     860 +.output Rule_Match_ruby_third_parties_honeybadger_1
     861 +Rule_Match_ruby_third_parties_honeybadger_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     862 +.decl Rule_Match_ruby_third_parties_honeybadger_2(node: AST_NodeId, node3: AST_NodeId)
     863 +.output Rule_Match_ruby_third_parties_honeybadger_2
     864 +Rule_Match_ruby_third_parties_honeybadger_2(node1, node3) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_honeybadger_context"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     865 +.decl Rule_Match_ruby_third_parties_honeybadger_3(node: AST_NodeId, node5: AST_NodeId)
     866 +.output Rule_Match_ruby_third_parties_honeybadger_3
     867 +Rule_Match_ruby_third_parties_honeybadger_3(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "add_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     868 +// rule ruby_third_parties_new_relic
     869 +.decl Rule_Match_ruby_third_parties_new_relic_0(node: AST_NodeId, node7: AST_NodeId)
     870 +.output Rule_Match_ruby_third_parties_new_relic_0
     871 +Rule_Match_ruby_third_parties_new_relic_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_attributes"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     872 +.decl Rule_Match_ruby_third_parties_new_relic_1(node: AST_NodeId, node7: AST_NodeId)
     873 +.output Rule_Match_ruby_third_parties_new_relic_1
     874 +Rule_Match_ruby_third_parties_new_relic_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_parameters"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     875 +.decl Rule_Match_ruby_third_parties_new_relic_2(node: AST_NodeId, node7: AST_NodeId)
     876 +.output Rule_Match_ruby_third_parties_new_relic_2
     877 +Rule_Match_ruby_third_parties_new_relic_2(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "notice_error"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     878 +// rule ruby_third_parties_open_telemetry
     879 +.decl Rule_Match_ruby_third_parties_open_telemetry_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     880 +.output Rule_Match_ruby_third_parties_open_telemetry_0
     881 +Rule_Match_ruby_third_parties_open_telemetry_0(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     882 +.decl Rule_Match_ruby_third_parties_open_telemetry_1(node: AST_NodeId, node6: AST_NodeId)
     883 +.output Rule_Match_ruby_third_parties_open_telemetry_1
     884 +Rule_Match_ruby_third_parties_open_telemetry_1(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     885 +// rule ruby_third_parties_rollbar
     886 +.decl Rule_Match_ruby_third_parties_rollbar_0(node: AST_NodeId, node5: AST_NodeId)
     887 +.output Rule_Match_ruby_third_parties_rollbar_0
     888 +Rule_Match_ruby_third_parties_rollbar_0(node1, node5) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "rollbar_context"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     889 +.decl Rule_Match_ruby_third_parties_rollbar_1(node: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     890 +.output Rule_Match_ruby_third_parties_rollbar_1
     891 +Rule_Match_ruby_third_parties_rollbar_1(node1, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     892 +.decl Rule_Match_ruby_third_parties_rollbar_2(node: AST_NodeId, node6: AST_NodeId)
     893 +.output Rule_Match_ruby_third_parties_rollbar_2
     894 +Rule_Match_ruby_third_parties_rollbar_2(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "log"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     895 +.decl Rule_Match_ruby_third_parties_rollbar_3(node: AST_NodeId, node2: AST_NodeId, node5: AST_NodeId)
     896 +.output Rule_Match_ruby_third_parties_rollbar_3
     897 +Rule_Match_ruby_third_parties_rollbar_3(node1, node2, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     898 +.decl Rule_Match_ruby_third_parties_rollbar_4(node: AST_NodeId, node5: AST_NodeId)
     899 +.output Rule_Match_ruby_third_parties_rollbar_4
     900 +Rule_Match_ruby_third_parties_rollbar_4(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scoped"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     901 +// rule ruby_third_parties_rollbar_scope
     902 +.decl Rule_Match_ruby_third_parties_rollbar_scope_0(node: AST_NodeId)
     903 +.output Rule_Match_ruby_third_parties_rollbar_scope_0
     904 +Rule_Match_ruby_third_parties_rollbar_scope_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope").
     905 +// rule ruby_third_parties_scout_apm
     906 +.decl Rule_Match_ruby_third_parties_scout_apm_0(node: AST_NodeId, node7: AST_NodeId)
     907 +.output Rule_Match_ruby_third_parties_scout_apm_0
     908 +Rule_Match_ruby_third_parties_scout_apm_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_user"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     909 +.decl Rule_Match_ruby_third_parties_scout_apm_1(node: AST_NodeId, node7: AST_NodeId)
     910 +.output Rule_Match_ruby_third_parties_scout_apm_1
     911 +Rule_Match_ruby_third_parties_scout_apm_1(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     912 +// rule ruby_third_parties_segment
     913 +.decl Rule_Match_ruby_third_parties_segment_0(node: AST_NodeId, node2: AST_NodeId, node3: AST_NodeId, node5: AST_NodeId)
     914 +.output Rule_Match_ruby_third_parties_segment_0
     915 +Rule_Match_ruby_third_parties_segment_0(node1, node2, node3, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     916 +// rule ruby_third_parties_sentry
     917 +.decl Rule_Match_ruby_third_parties_sentry_0(node: AST_NodeId, node7: AST_NodeId)
     918 +.output Rule_Match_ruby_third_parties_sentry_0
     919 +Rule_Match_ruby_third_parties_sentry_0(node1, node7) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Sentry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Breadcrumb"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     920 +.decl Rule_Match_ruby_third_parties_sentry_1(node: AST_NodeId, node5: AST_NodeId)
     921 +.output Rule_Match_ruby_third_parties_sentry_1
     922 +Rule_Match_ruby_third_parties_sentry_1(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "capture_message"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     923 +.decl Rule_Match_ruby_third_parties_sentry_3(node: AST_NodeId, node6: AST_NodeId)
     924 +.output Rule_Match_ruby_third_parties_sentry_3
     925 +Rule_Match_ruby_third_parties_sentry_3(node1, node6) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     926 +.decl Rule_Match_ruby_third_parties_sentry_8(node: AST_NodeId, node5: AST_NodeId)
     927 +.output Rule_Match_ruby_third_parties_sentry_8
     928 +Rule_Match_ruby_third_parties_sentry_8(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_extras"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     929 +.decl Rule_Match_ruby_third_parties_sentry_13(node: AST_NodeId, node5: AST_NodeId)
     930 +.output Rule_Match_ruby_third_parties_sentry_13
     931 +Rule_Match_ruby_third_parties_sentry_13(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tags"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     932 +.decl Rule_Match_ruby_third_parties_sentry_16(node: AST_NodeId, node5: AST_NodeId)
     933 +.output Rule_Match_ruby_third_parties_sentry_16
     934 +Rule_Match_ruby_third_parties_sentry_16(node1, node5) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_user"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     935 +// rule segment_init
     936 +.decl Rule_Match_segment_init_0(node: AST_NodeId)
     937 +.output Rule_Match_segment_init_0
     938 +Rule_Match_segment_init_0(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Segment"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Analytics"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    939 939   
Please wait...
Page is in error, reload to recover