[Soot-list] Generating a CallGraph

Graziella Galea gra.galea at gmail.com
Thu Mar 27 16:08:15 EDT 2014


Hi,

OK then.  Something like this I presume would be fine.

private CallGraph setUp(String path) throws Exception{
PackManager.v().getPack("wjtp").add(new Transform("wjtp.myTrans",
new SceneTransformer() {
@Override
protected void internalTransform(String phaseName, Map options) {
SparkTransformer.v().transform();
}
}));
Options.v().set_no_bodies_for_excluded(true);
Options.v().set_whole_program(true);
Options.v().set_allow_phantom_refs(true);
Options.v().set_process_dir(Arrays.asList(path)); //library dir
Options.v().set_soot_classpath("C:\\Program
Files\\Java\\jre7\\lib\\rt.jar;"+path+";" +
"C:\\Program Files\\Java\\jre7\\lib\\jce.jar");
 //library dir along with rt.jar/jce.jar from JRE/JDK
Scene.v().loadNecessaryClasses();
getAllMethods(path);
PackManager.v().getPack("wjtp").apply();
return Scene.v().getCallGraph();
}
Do you think that this is better Marc-André?
Hope that it helps anyone who is as lost as I was.  Thanks a lot for your
help and suggestions Marc-André!


On 27 March 2014 16:24, Marc-Andre Laverdiere-Papineau <
marc-andre.laverdiere-papineau at polymtl.ca> wrote:

