static void EraseJS(Obj js) { if (js.IsString()) { js.SetString("//sanitized"); } if (js.IsStream()) { js.SetStreamData(System.Text.Encoding.ASCII.GetBytes("//sanitized")); } } static void CheckDictOrStream(Obj dict) { Obj js = dict.FindObj("JS"); if (js != null) { EraseJS(js); } var diter = dict.GetDictIterator(); for (; diter.HasNext(); diter.Next()) { Obj current = diter.Value(); if (current == null) continue; if (current.IsIndirect()) continue; // skip if (current.IsArray()) { CheckArray(current); } if (current.IsDict() || current.IsStream()) { CheckDictOrStream(current); } } } static void CheckArray(Obj arr) { for (int i = 0; i