public static List <IO2Finding> applySinkRuleToFindingAndTrace(IO2Finding o2Finding, string traceSignature, IDictionary <string, List <IO2Rule> > indexedRules)
        {
            var newFindings = new List <IO2Finding>();

            if (traceSignature != "" && indexedRules.ContainsKey(traceSignature))
            {
                // apply rules settings to it
                foreach (var o2Rule in indexedRules[traceSignature])
                {
                    // create copy of finding
                    var newO2Finding = OzasmtCopy.createCopy(o2Finding);
                    // apply rule
                    newO2Finding.severity = OzasmtUtils.getSeverityFromString(o2Rule.Severity);
                    newO2Finding.vulnName = o2Rule.Signature;
                    newO2Finding.vulnType = o2Rule.VulnType;
                    newFindings.Add(newO2Finding);
                }
            }
            return(newFindings);
        }