> Hi Graziella,
>
> I would use the PackManager to run the processing pipeline if I were
> you. Less risk to break something and less lines of code too :)
>
> --
> Marc-André Laverdière-Papineau
> Doctorant - PhD Candidate
>
> On 2014-03-27 03:21, Graziella Galea wrote:
> > Hi Marc-André,
> >
> > I think I have found the solution.  I had to change the project of
> > analysis yesterday and realised that it contains multiple main methods
> > (it is a large project).  Thus, if I use those as entry points, I can
> > easily use SPARK since main methods are static methods!  So I thought
> > the code would be something like the following but I still have to test
> it:
> >
> > private CallGraph setUp(String path, String javafiles, String testSuite)
> > throws Exception{
> > Options.v().set_no_bodies_for_excluded(true);
> > Options.v().set_whole_program(true);
> > Options.v().set_allow_phantom_refs(true);
> > Options.v().set_process_dir(Arrays.asList(path)); //library dir
> > Options.v().set_soot_classpath("C:\\Program
> > Files\\Java\\jre7\\lib\\rt.jar;"+path+";" +
> > "C:\\Program Files\\Java\\jre7\\lib\\jce.jar");
> > //library dir along with rt.jar/jce.jar from JRE/JDK
> > Scene.v().loadNecessaryClasses();
> > getAllMethods(path);
> > //identify source files
> > identifySources(javafiles);
> > System.out.println("sources identifed");
> > identifyTestClasses(testSuite);
> > Transform sparkTranform = new Transform( "cg.spark", null );
> > PhaseOptions.v().setPhaseOption( sparkTranform, "verbose:true" );
> > Map options = PhaseOptions.v().getPhaseOptions( sparkTranform );
> > PointsToAnalysis spark = new PAG(new SparkOptions(options));
> > CallGraphBuilder builder = new CallGraphBuilder(spark);
> > builder.build();
> > return builder.getCallGraph();
> > }
> >
> > private ArrayList<SootMethod> getAllMethods(String path) throws
> Exception{
> > Parser p = new Parser();
> > ArrayList<File> allFiles = p.getSourceFiles(path, false);
> > ArrayList<SootMethod> entryPoints = new ArrayList<SootMethod>();
> >          for(File f: allFiles){
> > //remove the path and leave package path only
> > String name = f.getAbsolutePath().replace(path+"\\", "");
> > name = name.replace("\\", ".");
> > name = name.replace(".class", "");
> > SootClass sootClass = Scene.v().forceResolve(name, SootClass.BODIES);
> >              sootClass.setApplicationClass();
> >              for(SootMethod m: sootClass.getMethods()){
> > if(m.isMain()){
> > entryPoints.add(m);
> > }
> >              }
> >          }
> >
> > Scene.v().addBasicClass("java.lang.ThreadGroup",SootClass.SIGNATURES);
> > Scene.v().setEntryPoints(entryPoints);
> > return entryPoints;
> > }
> >
> > I had sent you something similar but it is not the same.
> > Do you think that this would result in a robust and precise
> implementation?
> >
> > Thanks a lot for your help :)
> >
> >
> >
> > On 27 March 2014 03:33, Marc-André Laverdière
> > <marc-andre.laverdiere-papineau at polymtl.ca
> > <mailto:marc-andre.laverdiere-papineau at polymtl.ca>> wrote:
> >
> >     Hello Graziella,
> >
> >     All right, so now we know what is going on.
> >
> >     I would expect someone during your thesis defense to ask you hard
> >     questions about CHA if you choose to go that path. CHA is just plain
> >     bad. It is sound, but that's by putting almost everything. It is the
> >     equivalent of killing a fly with a nuclear bomb.
> >
> >     Also, if you are going to do any interprocedural analysis, you are
> >     likely to waste a lot of processing time on spurious edges.
> >
> >      >From what I see, you have 3 options:
> >     1) Try running SPARK in RTA mode. That should be better than CHA.
> But I
> >     don't know if you'll hit the same problem.
> >     2) Generate some fake main. If you are doing Android analysis,
> Flowdroid
> >     has one. If you are doing JEE, Bernhard and I have developed one.
> >     3) Tweak the Spark algorithm to bootstrap the analysis with a CHA
> >     fallback for the this pointer of your non-static entry points. I am
> sure
> >     that many people would like that contribution.
> >
> >     With a bit of investment on your part, you'll get a solution that
> will
> >     be robust and precise, which is a good starting point for a research
> >     project :)
> >
> >     Regards,
> >
> >     Marc-André Laverdière-Papineau
> >     Doctorant - PhD Candidate
> >
> >     On 03/25/2014 05:39 PM, Graziella Galea wrote:
> >      > Hi Marc-André,
> >      >
> >      > No, my entry-points are definitely not static.  I am a bit unsure
> >     though
> >      > which methods should be set as entry-points.  I first started
> >     following
> >      > the following link at using and it worked.  Now that I am trying
> to
> >      > change to SPARK so as to make sure that my results are precise, I
> >     don't
> >      > think that the same approach applies ie setting each method as an
> >      > entry-point as suggested in the following link.
> >      >
> >      > http://marc.info/?l=soot-list&m=134095873818018&w=2
> >      >
> >      > Is generating a main stub better than using CHA algorithm?  I am
> >     trying
> >      > to decide if I should go back to my previous code which uses the
> CHA
> >      > algorithm and seems to be working fine or try to get the SPARK
> >     working.
> >      >
> >      >
> >      > On 25 March 2014 22:22, Marc-André Laverdière
> >      > <marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      > <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>> wrote:
> >      >
> >      >     Hi Graziella,
> >      >
> >      >     I haven't looked at your code and I won't until you tell us
> >     whether your
> >      >     entry points are static or not, because that is an extremely
> >     important
> >      >     piece of information. Non-static entry points will give you
> >     bad results
> >      >     all the time.
> >      >
> >      >     If you use non-static entry points, you have to choose
> >     between a call
> >      >     graph algorithm that is less precise, or generating a main
> stub.
> >      >
> >      >     Marc-André Laverdière-Papineau
> >      >     Doctorant - PhD Candidate
> >      >
> >      >     On 03/25/2014 02:56 PM, Graziella Galea wrote:
> >      >     > Hi Marc-André.
> >      >     >
> >      >     > I added the setting
> >     Options.v().set_no_bodies_for_excluded(true);
> >      >     and it
> >      >     > only took around 25 seconds which is good.  Then I tried to
> >     use SPARK
> >      >     > since it is more precise.  The problem is that I do not
> >     think that the
> >      >     > whole callgraph is being generated.  This is because for
> >     particular
> >      >     > methods, I identify their source methods and some of which
> >     are not
> >      >     being
> >      >     > found.
> >      >     >
> >      >     > The following is my code:
> >      >     >
> >      >     > private CallGraph setUp(String path, String javafiles,
> String
> >      >     testSuite)
> >      >     > throws Exception{
> >      >     > Options.v().set_no_bodies_for_excluded(true);
> >      >     > Options.v().set_whole_program(true);
> >      >     > Options.v().set_allow_phantom_refs(true);
> >      >     > Options.v().set_process_dir(Arrays.asList(path)); //library
> dir
> >      >     > Options.v().set_soot_classpath("C:\\Program
> >      >     > Files\\Java\\jre7\\lib\\rt.jar;"+path+";" +
> >      >     > "C:\\Program Files\\Java\\jre7\\lib\\jce.jar");
> >      >     > //library dir along with rt.jar/jce.jar from JRE/JDK
> >      >     > Scene.v().loadNecessaryClasses();
> >      >     > getAllMethods(path);
> >      >     > //identify source files
> >      >     > identifySources(javafiles);
> >      >     > System.out.println("sources identifed");
> >      >     > identifyTestClasses(testSuite);
> >      >     > Transform sparkTranform = new Transform( "cg.spark", null );
> >      >     > PhaseOptions.v().setPhaseOption( sparkTranform,
> >     "verbose:true" );
> >      >     > Map options = PhaseOptions.v().getPhaseOptions(
> >     sparkTranform );
> >      >     > PointsToAnalysis spark = new PAG(new SparkOptions(options));
> >      >     > CallGraphBuilder builder = new CallGraphBuilder(spark);
> >      >     > builder.build();
> >      >     > return builder.getCallGraph();
> >      >     > }
> >      >     >
> >      >     > private ArrayList<SootMethod> getAllMethods(String path)
> throws
> >      >     Exception{
> >      >     > Parser p = new Parser();
> >      >     > ArrayList<File> allFiles = p.getSourceFiles(path, false);
> >      >     > ArrayList<SootMethod> entryPoints = new
> >     ArrayList<SootMethod>();
> >      >     >         for(File f: allFiles){
> >      >     >         //remove the path and leave package path only
> >      >     >         String name =
> >     f.getAbsolutePath().replace(path+"\\", "");
> >      >     >         name = name.replace("\\", ".");
> >      >     >         name = name.replace(".class", "");
> >      >     >         SootClass sootClass = Scene.v().forceResolve(name,
> >      >     > SootClass.BODIES);
> >      >     >             sootClass.setApplicationClass();
> >      >     >             for(SootMethod m: sootClass.getMethods()){
> >      >     >              if (!m.isAbstract()) {
> >      >     >              entryPoints.add(m);
> >      >     >                }
> >      >     >             }
> >      >     >         }
> >      >     >
> >      >     >
> >
> Scene.v().addBasicClass("java.lang.ThreadGroup",SootClass.SIGNATURES);
> >      >     >       Scene.v().setEntryPoints(entryPoints);
> >      >     > return entryPoints;
> >      >     > }
> >      >     >
> >      >     > Is this fine?
> >      >     >
> >      >     > Thanks for your help.
> >      >     >
> >      >     >
> >      >     > On 24 March 2014 22:47, Marc-André Laverdière
> >      >     > <marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     > <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>> wrote:
> >      >     >
> >      >     >     Hi Graziella,
> >      >     >
> >      >     >     I don't know much about the .build file, so no comments.
> >      >     >
> >      >     >
> >      >     >     I am surprised that CHA is taking so long - do you have
> >     very large
> >      >     >     libraries? Did you try using Spark in CHA mode? I think
> >     that the
> >      >     >     CHATransformer is very old code - Spark has
> >     optimizations that
> >      >     work for
> >      >     >     all analyses.
> >      >     >
> >      >     >     Spark should take more time, that's obvious. A way to
> work
> >      >     around that
> >      >     >     is to use exclusions and no-bodies-for-exclusions. You
> >      >     truncate your
> >      >     >     call graph, which is unsound, but you may not care so
> much
> >      >     about some
> >      >     >     parts of it. I do that all the time when analyzing JEE.
> >      >     >
> >      >     >     Also, note that the wjtp phase runs after Spark
> >     executes (if
> >      >     Spark is
> >      >     >     enabled, that is).
> >      >     >
> >      >     >     Marc-André Laverdière-Papineau
> >      >     >     Doctorant - PhD Candidate
> >      >     >
> >      >     >     On 03/24/2014 02:13 PM, Graziella Galea wrote:
> >      >     >     > Thanks for your help Marc-André.
> >      >     >     >
> >      >     >     > I have read a bit about what you said and on the
> paper 'A
> >      >     Survivor's
> >      >     >     > Guide to Java Program Analysis with Soot' it is also
> >     argued that
> >      >     >     > SPARK provides a more precise callgraph while CHA is
> >      >     considered as a
> >      >     >     > dumb version.
> >      >     >     >
> >      >     >     > Before continuing any further though, I have realised
> >     that
> >      >     >     generating a
> >      >     >     > callgraph using CHA takes approximately a minute.  In
> >     the same
> >      >     >     > paper it is said that SPARK provides a better
> >     callgraph at
> >      >     the expense
> >      >     >     > of complicated setup and time.  Obviously, I do not
> >     want the
> >      >     >     > callgraph generation to take longer (already not very
> >     happy
> >      >     with the
> >      >     >     > current execution time especially because the call
> graph
> >      >     >     > handling barely takes a second.).  Do you think that
> >     SPARK
> >      >     will take
> >      >     >     > even longer than a minute?  The currently
> >     implementation for the
> >      >     >     > callgraph generation takes a lot of time (a minute)
> >     because of
> >      >     >     this line:
> >      >     >     >
> >      >     >     > PackManager.v().getPack("wjtp").apply();
> >      >     >     >
> >      >     >     >
> >      >     >     > On a different note, is it true that there is a way of
> >      >     generating a
> >      >     >     > callgraph using the .build file?  I never saw such
> >     solution
> >      >     on the
> >      >     >     web but
> >      >     >     > I know of someone who did but do not know how and it
> >     seems as
> >      >     >     though it
> >      >     >     > does not take a long time for such generation.
> >      >     >     >
> >      >     >     >
> >      >     >     >
> >      >     >     > On 24 March 2014 17:12, Marc-André Laverdière
> >      >     >     > <marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     > <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>> wrote:
> >      >     >     >
> >      >     >     >     Hello Graziella,
> >      >     >     >
> >      >     >     >     It wouldn't hurt to do some reading on call graph
> >      >     construction
> >      >     >     >     algorithms if you want to know more. I think that
> >     Lhoták's
> >      >     >     masters'
> >      >     >     >     thesis on SPARK, even if you just skim through
> >     it, will
> >      >     be very
> >      >     >     >     instructive.
> >      >     >     >
> >      >     >     >     Anyways, here is an executive summary.
> >      >     >     >     CHA = declared type's class + all subclasses
> >      >     >     >     RTA = CHA - types that aren't instanciated
> >      >     >     >     VTA, SPARK, etc. = RTA + Fancy constraint
> >     propagation to
> >      >     >     narrow it down
> >      >     >     >     even more.
> >      >     >     >
> >      >     >     >     So, CHA will always be 'good' if you use very flat
> >      >     >     hierarchies, or if
> >      >     >     >     the program you analyze always declares the exact
> >     same
> >      >     type as
> >      >     >     the one
> >      >     >     >     used (e.g. no List meh = new ArrayList, but
> ArrayList
> >      >     meh = new
> >      >     >     >     ArrayList). I am sure that this kind of code
> >     exists, but I
> >      >     >     doubt that
> >      >     >     >     you'll analyze only this stuff :)
> >      >     >     >
> >      >     >     >     Marc-André Laverdière-Papineau
> >      >     >     >     Doctorant - PhD Candidate
> >      >     >     >
> >      >     >     >     On 03/24/2014 11:31 AM, Graziella Galea wrote:
> >      >     >     >     > Hi!
> >      >     >     >     >
> >      >     >     >     > Why is the CHA algorithm less precise?  I have
> >     tested
> >      >     it and
> >      >     >     >     worked fine
> >      >     >     >     > till now but it is very important for me that I
> >     have
> >      >     precise
> >      >     >     results.
> >      >     >     >     >
> >      >     >     >     > Regards,
> >      >     >     >     >
> >      >     >     >     > Graziella
> >      >     >     >     >
> >      >     >     >     >
> >      >     >     >     > On 24 March 2014 09:49, Steven Arzt
> >      >     <Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>
> >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>>
> >      >     >     <mailto:Steven.Arzt at cased.de
> >     <mailto:Steven.Arzt at cased.de> <mailto:Steven.Arzt at cased.de
> >     <mailto:Steven.Arzt at cased.de>>>
> >      >     >     >     <mailto:Steven.Arzt at cased.de
> >     <mailto:Steven.Arzt at cased.de>
> >      >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>>
> >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>
> >      >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>>>>
> >      >     >     >     > <mailto:Steven.Arzt at cased.de
> >     <mailto:Steven.Arzt at cased.de>
> >      >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>>
> >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>
> >      >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>>>
> >      >     >     <mailto:Steven.Arzt at cased.de
> >     <mailto:Steven.Arzt at cased.de> <mailto:Steven.Arzt at cased.de
> >     <mailto:Steven.Arzt at cased.de>>
> >      >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>
> >     <mailto:Steven.Arzt at cased.de <mailto:Steven.Arzt at cased.de>>>>>>
> wrote:
> >      >     >     >     >
> >      >     >     >     >     Hi all,
> >      >     >     >     >
> >      >     >     >     >     It really depends on the type of callgraph
> >     you are
> >      >     looking
> >      >     >     >     for. SPARK
> >      >     >     >     >     definitely does not work with non-static
> >     entry points,
> >      >     >     i.e. it
> >      >     >     >     will miss
> >      >     >     >     >     edges because it does not have valid
> >      >     points-to-sets for
> >      >     >     all "this"
> >      >     >     >     >     fields
> >      >     >     >     >     inside the instance methods on the
> >     boundary. So if
> >      >     no one
> >      >     >     >     >     instantiates your
> >      >     >     >     >     class A and A.method() is an entry point,
> then
> >      >     there will be
> >      >     >     >     an empty
> >      >     >     >     >     points-to-set for "this" in A.method()
> since no
> >      >     one ever
> >      >     >     >     creates an
> >      >     >     >     >     instance
> >      >     >     >     >     of A.
> >      >     >     >     >
> >      >     >     >     >     If you have non-static entry points and need
> >      >     SPARK's full
> >      >     >     >     precision, you
> >      >     >     >     >     will have to create a dummy main method.
> >     For doing so,
> >      >     >     you can
> >      >     >     >     use the
> >      >     >     >     >     DefaultEntryPointCreator class from
> FlowDroid
> >      >     >     >     >
> >      >     >
> >     (https://github.com/secure-software-engineering/soot-infoflow)
> >      >     >     >     which
> >      >     >     >     >     should
> >      >     >     >     >     make it fairly simple.
> >      >     >     >     >
> >      >     >     >     >     The other option would be to try a less
> >     precise CG
> >      >     algorithm
> >      >     >     >     such as
> >      >     >     >     >     CHA or
> >      >     >     >     >     RTA as already discussed.
> >      >     >     >     >
> >      >     >     >     >     Best regards,
> >      >     >     >     >       Steven
> >      >     >     >     >
> >      >     >     >     >     -----Ursprüngliche Nachricht-----
> >      >     >     >     >     Von: soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>
> >      >     >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>
> >      >     >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>>>
> >      >     >     >     >     [mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>
> >      >     >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>
> >      >     >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>
> >      >     <mailto:soot-list-bounces at sable.mcgill.ca
> >     <mailto:soot-list-bounces at sable.mcgill.ca>>>>>] Im Auftrag von
> >     Marc-André
> >      >     >     >     >     Laverdière-Papineau
> >      >     >     >     >     Gesendet: Samstag, 22. März 2014 20:22
> >      >     >     >     >     An: soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>>>
> >      >     >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>
> >     <mailto:soot-list at sable.mcgill.ca <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>
> >      >     <mailto:soot-list at sable.mcgill.ca
> >     <mailto:soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     >     Betreff: Re: [Soot-list] Generating a
> CallGraph
> >      >     >     >     >
> >      >     >     >     >     Hi Graziella,
> >      >     >     >     >
> >      >     >     >     >     This code uses CHA. Is that what you really
> >     want?
> >      >     >     >     >
> >      >     >     >     >     I honestly don't know of anybody who got a
> call
> >      >     graph in
> >      >     >     this kind
> >      >     >     >     >     of case
> >      >     >     >     >     with SPARK without generating a stubbed
> main.
> >      >     >     >     >
> >      >     >     >     >     Eric wrote the blog entry about custom
> >     entry points,
> >      >     >     he's probably
> >      >     >     >     >     the best
> >      >     >     >     >     person to ask...
> >      >     >     >     >
> >      >     >     >     >     Marc-André Laverdière-Papineau
> >      >     >     >     >     Doctorant - PhD Candidate
> >      >     >     >     >
> >      >     >     >     >     On 22/03/14 05:57 AM, Graziella Galea wrote:
> >      >     >     >     >     > I have followed the following solution to
> >     generate a
> >      >     >     callgraph
> >      >     >     >     >     >
> >     http://marc.info/?l=soot-list&m=134095873818018&w=2
> >      >     >     >     >     > and it does not mention anything about
> static
> >      >     classes - in
> >      >     >     >     fact it
> >      >     >     >     >     > sets every method in the project to be
> >     analysed
> >      >     as an
> >      >     >     >     entrypoint.
> >      >     >     >     >     > This is the reason I thought this is a
> >     good solution
> >      >     >     since I
> >      >     >     >     don't
> >      >     >     >     >     > have a main class.  Is there some
> >     tutorial which
> >      >     specifies
> >      >     >     >     exactly
> >      >     >     >     >     what
> >      >     >     >     >     settings
> >      >     >     >     >     > need to be configured in order to
> >     generate a call
> >      >     >     graph?   The
> >      >     >     >     >     code for
> >      >     >     >     >     > using the call graph is fine because I
> >     analysed
> >      >     another
> >      >     >     >     project and
> >      >     >     >     >     > the settings worked perfectly.  Then I
> >     applied it to
> >      >     >     another
> >      >     >     >     project
> >      >     >     >     >     > and it didn't work.  All I need to know
> >     is the
> >      >     >     settings - I
> >      >     >     >     have the
> >      >     >     >     >     > logic to handle a call graph then.
> >      >     >     >     >     >
> >      >     >     >     >     > Thanks again for your help!
> >      >     >     >     >     >
> >      >     >     >     >     >
> >      >     >     >     >     > On 21 March 2014 22:42, Marc-André
> Laverdière
> >      >     >     >     >     >
> >     <marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>
> >      >     >     >     >
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>>
> >      >     >     >     >     >
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>
> >      >     >     >     >
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>>>> wrote:
> >      >     >     >     >     >
> >      >     >     >     >     >     Hello,
> >      >     >     >     >     >
> >      >     >     >     >     >     Using the Soot main requires that you
> >     have a
> >      >     main
> >      >     >     class
> >      >     >     >     in your
> >      >     >     >     >     program.
> >      >     >     >     >     >     Custom entry points won't work in
> >     that case.
> >      >     >     >     >     >     Before we go there, would you please
> >     confirm
> >      >     that
> >      >     >     your entry
> >      >     >     >     >     points
> >      >     >     >     >     are
> >      >     >     >     >     >     static?
> >      >     >     >     >     >
> >      >     >     >     >     >     The next thing: I suggest that you
> add a
> >      >     transformer
> >      >     >     >     that will
> >      >     >     >     >     list
> >      >     >     >     >     all
> >      >     >     >     >     >     non-phantom classes loaded in your
> Scene.
> >      >     This is
> >      >     >     probably
> >      >     >     >     >     going to
> >      >     >     >     >     help
> >      >     >     >     >     >     diagnose problems.
> >      >     >     >     >     >
> >      >     >     >     >     >     My suggestion is that you start
> >     small: have it
> >      >     >     working on a
> >      >     >     >     >     simpler
> >      >     >     >     >     test
> >      >     >     >     >     >     case (all classes local, only one
> >     version),
> >      >     then add a
> >      >     >     >     feature
> >      >     >     >     >     >     (downloading class definitions), and
> then
> >      >     add the
> >      >     >     other.
> >      >     >     >     >     >
> >      >     >     >     >     >     Marc-André Laverdière-Papineau
> >      >     >     >     >     >     Doctorant - PhD Candidate
> >      >     >     >     >     >
> >      >     >     >     >     >     On 03/21/2014 04:25 PM, Graziella
> >     Galea wrote:
> >      >     >     >     >     >     > Thanks for your response Marc-Andre.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     > I am using a class loader in order
> >     to be
> >      >     able to
> >      >     >     retrieve
> >      >     >     >     >     classes
> >      >     >     >     >     and
> >      >     >     >     >     >     > set them as application classes.  I
> >      >     previously used
> >      >     >     >     >     >     > Scene.v().loadNecessaryClasses()
> >     but it is
> >      >     not good
> >      >     >     >     for my case
> >      >     >     >     >     >     since I
> >      >     >     >     >     >     > need to generate a call graph for
> >      >     different versions
> >      >     >     >     of the same
> >      >     >     >     >     >     > project.  I have been recommended
> >     to use the
> >      >     >     soot.Main
> >      >     >     >     but I am
> >      >     >     >     >     >     not sure
> >      >     >     >     >     >     > what parameters I need to pass.
> >       How do you
> >      >     >     recommend
> >      >     >     >     to use the
> >      >     >     >     >     >     > soot.Main method?
> >      >     >     >     >     >     >
> >      >     >     >     >     >     > Thanks for your help.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     > Regards,
> >      >     >     >     >     >     >
> >      >     >     >     >     >     > Graziella.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     >     >     >     >     > On 21 March 2014 20:05, Marc-Andre
> >      >     >     Laverdiere-Papineau
> >      >     >     >     >     >     >
> >     <marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>
> >      >     >     >     >
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>>
> >      >     >     >     >     >
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>
> >      >     >     >     >
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>>>
> >      >     >     >     >     >     >
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>
> >      >     >     >     >
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>>
> >      >     >     >     >     >
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>
> >      >     >     >     >
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>
> >      >     >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>
> >      >     >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>
> >      >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca
> >     <mailto:marc-andre.laverdiere-papineau at polymtl.ca>>>>>>>> wrote:
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     Hi Graziella,
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     Soot doesn't care about the
> >     class loader
> >      >     >     that you
> >      >     >     >     use - it
> >      >     >     >     >     >     uses its
> >      >     >     >     >     >     >     own class loading logic. You
> >     would need to
> >      >     >     either
> >      >     >     >     change
> >      >     >     >     >     that
> >      >     >     >     >     >     >     mechanism, or dump the classes
> >     you get
> >      >     from
> >      >     >     other
> >      >     >     >     >     sources to the
> >      >     >     >     >     >     >     disk and let Soot retrieve that.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     Also, it is generally
> >     recommended to
> >      >     use the
> >      >     >     Soot
> >      >     >     >     main if
> >      >     >     >     >     >     you're new
> >      >     >     >     >     >     >     at Soot.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     Also, note that entry points
> >     need to be
> >      >     >     static. IIRC,
> >      >     >     >     >     when you
> >      >     >     >     >     are
> >      >     >     >     >     >     >     working in app mode, you need
> >     to have an
> >      >     >     explicit main
> >      >     >     >     >     method,
> >      >     >     >     >     but
> >      >     >     >     >     >     >     I'm not 100% sure about that.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     BTW, you can join us on IRC at
> >     #soot
> >      >     on Freenode
> >      >     >     >     if that's
> >      >     >     >     >     >     your thing.
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     Le 2014-03-21 10:48, Graziella
> >     Galea a
> >      >     écrit :
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>     I am currently working on a
> >     project
> >      >     whereby
> >      >     >     I need to
> >      >     >     >     >     generate
> >      >     >     >     >     a
> >      >     >     >     >     >     >>     call graph for Java code
> analysis
> >      >     using SOOT.
> >      >     >     >     >     Unfortunately,
> >      >     >     >     >     for
> >      >     >     >     >     >     >>     each class in the project I am
> >     analyzing,
> >      >     >     soot is
> >      >     >     >     >     returning a
> >      >     >     >     >     >     >>     warning that the class in a
> >     phantom
> >      >     reference.
> >      >     >     >     Now, if
> >      >     >     >     >     I am not
> >      >     >     >     >     >     >>     mistaken, a phantom reference
> >     is a class
> >      >     >     which I
> >      >     >     >     cannot
> >      >     >     >     >     provide
> >      >     >     >     >     >     >>     but I am actually providing
> it. I
> >      >     first started
> >      >     >     >     >     thinking that
> >      >     >     >     >     the
> >      >     >     >     >     >     >>     problem was with the Soot's
> >     classpath
> >      >     but I
> >      >     >     think
> >      >     >     >     it is
> >      >     >     >     >     correct.
> >      >     >     >     >     >     >>     The path String variable used
> >     to set the
> >      >     >     >     classpath (as
> >      >     >     >     >     shown in
> >      >     >     >     >     >     >>     the code snippet below)
> >     specifies the bin
> >      >     >     folder
> >      >     >     >     of the
> >      >     >     >     >     project
> >      >     >     >     >     >     >>     I'm analysing.
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>     Could anyone help me? It's
> >     been over
> >      >     a week and
> >      >     >     >     cannot seem
> >      >     >     >     >     >     to get
> >      >     >     >     >     >     >>     it right.
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>     Code used for setup:
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>     |
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> privateCallGraphsetUp(ArrayList<String>paths,StringtestSuite)throwsException
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> {Options.v().set_whole_program(true);Options.v().set_allow_phantom_refs(true
> >      >     >     >     >     );
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>         Options.v().set_app(!
> >      >     >     >     >     >     >>      true);
> >      >     >     >     >     >     >>
> >      >     >     >
> >     Options.v().set_no_bodies_for_excluded(true);//set each
> >      >     >     >     >     method
> >      >     >     >     >     in
> >      >     >     >     >     >     >>     the source folder as an entry
> >      >     pointParserp
> >      >     >     >     >     >     >>
> >     =newParser();List<SootMethod>entryPoints
> >      >     >     >     >     >     >>
> =newArrayList<SootMethod>();//the
> >      >     arraylist
> >      >     >     paths
> >      >     >     >     >     contains the
> >      >     >     >     >     >     >>     path to the test suite and the
> >     path
> >      >     to the
> >      >     >     source
> >      >     >     >     >     >     >>
> >     folderfor(Stringpath:paths){if(path
> >      >     !=null
> >      >     >     >     >     >     >>     ){__//if it is null then the
> user
> >      >     chose to
> >      >     >     >     identify the
> >      >     >     >     >     >     methods only
> >      >     >     >     >     >     >>     //create a classLoader for this
> >      >     pathFilefile
> >      >     >     >     >     >     >>
> >     =newFile(path);ClassLoaderclassLoader
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> =newURLClassLoader(newURL[]{file.toURI().toURL()},parent);MultiClassLoadermc
> >      >     >     >     >     l
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> =newMultiClassLoader();mcl.addClassLoader(classLoader);ArrayList<File>allFil
> >      >     >     >     >     es
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> =p.getSourceFiles(path,false__);Options.v().set_process_dir(Arrays.asList(pa
> >      >     >     >     >     th+"\\"));__
> >      >     >     >     >     >     >>
> >      >     Options.v().set_soot_classpath("C:\\Program
> >      >     >     >     >     >     >>
> >      >     >     Files\\Java\\jre7\\lib\\rt.jar;"+path+"\\;C:\\Program
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >
> >      >
> >     Files\\Java\\jre7\\lib\\jce.jar");for(Filef:allFiles){//remove the
> >      >     >     >     >     >     >>     path and leave package path
> >      >     onlyStringname
> >      >     >     >     >     =f.getAbsolutePath()
> >      >     >     >     >     >     >>     .replace(path+"\\","");name
> >      >     >     =name.replace("\\",____
> >      >     >     >     >     ".");name
> >      >     >     >     >     >     >>     =name.replace(".class",
> >     "");//saves test
> >      >     >     files so
> >      >     >     >     as to be
> >      >     >     >     >     >     able to
> >      >     >     >     >     >     >>     distinguish between normal
> methods
> >      >     and test
> >      >     >     cases
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>
> >      >     if(path.equals(testSui!
> >      >     >     >     >     >     >>      te<
> >      >     >     >     >     >     >>     span class=""
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:basel
> >      >     >     >     >     ine;background-color:transparent">)){
> >      >     >     >     >     >     >>     testFiles.add(name);}//load the
> >      >     >     classClass<?>cls
> >      >     >     >     =mcl.getCl
> >      >     >     >     >     >     >>
> >      >     assLoader(0).loadClass(name);SootClasssootClass
> >      >     >     >     >     >     >>
> >      >     =Scene.v().loadClassAndSupport(cls.getName
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>     ());
> >      >     >     >     >     >     >>
> >      >     __sootClass.setApplicationClass();//set all
> >      >     >     of the
> >      >     >     >     >     methods in
> >      >     >     >     >     >     this
> >      >     >     >     >     >     >>     class as entrypoints since
> >     there is
> >      >     no main
> >      >     >     method
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> availablefor(SootMethodm:sootClass.getMethods()){if(!m.isAbstract()){System.
> >      >     >     >     >     out.println("entrypoint
> >      >     >     >     >     >     >>
> >      >     >     >     >     >
> >      >     >     >     >
> >      >     >     >
> >      >     >
> >      >
> >
> "+m);entryPoints.add(m);}}}mcl.removeClassLoader(classLoader);}}Scene.v().ad
> >      >     >     >     >     dBasicClass("java.
> >      >     >     >     >     >     >>
> >      >     >     >     >
> >      >     >
> >     lang.ThreadGroup",SootClass.SIGNATURES);Scene.v().setEntryPoints(
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>     entryPoints__);
> >      >     >     >     >     >     >>         PackManager.v().runPacks();
> >      >     >     >     >     >     >>         return Scene.v().get!
> >      >     >     >     >     >     >>      CallGraph<
> >      >     >     >     >     >     >>     /span>();
> >      >     >     >     >     >     >>        }|
> >      >     >     >     >     >     >>     --
> >      >     >     >     >     >     >>     Graziella Galea
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>
> >      >     >     >     >     >     >>
> >      >     _______________________________________________
> >      >     >     >     >     >     >>     Soot-list mailing list
> >      >     >     >     >     >     >> Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>>
> >      >     >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>>>
> >      >     >     >     >     >     >>
> >      >     >     >
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >     --
> >      >     >     >     >     >     >     Marc-André Laverdière-Papineau
> >      >     >     >     >     >     >     Doctorant - PhD Candidate
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     _______________________________________________
> >      >     >     >     >     >     >     Soot-list mailing list
> >      >     >     >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>>
> >      >     >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>>>
> >      >     >     >     >     >     >
> >      >     > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     >     >     >     >     > --
> >      >     >     >     >     >     > Graziella Galea
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     >     >     >     >     >
> >      >     _______________________________________________
> >      >     >     >     >     >     > Soot-list mailing list
> >      >     >     >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>>
> >      >     >     >     >     >     >
> >      >     > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >     >     >
> >      >     >     >     >     >
> >     _______________________________________________
> >      >     >     >     >     >     Soot-list mailing list
> >      >     >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>>
> >      >     >     >     >     >
> >      > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >     >
> >      >     >     >     >     >
> >      >     >     >     >     >
> >      >     >     >     >     >
> >      >     >     >     >     > --
> >      >     >     >     >     > Graziella Galea
> >      >     >     >     >     >
> >      >     >     >     >     >
> >      >     >     >     >     >
> >     _______________________________________________
> >      >     >     >     >     > Soot-list mailing list
> >      >     >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     >     >
> >      > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >     >
> >      >     >     >     >
> _______________________________________________
> >      >     >     >     >     Soot-list mailing list
> >      >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     >
> >     http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >
> >      >     >     >     >
> _______________________________________________
> >      >     >     >     >     Soot-list mailing list
> >      >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>>
> >      >     >     >     >
> >     http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >
> >      >     >     >     >
> >      >     >     >     >
> >      >     >     >     >
> >      >     >     >     > --
> >      >     >     >     > Graziella Galea
> >      >     >     >     >
> >      >     >     >     >
> >      >     >     >     > _______________________________________________
> >      >     >     >     > Soot-list mailing list
> >      >     >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >     >
> >     http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >     >
> >      >     >     >     _______________________________________________
> >      >     >     >     Soot-list mailing list
> >      >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>>
> >      >     >     >
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >
> >      >     >     >
> >      >     >     >
> >      >     >     >
> >      >     >     > --
> >      >     >     > Graziella Galea
> >      >     >     >
> >      >     >     >
> >      >     >     > _______________________________________________
> >      >     >     > Soot-list mailing list
> >      >     >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     >     >
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >     >
> >      >     >     _______________________________________________
> >      >     >     Soot-list mailing list
> >      >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>>
> >      >     > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >
> >      >     >
> >      >     >
> >      >     >
> >      >     > --
> >      >     > Graziella Galea
> >      >     >
> >      >     >
> >      >     > _______________________________________________
> >      >     > Soot-list mailing list
> >      >     > Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca> <mailto:Soot-list at sable.mcgill.ca
> >     <mailto:Soot-list at sable.mcgill.ca>>
> >      >     > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >     >
> >      >     _______________________________________________
> >      >     Soot-list mailing list
> >      > Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >     <mailto:Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca
> >>
> >      > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >
> >      >
> >      >
> >      >
> >      > --
> >      > Graziella Galea
> >      >
> >      >
> >      > _______________________________________________
> >      > Soot-list mailing list
> >      > Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >      > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >      >
> >     _______________________________________________
> >     Soot-list mailing list
> >     Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> >     http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
> >
> >
> >
> > --
> > Graziella Galea
> >
> >
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at sable.mcgill.ca
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>



-- 
Graziella Galea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140327/7252f7e0/attachment-0001.html 


More information about the Soot-list mailing list