(no commit message)
authorSoner Sevinc <ssevinc@cs.princeton.edu>
Tue, 15 Apr 2008 15:04:18 +0000 (15:04 +0000)
committerSoner Sevinc <ssevinc@cs.princeton.edu>
Tue, 15 Apr 2008 15:04:18 +0000 (15:04 +0000)
574 files changed:
gui/JavaApplication1/build.xml [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$3.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$5.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class [new file with mode: 0644]
gui/JavaApplication1/build/classes/javaapplication1/User.class [new file with mode: 0644]
gui/JavaApplication1/certutil.py [new file with mode: 0755]
gui/JavaApplication1/client_keiko/acc_file [new file with mode: 0644]
gui/JavaApplication1/client_keiko/clientstub.py [new file with mode: 0755]
gui/JavaApplication1/client_keiko/cred_file [new file with mode: 0644]
gui/JavaApplication1/client_keiko/keiko.cert [new file with mode: 0644]
gui/JavaApplication1/client_keiko/keiko.pkey [new file with mode: 0644]
gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert [new file with mode: 0644]
gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert [new file with mode: 0644]
gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert [new file with mode: 0644]
gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert [new file with mode: 0644]
gui/JavaApplication1/client_osaka/acc_file [new file with mode: 0644]
gui/JavaApplication1/client_osaka/clientstub.py [new file with mode: 0755]
gui/JavaApplication1/client_osaka/cred_file [new file with mode: 0644]
gui/JavaApplication1/client_osaka/osaka.cert [new file with mode: 0644]
gui/JavaApplication1/client_osaka/osaka.pkey [new file with mode: 0644]
gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert [new file with mode: 0644]
gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert [new file with mode: 0644]
gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert [new file with mode: 0644]
gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert [new file with mode: 0644]
gui/JavaApplication1/dist/JavaApplication1.jar [new file with mode: 0644]
gui/JavaApplication1/dist/README.TXT [new file with mode: 0644]
gui/JavaApplication1/dist/lib/swing-layout-1.0.jar [new file with mode: 0644]
gui/JavaApplication1/manifest.mf [new file with mode: 0644]
gui/JavaApplication1/nbproject/build-impl.xml [new file with mode: 0644]
gui/JavaApplication1/nbproject/genfiles.properties [new file with mode: 0644]
gui/JavaApplication1/nbproject/private/private.properties [new file with mode: 0644]
gui/JavaApplication1/nbproject/private/private.xml [new file with mode: 0644]
gui/JavaApplication1/nbproject/project.properties [new file with mode: 0644]
gui/JavaApplication1/nbproject/project.xml [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/DisplayHandle.java [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/GeniGUI.form [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/GeniGUI.java [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/GuiComponent.java [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/PanelFiller.java [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/RecordInfo.java [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/SpringUtilities.java [new file with mode: 0644]
gui/JavaApplication1/src/javaapplication1/User.java [new file with mode: 0644]
gui/JavaApplication1/test/NewJFrame.form [new file with mode: 0644]
gui/JavaApplication1/test/NewJFrame.java [new file with mode: 0644]
server/component/planetlab/acc_file [new file with mode: 0644]
server/component/planetlab/buaa/buaa.cert [new file with mode: 0644]
server/component/planetlab/buaa/buaa.pkey [new file with mode: 0644]
server/component/planetlab/canarie/canarie.cert [new file with mode: 0644]
server/component/planetlab/canarie/canarie.pkey [new file with mode: 0644]
server/component/planetlab/canariecalgary/canariecalgary.cert [new file with mode: 0644]
server/component/planetlab/canariecalgary/canariecalgary.pkey [new file with mode: 0644]
server/component/planetlab/canariehalifax/canariehalifax.cert [new file with mode: 0644]
server/component/planetlab/canariehalifax/canariehalifax.pkey [new file with mode: 0644]
server/component/planetlab/canariemontreal/canariemontreal.cert [new file with mode: 0644]
server/component/planetlab/canariemontreal/canariemontreal.pkey [new file with mode: 0644]
server/component/planetlab/canarieottawa/canarieottawa.cert [new file with mode: 0644]
server/component/planetlab/canarieottawa/canarieottawa.pkey [new file with mode: 0644]
server/component/planetlab/canarietoronto/canarietoronto.cert [new file with mode: 0644]
server/component/planetlab/canarietoronto/canarietoronto.pkey [new file with mode: 0644]
server/component/planetlab/canariewinnipeg/canariewinnipeg.cert [new file with mode: 0644]
server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey [new file with mode: 0644]
server/component/planetlab/canterbury/canterbury.cert [new file with mode: 0644]
server/component/planetlab/canterbury/canterbury.pkey [new file with mode: 0644]
server/component/planetlab/cernetbuaa/cernetbuaa.cert [new file with mode: 0644]
server/component/planetlab/cernetbuaa/cernetbuaa.pkey [new file with mode: 0644]
server/component/planetlab/cernetpku/cernetpku.cert [new file with mode: 0644]
server/component/planetlab/cernetpku/cernetpku.pkey [new file with mode: 0644]
server/component/planetlab/cernetsdu/cernetsdu.cert [new file with mode: 0644]
server/component/planetlab/cernetsdu/cernetsdu.pkey [new file with mode: 0644]
server/component/planetlab/cernetxjtu/cernetxjtu.cert [new file with mode: 0644]
server/component/planetlab/cernetxjtu/cernetxjtu.pkey [new file with mode: 0644]
server/component/planetlab/cernetxmu/cernetxmu.cert [new file with mode: 0644]
server/component/planetlab/cernetxmu/cernetxmu.pkey [new file with mode: 0644]
server/component/planetlab/cernetzju/cernetzju.cert [new file with mode: 0644]
server/component/planetlab/cernetzju/cernetzju.pkey [new file with mode: 0644]
server/component/planetlab/cred_file [new file with mode: 0644]
server/component/planetlab/equinixsi/equinixsi.cert [new file with mode: 0644]
server/component/planetlab/equinixsi/equinixsi.pkey [new file with mode: 0644]
server/component/planetlab/eu/aston/aston.cert [new file with mode: 0644]
server/component/planetlab/eu/aston/aston.pkey [new file with mode: 0644]
server/component/planetlab/eu/bamberg/bamberg.cert [new file with mode: 0644]
server/component/planetlab/eu/bamberg/bamberg.pkey [new file with mode: 0644]
server/component/planetlab/eu/basel/basel.cert [new file with mode: 0644]
server/component/planetlab/eu/basel/basel.pkey [new file with mode: 0644]
server/component/planetlab/eu/budapest/budapest.cert [new file with mode: 0644]
server/component/planetlab/eu/budapest/budapest.pkey [new file with mode: 0644]
server/component/planetlab/eu/cesnet/cesnet.cert [new file with mode: 0644]
server/component/planetlab/eu/cesnet/cesnet.pkey [new file with mode: 0644]
server/component/planetlab/eu/enst/enst.cert [new file with mode: 0644]
server/component/planetlab/eu/enst/enst.pkey [new file with mode: 0644]
server/component/planetlab/eu/ethzcs/ethzcs.cert [new file with mode: 0644]
server/component/planetlab/eu/ethzcs/ethzcs.pkey [new file with mode: 0644]
server/component/planetlab/eu/eu.cert [new file with mode: 0644]
server/component/planetlab/eu/eu.pkey [new file with mode: 0644]
server/component/planetlab/eu/eurecom/eurecom.cert [new file with mode: 0644]
server/component/planetlab/eu/eurecom/eurecom.pkey [new file with mode: 0644]
server/component/planetlab/eu/fokus/fokus.cert [new file with mode: 0644]
server/component/planetlab/eu/fokus/fokus.pkey [new file with mode: 0644]
server/component/planetlab/eu/hawh/hawh.cert [new file with mode: 0644]
server/component/planetlab/eu/hawh/hawh.pkey [new file with mode: 0644]
server/component/planetlab/eu/inria/inria.cert [new file with mode: 0644]
server/component/planetlab/eu/inria/inria.pkey [new file with mode: 0644]
server/component/planetlab/eu/irisa/irisa.cert [new file with mode: 0644]
server/component/planetlab/eu/irisa/irisa.pkey [new file with mode: 0644]
server/component/planetlab/eu/konstanz/konstanz.cert [new file with mode: 0644]
server/component/planetlab/eu/konstanz/konstanz.pkey [new file with mode: 0644]
server/component/planetlab/eu/lisbon/lisbon.cert [new file with mode: 0644]
server/component/planetlab/eu/lisbon/lisbon.pkey [new file with mode: 0644]
server/component/planetlab/eu/moscowstate/moscowstate.cert [new file with mode: 0644]
server/component/planetlab/eu/moscowstate/moscowstate.pkey [new file with mode: 0644]
server/component/planetlab/eu/msuchem/msuchem.cert [new file with mode: 0644]
server/component/planetlab/eu/msuchem/msuchem.pkey [new file with mode: 0644]
server/component/planetlab/eu/tcd/tcd.cert [new file with mode: 0644]
server/component/planetlab/eu/tcd/tcd.pkey [new file with mode: 0644]
server/component/planetlab/eu/univie/univie.cert [new file with mode: 0644]
server/component/planetlab/eu/univie/univie.pkey [new file with mode: 0644]
server/component/planetlab/eu/unizh/unizh.cert [new file with mode: 0644]
server/component/planetlab/eu/unizh/unizh.pkey [new file with mode: 0644]
server/component/planetlab/eu/upb/upb.cert [new file with mode: 0644]
server/component/planetlab/eu/upb/upb.pkey [new file with mode: 0644]
server/component/planetlab/fing/fing.cert [new file with mode: 0644]
server/component/planetlab/fing/fing.pkey [new file with mode: 0644]
server/component/planetlab/haifa/haifa.cert [new file with mode: 0644]
server/component/planetlab/haifa/haifa.pkey [new file with mode: 0644]
server/component/planetlab/icavite/icavite.cert [new file with mode: 0644]
server/component/planetlab/icavite/icavite.pkey [new file with mode: 0644]
server/component/planetlab/ihaifa/ihaifa.cert [new file with mode: 0644]
server/component/planetlab/ihaifa/ihaifa.pkey [new file with mode: 0644]
server/component/planetlab/iitr/iitr.cert [new file with mode: 0644]
server/component/planetlab/iitr/iitr.pkey [new file with mode: 0644]
server/component/planetlab/ileixlip/ileixlip.cert [new file with mode: 0644]
server/component/planetlab/ileixlip/ileixlip.pkey [new file with mode: 0644]
server/component/planetlab/jp/jaist/jaist.cert [new file with mode: 0644]
server/component/planetlab/jp/jaist/jaist.pkey [new file with mode: 0644]
server/component/planetlab/jp/jp.cert [new file with mode: 0644]
server/component/planetlab/jp/jp.pkey [new file with mode: 0644]
server/component/planetlab/jp/keio/keio.cert [new file with mode: 0644]
server/component/planetlab/jp/keio/keio.pkey [new file with mode: 0644]
server/component/planetlab/jp/naist/naist.cert [new file with mode: 0644]
server/component/planetlab/jp/naist/naist.pkey [new file with mode: 0644]
server/component/planetlab/jp/nict/nict.cert [new file with mode: 0644]
server/component/planetlab/jp/nict/nict.pkey [new file with mode: 0644]
server/component/planetlab/jp/osaka/osaka.cert [new file with mode: 0644]
server/component/planetlab/jp/osaka/osaka.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey [new file with mode: 0644]
server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert [new file with mode: 0644]
server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey [new file with mode: 0644]
server/component/planetlab/jp/utokyo/utokyo.cert [new file with mode: 0644]
server/component/planetlab/jp/utokyo/utokyo.pkey [new file with mode: 0644]
server/component/planetlab/jp/waseda/waseda.cert [new file with mode: 0644]
server/component/planetlab/jp/waseda/waseda.pkey [new file with mode: 0644]
server/component/planetlab/jp/wide/wide.cert [new file with mode: 0644]
server/component/planetlab/jp/wide/wide.pkey [new file with mode: 0644]
server/component/planetlab/ntu/ntu.cert [new file with mode: 0644]
server/component/planetlab/ntu/ntu.pkey [new file with mode: 0644]
server/component/planetlab/planetlab.cert [new file with mode: 0644]
server/component/planetlab/planetlab.pkey [new file with mode: 0644]
server/component/planetlab/qub/qub.cert [new file with mode: 0644]
server/component/planetlab/qub/qub.pkey [new file with mode: 0644]
server/component/planetlab/snummlab/snummlab.cert [new file with mode: 0644]
server/component/planetlab/snummlab/snummlab.pkey [new file with mode: 0644]
server/component/planetlab/sydney/sydney.cert [new file with mode: 0644]
server/component/planetlab/sydney/sydney.pkey [new file with mode: 0644]
server/component/planetlab/tau/tau.cert [new file with mode: 0644]
server/component/planetlab/tau/tau.pkey [new file with mode: 0644]
server/component/planetlab/ula/ula.cert [new file with mode: 0644]
server/component/planetlab/ula/ula.pkey [new file with mode: 0644]
server/component/planetlab/unioslo/unioslo.cert [new file with mode: 0644]
server/component/planetlab/unioslo/unioslo.pkey [new file with mode: 0644]
server/component/planetlab/us/att/att.cert [new file with mode: 0644]
server/component/planetlab/us/att/att.pkey [new file with mode: 0644]
server/component/planetlab/us/aub/aub.cert [new file with mode: 0644]
server/component/planetlab/us/aub/aub.pkey [new file with mode: 0644]
server/component/planetlab/us/brown/brown.cert [new file with mode: 0644]
server/component/planetlab/us/brown/brown.pkey [new file with mode: 0644]
server/component/planetlab/us/bu/bu.cert [new file with mode: 0644]
server/component/planetlab/us/bu/bu.pkey [new file with mode: 0644]
server/component/planetlab/us/ccny/ccny.cert [new file with mode: 0644]
server/component/planetlab/us/ccny/ccny.pkey [new file with mode: 0644]
server/component/planetlab/us/cernetneu/cernetneu.cert [new file with mode: 0644]
server/component/planetlab/us/cernetneu/cernetneu.pkey [new file with mode: 0644]
server/component/planetlab/us/colorado/colorado.cert [new file with mode: 0644]
server/component/planetlab/us/colorado/colorado.pkey [new file with mode: 0644]
server/component/planetlab/us/columbia/columbia.cert [new file with mode: 0644]
server/component/planetlab/us/columbia/columbia.pkey [new file with mode: 0644]
server/component/planetlab/us/irp/irp.cert [new file with mode: 0644]
server/component/planetlab/us/irp/irp.pkey [new file with mode: 0644]
server/component/planetlab/us/jhuis/jhuis.cert [new file with mode: 0644]
server/component/planetlab/us/jhuis/jhuis.pkey [new file with mode: 0644]
server/component/planetlab/us/michigan/michigan.cert [new file with mode: 0644]
server/component/planetlab/us/michigan/michigan.pkey [new file with mode: 0644]
server/component/planetlab/us/northwestern/northwestern.cert [new file with mode: 0644]
server/component/planetlab/us/northwestern/northwestern.pkey [new file with mode: 0644]
server/component/planetlab/us/orbit/orbit.cert [new file with mode: 0644]
server/component/planetlab/us/orbit/orbit.pkey [new file with mode: 0644]
server/component/planetlab/us/rice/rice.cert [new file with mode: 0644]
server/component/planetlab/us/rice/rice.pkey [new file with mode: 0644]
server/component/planetlab/us/rpi/rpi.cert [new file with mode: 0644]
server/component/planetlab/us/rpi/rpi.pkey [new file with mode: 0644]
server/component/planetlab/us/stevens/stevens.cert [new file with mode: 0644]
server/component/planetlab/us/stevens/stevens.pkey [new file with mode: 0644]
server/component/planetlab/us/tky/tky.cert [new file with mode: 0644]
server/component/planetlab/us/tky/tky.pkey [new file with mode: 0644]
server/component/planetlab/us/ucd/ucd.cert [new file with mode: 0644]
server/component/planetlab/us/ucd/ucd.pkey [new file with mode: 0644]
server/component/planetlab/us/uci/uci.cert [new file with mode: 0644]
server/component/planetlab/us/uci/uci.pkey [new file with mode: 0644]
server/component/planetlab/us/ucla/ucla.cert [new file with mode: 0644]
server/component/planetlab/us/ucla/ucla.pkey [new file with mode: 0644]
server/component/planetlab/us/uclaee/uclaee.cert [new file with mode: 0644]
server/component/planetlab/us/uclaee/uclaee.pkey [new file with mode: 0644]
server/component/planetlab/us/us.cert [new file with mode: 0644]
server/component/planetlab/us/us.pkey [new file with mode: 0644]
server/component/planetlab/us/utah/utah.cert [new file with mode: 0644]
server/component/planetlab/us/utah/utah.pkey [new file with mode: 0644]
server/component/planetlab/us/utxsa/utxsa.cert [new file with mode: 0644]
server/component/planetlab/us/utxsa/utxsa.pkey [new file with mode: 0644]
server/component/planetlab/us/uvic/uvic.cert [new file with mode: 0644]
server/component/planetlab/us/uvic/uvic.pkey [new file with mode: 0644]
server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert [new file with mode: 0644]
server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey [new file with mode: 0644]
server/component/planetlab/us/vanderbilt/vanderbilt.cert [new file with mode: 0644]
server/component/planetlab/us/vanderbilt/vanderbilt.pkey [new file with mode: 0644]
server/interface_tree_cr [new file with mode: 0644]
server/interface_tree_cr_dict [new file with mode: 0644]
server/interface_tree_sr [new file with mode: 0644]
server/interface_tree_sr_dict [new file with mode: 0644]
server/jpywork/PathVFS$_PyInner.class [new file with mode: 0644]
server/jpywork/PathVFS.class [new file with mode: 0644]
server/jpywork/PathVFS.java [new file with mode: 0644]
server/jpywork/SocketServer$_PyInner.class [new file with mode: 0644]
server/jpywork/SocketServer.class [new file with mode: 0644]
server/jpywork/SocketServer.java [new file with mode: 0644]
server/jpywork/StringIO$_PyInner.class [new file with mode: 0644]
server/jpywork/StringIO.class [new file with mode: 0644]
server/jpywork/StringIO.java [new file with mode: 0644]
server/jpywork/UserDict$_PyInner.class [new file with mode: 0644]
server/jpywork/UserDict.class [new file with mode: 0644]
server/jpywork/UserDict.java [new file with mode: 0644]
server/jpywork/atexit$_PyInner.class [new file with mode: 0644]
server/jpywork/atexit.class [new file with mode: 0644]
server/jpywork/atexit.java [new file with mode: 0644]
server/jpywork/calendar$_PyInner.class [new file with mode: 0644]
server/jpywork/calendar.class [new file with mode: 0644]
server/jpywork/calendar.java [new file with mode: 0644]
server/jpywork/copy$_PyInner.class [new file with mode: 0644]
server/jpywork/copy.class [new file with mode: 0644]
server/jpywork/copy.java [new file with mode: 0644]
server/jpywork/copy_reg$_PyInner.class [new file with mode: 0644]
server/jpywork/copy_reg.class [new file with mode: 0644]
server/jpywork/copy_reg.java [new file with mode: 0644]
server/jpywork/javaos$_PyInner.class [new file with mode: 0644]
server/jpywork/javaos.class [new file with mode: 0644]
server/jpywork/javaos.java [new file with mode: 0644]
server/jpywork/javapath$_PyInner.class [new file with mode: 0644]
server/jpywork/javapath.class [new file with mode: 0644]
server/jpywork/javapath.java [new file with mode: 0644]
server/jpywork/linecache$_PyInner.class [new file with mode: 0644]
server/jpywork/linecache.class [new file with mode: 0644]
server/jpywork/linecache.java [new file with mode: 0644]
server/jpywork/random$_PyInner.class [new file with mode: 0644]
server/jpywork/random.class [new file with mode: 0644]
server/jpywork/random.java [new file with mode: 0644]
server/jpywork/re$_PyInner.class [new file with mode: 0644]
server/jpywork/re.class [new file with mode: 0644]
server/jpywork/re.java [new file with mode: 0644]
server/jpywork/repr$_PyInner.class [new file with mode: 0644]
server/jpywork/repr.class [new file with mode: 0644]
server/jpywork/repr.java [new file with mode: 0644]
server/jpywork/server$_PyInner.class [new file with mode: 0644]
server/jpywork/server.class [new file with mode: 0644]
server/jpywork/server.java [new file with mode: 0644]
server/jpywork/socket$_PyInner.class [new file with mode: 0644]
server/jpywork/socket.class [new file with mode: 0644]
server/jpywork/socket.java [new file with mode: 0644]
server/jpywork/sre$_PyInner.class [new file with mode: 0644]
server/jpywork/sre.class [new file with mode: 0644]
server/jpywork/sre.java [new file with mode: 0644]
server/jpywork/sre_compile$_PyInner.class [new file with mode: 0644]
server/jpywork/sre_compile.class [new file with mode: 0644]
server/jpywork/sre_compile.java [new file with mode: 0644]
server/jpywork/sre_constants$_PyInner.class [new file with mode: 0644]
server/jpywork/sre_constants.class [new file with mode: 0644]
server/jpywork/sre_constants.java [new file with mode: 0644]
server/jpywork/sre_parse$_PyInner.class [new file with mode: 0644]
server/jpywork/sre_parse.class [new file with mode: 0644]
server/jpywork/sre_parse.java [new file with mode: 0644]
server/jpywork/stat$_PyInner.class [new file with mode: 0644]
server/jpywork/stat.class [new file with mode: 0644]
server/jpywork/stat.java [new file with mode: 0644]
server/jpywork/string$_PyInner.class [new file with mode: 0644]
server/jpywork/string.class [new file with mode: 0644]
server/jpywork/string.java [new file with mode: 0644]
server/jpywork/threading$_PyInner.class [new file with mode: 0644]
server/jpywork/threading.class [new file with mode: 0644]
server/jpywork/threading.java [new file with mode: 0644]
server/jpywork/traceback$_PyInner.class [new file with mode: 0644]
server/jpywork/traceback.class [new file with mode: 0644]
server/jpywork/traceback.java [new file with mode: 0644]
server/jpywork/util$_PyInner.class [new file with mode: 0644]
server/jpywork/util.class [new file with mode: 0644]
server/jpywork/util.java [new file with mode: 0644]
server/jpywork/yapm$YaPM.class [new file with mode: 0644]
server/jpywork/yapm$_PyInner.class [new file with mode: 0644]
server/jpywork/yapm.class [new file with mode: 0644]
server/jpywork/yapm.java [new file with mode: 0644]
server/keycreator/prog.py [new file with mode: 0644]
server/server.py [new file with mode: 0755]
server/server.pyc [new file with mode: 0644]
server/serverprj.e3p [new file with mode: 0644]
server/serverprj.e3t [new file with mode: 0644]
server/slice/planetlab/acc_file [new file with mode: 0644]
server/slice/planetlab/buaa/buaa.cert [new file with mode: 0644]
server/slice/planetlab/buaa/buaa.pkey [new file with mode: 0644]
server/slice/planetlab/canarie/canarie.cert [new file with mode: 0644]
server/slice/planetlab/canarie/canarie.pkey [new file with mode: 0644]
server/slice/planetlab/canariecalgary/canariecalgary.cert [new file with mode: 0644]
server/slice/planetlab/canariecalgary/canariecalgary.pkey [new file with mode: 0644]
server/slice/planetlab/canariehalifax/canariehalifax.cert [new file with mode: 0644]
server/slice/planetlab/canariehalifax/canariehalifax.pkey [new file with mode: 0644]
server/slice/planetlab/canariemontreal/canariemontreal.cert [new file with mode: 0644]
server/slice/planetlab/canariemontreal/canariemontreal.pkey [new file with mode: 0644]
server/slice/planetlab/canarieottawa/canarieottawa.cert [new file with mode: 0644]
server/slice/planetlab/canarieottawa/canarieottawa.pkey [new file with mode: 0644]
server/slice/planetlab/canarietoronto/canarietoronto.cert [new file with mode: 0644]
server/slice/planetlab/canarietoronto/canarietoronto.pkey [new file with mode: 0644]
server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert [new file with mode: 0644]
server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey [new file with mode: 0644]
server/slice/planetlab/canterbury/canterbury.cert [new file with mode: 0644]
server/slice/planetlab/canterbury/canterbury.pkey [new file with mode: 0644]
server/slice/planetlab/cernetbuaa/cernetbuaa.cert [new file with mode: 0644]
server/slice/planetlab/cernetbuaa/cernetbuaa.pkey [new file with mode: 0644]
server/slice/planetlab/cernetpku/cernetpku.cert [new file with mode: 0644]
server/slice/planetlab/cernetpku/cernetpku.pkey [new file with mode: 0644]
server/slice/planetlab/cernetsdu/cernetsdu.cert [new file with mode: 0644]
server/slice/planetlab/cernetsdu/cernetsdu.pkey [new file with mode: 0644]
server/slice/planetlab/cernetxjtu/cernetxjtu.cert [new file with mode: 0644]
server/slice/planetlab/cernetxjtu/cernetxjtu.pkey [new file with mode: 0644]
server/slice/planetlab/cernetxmu/cernetxmu.cert [new file with mode: 0644]
server/slice/planetlab/cernetxmu/cernetxmu.pkey [new file with mode: 0644]
server/slice/planetlab/cernetzju/cernetzju.cert [new file with mode: 0644]
server/slice/planetlab/cernetzju/cernetzju.pkey [new file with mode: 0644]
server/slice/planetlab/cred_file [new file with mode: 0644]
server/slice/planetlab/equinixsi/equinixsi.cert [new file with mode: 0644]
server/slice/planetlab/equinixsi/equinixsi.pkey [new file with mode: 0644]
server/slice/planetlab/eu/aston/aston.cert [new file with mode: 0644]
server/slice/planetlab/eu/aston/aston.pkey [new file with mode: 0644]
server/slice/planetlab/eu/bamberg/bamberg.cert [new file with mode: 0644]
server/slice/planetlab/eu/bamberg/bamberg.pkey [new file with mode: 0644]
server/slice/planetlab/eu/basel/basel.cert [new file with mode: 0644]
server/slice/planetlab/eu/basel/basel.pkey [new file with mode: 0644]
server/slice/planetlab/eu/budapest/budapest.cert [new file with mode: 0644]
server/slice/planetlab/eu/budapest/budapest.pkey [new file with mode: 0644]
server/slice/planetlab/eu/cesnet/cesnet.cert [new file with mode: 0644]
server/slice/planetlab/eu/cesnet/cesnet.pkey [new file with mode: 0644]
server/slice/planetlab/eu/enst/enst.cert [new file with mode: 0644]
server/slice/planetlab/eu/enst/enst.pkey [new file with mode: 0644]
server/slice/planetlab/eu/ethzcs/ethzcs.cert [new file with mode: 0644]
server/slice/planetlab/eu/ethzcs/ethzcs.pkey [new file with mode: 0644]
server/slice/planetlab/eu/eu.cert [new file with mode: 0644]
server/slice/planetlab/eu/eu.pkey [new file with mode: 0644]
server/slice/planetlab/eu/eurecom/eurecom.cert [new file with mode: 0644]
server/slice/planetlab/eu/eurecom/eurecom.pkey [new file with mode: 0644]
server/slice/planetlab/eu/fokus/fokus.cert [new file with mode: 0644]
server/slice/planetlab/eu/fokus/fokus.pkey [new file with mode: 0644]
server/slice/planetlab/eu/hawh/hawh.cert [new file with mode: 0644]
server/slice/planetlab/eu/hawh/hawh.pkey [new file with mode: 0644]
server/slice/planetlab/eu/inria/inria.cert [new file with mode: 0644]
server/slice/planetlab/eu/inria/inria.pkey [new file with mode: 0644]
server/slice/planetlab/eu/irisa/irisa.cert [new file with mode: 0644]
server/slice/planetlab/eu/irisa/irisa.pkey [new file with mode: 0644]
server/slice/planetlab/eu/konstanz/konstanz.cert [new file with mode: 0644]
server/slice/planetlab/eu/konstanz/konstanz.pkey [new file with mode: 0644]
server/slice/planetlab/eu/lisbon/lisbon.cert [new file with mode: 0644]
server/slice/planetlab/eu/lisbon/lisbon.pkey [new file with mode: 0644]
server/slice/planetlab/eu/moscowstate/moscowstate.cert [new file with mode: 0644]
server/slice/planetlab/eu/moscowstate/moscowstate.pkey [new file with mode: 0644]
server/slice/planetlab/eu/msuchem/msuchem.cert [new file with mode: 0644]
server/slice/planetlab/eu/msuchem/msuchem.pkey [new file with mode: 0644]
server/slice/planetlab/eu/tcd/tcd.cert [new file with mode: 0644]
server/slice/planetlab/eu/tcd/tcd.pkey [new file with mode: 0644]
server/slice/planetlab/eu/univie/univie.cert [new file with mode: 0644]
server/slice/planetlab/eu/univie/univie.pkey [new file with mode: 0644]
server/slice/planetlab/eu/unizh/unizh.cert [new file with mode: 0644]
server/slice/planetlab/eu/unizh/unizh.pkey [new file with mode: 0644]
server/slice/planetlab/eu/upb/upb.cert [new file with mode: 0644]
server/slice/planetlab/eu/upb/upb.pkey [new file with mode: 0644]
server/slice/planetlab/fing/fing.cert [new file with mode: 0644]
server/slice/planetlab/fing/fing.pkey [new file with mode: 0644]
server/slice/planetlab/haifa/haifa.cert [new file with mode: 0644]
server/slice/planetlab/haifa/haifa.pkey [new file with mode: 0644]
server/slice/planetlab/icavite/icavite.cert [new file with mode: 0644]
server/slice/planetlab/icavite/icavite.pkey [new file with mode: 0644]
server/slice/planetlab/ihaifa/ihaifa.cert [new file with mode: 0644]
server/slice/planetlab/ihaifa/ihaifa.pkey [new file with mode: 0644]
server/slice/planetlab/iitr/iitr.cert [new file with mode: 0644]
server/slice/planetlab/iitr/iitr.pkey [new file with mode: 0644]
server/slice/planetlab/ileixlip/ileixlip.cert [new file with mode: 0644]
server/slice/planetlab/ileixlip/ileixlip.pkey [new file with mode: 0644]
server/slice/planetlab/jp/acc_file [new file with mode: 0644]
server/slice/planetlab/jp/cred_file [new file with mode: 0644]
server/slice/planetlab/jp/jaist/jaist.cert [new file with mode: 0644]
server/slice/planetlab/jp/jaist/jaist.pkey [new file with mode: 0644]
server/slice/planetlab/jp/jp.cert [new file with mode: 0644]
server/slice/planetlab/jp/jp.pkey [new file with mode: 0644]
server/slice/planetlab/jp/keio/acc_file [new file with mode: 0644]
server/slice/planetlab/jp/keio/cred_file [new file with mode: 0644]
server/slice/planetlab/jp/keio/keio.cert [new file with mode: 0644]
server/slice/planetlab/jp/keio/keio.pkey [new file with mode: 0644]
server/slice/planetlab/jp/naist/naist.cert [new file with mode: 0644]
server/slice/planetlab/jp/naist/naist.pkey [new file with mode: 0644]
server/slice/planetlab/jp/nict/nict.cert [new file with mode: 0644]
server/slice/planetlab/jp/nict/nict.pkey [new file with mode: 0644]
server/slice/planetlab/jp/osaka/acc_file [new file with mode: 0644]
server/slice/planetlab/jp/osaka/osaka.cert [new file with mode: 0644]
server/slice/planetlab/jp/osaka/osaka.pkey [new file with mode: 0644]
server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert [new file with mode: 0644]
server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey [new file with mode: 0644]
server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert [new file with mode: 0644]
server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey [new file with mode: 0644]
server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert [new file with mode: 0644]
server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey [new file with mode: 0644]
server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert [new file with mode: 0644]
server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey [new file with mode: 0644]
server/slice/planetlab/jp/utokyo/utokyo.cert [new file with mode: 0644]
server/slice/planetlab/jp/utokyo/utokyo.pkey [new file with mode: 0644]
server/slice/planetlab/jp/waseda/waseda.cert [new file with mode: 0644]
server/slice/planetlab/jp/waseda/waseda.pkey [new file with mode: 0644]
server/slice/planetlab/jp/wide/wide.cert [new file with mode: 0644]
server/slice/planetlab/jp/wide/wide.pkey [new file with mode: 0644]
server/slice/planetlab/ntu/ntu.cert [new file with mode: 0644]
server/slice/planetlab/ntu/ntu.pkey [new file with mode: 0644]
server/slice/planetlab/planetlab.cert [new file with mode: 0644]
server/slice/planetlab/planetlab.pkey [new file with mode: 0644]
server/slice/planetlab/qub/qub.cert [new file with mode: 0644]
server/slice/planetlab/qub/qub.pkey [new file with mode: 0644]
server/slice/planetlab/snummlab/snummlab.cert [new file with mode: 0644]
server/slice/planetlab/snummlab/snummlab.pkey [new file with mode: 0644]
server/slice/planetlab/sydney/sydney.cert [new file with mode: 0644]
server/slice/planetlab/sydney/sydney.pkey [new file with mode: 0644]
server/slice/planetlab/tau/tau.cert [new file with mode: 0644]
server/slice/planetlab/tau/tau.pkey [new file with mode: 0644]
server/slice/planetlab/ula/ula.cert [new file with mode: 0644]
server/slice/planetlab/ula/ula.pkey [new file with mode: 0644]
server/slice/planetlab/unioslo/unioslo.cert [new file with mode: 0644]
server/slice/planetlab/unioslo/unioslo.pkey [new file with mode: 0644]
server/slice/planetlab/us/att/att.cert [new file with mode: 0644]
server/slice/planetlab/us/att/att.pkey [new file with mode: 0644]
server/slice/planetlab/us/aub/aub.cert [new file with mode: 0644]
server/slice/planetlab/us/aub/aub.pkey [new file with mode: 0644]
server/slice/planetlab/us/brown/brown.cert [new file with mode: 0644]
server/slice/planetlab/us/brown/brown.pkey [new file with mode: 0644]
server/slice/planetlab/us/bu/bu.cert [new file with mode: 0644]
server/slice/planetlab/us/bu/bu.pkey [new file with mode: 0644]
server/slice/planetlab/us/ccny/ccny.cert [new file with mode: 0644]
server/slice/planetlab/us/ccny/ccny.pkey [new file with mode: 0644]
server/slice/planetlab/us/cernetneu/cernetneu.cert [new file with mode: 0644]
server/slice/planetlab/us/cernetneu/cernetneu.pkey [new file with mode: 0644]
server/slice/planetlab/us/colorado/colorado.cert [new file with mode: 0644]
server/slice/planetlab/us/colorado/colorado.pkey [new file with mode: 0644]
server/slice/planetlab/us/columbia/columbia.cert [new file with mode: 0644]
server/slice/planetlab/us/columbia/columbia.pkey [new file with mode: 0644]
server/slice/planetlab/us/irp/irp.cert [new file with mode: 0644]
server/slice/planetlab/us/irp/irp.pkey [new file with mode: 0644]
server/slice/planetlab/us/jhuis/jhuis.cert [new file with mode: 0644]
server/slice/planetlab/us/jhuis/jhuis.pkey [new file with mode: 0644]
server/slice/planetlab/us/michigan/michigan.cert [new file with mode: 0644]
server/slice/planetlab/us/michigan/michigan.pkey [new file with mode: 0644]
server/slice/planetlab/us/northwestern/northwestern.cert [new file with mode: 0644]
server/slice/planetlab/us/northwestern/northwestern.pkey [new file with mode: 0644]
server/slice/planetlab/us/orbit/orbit.cert [new file with mode: 0644]
server/slice/planetlab/us/orbit/orbit.pkey [new file with mode: 0644]
server/slice/planetlab/us/rice/rice.cert [new file with mode: 0644]
server/slice/planetlab/us/rice/rice.pkey [new file with mode: 0644]
server/slice/planetlab/us/rpi/rpi.cert [new file with mode: 0644]
server/slice/planetlab/us/rpi/rpi.pkey [new file with mode: 0644]
server/slice/planetlab/us/stevens/stevens.cert [new file with mode: 0644]
server/slice/planetlab/us/stevens/stevens.pkey [new file with mode: 0644]
server/slice/planetlab/us/tky/tky.cert [new file with mode: 0644]
server/slice/planetlab/us/tky/tky.pkey [new file with mode: 0644]
server/slice/planetlab/us/ucd/ucd.cert [new file with mode: 0644]
server/slice/planetlab/us/ucd/ucd.pkey [new file with mode: 0644]
server/slice/planetlab/us/uci/uci.cert [new file with mode: 0644]
server/slice/planetlab/us/uci/uci.pkey [new file with mode: 0644]
server/slice/planetlab/us/ucla/ucla.cert [new file with mode: 0644]
server/slice/planetlab/us/ucla/ucla.pkey [new file with mode: 0644]
server/slice/planetlab/us/uclaee/uclaee.cert [new file with mode: 0644]
server/slice/planetlab/us/uclaee/uclaee.pkey [new file with mode: 0644]
server/slice/planetlab/us/us.cert [new file with mode: 0644]
server/slice/planetlab/us/us.pkey [new file with mode: 0644]
server/slice/planetlab/us/utah/utah.cert [new file with mode: 0644]
server/slice/planetlab/us/utah/utah.pkey [new file with mode: 0644]
server/slice/planetlab/us/utxsa/utxsa.cert [new file with mode: 0644]
server/slice/planetlab/us/utxsa/utxsa.pkey [new file with mode: 0644]
server/slice/planetlab/us/uvic/uvic.cert [new file with mode: 0644]
server/slice/planetlab/us/uvic/uvic.pkey [new file with mode: 0644]
server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert [new file with mode: 0644]
server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey [new file with mode: 0644]
server/slice/planetlab/us/vanderbilt/vanderbilt.cert [new file with mode: 0644]
server/slice/planetlab/us/vanderbilt/vanderbilt.pkey [new file with mode: 0644]
server/trusted_certs/geni_mng.cert [new file with mode: 0644]
server/trusted_certs/geni_slc.cert [new file with mode: 0644]
server/trusted_certs/planetlab_mng.cert [new file with mode: 0644]
server/trusted_certs/planetlab_slc.cert [new file with mode: 0644]
util/db.py [new file with mode: 0644]
util/db.pyc [new file with mode: 0644]
util/excep.py [new file with mode: 0644]
util/excep.pyc [new file with mode: 0644]
util/pl_to_geni.py [new file with mode: 0644]
util/pl_to_geni.pyc [new file with mode: 0644]
util/sec/certgen.py [new file with mode: 0755]
util/sec/certgen.pyc [new file with mode: 0644]
util/sec/certgen2.py [new file with mode: 0755]
util/sec/certgen_m2crypto.py [new file with mode: 0755]
util/sec/certs/den.py [new file with mode: 0644]
util/sec/certs/gen.py [new file with mode: 0644]
util/sec/certs/jp.cert [new file with mode: 0644]
util/sec/certs/jp.pkey [new file with mode: 0644]
util/sec/certs/planetlab.cert [new file with mode: 0644]
util/sec/certs/planetlab.pkey [new file with mode: 0644]
util/sec/certs/usersoner.cert [new file with mode: 0644]
util/sec/sec.py [new file with mode: 0644]
util/sec/sec.pyc [new file with mode: 0644]
util/tree.py [new file with mode: 0644]
util/tree.pyc [new file with mode: 0644]
util/util.py [new file with mode: 0644]
util/util.pyc [new file with mode: 0644]

diff --git a/gui/JavaApplication1/build.xml b/gui/JavaApplication1/build.xml
new file mode 100644 (file)
index 0000000..716370b
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<project name="JavaApplication1" default="default" basedir=".">
+    <description>Builds, tests, and runs the project JavaApplication1.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <!--
+
+    There exist several targets which are by default empty and which can be 
+    used for execution of your tasks. These targets are usually executed 
+    before and after some main targets. They are: 
+
+      -pre-init:                 called before initialization of project properties
+      -post-init:                called after initialization of project properties
+      -pre-compile:              called before javac compilation
+      -post-compile:             called after javac compilation
+      -pre-compile-single:       called before javac compilation of single file
+      -post-compile-single:      called after javac compilation of single file
+      -pre-compile-test:         called before javac compilation of JUnit tests
+      -post-compile-test:        called after javac compilation of JUnit tests
+      -pre-compile-test-single:  called before javac compilation of single JUnit test
+      -post-compile-test-single: called after javac compilation of single JUunit test
+      -pre-jar:                  called before JAR building
+      -post-jar:                 called after JAR building
+      -post-clean:               called after cleaning build products
+
+    (Targets beginning with '-' are not intended to be called on their own.)
+
+    Example of inserting an obfuscator after compilation could look like this:
+
+        <target name="-post-compile">
+            <obfuscate>
+                <fileset dir="${build.classes.dir}"/>
+            </obfuscate>
+        </target>
+
+    For list of available properties check the imported 
+    nbproject/build-impl.xml file. 
+
+
+    Another way to customize the build is by overriding existing main targets.
+    The targets of interest are: 
+
+      -init-macrodef-javac:     defines macro for javac compilation
+      -init-macrodef-junit:     defines macro for junit execution
+      -init-macrodef-debug:     defines macro for class debugging
+      -init-macrodef-java:      defines macro for class execution
+      -do-jar-with-manifest:    JAR building (if you are using a manifest)
+      -do-jar-without-manifest: JAR building (if you are not using a manifest)
+      run:                      execution of project 
+      -javadoc-build:           Javadoc generation
+      test-report:              JUnit report generation
+
+    An example of overriding the target for project execution could look like this:
+
+        <target name="run" depends="JavaApplication1-impl.jar">
+            <exec dir="bin" executable="launcher.exe">
+                <arg file="${dist.jar}"/>
+            </exec>
+        </target>
+
+    Notice that the overridden target depends on the jar target and not only on 
+    the compile target as the regular run target does. Again, for a list of available 
+    properties which you can use, check the target you are overriding in the
+    nbproject/build-impl.xml file. 
+
+    -->
+</project>
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class
new file mode 100644 (file)
index 0000000..523cbd1
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class
new file mode 100644 (file)
index 0000000..6cb79d0
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class
new file mode 100644 (file)
index 0000000..3e0bee3
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class
new file mode 100644 (file)
index 0000000..75abe61
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class
new file mode 100644 (file)
index 0000000..db7e2fe
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$3.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$3.class
new file mode 100644 (file)
index 0000000..0367266
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$3.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class
new file mode 100644 (file)
index 0000000..9421b52
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$5.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$5.class
new file mode 100644 (file)
index 0000000..142c03f
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$5.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class
new file mode 100644 (file)
index 0000000..ce0035b
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class
new file mode 100644 (file)
index 0000000..5e4ce4b
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class
new file mode 100644 (file)
index 0000000..669c519
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class b/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class
new file mode 100644 (file)
index 0000000..a93c11d
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class b/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class
new file mode 100644 (file)
index 0000000..3e8e5a2
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class b/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class
new file mode 100644 (file)
index 0000000..aa54ab1
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class b/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class
new file mode 100644 (file)
index 0000000..4b026d9
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class differ
diff --git a/gui/JavaApplication1/build/classes/javaapplication1/User.class b/gui/JavaApplication1/build/classes/javaapplication1/User.class
new file mode 100644 (file)
index 0000000..d8e6322
Binary files /dev/null and b/gui/JavaApplication1/build/classes/javaapplication1/User.class differ
diff --git a/gui/JavaApplication1/certutil.py b/gui/JavaApplication1/certutil.py
new file mode 100755 (executable)
index 0000000..73a534f
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+from M2Crypto import X509
+import sys
+
+id_file = ""
+try:
+    if len(sys.argv)>1:
+        id_file = sys.argv[len(sys.argv)-1]
+    else:
+        print 'File '+id_file+' does not exist.\n'
+        sys.exit(0)
+    pubkey = X509.load_cert(id_file).get_pubkey().as_pem(cipher=None)
+    print pubkey
+    
+    print "Character map:\n"
+    prev = ''
+    cur = ''
+    for ch in pubkey:
+        prev = cur
+        cur = ch
+        if cur == '\n':
+            1==1
+        print ch,
+except:
+    print "Error in input file.\n"
diff --git a/gui/JavaApplication1/client_keiko/acc_file b/gui/JavaApplication1/client_keiko/acc_file
new file mode 100644 (file)
index 0000000..8815834
--- /dev/null
@@ -0,0 +1,52 @@
+-----BEGIN CERTIFICATE-----
+MIIB+zCCAWQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w
+ODAzMjgwNDI2NDRaFw0wODA3MjEyMjEzMjRaMBoxGDAWBgNVBAMTD0dFTkkgQWNj
+b3VudGluZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAlxyzi9dVIDmyUuaW
+/H7YM+5LLZbQg/lGtQ0hyn/DNWp0b3FZ0tazmdK/yD3bq1sUa8txCq2gSsBzv6gA
+3E1YI71wYmv8xTOOo5hZlBT3apdh2UKlu4vuUBVaSIm3whiVEd7sGkJJIJoWC3tx
+R+/d9u6GYgORP/sb8q2Xk2y9CB8CAwEAAaNhMF8wXQYDVR0RAQH/BFMwUYZPaHR0
+cDovLyNocm46cGxhbmV0bGFiLmpwLmtlaW8ua2Vpa28jdXVpZDo1MzU4NDk4NDQ3
+NTM3MDMzNTI5ODU5MjQ1MTI2MjQwODAwMDc5MjANBgkqhkiG9w0BAQQFAAOBgQCW
+zG0R4AkzONNWSEYccFcI0yDJIcojse8CGVhI0N8ykmph1MEcUHAdT8x1Ssl593+o
+K6vmwJpak8qLjD9Fbry/byVj3d8CzrokO8LkjVz4daye0SQIFp7TbfeoK9mg/GE1
+shI6rxnUg15cfR9L9lkso6p8O/KQpWX9zUtgRIuTbw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MDQyNjQ0WhcNMDgwNzIxMjIxMzI0WjAaMRgwFgYDVQQDEw9HRU5JIEFjY291
+bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVoqTRxh/259AB1p3+G
+HcUxSKpdVkKgJJGXvsCtav2Rxu9jlEq1AHt6Ff08YlqjVLPbSLTxVDDYUva+fmWl
+SzWRRZdVkPrT5PipoQ38HM/RlgsMaSsB1otJd+sbVP2Opwbqcc3DZ4+NbRAV051Z
+mzR4C10QIOkYBaa+D48ocjC9AgMBAAGjWzBZMFcGA1UdEQEB/wRNMEuGSWh0dHA6
+Ly8jaHJuOnBsYW5ldGxhYi5qcC5rZWlvI3V1aWQ6NjU5MTQzMzc2OTc1MDYxNDM3
+ODc5MDUwMjkzMDIyOTMxMDY2MzAwDQYJKoZIhvcNAQEEBQADgYEA0NDOfUAk1Puw
+ghgHzdXzTBZLJkhj9B80D678aSGX/dSOIIJGUo/AXRNfwtVRVUfQ+PQs/LgygGJ6
+u1NUTuhVDJrJROd+bguDp5DSqR/om9uupSvGxGjcGGLpcrGES7hWuTU1VIRgdC8Z
+1BK3qYToeIsiaDzIjrkZplq5brgBHoE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf
+iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK
+2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ
+Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG
+hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3
+NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+
+GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX
+n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4
+gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz
+8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG
+O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL
+m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3
+MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69
+KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n
+fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3
+si0AZRHgngrWmhf85bKAqS210OWHWOM=
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_keiko/clientstub.py b/gui/JavaApplication1/client_keiko/clientstub.py
new file mode 100755 (executable)
index 0000000..147ecaa
--- /dev/null
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+
+import os, sys
+from M2Crypto import SSL
+sys.path.append('/home/soners/work/geni/rpc/util')
+sys.path.append('/home/soners/work/geni/rpc/util/sec')
+from sec import *
+
+SERVER_HOST = '127.0.0.1' 
+SERVER_PORT = 8002
+AUTH_HOST = '127.0.0.1' 
+AUTH_PORT = 8002
+
+renew_res1 = 0
+renew_res2 = 0
+
+def verify_callback(preverify_ok, ctx):
+    return 1
+
+class GENIClient():
+    def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file):
+        self.hrn = hrn
+        self.type = type
+        #check if the certificate and the private key exists, terminate if not
+        if not os.path.exists(id_file) or not os.path.exists(id_key_file) :
+            print 'The certificate or the private key does not exist.\n'
+            os.exit(1)
+        #check the acc and cred files
+        if not os.path.exists(acc_file) or not is_valid_chain(acc_file):
+            open(acc_file, 'w').write('ANONYM')
+        if not os.path.exists(cred_file) or not is_valid_chain(cred_file):
+            open(cred_file, 'w').write('NO_CRED')
+        #initialize the security system
+        self.sec = Sec('client',  id_file, id_key_file, acc_file, cred_file)
+        #ssl parameters
+        self.ctx = SSL.Context()
+        self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file)
+        self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback)    
+    
+    def connect(self, host, port):    
+        #if the acc and cred needs renewal then do call to authority
+        if self.type == 'user' or self.type == 'slice' or self.type == 'SA': 
+            reg_type = 'slice'
+        else:
+            reg_type ='component'
+        renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec)
+        renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec)
+        if renew_res1 == None:
+            print "There is no certificate in the directory "+"./\n"
+            os.exit(0)
+        #connect to server
+        server = SSL.Connection(self.ctx)
+        server.connect((host,port))
+        peer = self.sec.auth_protocol(server)
+        if peer:
+            return server
+        else:
+            return None
+        
+def main():
+    try:
+        #read the input file
+        fp = open('tmp_input.txt', 'r')
+        user_data = fp.readline()
+        call_data = fp.readline()
+        print 'Read file.\n'
+        
+        #client related info
+        HRN = user_data.split(' ')[0]
+        TYPE = user_data.split(' ')[1].split('\n')[0]
+        name = get_leaf(HRN)
+        ID_FILE = name+'.cert'
+        ID_KEY_FILE = name+'.pkey'
+        ACC_FILE = 'acc_file'
+        CRED_FILE = 'cred_file'
+        my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE)
+        print 'Constructed client.\n'
+        
+        #operation call
+        message = eval(call_data)
+        server = my_client.connect(SERVER_HOST, SERVER_PORT)
+        if server:
+            server.write(str(message))
+            result = server.read() 
+            server.close()
+            print 'Performed the call.\n'
+        else:
+            result = "Error in client data structures.\n"
+            
+        if renew_res2 == 1:
+            result = "Cred renewed. "+result
+        if renew_res1 == 1:
+            result = "Acc renewed. "+result
+        #write result to output file
+        open('tmp_output.txt','w').write(result)
+        print 'Written to file.\n'
+    except:
+        #write result to output file
+        open('tmp_output.txt','w').write("An error occurred in client stub.\n")
+        print 'Exception occurred.\n'
+        
+if __name__=="__main__":
+    print 'Client started.\n'
+    main()
diff --git a/gui/JavaApplication1/client_keiko/cred_file b/gui/JavaApplication1/client_keiko/cred_file
new file mode 100644 (file)
index 0000000..98c0d2d
--- /dev/null
@@ -0,0 +1,59 @@
+-----BEGIN CERTIFICATE-----
+MIICazCCAdQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w
+ODAzMjgxNDI1MTZaFw0wODA1MDkwNjI1MTZaMB8xHTAbBgNVBAMTFFJlZ2lzdHJ5
+IGNyZWRlbnRpYWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11Ug
+ObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBK
+wHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkg
+mhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQABo4HLMIHIMIHFBgNVHREBAf8E
+gbowgbeGgbRodHRwOi8vI2NyZWRlbnRpYWxfc2V0OigwLTApKDEtMCkoMi0wKSgz
+LTApKDQtMCkoNS0wKSg2LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEp
+KDMtMSkoNC0xKSg1LTEpKDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBs
+YW5ldGxhYi5qcC5rZWlvIzE6cmVnOmNvbXA6cGxhbmV0bGFiLmpwLmtlaW8wDQYJ
+KoZIhvcNAQEEBQADgYEAy72/MrNh6ZcAFgTl908nPl0KZGViSIQZG/Ks+QxR2MaD
+SV0fPHrzv+RprLJw0frTjwIpPFDhDSvjbZB3+HWNhgKd88mIzwUSMOZjGmLGijRC
+VNE5Pf1H2O76yXCc98Tm8ymkeMxps1gH1hfem6N4aToA4tTNma3poQnn3SaHpig=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICTzCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MDQyNjQ2WhcNMDgwNTA4MjAyNjQ2WjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj
+cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0
+AHWnf4YdxTFIql1WQqAkkZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS
+9r5+ZaVLNZFFl1WQ+tPk+KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41t
+EBXTnVmbNHgLXRAg6RgFpr4PjyhyML0CAwEAAaOBsTCBrjCBqwYDVR0RAQH/BIGg
+MIGdhoGaaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w
+KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3
+LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw
+bGFuZXRsYWIuanAua2VpbzANBgkqhkiG9w0BAQQFAAOBgQCQ9r5c/zYcsPuBV4iY
+s1KD1E6B1xTu+TtvQw8GMK4JwTLaiBCdX6tiUkOHw40mej3huXD0KSDiBTt34Bg9
+9/E5XwqE0L604WATE4zVzz3s/lP1MroMzjoSphFzXdyHHQRYAOMLWr8e6JLH8qvA
+CKI2ZD423aSCNB3FVxqlMyChwg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP
+5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx
+hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt
+EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud
+EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2
+LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp
+KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz
+bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk
++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw
+28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO
+7LyVz7tZQkIyNF23gv+z9IQU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2
+JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6
+R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX
+h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB
+/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt
+MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l
+dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U
+PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp
+26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG
+teVEYDdXpA==
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_keiko/keiko.cert b/gui/JavaApplication1/client_keiko/keiko.cert
new file mode 100644 (file)
index 0000000..82fbfc7
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVrZWlrbzAeFw0w
+ODAzMjgwNDE5MzdaFw0xMzAzMjcwNDE5MzdaMBAxDjAMBgNVBAMTBWtlaWtvMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD
++Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zF
+M46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/
++xvyrZeTbL0IHwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIGDtblGdZBm9C1irOwj
+vcKM39SDb1MCb5zdBeuidVMPRazIHwMV3QYrrkQVnN9xffjGGyS77pKARYvDdFWm
+Lm5LYP7fbRNndR7Y5VZT1uWJtIJn7LEA6fLoqMPftXwDpKYiLP6c/p11FgRYVlAC
+WvE0MGOUIOsYSgBmvdcfEPzg
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_keiko/keiko.pkey b/gui/JavaApplication1/client_keiko/keiko.pkey
new file mode 100644 (file)
index 0000000..03984b8
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS
+1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7
+i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQAB
+AoGAPVG2Qg7VSkhfZmiP6FIIpboS46MJZiRnXty/U47Yxfo22Wojyvy40LjGfhkr
+5LMG7F8Xtf+SxgKmdaVVBBCWrPp4OqkU/mal7mFEkc69rtJUigmsUsFv1SldgBq2
+qUYE337+dgP8+crziOEIA846Yrz69EnHSMKcEPAclxXCAPECQQDE35Em7pFKKRXx
+d35pjh6UX0nWUEvxzGnNFazRMaal8R9wz4NKsbo/K46MbG+udbF0Qd6rcG4mCe+5
+1sFCsLx7AkEAxH7TJNSHAj+YyZr+g/fJ4l0tlIKZHNnZ30cnm20PVNr+lGe92lFw
+QGlr0BJVKcNxFy2cE5zgmZdvegFTDl8rrQJBAIcQHcPIzZJEJ5K1+Nqvrpj52m0W
+P1POehNBuIL3/i1AA+Lf6mG3FmA6IJyD1AarJaftfLa+9kJQdM9Y3tNC7rsCQQCk
+FmSsNO4paoJkmRJBkgL9DWKqygSimynd0sW4fXJ4IgjGVXutfKSIpYBq2WRU4+jk
+uinEFxVYLaXh9IkvTzphAkEAqyutr5X7XLe6E8km3MVgXgPjH3bn9Au4t/JWH7gV
+Tc352qD5VFoByxpv57ZIhWF4dlqikFZYCIbuSgbKfUEsTg==
+-----END RSA PRIVATE KEY-----
diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert
new file mode 100644 (file)
index 0000000..9f9b5c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4
+MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4
+cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c
+LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS
+4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc
+6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x
+k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q
+rBwyf1+Su4n1IPiqGi9yyA==
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert
new file mode 100644 (file)
index 0000000..9f9b5c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4
+MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4
+cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c
+LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS
+4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc
+6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x
+k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q
+rBwyf1+Su4n1IPiqGi9yyA==
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert
new file mode 100644 (file)
index 0000000..c1b4211
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE
+YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba
+6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm
+u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU
+2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6
+X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld
+GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert
new file mode 100644 (file)
index 0000000..9f5b851
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ
+QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC
+apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9
+OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW
+JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL
+xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN
+C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/acc_file b/gui/JavaApplication1/client_osaka/acc_file
new file mode 100644 (file)
index 0000000..a7c9fed
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MjExMDUxWhcNMDgwNzIyMTQ1NzMxWjAaMRgwFgYDVQQDEw9HRU5JIEFjY291
+bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANAGdic1KHHvvlTE7id6
+fmQU4HZ5iZwp9RqFiflTlvc/fJelxS8cV51rE878eZymgbVYwLIcO/Tyvfkg+axM
+nBzzWgzSX4wk/zuuNPV0ZwzG0Vf9EN/hzqzu1KWRMxT0/vz6Kri33eTgbyURWp4D
+OGYRqR7E573fDd8SWGfWW7AXAgMBAAGjXTBbMFkGA1UdEQEB/wRPME2GS2h0dHA6
+Ly8jaHJuOnBsYW5ldGxhYi5qcC5vc2FrYSN1dWlkOjE1MTI4NTYzNzgzNjk1MTc5
+NTEyOTg5MzAyMTMzNDQ0OTQyMjMyOTANBgkqhkiG9w0BAQQFAAOBgQAfdUPl4pLy
+ILFiIvr7a4cH+hfgTvJOwr2U07RZfjiu5qxugOwPJJT0S/RLRRBdaL1VOM/f3ZLl
+tRM7JBtaHw5iNQlVAJIWV9rhEKuDywc7Yw6sfsnmNCLie7M2QX9WpQ3G/l21y33G
+q6wKxV8TVAj04juCHdJ16FQnx/612VtDOA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf
+iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK
+2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ
+Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG
+hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3
+NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+
+GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX
+n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4
+gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz
+8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG
+O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL
+m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3
+MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69
+KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n
+fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3
+si0AZRHgngrWmhf85bKAqS210OWHWOM=
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/clientstub.py b/gui/JavaApplication1/client_osaka/clientstub.py
new file mode 100755 (executable)
index 0000000..1a26331
--- /dev/null
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+
+import os, sys
+from M2Crypto import SSL
+sys.path.append('/home/soners/work/geni/rpc/util')
+sys.path.append('/home/soners/work/geni/rpc/util/sec')
+from sec import *
+
+SERVER_HOST = '127.0.0.1' 
+SERVER_PORT = 8002
+AUTH_HOST = '127.0.0.1' 
+AUTH_PORT = 8002
+MAX_RESULT = 3000
+
+renew_res1 = 0
+renew_res2 = 0
+
+def verify_callback(preverify_ok, ctx):
+    return 1
+
+class GENIClient():
+    def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file):
+        self.hrn = hrn
+        self.type = type
+        #check if the certificate and the private key exists, terminate if not
+        if not os.path.exists(id_file) or not os.path.exists(id_key_file) :
+            print 'The certificate or the private key does not exist.\n'
+            os.exit(1)
+        #check the acc and cred files
+        if not os.path.exists(acc_file) or not is_valid_chain(acc_file):
+            open(acc_file, 'w').write('ANONYM')
+        if not os.path.exists(cred_file) or not is_valid_chain(cred_file):
+            open(cred_file, 'w').write('NO_CRED')
+        #initialize the security system
+        self.sec = Sec('client',  id_file, id_key_file, acc_file, cred_file)
+        #ssl parameters
+        self.ctx = SSL.Context()
+        self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file)
+        self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback)    
+    
+    def connect(self, host, port):    
+        #if the acc and cred needs renewal then do call to authority
+        if self.type == 'user' or self.type == 'slice' or self.type == 'SA': 
+            reg_type = 'slice'
+        else:
+            reg_type ='component'
+        renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec)
+        renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec)
+        if renew_res1 == None:
+            print "There is no certificate in the directory "+"./\n"
+            os.exit(0)
+        #connect to server
+        server = SSL.Connection(self.ctx)
+        server.connect((host,port))
+        peer = self.sec.auth_protocol(server)
+        if peer:
+            return server
+        else:
+            return None
+        
+def toFileFormat(res_str):
+    out_str = ""
+    try:
+        res_dict = eval(res_str)
+        if res_dict['geni'].has_key('pubkey'): # in public key, replace '\n' with ' '
+            pubkey = res_dict['geni']['pubkey']
+            pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace('\n',' ')
+            pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----'
+            res_dict['geni']['pubkey'] = pubkey
+            
+        if res_dict.has_key('message'):
+            out_str = res_dict['message']+'\n'
+        else:
+            out_str = "{'geni':{\n"
+            for key in res_dict['geni']:
+                val = ''
+                if res_dict['geni'][key] == None:
+                    val = ''
+                elif isinstance(res_dict['geni'][key], str):
+                    val = res_dict['geni'][key]
+                else:
+                    val = str(res_dict['geni'][key])
+                out_str = out_str+"'"+key+"':"+val+"\n"
+            out_str = out_str + "}\n"
+            out_str = out_str + "'pl':{\n"
+            for key in res_dict['pl']:
+                val = ''
+                if res_dict['pl'][key] == None:
+                    val = ''
+                if isinstance(res_dict['pl'][key], str):
+                    val = res_dict['pl'][key]
+                else:
+                    val = str(res_dict['pl'][key])
+                out_str = out_str+"'"+key+"':"+val+"\n"        
+            out_str = out_str + "}}"
+    except:
+        out_str = res_str
+    return out_str
+
+def evaluate(call_data):
+    call_data = eval(call_data)
+    #adjust the key format to obey server's storage format
+    if call_data['g_params'].has_key('pubkey'): #replace the ' ' with '\n'
+        pubkey = call_data['g_params']['pubkey']
+        pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace(' ','\n')
+        pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----'
+        call_data['g_params']['pubkey'] = pubkey
+    return call_data
+    
+def main():
+    try:
+        #read the input file
+        fp = open('tmp_input.txt', 'r')
+        user_data = fp.readline()
+        call_data = fp.read()
+        print 'Read file.\n'
+        
+        #client related info
+        HRN = user_data.split(' ')[0]
+        TYPE = user_data.split(' ')[1].split('\n')[0]
+        name = get_leaf(HRN)
+        ID_FILE = name+'.cert'
+        ID_KEY_FILE = name+'.pkey'
+        ACC_FILE = 'acc_file'
+        CRED_FILE = 'cred_file'
+        my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE)
+        print 'Constructed client.\n'
+        
+        #operation call
+        message = evaluate(call_data)
+        server = my_client.connect(SERVER_HOST, SERVER_PORT)
+        if server:
+            server.write(str(message))
+            result = toFileFormat(server.read(MAX_RESULT))
+            server.close()
+            print 'Performed the call.\n'
+        else:
+            result = "Error in client data structures.\n"
+            
+        if renew_res2 == 1:
+            result = "Cred renewed.\n"+result
+        if renew_res1 == 1:
+            result = "Acc renewed.\n"+result
+        #write result to output file
+        open('tmp_output.txt','w').write(result)
+        print 'Written to file.\n'
+    except:
+        #write result to output file
+        open('tmp_output.txt','w').write("An error occurred in client stub.\n")
+        print 'Exception occurred.\n'
+        
+if __name__=="__main__":
+    print 'Client started.\n'
+    main()
diff --git a/gui/JavaApplication1/client_osaka/cred_file b/gui/JavaApplication1/client_osaka/cred_file
new file mode 100644 (file)
index 0000000..2dc4a36
--- /dev/null
@@ -0,0 +1,44 @@
+-----BEGIN CERTIFICATE-----
+MIICUDCCAbkCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MjExMDUxWhcNMDgwNTA5MTMxMDUxWjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj
+cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0AZ2JzUoce++
+VMTuJ3p+ZBTgdnmJnCn1GoWJ+VOW9z98l6XFLxxXnWsTzvx5nKaBtVjAshw79PK9
++SD5rEycHPNaDNJfjCT/O6409XRnDMbRV/0Q3+HOrO7UpZEzFPT+/PoquLfd5OBv
+JRFangM4ZhGpHsTnvd8N3xJYZ9ZbsBcCAwEAAaOBsjCBrzCBrAYDVR0RAQH/BIGh
+MIGehoGbaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w
+KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3
+LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw
+bGFuZXRsYWIuanAub3Nha2EwDQYJKoZIhvcNAQEEBQADgYEAOjGYfQry2jLhVTCx
+7aygF13tq8+h7l8AzEOjTldzFF9h+OQscT74FP6e7hneDgI3EqBwWrW6E8yplJkS
+flpKKuShlfSDoY3iLalSqZLhQHGX6fZ3oNlKGHJmJtL/QPhzs4tMwm5Jf0IXNadV
+KVTpeZ1/xmfEJ8+E9HxYEvrKeEI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP
+5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx
+hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt
+EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud
+EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2
+LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp
+KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz
+bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk
++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw
+28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO
+7LyVz7tZQkIyNF23gv+z9IQU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2
+JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6
+R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX
+h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB
+/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt
+MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l
+dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U
+PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp
+26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG
+teVEYDdXpA==
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/osaka.cert b/gui/JavaApplication1/client_osaka/osaka.cert
new file mode 100644 (file)
index 0000000..ce4da44
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w
+ODAzMjgwMzQ0NTBaFw0xMzAzMjcwMzQ0NTBaMBAxDjAMBgNVBAMTBW9zYWthMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQBnYnNShx775UxO4nen5kFOB2eYmc
+KfUahYn5U5b3P3yXpcUvHFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+M
+JP87rjT1dGcMxtFX/RDf4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe9
+3w3fElhn1luwFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABOBGbnYsv2xjOXidUtp
+e1woERQGJRe7HJrbo9NyI5ozjSLt9yphY11ZmNex2IhKIrmbRSPfDnKNYaMHFOpz
+qbJMCmC4uUIUd9HY8bg4mQ4wjwdWkLA9uWlmpAFRoIY3eNEvv5tpUnD3sV1dEDsQ
+uQQcjxVTSgQQgjpE1KJ/KQ6q
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/osaka.pkey b/gui/JavaApplication1/client_osaka/osaka.pkey
new file mode 100644 (file)
index 0000000..25155f2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDQBnYnNShx775UxO4nen5kFOB2eYmcKfUahYn5U5b3P3yXpcUv
+HFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+MJP87rjT1dGcMxtFX/RDf
+4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe93w3fElhn1luwFwIDAQAB
+AoGAflTuPDFUNp1aATD3UJJbX3wuNMTqhSQV7d1bRUc2T0EG8TGC5nFX5Am7JeC+
+GhwkeXVE0OXEo6UnKbyU48ZCp1lL70bjiPvhS/wceTbjuxJq2wS2hjIwf9NKyZ1j
+ppO0gpvxOVNbIgyS3Yj2T98sYkJCVBnBN2huUsfzmHSeKIECQQD3SOiKRGfla+Du
+dfBY7tKNxxXYTZwV2eYKhMZFW6rMcGboqoAXFMVUTEdHB2Ozk2wHsKcDb3WFpqQI
+0QFqdNefAkEA11tW5cDIjiLeppSi57knZr9aYfysJcHslez9wgFGgK72s8XB8CfS
+QqzPTmQm4F3NVM+5Y5PbMp55ntEiwPg0iQJAMnGsBjCoJRPZoatraSjmyMc4/JPw
+aEC3/aNSMundMLEpPQMy+AJjsquQyruGKibDndn6Z+f/yFDTG31PVaEaLwJAV8AQ
+GG4FSmVK8/V8q472TxeJbIPYYUozbKO0gmiioaypOXdLHuAa/LANiJOmg6W1FOnP
+UJPerTGFvQDaeGaqgQJBAItAXexGSQEA1AKVzP31zorlb6zBh6dTxxrMhfeROwZx
+drr47bhcwuiJ011xXzea9iy1dWJOtC8JrQ/YVw14Sjc=
+-----END RSA PRIVATE KEY-----
diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert
new file mode 100644 (file)
index 0000000..9f9b5c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4
+MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4
+cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c
+LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS
+4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc
+6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x
+k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q
+rBwyf1+Su4n1IPiqGi9yyA==
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert
new file mode 100644 (file)
index 0000000..9f9b5c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4
+MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4
+cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c
+LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS
+4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc
+6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x
+k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q
+rBwyf1+Su4n1IPiqGi9yyA==
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert
new file mode 100644 (file)
index 0000000..c1b4211
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE
+YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba
+6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm
+u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU
+2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6
+X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld
+GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert
new file mode 100644 (file)
index 0000000..9f5b851
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ
+QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC
+apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9
+OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW
+JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL
+xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN
+C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r
+-----END CERTIFICATE-----
diff --git a/gui/JavaApplication1/dist/JavaApplication1.jar b/gui/JavaApplication1/dist/JavaApplication1.jar
new file mode 100644 (file)
index 0000000..f346822
Binary files /dev/null and b/gui/JavaApplication1/dist/JavaApplication1.jar differ
diff --git a/gui/JavaApplication1/dist/README.TXT b/gui/JavaApplication1/dist/README.TXT
new file mode 100644 (file)
index 0000000..5fc38c7
--- /dev/null
@@ -0,0 +1,31 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "JavaApplication1.jar" 
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* If the classpath contains a folder of classes or resources, none of the
+classpath elements are copied to the dist folder.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.
diff --git a/gui/JavaApplication1/dist/lib/swing-layout-1.0.jar b/gui/JavaApplication1/dist/lib/swing-layout-1.0.jar
new file mode 100644 (file)
index 0000000..50f1590
Binary files /dev/null and b/gui/JavaApplication1/dist/lib/swing-layout-1.0.jar differ
diff --git a/gui/JavaApplication1/manifest.mf b/gui/JavaApplication1/manifest.mf
new file mode 100644 (file)
index 0000000..328e8e5
--- /dev/null
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
diff --git a/gui/JavaApplication1/nbproject/build-impl.xml b/gui/JavaApplication1/nbproject/build-impl.xml
new file mode 100644 (file)
index 0000000..d21a5a0
--- /dev/null
@@ -0,0 +1,541 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT  ***
+***         EDIT ../build.xml INSTEAD         ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+  - initialization
+  - compilation
+  - jar
+  - execution
+  - debugging
+  - javadoc
+  - junit compilation
+  - junit execution
+  - junit debugging
+  - applet
+  - cleanup
+
+-->
+<project name="JavaApplication1-impl" default="default" basedir=".." xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:j2seproject2="http://www.netbeans.org/ns/j2se-project/2" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:jaxws="http://www.netbeans.org/ns/jax-ws/1">
+    <target name="default" depends="test,jar,javadoc" description="Build and test whole project."/>
+    <!-- 
+    ======================
+    INITIALIZATION SECTION 
+    ======================
+    -->
+    <target name="-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-init-private" depends="-pre-init">
+        <property file="nbproject/private/private.properties"/>
+    </target>
+    <target name="-init-user" depends="-pre-init,-init-private">
+        <property file="${user.properties.file}"/>
+        <!-- The two properties below are usually overridden -->
+        <!-- by the active platform. Just a fallback. -->
+        <property name="default.javac.source" value="1.4"/>
+        <property name="default.javac.target" value="1.4"/>
+    </target>
+    <target name="-init-project" depends="-pre-init,-init-private,-init-user">
+        <property file="nbproject/project.properties"/>
+    </target>
+    <target name="-do-init" depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property">
+        <available file="${manifest.file}" property="manifest.available"/>
+        <condition property="manifest.available+main.class">
+            <and>
+                <isset property="manifest.available"/>
+                <isset property="main.class"/>
+                <not>
+                    <equals arg1="${main.class}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition property="manifest.available+main.class+mkdist.available">
+            <and>
+                <istrue value="${manifest.available+main.class}"/>
+                <isset property="libs.CopyLibs.classpath"/>
+            </and>
+        </condition>
+        <condition property="have.tests">
+            <or>
+                <available file="${test.src.dir}"/>
+            </or>
+        </condition>
+        <condition property="have.sources">
+            <or>
+                <available file="${src.dir}"/>
+            </or>
+        </condition>
+        <condition property="netbeans.home+have.tests">
+            <and>
+                <isset property="netbeans.home"/>
+                <isset property="have.tests"/>
+            </and>
+        </condition>
+        <condition property="no.javadoc.preview">
+            <isfalse value="${javadoc.preview}"/>
+        </condition>
+        <property name="run.jvmargs" value=""/>
+        <property name="javac.compilerargs" value=""/>
+        <property name="work.dir" value="${basedir}"/>
+        <condition property="no.deps">
+            <and>
+                <istrue value="${no.dependencies}"/>
+            </and>
+        </condition>
+        <property name="javac.debug" value="true"/>
+        <property name="javadoc.preview" value="true"/>
+    </target>
+    <target name="-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-init-check" depends="-pre-init,-init-private,-init-user,-init-project,-do-init">
+        <fail unless="src.dir">Must set src.dir</fail>
+        <fail unless="test.src.dir">Must set test.src.dir</fail>
+        <fail unless="build.dir">Must set build.dir</fail>
+        <fail unless="dist.dir">Must set dist.dir</fail>
+        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+        <fail unless="dist.jar">Must set dist.jar</fail>
+    </target>
+    <target name="-init-macrodef-property">
+        <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute name="name"/>
+            <attribute name="value"/>
+            <sequential>
+                <property name="@{name}" value="${@{value}}"/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-javac">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute name="srcdir" default="${src.dir}"/>
+            <attribute name="destdir" default="${build.classes.dir}"/>
+            <attribute name="classpath" default="${javac.classpath}"/>
+            <attribute name="debug" default="${javac.debug}"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-junit">
+        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute name="includes" default="**/*Test.java"/>
+            <sequential>
+                <junit showoutput="true" fork="true" dir="${basedir}" failureproperty="tests.failed" errorproperty="tests.failed">
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.src.dir}" includes="@{includes}"/>
+                    </batchtest>
+                    <classpath>
+                        <path path="${run.test.classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper type="glob" from="test-sys-prop.*" to="*"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg line="${run.jvmargs}"/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-nbjpda">
+        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute name="name" default="${main.class}"/>
+            <attribute name="classpath" default="${debug.classpath}"/>
+            <attribute name="stopclassname" default=""/>
+            <sequential>
+                <nbjpdastart transport="dt_socket" addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                </nbjpdastart>
+            </sequential>
+        </macrodef>
+        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute name="dir" default="${build.classes.dir}"/>
+            <sequential>
+                <nbjpdareload>
+                    <fileset includes="${fix.includes}*.class" dir="@{dir}"/>
+                </nbjpdareload>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-debug">
+        <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+            <attribute name="classname" default="${main.class}"/>
+            <attribute name="classpath" default="${debug.classpath}"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java fork="true" classname="@{classname}" dir="${work.dir}">
+                    <jvmarg value="-Xdebug"/>
+                    <jvmarg value="-Xnoagent"/>
+                    <jvmarg value="-Djava.compiler=none"/>
+                    <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
+                    <jvmarg line="${run.jvmargs}"/>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper type="glob" from="run-sys-prop.*" to="*"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-java">
+        <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <attribute name="classname" default="${main.class}"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java fork="true" classname="@{classname}" dir="${work.dir}">
+                    <jvmarg line="${run.jvmargs}"/>
+                    <classpath>
+                        <path path="${run.classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper type="glob" from="run-sys-prop.*" to="*"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-presetdef-jar">
+        <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+            <jar jarfile="${dist.jar}" compress="${jar.compress}">
+                <j2seproject1:fileset dir="${build.classes.dir}"/>
+            </jar>
+        </presetdef>
+    </target>
+    <target name="init" depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar"/>
+    <!--
+    ===================
+    COMPILATION SECTION
+    ===================
+    -->
+    <target name="deps-jar" depends="init" unless="no.deps"/>
+    <target name="-pre-pre-compile" depends="init,deps-jar">
+        <mkdir dir="${build.classes.dir}"/>
+    </target>
+    <target name="-pre-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-do-compile" depends="init,deps-jar,-pre-pre-compile,-pre-compile" if="have.sources">
+        <j2seproject3:javac/>
+        <copy todir="${build.classes.dir}">
+            <fileset dir="${src.dir}" excludes="${build.classes.excludes}"/>
+        </copy>
+    </target>
+    <target name="-post-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="compile" depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project."/>
+    <target name="-pre-compile-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-do-compile-single" depends="init,deps-jar,-pre-pre-compile">
+        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+        <j2seproject3:javac>
+            <customize>
+                <patternset includes="${javac.includes}"/>
+            </customize>
+        </j2seproject3:javac>
+    </target>
+    <target name="-post-compile-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="compile-single" depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single"/>
+    <!--
+    ====================
+    JAR BUILDING SECTION
+    ====================
+    -->
+    <target name="-pre-pre-jar" depends="init">
+        <dirname property="dist.jar.dir" file="${dist.jar}"/>
+        <mkdir dir="${dist.jar.dir}"/>
+    </target>
+    <target name="-pre-jar">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-do-jar-without-manifest" depends="init,compile,-pre-pre-jar,-pre-jar" unless="manifest.available">
+        <j2seproject1:jar/>
+    </target>
+    <target name="-do-jar-with-manifest" depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" unless="manifest.available+main.class">
+        <j2seproject1:jar manifest="${manifest.file}"/>
+    </target>
+    <target name="-do-jar-with-mainclass" depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" unless="manifest.available+main.class+mkdist.available">
+        <j2seproject1:jar manifest="${manifest.file}">
+            <j2seproject1:manifest>
+                <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
+            </j2seproject1:manifest>
+        </j2seproject1:jar>
+        <echo>To run this application from the command line without Ant, try:</echo>
+        <property name="build.classes.dir.resolved" location="${build.classes.dir}"/>
+        <property name="dist.jar.resolved" location="${dist.jar}"/>
+        <pathconvert property="run.classpath.with.dist.jar">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+        </pathconvert>
+        <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
+    </target>
+    <target name="-do-jar-with-libraries" depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available">
+        <property name="build.classes.dir.resolved" location="${build.classes.dir}"/>
+        <pathconvert property="run.classpath.without.build.classes.dir">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to=""/>
+        </pathconvert>
+        <pathconvert property="jar.classpath" pathsep=" ">
+            <path path="${run.classpath.without.build.classes.dir}"/>
+            <chainedmapper>
+                <flattenmapper/>
+                <globmapper from="*" to="lib/*"/>
+            </chainedmapper>
+        </pathconvert>
+        <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" name="copylibs" classpath="${libs.CopyLibs.classpath}"/>
+        <copylibs manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}" jarfile="${dist.jar}" compress="${jar.compress}">
+            <fileset dir="${build.classes.dir}"/>
+            <manifest>
+                <attribute name="Main-Class" value="${main.class}"/>
+                <attribute name="Class-Path" value="${jar.classpath}"/>
+            </manifest>
+        </copylibs>
+        <echo>To run this application from the command line without Ant, try:</echo>
+        <property name="dist.jar.resolved" location="${dist.jar}"/>
+        <echo>java -jar "${dist.jar.resolved}"</echo>
+    </target>
+    <target name="-post-jar">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="jar" depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR."/>
+    <!--
+    =================
+    EXECUTION SECTION
+    =================
+    -->
+    <target name="run" depends="init,compile" description="Run a main class.">
+        <j2seproject1:java>
+            <customize>
+                <arg line="${application.args}"/>
+            </customize>
+        </j2seproject1:java>
+    </target>
+    <target name="run-single" depends="init,compile-single">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <j2seproject1:java classname="${run.class}"/>
+    </target>
+    <!--
+    =================
+    DEBUGGING SECTION
+    =================
+    -->
+    <target name="-debug-start-debugger" if="netbeans.home" depends="init">
+        <j2seproject1:nbjpdastart name="${debug.class}"/>
+    </target>
+    <target name="-debug-start-debuggee" depends="init,compile">
+        <j2seproject3:debug>
+            <customize>
+                <arg line="${application.args}"/>
+            </customize>
+        </j2seproject3:debug>
+    </target>
+    <target name="debug" if="netbeans.home" depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE."/>
+    <target name="-debug-start-debugger-stepinto" if="netbeans.home" depends="init">
+        <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+    </target>
+    <target name="debug-stepinto" if="netbeans.home" depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee"/>
+    <target name="-debug-start-debuggee-single" if="netbeans.home" depends="init,compile-single">
+        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+        <j2seproject3:debug classname="${debug.class}"/>
+    </target>
+    <target name="debug-single" if="netbeans.home" depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single"/>
+    <target name="-pre-debug-fix" depends="init">
+        <fail unless="fix.includes">Must set fix.includes</fail>
+        <property name="javac.includes" value="${fix.includes}.java"/>
+    </target>
+    <target name="-do-debug-fix" if="netbeans.home" depends="init,-pre-debug-fix,compile-single">
+        <j2seproject1:nbjpdareload/>
+    </target>
+    <target name="debug-fix" if="netbeans.home" depends="init,-pre-debug-fix,-do-debug-fix"/>
+    <!--
+    ===============
+    JAVADOC SECTION
+    ===============
+    -->
+    <target name="-javadoc-build" depends="init">
+        <mkdir dir="${dist.javadoc.dir}"/>
+        <javadoc destdir="${dist.javadoc.dir}" source="${javac.source}" notree="${javadoc.notree}" use="${javadoc.use}" nonavbar="${javadoc.nonavbar}" noindex="${javadoc.noindex}" splitindex="${javadoc.splitindex}" author="${javadoc.author}" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}" private="${javadoc.private}" additionalparam="${javadoc.additionalparam}" failonerror="true" useexternalfile="true">
+            <classpath>
+                <path path="${javac.classpath}"/>
+            </classpath>
+            <sourcepath>
+                <pathelement location="${src.dir}"/>
+            </sourcepath>
+            <packageset dir="${src.dir}" includes="*/**"/>
+            <fileset dir="${src.dir}" includes="*.java"/>
+        </javadoc>
+    </target>
+    <target name="-javadoc-browse" if="netbeans.home" unless="no.javadoc.preview" depends="init,-javadoc-build">
+        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+    </target>
+    <target name="javadoc" depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc."/>
+    <!--
+    =========================
+    JUNIT COMPILATION SECTION
+    =========================
+    -->
+    <target name="-pre-pre-compile-test" if="have.tests" depends="init,compile">
+        <mkdir dir="${build.test.classes.dir}"/>
+    </target>
+    <target name="-pre-compile-test">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-do-compile-test" if="have.tests" depends="init,compile,-pre-pre-compile-test,-pre-compile-test">
+        <j2seproject3:javac srcdir="${test.src.dir}" destdir="${build.test.classes.dir}" debug="true" classpath="${javac.test.classpath}"/>
+        <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.src.dir}" excludes="**/*.java"/>
+        </copy>
+    </target>
+    <target name="-post-compile-test">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="compile-test" depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test"/>
+    <target name="-pre-compile-test-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-do-compile-test-single" if="have.tests" depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single">
+        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+        <j2seproject3:javac srcdir="${test.src.dir}" destdir="${build.test.classes.dir}" debug="true" classpath="${javac.test.classpath}">
+            <customize>
+                <patternset includes="${javac.includes}"/>
+            </customize>
+        </j2seproject3:javac>
+        <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.src.dir}" excludes="**/*.java"/>
+        </copy>
+    </target>
+    <target name="-post-compile-test-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="compile-test-single" depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single"/>
+    <!--
+    =======================
+    JUNIT EXECUTION SECTION
+    =======================
+    -->
+    <target name="-pre-test-run" if="have.tests" depends="init">
+        <mkdir dir="${build.test.results.dir}"/>
+    </target>
+    <target name="-do-test-run" if="have.tests" depends="init,compile-test,-pre-test-run">
+        <j2seproject3:junit/>
+    </target>
+    <target name="-post-test-run" if="have.tests" depends="init,compile-test,-pre-test-run,-do-test-run">
+        <fail if="tests.failed">Some tests failed; see details above.</fail>
+    </target>
+    <target name="test-report" if="have.tests" depends="init"/>
+    <target name="-test-browse" if="netbeans.home+have.tests" depends="init"/>
+    <target name="test" depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests."/>
+    <target name="-pre-test-run-single" if="have.tests" depends="init">
+        <mkdir dir="${build.test.results.dir}"/>
+    </target>
+    <target name="-do-test-run-single" if="have.tests" depends="init,compile-test-single,-pre-test-run-single">
+        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+        <j2seproject3:junit includes="${test.includes}"/>
+    </target>
+    <target name="-post-test-run-single" if="have.tests" depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single">
+        <fail if="tests.failed">Some tests failed; see details above.</fail>
+    </target>
+    <target name="test-single" depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test."/>
+    <!--
+    =======================
+    JUNIT DEBUGGING SECTION
+    =======================
+    -->
+    <target name="-debug-start-debuggee-test" if="have.tests" depends="init,compile-test">
+        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+        <j2seproject3:debug classname="junit.textui.TestRunner" classpath="${debug.test.classpath}">
+            <customize>
+                <arg line="${test.class}"/>
+            </customize>
+        </j2seproject3:debug>
+    </target>
+    <target name="-debug-start-debugger-test" if="netbeans.home+have.tests" depends="init,compile-test">
+        <j2seproject1:nbjpdastart name="${test.class}" classpath="${debug.test.classpath}"/>
+    </target>
+    <target name="debug-test" depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test"/>
+    <target name="-do-debug-fix-test" if="netbeans.home" depends="init,-pre-debug-fix,compile-test-single">
+        <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+    </target>
+    <target name="debug-fix-test" if="netbeans.home" depends="init,-pre-debug-fix,-do-debug-fix-test"/>
+    <!--
+    =========================
+    APPLET EXECUTION SECTION
+    =========================
+    -->
+    <target name="run-applet" depends="init,compile-single">
+        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+        <j2seproject1:java classname="sun.applet.AppletViewer">
+            <customize>
+                <arg value="${applet.url}"/>
+            </customize>
+        </j2seproject1:java>
+    </target>
+    <!--
+    =========================
+    APPLET DEBUGGING  SECTION
+    =========================
+    -->
+    <target name="-debug-start-debuggee-applet" if="netbeans.home" depends="init,compile-single">
+        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+        <j2seproject3:debug classname="sun.applet.AppletViewer">
+            <customize>
+                <arg value="${applet.url}"/>
+            </customize>
+        </j2seproject3:debug>
+    </target>
+    <target name="debug-applet" if="netbeans.home" depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet"/>
+    <!--
+    ===============
+    CLEANUP SECTION
+    ===============
+    -->
+    <target name="deps-clean" depends="init" unless="no.deps"/>
+    <target name="-do-clean" depends="init">
+        <delete dir="${build.dir}"/>
+        <delete dir="${dist.dir}"/>
+    </target>
+    <target name="-post-clean">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>
+</project>
diff --git a/gui/JavaApplication1/nbproject/genfiles.properties b/gui/JavaApplication1/nbproject/genfiles.properties
new file mode 100644 (file)
index 0000000..d7c8159
--- /dev/null
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=6777d69e
+build.xml.script.CRC32=09de7c06
+build.xml.stylesheet.CRC32=240b97a2
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=6777d69e
+nbproject/build-impl.xml.script.CRC32=b93da968
+nbproject/build-impl.xml.stylesheet.CRC32=65d7ca21
diff --git a/gui/JavaApplication1/nbproject/private/private.properties b/gui/JavaApplication1/nbproject/private/private.properties
new file mode 100644 (file)
index 0000000..c36df80
--- /dev/null
@@ -0,0 +1,4 @@
+application.args=
+javac.debug=true
+javadoc.preview=true
+user.properties.file=/home/soners/.netbeans/5.5.1/build.properties
diff --git a/gui/JavaApplication1/nbproject/private/private.xml b/gui/JavaApplication1/nbproject/private/private.xml
new file mode 100644 (file)
index 0000000..c1f155a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
+</project-private>
diff --git a/gui/JavaApplication1/nbproject/project.properties b/gui/JavaApplication1/nbproject/project.properties
new file mode 100644 (file)
index 0000000..58e400c
--- /dev/null
@@ -0,0 +1,57 @@
+application.args=
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+debug.classpath=\
+    ${run.classpath}
+debug.test.classpath=\
+    ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/JavaApplication1.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+jar.compress=false
+javac.classpath=\
+    ${libs.swing-layout.classpath}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.source=1.5
+javac.target=1.5
+javac.test.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}:\
+    ${libs.junit.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+main.class=javaapplication1.GeniGUI
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+platform.active=default_platform
+run.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
+# or test-sys-prop.name=value to set system properties for unit tests):
+run.jvmargs=
+run.test.classpath=\
+    ${javac.test.classpath}:\
+    ${build.test.classes.dir}
+src.dir=src
+test.src.dir=test
diff --git a/gui/JavaApplication1/nbproject/project.xml b/gui/JavaApplication1/nbproject/project.xml
new file mode 100644 (file)
index 0000000..f3875b6
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>org.netbeans.modules.java.j2seproject</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+            <name>JavaApplication1</name>
+            <minimum-ant-version>1.6.5</minimum-ant-version>
+            <source-roots>
+                <root id="src.dir"/>
+            </source-roots>
+            <test-roots>
+                <root id="test.src.dir"/>
+            </test-roots>
+        </data>
+    </configuration>
+</project>
diff --git a/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java b/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java
new file mode 100644 (file)
index 0000000..e755de9
--- /dev/null
@@ -0,0 +1,570 @@
+/*
+ * DisplayHandle.java
+ *
+ * Created on March 29, 2008, 2:42 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package javaapplication1;
+
+import java.io.*;
+import javax.swing.JPanel;
+import java.awt.*;
+import javax.swing.*;
+
+/**
+ *
+ * @author soners
+ */
+public class DisplayHandle {
+    
+    /** Creates a new instance of DisplayHandle */
+    public DisplayHandle(BufferedWriter outCommand) {
+        this.outCommand = outCommand;
+        createCompListUser();
+        createCompListSlice();
+        createCompListNode();
+        createCompListSite();
+    }
+    
+    private void createCompListNode(){
+        compList_node = new GuiComponent[33];
+        GuiComponent[] compList = compList_node;
+        String[] tmplist1 = {"readable","pl"};
+        String[] tmplist2 = {"writable","pl"};
+        String[] tmplist3 = {"readable","geni"};
+        String[] tmplist4 = {"writable","geni"};
+        compList[0] = new GuiComponent("node_id", tmplist1, "text", "Node Id", "");
+        compList[1] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", "");
+        compList[2] = new GuiComponent("boot_state", tmplist2, "combo", "Boot state", "boot, dbg, inst, new, rcnf, rins");
+        compList[3] = new GuiComponent("site_id", tmplist1, "num", "Site Id", "");
+        compList[4] = new GuiComponent("pcu_ids", tmplist2, "num", "PCU Ids", "");
+        compList[5] = new GuiComponent("session", tmplist1, "text", "Session", "");
+        compList[6] = new GuiComponent("key", tmplist2, "key", "Key", "");
+        compList[7] = new GuiComponent("conf_file_ids", tmplist2, "text", "Conf file Ids", "");
+        compList[8] = new GuiComponent("ssh_rsa_key", tmplist1, "text", "SSH RSA Key", "");
+        compList[9] = new GuiComponent("ssh_rsa_key_write", tmplist2, "key", "SSH RSA Key", "");
+        compList[10] = new GuiComponent("uuid", tmplist1, "text", "UUID", "");
+        compList[11] = new GuiComponent("nodegroup_ids", tmplist2, "num", "Node Group Ids", "");
+        compList[12] = new GuiComponent("slice_ids_whitelist", tmplist2, "text", "Slice Ids Whitelist", "");
+        compList[13] = new GuiComponent("last_contact", tmplist2, "text", "Last Contact", "");
+        compList[14] = new GuiComponent("nodenetwork_ids", tmplist2, "text", "Node Network Ids", "");
+        compList[15] = new GuiComponent("peer_node_id", tmplist2, "num", "Peer Node Id", "");
+        compList[16] = new GuiComponent("hostname", tmplist2, "text", "Hostname", "randomsite.edu");
+        compList[17] = new GuiComponent("slice_ids", tmplist1, "num", "Slice Ids", "");
+        compList[18] = new GuiComponent("boot_nonce", tmplist2, "text", "Boot Nonce", "");
+        compList[19] = new GuiComponent("version", tmplist2, "text", "Version", "PlanetLab BootCD 3.1");
+        compList[20] = new GuiComponent("date_created", tmplist1, "text", "Date Created", "");
+        compList[21] = new GuiComponent("model", tmplist2, "text", "Model", "Dell OptiPlex GX280");
+        compList[22] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", "");
+        compList[23] = new GuiComponent("ports", tmplist2, "text", "Ports", "");
+        compList[24] = new GuiComponent("description", tmplist4, "text", "Description", "New node for testing purposes");
+        compList[25] = new GuiComponent("rights", tmplist4, "text", "Rights", "");
+        compList[26] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", "");
+        compList[27] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", "");
+        compList[28] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local");
+        compList[29] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No");
+        compList[30] = new GuiComponent("userlist", tmplist4, "text", "User List", "");            
+        compList[31] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", "");
+        compList[32] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", "");
+    
+    }
+    
+    private void createCompListUser(){        
+        compList_user = new GuiComponent[28];
+        GuiComponent[] compList = compList_user;
+        String[] tmplist1 = {"readable","pl"};
+        String[] tmplist2 = {"writable","pl"};
+        String[] tmplist3 = {"readable","geni"};
+        String[] tmplist4 = {"writable","geni"};
+        compList[0] = new GuiComponent("person_id", tmplist1, "num", "Person Id", "");        
+        compList[1] = new GuiComponent("bio", tmplist2, "text", "Bio", "");
+        compList[2] = new GuiComponent("first_name", tmplist2, "text", "First Name", "");
+        compList[3] = new GuiComponent("last_name", tmplist2, "text", "Last Name", "");
+        compList[4] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", "");
+        compList[5] = new GuiComponent("key_ids", tmplist2, "num", "Key Ids", "");
+        compList[6] = new GuiComponent("phone", tmplist2, "text", "Phone", "");
+        compList[7] = new GuiComponent("peer_person_id", tmplist2, "num", "Peer Person Id", "");
+        compList[8] = new GuiComponent("role_ids", tmplist2, "num", "Role Ids", "");
+        compList[9] = new GuiComponent("site_ids", tmplist1, "num", "Site Ids", "");        
+        compList[10] = new GuiComponent("uuid", tmplist1, "text", "UUID", "");
+        compList[11] = new GuiComponent("roles", tmplist2, "num", "Roles", "");
+        compList[12] = new GuiComponent("title", tmplist2, "text", "Title", "");
+        compList[13] = new GuiComponent("url", tmplist2, "text", "Url", "someuser.dom.edu");
+        compList[14] = new GuiComponent("enabled", tmplist2, "bool", "Enabled", "Yes, No");
+        compList[15] = new GuiComponent("slice_ids", tmplist2, "num", "Slice Ids", "");
+        compList[16] = new GuiComponent("date_created", tmplist1, "text", "Date Created", "");
+        compList[17] = new GuiComponent("peer_id", tmplist2, "num", "Peer Id", "");
+        compList[18] = new GuiComponent("email", tmplist2, "text", "Email", "someuser@domain.edu");
+        compList[19] = new GuiComponent("description", tmplist4, "text", "Description", "test user");
+        compList[20] = new GuiComponent("rights", tmplist2, "text", "Rights", "");
+        compList[21] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", "");
+        compList[22] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", "");
+        compList[23] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local");
+        compList[24] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No");
+        compList[25] = new GuiComponent("userlist", tmplist4, "text", "User List", "");            
+        compList[26] = new GuiComponent("pointer", tmplist3, "text", "PL Pointer", "");
+        compList[27] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", "");
+        
+    }
+    
+    private void createCompListSlice(){
+        compList_slice = new GuiComponent[24];
+        GuiComponent[] compList = compList_slice;
+        String[] tmplist1 = {"readable","pl"};
+        String[] tmplist2 = {"writable","pl"};
+        String[] tmplist3 = {"readable","geni"};
+        String[] tmplist4 = {"writable","geni"};
+        compList[0] = new GuiComponent("slice_id", tmplist1, "num", "Slice Id", "");        
+        compList[1] = new GuiComponent("description", tmplist2, "text", "Description", ""); 
+        compList[2] = new GuiComponent("node_ids", tmplist1, "num", "Node Ids", "");
+        compList[3] = new GuiComponent("expires", tmplist2, "text", "Expires", "");
+        compList[4] = new GuiComponent("site_id", tmplist1, "num", "Site Id", "");
+        compList[5] = new GuiComponent("uuid", tmplist1, "text", "UUID", "");
+        compList[6] = new GuiComponent("creator_person_id", tmplist2, "text", "Creator Person Id", "");
+        compList[7] = new GuiComponent("instantiation", tmplist2, "combo", "Instantiation", "delegated, not-instantiated, plc-instantiated");
+        compList[8] = new GuiComponent("name", tmplist2, "text", "Name", "");
+        compList[9] = new GuiComponent("created", tmplist1, "text", "Created", "");
+        compList[10] = new GuiComponent("url", tmplist2, "text", "Url", "");
+        compList[11] = new GuiComponent("max_nodes", tmplist2, "num", "Max Nodes", "10");
+        compList[12] = new GuiComponent("person_ids", tmplist2, "num", "Person Ids", "");
+        compList[13] = new GuiComponent("slice_attribute_ids", tmplist2, "text", "Slice Attribute Ids", "");
+        compList[14] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", "");
+        compList[15] = new GuiComponent("description", tmplist4, "text", "Description", "test slice");
+        compList[16] = new GuiComponent("rights", tmplist2, "text", "Rights", "");
+        compList[17] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", "");
+        compList[18] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", "");
+        compList[19] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local");
+        compList[20] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No");
+        compList[21] = new GuiComponent("userlist", tmplist4, "text", "User List", "");            
+        compList[22] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", "");
+        compList[23] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", "");               
+        
+    }
+    
+    private void createCompListSite(){
+        compList_site = new GuiComponent[31];
+        GuiComponent[] compList = compList_site;
+        String[] tmplist1 = {"readable","pl"};
+        String[] tmplist2 = {"writable","pl"};
+        String[] tmplist3 = {"readable","geni"};
+        String[] tmplist4 = {"writable","geni"};
+        
+        compList[0] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", "");
+        compList[1] = new GuiComponent("node_ids", tmplist2, "num", "Node Ids", "");
+        compList[2] = new GuiComponent("site_id", tmplist1, "num", "Site Id", "");
+        compList[3] = new GuiComponent("pcu_ids", tmplist2, "num", "PCU Ids", "");
+        compList[4] = new GuiComponent("max_slices", tmplist2, "num", "Max Slices", "");
+        compList[5] = new GuiComponent("ext_consortium_id", tmplist2, "text", "Ext Consortium Id", "");
+        compList[6] = new GuiComponent("max_slivers", tmplist2, "num", "Max Slivers", "5");
+        compList[7] = new GuiComponent("is_public", tmplist2, "bool", "Public", "Yes, No");
+        compList[8] = new GuiComponent("peer_site_id", tmplist1, "num", "Peer Site Id", "");
+        compList[9] = new GuiComponent("abbreviated_name", tmplist2, "text", "Abbreviated Name", "");
+        compList[10] = new GuiComponent("name", tmplist2, "text", "Name", "");
+        compList[11] = new GuiComponent("address_ids", tmplist2, "num", "Address Ids", "");
+        compList[12] = new GuiComponent("uuid", tmplist1, "text", "UUID", "");
+        compList[13] = new GuiComponent("url", tmplist2, "text", "Url", "");
+        compList[14] = new GuiComponent("person_ids", tmplist2, "num", "Person Ids", "");
+        compList[15] = new GuiComponent("enabled", tmplist2, "bool", "Enabled", "Yes, No");
+        compList[16] = new GuiComponent("longitude", tmplist2, "num", "Longitude", "34.3");
+        compList[17] = new GuiComponent("latitude", tmplist2, "num", "Latitude", "45.4");
+        compList[18] = new GuiComponent("slice_ids", tmplist2, "num", "Slice Ids", "");
+        compList[19] = new GuiComponent("login_base", tmplist2, "text", "Login Base", "");
+        compList[20] = new GuiComponent("date_created", tmplist1, "text", "Date Created", "");
+        compList[21] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", "");
+        compList[22] = new GuiComponent("description", tmplist4, "text", "Description", "test slice");
+        compList[23] = new GuiComponent("rights", tmplist2, "text", "Rights", "");
+        compList[24] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", "");
+        compList[25] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", "");
+        compList[26] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local");
+        compList[27] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No");
+        compList[28] = new GuiComponent("userlist", tmplist4, "text", "User List", "");            
+        compList[29] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", "");
+        compList[30] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", "");                     
+    }
+    
+    //input is in format: {"'field1_name':value1", "'field2_name':value2", ...}
+    public void FillComponentList(String recordType, String[] dict){
+        GuiComponent[] complist = null;
+        if (recordType.equals("user")){
+            complist = compList_user;
+        }
+        else if (recordType.equals("slice")){
+            complist = compList_slice;
+        }
+        else if (recordType.equals("node")){
+            complist = compList_node;
+        }
+        else if (recordType.equals("SA/MA")){
+            complist = compList_site;
+        }
+        
+        for (int i=0; i<dict.length; i++){
+            String[] line = dict[i].split("':");
+            String comp_name = line[0].split("'")[1];
+            String comp_value = "";
+            if (line.length > 1)
+                comp_value = line[1];
+            if (comp_value.equals("None"))
+                    comp_value = "";
+            int j;
+            for(j = 0; j<complist.length; j++){
+                if (complist[j].getName().equals(comp_name)){
+                    break;
+                }
+            }
+            if (j == complist.length)
+                continue;
+            else{
+                String type = complist[j].getType();
+                if (type.equals("text") || type.equals("num"))
+                    complist[j].setValue(comp_value);
+                else if (type.equals("bool"))
+                    if (comp_value.equals("True"))
+                        complist[j].setValue("Yes, No");
+                    else
+                        complist[j].setValue("No, Yes");
+                else if (type.equals("combo")){
+                    String[] curVal = complist[j].getValue().split(", ");
+                    String nextVal = comp_value;
+                    for(int k=0; k<curVal.length; k++)
+                        if (curVal[k] != comp_value)
+                            nextVal += (", "+curVal[k]);
+                    complist[j].setValue(nextVal);
+                }
+                else if (type.equals("key")){
+                    complist[j].setValue(comp_value);                
+                }
+            }
+        }    
+    }
+    
+    private void keyChooserActionPerformed(JTextField t, java.awt.event.ActionEvent evt) {                                              
+// TODO add your handling code here:
+        
+        javax.swing.JFileChooser fc =  (javax.swing.JFileChooser)evt.getSource();
+        java.io.File f = fc.getSelectedFile();
+        
+        if(keySelectFrame!=null)
+                keySelectFrame.dispose();
+        
+        if (f != null){
+            String fname = f.getAbsolutePath();            
+
+            try{
+                //extract the pubkey from the specified file into temp file
+                outCommand.write("./certutil.py "+fname+" > tmp_key_file.txt\n");            
+                outCommand.flush();
+
+                //get key from temp file 
+                String result = "";
+                File file = new File("tmp_key_file.txt");
+                int i = 0;
+                while(!file.exists() && i<5){
+                    i++;
+                    try {
+                        Thread.currentThread().sleep(200);
+                    } catch (InterruptedException ex) {
+                        ex.printStackTrace();
+                    }
+                }
+                try {
+                    Thread.currentThread().sleep(100);
+                } catch (InterruptedException ex) {
+                    ex.printStackTrace();
+                }        
+                if (file.exists()){                
+                    BufferedReader in = new BufferedReader(new FileReader("tmp_key_file.txt")); 
+                    String tmp = in.readLine();
+                    while(tmp!=null && tmp.length() > 0){
+                        result += tmp+"\n";
+                        tmp = in.readLine();
+                    }                
+                    in.close();
+
+                    outCommand.write("rm tmp_key_file.txt\n");            
+                    outCommand.flush();                               
+                }
+                //write the result in the textfield
+                t.setText(result);
+              }catch (Exception ex) {
+                        ex.printStackTrace();
+                } 
+        }
+            
+    }        
+    
+    public void displayComponentList(String recordType, JPanel panel1, JPanel panel2){
+        
+        GuiComponent[] complist = null;
+        if (recordType.equals("user")){
+            complist = compList_user;
+        }
+        else if (recordType.equals("slice")){
+            complist = compList_slice;
+        }
+        else if (recordType.equals("node")){
+            complist = compList_node;
+        }
+        else if (recordType.equals("SA/MA")){
+            complist = compList_site;
+        }        
+            
+        panel1.removeAll();
+        panel1.setLayout(new SpringLayout());      
+
+        int count1 = 0;
+        for (int i=0;i<complist.length;i++){
+            if (complist[i].getProperty()[0].equals("readable") && complist[i].getProperty()[1].equals("geni")){
+                String type = complist[i].getType();
+                if (type.equals("text") || type.equals("num")){
+                    JLabel l = new JLabel(complist[i].getLabel(), JLabel.TRAILING);
+                    l.setName(complist[i].getName());
+                    panel1.add(l);
+                    JTextField t = new JTextField();
+                    t.setText(complist[i].getValue());
+                    t.setEditable(false);
+                    l.setLabelFor(t);
+                    panel1.add(t);
+                    count1++;
+                }
+            }
+        }
+        int count2 = 0;
+        for (int i=0;i<complist.length;i++){
+            if (complist[i].getProperty()[0].equals("readable") && complist[i].getProperty()[1].equals("pl")){
+                String type = complist[i].getType();
+                if (type.equals("text") || type.equals("num")){
+                    JLabel l = new JLabel(complist[i].getLabel(), JLabel.TRAILING);
+                    l.setName(complist[i].getName());
+                    panel1.add(l);
+                    JTextField t = new JTextField();
+                    t.setText(complist[i].getValue());
+                    t.setEditable(false);
+                    l.setLabelFor(t);
+                    panel1.add(t);
+                    count2++;
+                }
+            }
+        }
+        int parts = 2*(count1+count2);
+        while(parts != (parts/6)*6){
+            JLabel l = new JLabel("", JLabel.TRAILING);
+            panel1.add(l);
+            parts++;
+        }
+         //Lay out the panel.
+        SpringUtilities.makeCompactGrid(panel1,
+                                        parts/6, 6, //rows, cols
+                                        6, 6,        //initX, initY
+                                        6, 6);       //xPad, yPad
+        panel1.revalidate();
+        panel1.repaint();
+
+    
+        //fill the second(writable) panel
+        panel2.removeAll();
+        panel2.setLayout(new SpringLayout());      
+
+        count1 = 0;
+        for (int i=0;i<complist.length;i++){
+            if (complist[i].getProperty()[0].equals("writable") && complist[i].getProperty()[1].equals("geni")){
+                JLabel l = new JLabel(complist[i].getLabel(), JLabel.TRAILING);
+                final String name = complist[i].getName();
+                l.setName(name);
+                panel2.add(l);
+                String type = complist[i].getType();
+                if (type.equals("text") || type.equals("num")){                    
+                    JTextField t = new JTextField();
+                    t.setText(complist[i].getValue());                   
+                    l.setLabelFor(t);
+                    panel2.add(t);
+                    count1++;
+                }
+                else if (type.equals("combo") || type.equals("bool")){
+                    JComboBox cb = new JComboBox(complist[i].getValue().split(", "));
+                    l.setLabelFor(cb);
+                    panel2.add(cb);
+                    count1++;
+                }
+                else if (type.equals("key")){ 
+                    final JTextField t = new JTextField();
+                    t.setText(complist[i].getValue());    
+                    t.setEditable(false);
+                    l.setLabelFor(t);
+                    panel2.add(t);                    
+                    
+                    t.addMouseListener(new java.awt.event.MouseAdapter() {
+                        public void mousePressed(java.awt.event.MouseEvent evt) {
+                            //Create and set up the window.
+                            if(keySelectFrame!=null)
+                                  keySelectFrame.dispose();
+                            keySelectFrame = new JFrame("Key Select");
+                            keySelectFrame.setSize(600,400);
+                            keySelectFrame.setLocation(200,100);
+
+                            //Set up the content pane.
+                            Container contentPane = keySelectFrame.getContentPane();
+                            SpringLayout layout = new SpringLayout();
+                            contentPane.setLayout(layout);        
+
+                            JFileChooser fc = new JFileChooser();
+                            fc.addActionListener(new java.awt.event.ActionListener() {
+                                public void actionPerformed(java.awt.event.ActionEvent evt) {
+                                    keyChooserActionPerformed(t, evt);
+                                }
+                            });
+
+                            contentPane.add(fc);
+
+                            //Display the window.
+                            keySelectFrame.pack();
+                            keySelectFrame.setVisible(true); 
+                        }
+                    });
+                    count1++;
+                } 
+            }
+        }
+        count2 = 0;
+        for (int i=0;i<complist.length;i++){
+            if (complist[i].getProperty()[0].equals("writable") && complist[i].getProperty()[1].equals("pl")){
+                JLabel l = new JLabel(complist[i].getLabel(), JLabel.TRAILING);
+                l.setName(complist[i].getName());
+                panel2.add(l);
+                String type = complist[i].getType();
+                if (type.equals("text") || type.equals("num")){                    
+                    JTextField t = new JTextField();
+                    t.setText(complist[i].getValue());
+                    l.setLabelFor(t);
+                    panel2.add(t);
+                    count2++;
+                }
+                else if (type.equals("combo") || type.equals("bool")){
+                    JComboBox cb = new JComboBox(complist[i].getValue().split(", "));
+                    l.setLabelFor(cb);
+                    panel2.add(cb);
+                    count1++;
+                }
+                else if (type.equals("key")){                    
+                    JTextField t = new JTextField();
+                    t.setText(complist[i].getValue());                   
+                    l.setLabelFor(t);
+                    panel2.add(t);
+                    count1++;
+                } 
+            }
+        }
+        parts = 2*(count1+count2);
+        while(parts != (parts/6)*6){
+            JLabel l = new JLabel("", JLabel.TRAILING);
+            panel2.add(l);
+            parts++;
+        }
+         //Lay out the panel.
+        SpringUtilities.makeCompactGrid(panel2,
+                                        parts/6, 6, //rows, cols
+                                        6, 6,        //initX, initY
+                                        6, 6);       //xPad, yPad
+
+        panel2.revalidate();
+        panel2.repaint();
+
+    }
+    
+    //construct a clientstub message out of the given panel
+    public String PanelToString(String type, JPanel panel){
+        GuiComponent[] targetCompList = null;
+        String g_params = "";
+        String p_params = "";
+        
+        if (type.equals("user"))
+            targetCompList = compList_user;
+        else if (type.equals("slice"))
+            targetCompList = compList_slice;
+        else if (type.equals("node"))
+            targetCompList = compList_node;
+        else if (type.equals("SA/MA"))
+            targetCompList = compList_site;
+        
+        //serialize the components on the component list
+        Component carr[] = panel.getComponents();
+        for(int i = 0; i<carr.length; i++){
+            Component nextcomp = carr[i];                     
+            String comp_name = nextcomp.getName();            
+            int j;
+            for(j = 0; j<targetCompList.length; j++){
+                String cur_name = targetCompList[j].getName();
+                if (cur_name.equals(comp_name)){
+                    break;
+                }
+            }
+            if (j == targetCompList.length)
+                continue;
+            else{
+                String comp_type = targetCompList[j].getType();
+                String comp_content = "";
+                if (comp_type.equals("text") || comp_type.equals("num")){
+                    JTextField tf = (JTextField)carr[i+1];
+                    String tf_content = tf.getText();
+                    if (tf_content.length() == 0)
+                        continue;
+                    else if(comp_type.equals("text"))
+                        comp_content = "'"+tf_content+"'";
+                    else
+                        comp_content = tf_content;
+                }
+                else if (comp_type.equals("bool")){
+                    JComboBox cb = (JComboBox)carr[i+1];
+                    String cb_content = (String) cb.getSelectedItem();
+                    if (cb_content.equals("Yes"))
+                        comp_content = "True";
+                    else
+                        comp_content = "False";                
+                }
+                else if (comp_type.equals("combo")){
+                    JComboBox cb = (JComboBox)carr[i+1];
+                    String cb_content = (String) cb.getSelectedItem();
+                    comp_content = "'"+cb_content+"'";                
+                }
+                else if (comp_type.equals("key")){
+                    JTextField tf = (JTextField)carr[i+1];
+                    String tf_content = tf.getText();                    
+                    
+                    if (tf_content.length() == 0)
+                        continue;
+                    else
+                        comp_content = "'"+tf_content+"'";                                        
+                }
+                //add to dictionary string
+                if (comp_name.equals("key_write"))
+                    comp_name = "key";
+                else if (comp_name.equals("pubkey_write"))
+                    comp_name = "pubkey";
+                if (targetCompList[j].getProperty()[1].equals("geni")){
+                    if (g_params.length() == 0)
+                        g_params += ("'"+comp_name+"':"+comp_content);
+                    else
+                        g_params += (", '"+comp_name+"':"+comp_content);
+                }
+                else{
+                    if (p_params.length() == 0)
+                        p_params += ("'"+comp_name+"':"+comp_content);
+                    else
+                        p_params += (", '"+comp_name+"':"+comp_content);                
+                }                    
+            }
+        }        
+        return "'g_params':{"+g_params+"}, 'p_params':{"+p_params+"}";
+    }
+    
+    private BufferedWriter outCommand = null;
+    private JFrame keySelectFrame = null;
+    private GuiComponent[] compList_slice;
+    private GuiComponent[] compList_user;
+    private GuiComponent[] compList_node;
+    private GuiComponent[] compList_site;
+    
+}
diff --git a/gui/JavaApplication1/src/javaapplication1/GeniGUI.form b/gui/JavaApplication1/src/javaapplication1/GeniGUI.form
new file mode 100644 (file)
index 0000000..a2389e5
--- /dev/null
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <Events>
+    <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="formMouseReleased"/>
+  </Events>
+  <AuxValues>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Group type="103" groupAlignment="1" attributes="0">
+                  <Group type="102" alignment="0" attributes="1">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jPanel1" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jPanel2" max="32767" attributes="0"/>
+                  </Group>
+                  <Component id="jInternalFrame1" alignment="0" max="32767" attributes="1"/>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="statusLabel" pref="857" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                  <Component id="jPanel2" max="32767" attributes="1"/>
+                  <Component id="jPanel1" alignment="0" max="32767" attributes="1"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="statusLabel" min="-2" pref="25" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jInternalFrame1" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="153" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JPanel" name="jPanel1">
+      <Properties>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+            <TitledBorder title="User Info"/>
+          </Border>
+        </Property>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="1" attributes="0">
+                      <Group type="102" attributes="0">
+                          <Group type="103" groupAlignment="1" attributes="0">
+                              <Component id="typeLabel" alignment="1" min="-2" max="-2" attributes="0"/>
+                              <Component id="hrnLabel" alignment="1" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <EmptySpace min="-2" pref="26" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="102" alignment="1" attributes="0">
+                          <Component id="dirLabel" min="-2" max="-2" attributes="0"/>
+                          <EmptySpace max="-2" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Component id="dirTextField" pref="245" max="32767" attributes="0"/>
+                      <Component id="hrnTextField" alignment="0" pref="245" max="32767" attributes="0"/>
+                      <Component id="typeCombo" min="-2" pref="66" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="hrnLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="hrnTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="typeCombo" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="typeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="dirTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="dirLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace pref="46" max="32767" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JLabel" name="hrnLabel">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Enter your HRN:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="hrnTextField">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="planetlab.jp.osaka"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JComboBox" name="typeCombo">
+          <Properties>
+            <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+              <StringArray count="3">
+                <StringItem index="0" value="user"/>
+                <StringItem index="1" value="SA"/>
+                <StringItem index="2" value="MA"/>
+              </StringArray>
+            </Property>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="dirTextField">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="./client_osaka"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JLabel" name="typeLabel">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Type:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JLabel" name="dirLabel">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="User GENI directory:"/>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Container class="javax.swing.JInternalFrame" name="jInternalFrame1">
+      <Properties>
+        <Property name="title" type="java.lang.String" value="Record Data"/>
+        <Property name="visible" type="boolean" value="true"/>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Component id="jPanel7" alignment="1" max="32767" attributes="0"/>
+                      <Group type="102" alignment="0" attributes="0">
+                          <Group type="103" groupAlignment="1" attributes="0">
+                              <Component id="jPanel4" alignment="1" max="32767" attributes="0"/>
+                              <Component id="jPanel3" alignment="1" max="32767" attributes="0"/>
+                              <Component id="jPanel5" alignment="0" max="32767" attributes="0"/>
+                              <Component id="jPanel6" alignment="1" max="32767" attributes="0"/>
+                          </Group>
+                          <EmptySpace max="-2" attributes="0"/>
+                      </Group>
+                  </Group>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="1" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel3" max="32767" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel4" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel5" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel6" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel7" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Container class="javax.swing.JPanel" name="jPanel3">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="Non-editable Information"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="825" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="199" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel4">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="Set User Fields"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="825" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="180" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel5">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="Set Slice fields"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="825" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="192" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel6">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="Set Node fields"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="825" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="182" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel7">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="Set SA/MA fields"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="837" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="221" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+        </Container>
+      </SubComponents>
+    </Container>
+    <Container class="javax.swing.JPanel" name="jPanel2">
+      <Properties>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+            <TitledBorder title="Record Select"/>
+          </Border>
+        </Property>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Group type="102" alignment="0" attributes="0">
+                          <Component id="rechrnLabel" min="-2" pref="38" max="-2" attributes="0"/>
+                          <EmptySpace max="-2" attributes="0"/>
+                          <Component id="rechrnTextField" min="-2" pref="271" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="102" alignment="0" attributes="0">
+                          <Component id="rectypeLabel" min="-2" pref="38" max="-2" attributes="0"/>
+                          <EmptySpace max="-2" attributes="0"/>
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Group type="102" alignment="0" attributes="0">
+                                  <Component id="jButton1" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Component id="jButton2" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Component id="jButton3" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace max="-2" attributes="0"/>
+                                  <Component id="jButton4" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <Component id="rectypeCombo" alignment="0" min="-2" pref="66" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+                  <EmptySpace pref="30" max="32767" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="rechrnLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="rechrnTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="rectypeCombo" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="rectypeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="27" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="jButton1" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jButton2" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jButton3" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jButton4" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace pref="22" max="32767" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JLabel" name="rechrnLabel">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="HRN:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="rechrnTextField">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="planetlab.jp.osaka.tokyobranch"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JComboBox" name="rectypeCombo">
+          <Properties>
+            <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+              <StringArray count="6">
+                <StringItem index="0" value="-"/>
+                <StringItem index="1" value="user"/>
+                <StringItem index="2" value="slice"/>
+                <StringItem index="3" value="node"/>
+                <StringItem index="4" value="SA"/>
+                <StringItem index="5" value="MA"/>
+              </StringArray>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="rectypeComboItemStateChanged"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JLabel" name="rectypeLabel">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Type:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JButton" name="jButton1">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="register"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jButton1MouseReleased"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JButton" name="jButton2">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="remove"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jButton2MouseReleased"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JButton" name="jButton3">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="update"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jButton3MouseReleased"/>
+          </Events>
+        </Component>
+        <Component class="javax.swing.JButton" name="jButton4">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="lookup"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jButton4MouseReleased"/>
+          </Events>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JLabel" name="statusLabel">
+      <Properties>
+        <Property name="verticalAlignment" type="int" value="1"/>
+        <Property name="autoscrolls" type="boolean" value="true"/>
+      </Properties>
+    </Component>
+  </SubComponents>
+</Form>
diff --git a/gui/JavaApplication1/src/javaapplication1/GeniGUI.java b/gui/JavaApplication1/src/javaapplication1/GeniGUI.java
new file mode 100644 (file)
index 0000000..ad93a59
--- /dev/null
@@ -0,0 +1,452 @@
+/*
+ * GeniGUI.java
+ *
+ * Created on March 29, 2008, 3:46 PM
+ */
+
+package javaapplication1;
+
+import javax.swing.SpringLayout;
+import org.jdesktop.layout.GroupLayout;
+
+/**
+ *
+ * @author  soners
+ */
+public class GeniGUI extends javax.swing.JFrame {
+    
+    /**
+     * Creates new form GeniGUI
+     */
+    public GeniGUI() {
+        initComponents();
+                
+        jPanel4.setVisible(false);
+        jPanel5.setVisible(false);
+        jPanel6.setVisible(false);
+        jPanel7.setVisible(false);
+        
+        javax.swing.JPanel[] panelList = {jPanel3, jPanel4, jPanel5, jPanel6, jPanel7};
+        panelfiller = new PanelFiller(panelList, statusLabel);
+        panelfiller.initializePanels();
+        
+    }
+    
+    private void passCallToHandler(String opname){
+        User user = new User();
+        user.setCurrentUser(hrnTextField.getText(), (String)typeCombo.getSelectedItem(), dirTextField.getText());
+        RecordInfo record = new RecordInfo();
+        record.setCurrentRecord(rechrnTextField.getText(), (String)rectypeCombo.getSelectedItem());
+        
+        panelfiller.setUser(user);
+        panelfiller.setRecord(record);
+        panelfiller.handleOperation(opname);    
+    }
+    
+    /** This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
+    private void initComponents() {
+        jPanel1 = new javax.swing.JPanel();
+        hrnLabel = new javax.swing.JLabel();
+        hrnTextField = new javax.swing.JTextField();
+        typeCombo = new javax.swing.JComboBox();
+        dirTextField = new javax.swing.JTextField();
+        typeLabel = new javax.swing.JLabel();
+        dirLabel = new javax.swing.JLabel();
+        jInternalFrame1 = new javax.swing.JInternalFrame();
+        jPanel3 = new javax.swing.JPanel();
+        jPanel4 = new javax.swing.JPanel();
+        jPanel5 = new javax.swing.JPanel();
+        jPanel6 = new javax.swing.JPanel();
+        jPanel7 = new javax.swing.JPanel();
+        jPanel2 = new javax.swing.JPanel();
+        rechrnLabel = new javax.swing.JLabel();
+        rechrnTextField = new javax.swing.JTextField();
+        rectypeCombo = new javax.swing.JComboBox();
+        rectypeLabel = new javax.swing.JLabel();
+        jButton1 = new javax.swing.JButton();
+        jButton2 = new javax.swing.JButton();
+        jButton3 = new javax.swing.JButton();
+        jButton4 = new javax.swing.JButton();
+        statusLabel = new javax.swing.JLabel();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                formMouseReleased(evt);
+            }
+        });
+
+        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("User Info"));
+        hrnLabel.setText("Enter your HRN:");
+
+        hrnTextField.setText("planetlab.jp.osaka");
+
+        typeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "user", "SA", "MA" }));
+
+        dirTextField.setText("./client_osaka");
+
+        typeLabel.setText("Type:");
+
+        dirLabel.setText("User GENI directory:");
+
+        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
+        jPanel1.setLayout(jPanel1Layout);
+        jPanel1Layout.setHorizontalGroup(
+            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel1Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(jPanel1Layout.createSequentialGroup()
+                        .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                            .add(typeLabel)
+                            .add(hrnLabel))
+                        .add(26, 26, 26))
+                    .add(jPanel1Layout.createSequentialGroup()
+                        .add(dirLabel)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)))
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(dirTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE)
+                    .add(hrnTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE)
+                    .add(typeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap())
+        );
+        jPanel1Layout.setVerticalGroup(
+            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel1Layout.createSequentialGroup()
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(hrnLabel)
+                    .add(hrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .add(13, 13, 13)
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(typeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(typeLabel))
+                .add(14, 14, 14)
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(dirTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(dirLabel))
+                .addContainerGap(46, Short.MAX_VALUE))
+        );
+
+        jInternalFrame1.setTitle("Record Data");
+        jInternalFrame1.setVisible(true);
+        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Non-editable Information"));
+        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
+        jPanel3.setLayout(jPanel3Layout);
+        jPanel3Layout.setHorizontalGroup(
+            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 825, Short.MAX_VALUE)
+        );
+        jPanel3Layout.setVerticalGroup(
+            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 199, Short.MAX_VALUE)
+        );
+
+        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Set User Fields"));
+        org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
+        jPanel4.setLayout(jPanel4Layout);
+        jPanel4Layout.setHorizontalGroup(
+            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 825, Short.MAX_VALUE)
+        );
+        jPanel4Layout.setVerticalGroup(
+            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 180, Short.MAX_VALUE)
+        );
+
+        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Slice fields"));
+        org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
+        jPanel5.setLayout(jPanel5Layout);
+        jPanel5Layout.setHorizontalGroup(
+            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 825, Short.MAX_VALUE)
+        );
+        jPanel5Layout.setVerticalGroup(
+            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 192, Short.MAX_VALUE)
+        );
+
+        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Node fields"));
+        org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
+        jPanel6.setLayout(jPanel6Layout);
+        jPanel6Layout.setHorizontalGroup(
+            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 825, Short.MAX_VALUE)
+        );
+        jPanel6Layout.setVerticalGroup(
+            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 182, Short.MAX_VALUE)
+        );
+
+        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Set SA/MA fields"));
+        org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7);
+        jPanel7.setLayout(jPanel7Layout);
+        jPanel7Layout.setHorizontalGroup(
+            jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 837, Short.MAX_VALUE)
+        );
+        jPanel7Layout.setVerticalGroup(
+            jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(0, 221, Short.MAX_VALUE)
+        );
+
+        org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.GroupLayout(jInternalFrame1.getContentPane());
+        jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
+        jInternalFrame1Layout.setHorizontalGroup(
+            jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jInternalFrame1Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(jInternalFrame1Layout.createSequentialGroup()
+                        .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                            .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .add(jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                        .addContainerGap())))
+        );
+        jInternalFrame1Layout.setVerticalGroup(
+            jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(org.jdesktop.layout.GroupLayout.TRAILING, jInternalFrame1Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap())
+        );
+
+        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Record Select"));
+        rechrnLabel.setText("HRN:");
+
+        rechrnTextField.setText("planetlab.jp.osaka.tokyobranch");
+
+        rectypeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "user", "slice", "node", "SA", "MA" }));
+        rectypeCombo.addItemListener(new java.awt.event.ItemListener() {
+            public void itemStateChanged(java.awt.event.ItemEvent evt) {
+                rectypeComboItemStateChanged(evt);
+            }
+        });
+
+        rectypeLabel.setText("Type:");
+
+        jButton1.setText("register");
+        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jButton1MouseReleased(evt);
+            }
+        });
+
+        jButton2.setText("remove");
+        jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jButton2MouseReleased(evt);
+            }
+        });
+
+        jButton3.setText("update");
+        jButton3.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jButton3MouseReleased(evt);
+            }
+        });
+
+        jButton4.setText("lookup");
+        jButton4.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jButton4MouseReleased(evt);
+            }
+        });
+
+        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
+        jPanel2.setLayout(jPanel2Layout);
+        jPanel2Layout.setHorizontalGroup(
+            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel2Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jPanel2Layout.createSequentialGroup()
+                        .add(rechrnLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(rechrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(jPanel2Layout.createSequentialGroup()
+                        .add(rectypeLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jPanel2Layout.createSequentialGroup()
+                                .add(jButton1)
+                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                                .add(jButton2)
+                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                                .add(jButton3)
+                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                                .add(jButton4))
+                            .add(rectypeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
+                .addContainerGap(30, Short.MAX_VALUE))
+        );
+        jPanel2Layout.setVerticalGroup(
+            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel2Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(rechrnLabel)
+                    .add(rechrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(rectypeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(rectypeLabel))
+                .add(27, 27, 27)
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jButton1)
+                    .add(jButton2)
+                    .add(jButton3)
+                    .add(jButton4))
+                .addContainerGap(22, Short.MAX_VALUE))
+        );
+
+        statusLabel.setVerticalAlignment(javax.swing.SwingConstants.TOP);
+        statusLabel.setAutoscrolls(true);
+
+        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(layout.createSequentialGroup()
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
+                        .addContainerGap()
+                        .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jInternalFrame1)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
+                        .addContainerGap()
+                        .add(statusLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 857, Short.MAX_VALUE)))
+                .add(28, 28, 28))
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(layout.createSequentialGroup()
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+                    .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(statusLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .add(153, 153, 153))
+        );
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void jButton4MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton4MouseReleased
+// TODO add your handling code here:
+        passCallToHandler("lookup");
+    }//GEN-LAST:event_jButton4MouseReleased
+
+    private void jButton3MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton3MouseReleased
+// TODO add your handling code here:
+        passCallToHandler("update");
+    }//GEN-LAST:event_jButton3MouseReleased
+
+    private void jButton2MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton2MouseReleased
+// TODO add your handling code here:
+        passCallToHandler("remove");
+     
+    }//GEN-LAST:event_jButton2MouseReleased
+
+    private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased
+// TODO add your handling code here:
+        passCallToHandler("register");
+        
+    }//GEN-LAST:event_jButton1MouseReleased
+
+    private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased
+// TODO add your handling code here:
+
+    }//GEN-LAST:event_formMouseReleased
+
+    private void rectypeComboItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_rectypeComboItemStateChanged
+// TODO add your handling code here:
+                
+        jInternalFrame1.setSize(500,800);
+        jInternalFrame1.revalidate();
+        jInternalFrame1.repaint();
+        
+        int selected = rectypeCombo.getSelectedIndex();
+        if (selected == 1){
+            jPanel4.setVisible(true);
+            jPanel5.setVisible(false);
+            jPanel6.setVisible(false);
+            jPanel7.setVisible(false);
+        }
+        else if (selected == 2){
+            jPanel5.setVisible(true);
+            jPanel4.setVisible(false);
+            jPanel6.setVisible(false);
+            jPanel7.setVisible(false);
+        }
+        else if (selected == 3){
+            jPanel6.setVisible(true);
+            jPanel4.setVisible(false);
+            jPanel5.setVisible(false);
+            jPanel7.setVisible(false);
+        }
+        else if (selected == 4 || selected == 5){
+            jPanel7.setVisible(true);
+            jPanel4.setVisible(false);
+            jPanel5.setVisible(false);
+            jPanel6.setVisible(false);
+        }
+    }//GEN-LAST:event_rectypeComboItemStateChanged
+    
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[]) {
+        java.awt.EventQueue.invokeLater(new Runnable() {
+            public void run() {
+                new GeniGUI().setVisible(true);
+            }
+        });
+    }
+    
+    private PanelFiller panelfiller;
+    
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JLabel dirLabel;
+    private javax.swing.JTextField dirTextField;
+    private javax.swing.JLabel hrnLabel;
+    private javax.swing.JTextField hrnTextField;
+    private javax.swing.JButton jButton1;
+    private javax.swing.JButton jButton2;
+    private javax.swing.JButton jButton3;
+    private javax.swing.JButton jButton4;
+    private javax.swing.JInternalFrame jInternalFrame1;
+    private javax.swing.JPanel jPanel1;
+    private javax.swing.JPanel jPanel2;
+    private javax.swing.JPanel jPanel3;
+    private javax.swing.JPanel jPanel4;
+    private javax.swing.JPanel jPanel5;
+    private javax.swing.JPanel jPanel6;
+    private javax.swing.JPanel jPanel7;
+    private javax.swing.JLabel rechrnLabel;
+    private javax.swing.JTextField rechrnTextField;
+    private javax.swing.JComboBox rectypeCombo;
+    private javax.swing.JLabel rectypeLabel;
+    private javax.swing.JLabel statusLabel;
+    private javax.swing.JComboBox typeCombo;
+    private javax.swing.JLabel typeLabel;
+    // End of variables declaration//GEN-END:variables
+    
+}
diff --git a/gui/JavaApplication1/src/javaapplication1/GuiComponent.java b/gui/JavaApplication1/src/javaapplication1/GuiComponent.java
new file mode 100644 (file)
index 0000000..40e9b7c
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * GuiComponent.java
+ *
+ * Created on March 29, 2008, 2:45 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package javaapplication1;
+
+/**
+ *
+ * @author soners
+ */
+public class GuiComponent {
+    
+    /** Creates a new instance of GuiComponent */
+    public GuiComponent(String name, String[] property, String type, String label, String defaultVal) {
+        this.name = name;
+        this.property = property;
+        this.type = type;
+        this.label = label;
+        this.value = defaultVal;
+        
+    }
+    private String[] property;
+    private String type;
+    private String label;
+    private String value;
+
+    /**
+     * Holds value of property name.
+     */
+    private String name;
+
+    /**
+     * Getter for property name.
+     * @return Value of property name.
+     */
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * Setter for property name.
+     * @param name New value of property name.
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Getter for property property.
+     * @return Value of property property.
+     */
+    public String[] getProperty() {
+        return this.property;
+    }
+
+    /**
+     * Setter for property property.
+     * @param property New value of property property.
+     */
+    public void setProperty(String[] property) {
+        this.property = property;
+    }
+
+    /**
+     * Getter for property type.
+     * @return Value of property type.
+     */
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * Setter for property type.
+     * @param type New value of property type.
+     */
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    /**
+     * Getter for property label.
+     * @return Value of property label.
+     */
+    public String getLabel() {
+        return this.label;
+    }
+
+    /**
+     * Setter for property label.
+     * @param label New value of property label.
+     */
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    /**
+     * Getter for property value.
+     * 
+     * @return Value of property value.
+     */
+    public String getValue() {
+        return this.value;
+    }
+
+    /**
+     * Setter for property value.
+     * 
+     * @param value New value of property value.
+     */
+    public void setValue(String defaultVal) {
+        this.value = defaultVal;
+    }
+
+}
diff --git a/gui/JavaApplication1/src/javaapplication1/PanelFiller.java b/gui/JavaApplication1/src/javaapplication1/PanelFiller.java
new file mode 100644 (file)
index 0000000..17d5d11
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+ * PanelFiller.java
+ *
+ * Created on March 29, 2008, 10:45 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package javaapplication1;
+
+import java.io.*;
+import javax.swing.*;
+import javax.swing.JOptionPane;
+
+/**
+ *
+ * @author soners
+ */
+public class PanelFiller {
+    
+    /** Creates a new instance of PanelFiller */
+    public PanelFiller(JPanel[] panelList, JLabel statusLabel) {
+        panel1 = panelList[0];
+        panel2 = panelList[1];
+        panel3 = panelList[2];
+        panel4 = panelList[3];
+        panel5 = panelList[4];
+        this.statusLabel = statusLabel;               
+        
+        try{
+            rtime = Runtime.getRuntime();
+            child = rtime.exec("/bin/bash");
+            outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream()));
+        }catch (Exception e){
+            JOptionPane.showMessageDialog(null, "The program cannot start bash.\n");
+            return;
+        }
+        
+        displayHandle = new DisplayHandle(outCommand);
+    }
+    
+    public void handleOperation(String opname){
+        
+        JPanel curpanel = null;
+        String type = record.getType();
+        if (type.equals("user"))
+            curpanel = panel2;
+        else if (type.equals("slice"))
+            curpanel = panel3;
+        else if (type.equals("node"))
+            curpanel = panel4;
+        else if (type.equals("SA")){
+            curpanel = panel5;
+            type = "SA/MA";
+        }
+        else if (type.equals("MA")){
+            curpanel = panel5;
+            type = "SA/MA";
+        }
+               
+        if (opname.equals("register")){
+            String params = displayHandle.PanelToString(type, curpanel);
+            String rest = params.substring(12);
+            if (rest.charAt(0)=='}')
+                params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'"+rest;
+            else
+                params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"', "+rest;
+            String message = "{'opname':'"+opname+"', "+params+"}";
+            String result = SendToClientStub(message);
+            String[] res_arr = result.split("\n");
+            String send_str = "";
+            for (int i=0; i<res_arr.length; i++)
+                send_str += res_arr[i];
+            statusLabel.setText(send_str);            
+        }
+        else if (opname.equals("remove")){
+            String gparams = "{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'}";
+            String pparams = "{}";
+            String message = "{'opname':'"+opname+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}";
+            String result = SendToClientStub(message);
+            String[] res_arr = result.split("\n");
+            String send_str = "";
+            for (int i=0; i<res_arr.length; i++)
+                send_str += res_arr[i];
+            statusLabel.setText(send_str);        
+        }
+        else if (opname.equals("update")){
+            String params = displayHandle.PanelToString(type, curpanel);
+            String rest = params.substring(12);
+            if (rest.charAt(0)=='}')
+                params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'"+rest;
+            else
+                params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"', "+rest;
+            String message = "{'opname':'"+opname+"', "+params+"}";
+            String result = SendToClientStub(message);
+            String[] res_arr = result.split("\n");
+            String send_str = "";
+            for (int i=0; i<res_arr.length; i++)
+                send_str += res_arr[i];
+            statusLabel.setText(send_str);        
+        }
+        else if (opname.equals("lookup")){
+            String gparams = "{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'}";
+            String pparams = "{}";
+            String message = "{'opname':'"+opname+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}";
+            String result = SendToClientStub(message);
+            String[] res_arr = result.split("\n");
+            String[] send_arr = null;
+            
+            
+            if (res_arr!=null && res_arr.length > 0){
+                
+                String status_str = "";
+                for (int i=0; i<res_arr.length; i++){
+                    if (!res_arr[i].equals("{'geni':{"))
+                        status_str += res_arr[i];
+                    else
+                        break;
+                }
+                statusLabel.setText(status_str);
+
+                //determine send_arr
+                int i;
+                for(i=0; i<res_arr.length && !res_arr[i].equals("{'geni':{"); i++)
+                    ;
+                if (i<res_arr.length && res_arr[i].equals("{'geni':{")){
+                    i++;            
+                    send_arr = new String[res_arr.length-i-3];
+                    int p = 0;
+                    while(!res_arr[i].equals("}")){
+                        send_arr[p++] = res_arr[i];
+                        i++;
+                    }
+                    i = i+2;
+                    while(!res_arr[i].equals("}}")){
+                        send_arr[p++] = res_arr[i];
+                        i++;
+                    }
+                    displayHandle.FillComponentList(type, send_arr);
+                    if (type.equals("user"))
+                        displayHandle.displayComponentList("user",panel1, panel2);
+                    else if (type.equals("slice"))
+                        displayHandle.displayComponentList("slice",panel1, panel3);
+                    else if (type.equals("node"))
+                        displayHandle.displayComponentList("node",panel1, panel4);
+                    else if (type.equals("SA/MA"))
+                        displayHandle.displayComponentList("SA/MA",panel1, panel5);                
+                }
+            }            
+        }
+    }
+    
+    private String SendToClientStub(String message){
+        
+        //do the call to the python client
+        String curdir = System.getProperty("user.dir");
+        String client_folder = user.getDirectory();      
+        String result = "";
+        
+        try{
+            //cd to the client folder            
+            outCommand.write("cd "+client_folder+"\n");         
+            outCommand.flush();
+
+            FileWriter fstream = new FileWriter(client_folder+"/tmp_input.txt");
+            BufferedWriter out = new BufferedWriter(fstream);
+            out.write(user.getHrn()+" "+user.getType()+"\n");
+            out.write(message);
+            //Close the output stream
+            out.close();            
+            outCommand.write("./clientstub.py\n");            
+            outCommand.flush();
+            
+            //get the result of the call from the python client          
+            File file = new File(client_folder+"/tmp_output.txt");
+            int i = 0;
+            while(!file.exists() && i<5){
+                i++;
+                try {
+                    Thread.currentThread().sleep(200);
+                } catch (InterruptedException ex) {
+                    ex.printStackTrace();
+                    result = "Problem occured in client stub.\n";                
+                    return result;
+                }
+            }
+
+            try {
+                Thread.currentThread().sleep(200);
+            } catch (InterruptedException ex) {
+                ex.printStackTrace();
+                result = "Problem occured in client stub.\n";
+                return result;
+            }        
+    
+            BufferedReader in = new BufferedReader(new FileReader(client_folder+"/tmp_output.txt")); 
+            result = "";
+            String tmp = in.readLine();
+            while(tmp!=null && tmp.length() > 0){
+                result += tmp+"\n";
+                tmp = in.readLine();
+            }                
+            in.close();
+            
+            outCommand.write("rm tmp_input.txt tmp_output.txt\n");            
+            outCommand.write("cd "+curdir+"\n");   
+            outCommand.flush();
+        }catch (Exception e){//Catch exception if any            
+            System.err.println("Error: " + e.getMessage());
+            result = "Problem occured in client stub.\n";
+            return result;
+        }
+        return result;
+    }
+    
+    public void initializePanels(){
+        displayHandle.displayComponentList("user",panel1, panel2);
+        displayHandle.displayComponentList("slice",panel1, panel3);
+        displayHandle.displayComponentList("node",panel1, panel4);
+        displayHandle.displayComponentList("SA/MA",panel1, panel5);        
+    }
+    
+    public void setUser(User user){
+        this.user = user;    
+    }
+    public void setRecord(RecordInfo record){
+        this.record = record;    
+    }
+            
+    private User user;
+    private RecordInfo record;
+    private javax.swing.JPanel panel1;
+    private javax.swing.JPanel panel2;
+    private javax.swing.JPanel panel3;
+    private javax.swing.JPanel panel4;
+    private javax.swing.JPanel panel5;
+    private javax.swing.JLabel statusLabel;
+    
+    private BufferedWriter outCommand;
+    private Runtime rtime;
+    private Process child;
+    
+    private DisplayHandle displayHandle;
+    
+}
+
+
diff --git a/gui/JavaApplication1/src/javaapplication1/RecordInfo.java b/gui/JavaApplication1/src/javaapplication1/RecordInfo.java
new file mode 100644 (file)
index 0000000..6af39f3
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * RecordInfo.java
+ *
+ * Created on March 30, 2008, 12:07 AM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package javaapplication1;
+import javax.swing.*;
+
+/**
+ *
+ * @author soners
+ */
+public class RecordInfo {
+    
+    /** Creates a new instance of RecordInfo */
+    public RecordInfo() {
+    }
+    
+    public void setCurrentRecord(String hrn, String type){
+        this.hrn = hrn;
+        this.type = type;        
+    }
+
+
+    /**
+     * Holds value of property hrn.
+     */
+    private String hrn;
+
+    /**
+     * Getter for property hrn.
+     * @return Value of property hrn.
+     */
+    public String getHrn() {
+        return this.hrn;
+    }
+
+    /**
+     * Setter for property hrn.
+     * @param hrn New value of property hrn.
+     */
+    public void setHrn(String hrn) {
+        this.hrn = hrn;
+    }
+
+    /**
+     * Holds value of property type.
+     */
+    private String type;
+
+    /**
+     * Getter for property type.
+     * @return Value of property type.
+     */
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * Setter for property type.
+     * @param type New value of property type.
+     */
+    public void setType(String type) {
+        this.type = type;
+    }
+    
+}
diff --git a/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java b/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java
new file mode 100644 (file)
index 0000000..f2eb8cc
--- /dev/null
@@ -0,0 +1,224 @@
+package javaapplication1;
+/*
+ * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Sun Microsystems nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */ 
+
+import javax.swing.*;
+import javax.swing.SpringLayout;
+import java.awt.*;
+
+/**
+ * A 1.4 file that provides utility methods for
+ * creating form- or grid-style layouts with SpringLayout.
+ * These utilities are used by several programs, such as
+ * SpringBox and SpringCompactGrid.
+ */
+public class SpringUtilities {
+    /**
+     * A debugging utility that prints to stdout the component's
+     * minimum, preferred, and maximum sizes.
+     */
+    public static void printSizes(Component c) {
+        System.out.println("minimumSize = " + c.getMinimumSize());
+        System.out.println("preferredSize = " + c.getPreferredSize());
+        System.out.println("maximumSize = " + c.getMaximumSize());
+    }
+
+    /**
+     * Aligns the first <code>rows</code> * <code>cols</code>
+     * components of <code>parent</code> in
+     * a grid. Each component is as big as the maximum
+     * preferred width and height of the components.
+     * The parent is made just big enough to fit them all.
+     *
+     * @param rows number of rows
+     * @param cols number of columns
+     * @param initialX x location to start the grid at
+     * @param initialY y location to start the grid at
+     * @param xPad x padding between cells
+     * @param yPad y padding between cells
+     */
+    public static void makeGrid(Container parent,
+                                int rows, int cols,
+                                int initialX, int initialY,
+                                int xPad, int yPad) {
+        SpringLayout layout;
+        try {
+            layout = (SpringLayout)parent.getLayout();
+        } catch (ClassCastException exc) {
+            System.err.println("The first argument to makeGrid must use SpringLayout.");
+            return;
+        }
+
+        Spring xPadSpring = Spring.constant(xPad);
+        Spring yPadSpring = Spring.constant(yPad);
+        Spring initialXSpring = Spring.constant(initialX);
+        Spring initialYSpring = Spring.constant(initialY);
+        int max = rows * cols;
+
+        //Calculate Springs that are the max of the width/height so that all
+        //cells have the same size.
+        Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)).
+                                    getWidth();
+        Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)).
+                                    getWidth();
+        for (int i = 1; i < max; i++) {
+            SpringLayout.Constraints cons = layout.getConstraints(
+                                            parent.getComponent(i));
+
+            maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth());
+            maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight());
+        }
+
+        //Apply the new width/height Spring. This forces all the
+        //components to have the same size.
+        for (int i = 0; i < max; i++) {
+            SpringLayout.Constraints cons = layout.getConstraints(
+                                            parent.getComponent(i));
+
+            cons.setWidth(maxWidthSpring);
+            cons.setHeight(maxHeightSpring);
+        }
+
+        //Then adjust the x/y constraints of all the cells so that they
+        //are aligned in a grid.
+        SpringLayout.Constraints lastCons = null;
+        SpringLayout.Constraints lastRowCons = null;
+        for (int i = 0; i < max; i++) {
+            SpringLayout.Constraints cons = layout.getConstraints(
+                                                 parent.getComponent(i));
+            if (i % cols == 0) { //start of new row
+                lastRowCons = lastCons;
+                cons.setX(initialXSpring);
+            } else { //x position depends on previous component
+                cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST),
+                                     xPadSpring));
+            }
+
+            if (i / cols == 0) { //first row
+                cons.setY(initialYSpring);
+            } else { //y position depends on previous row
+                cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH),
+                                     yPadSpring));
+            }
+            lastCons = cons;
+        }
+
+        //Set the parent's size.
+        SpringLayout.Constraints pCons = layout.getConstraints(parent);
+        pCons.setConstraint(SpringLayout.SOUTH,
+                            Spring.sum(
+                                Spring.constant(yPad),
+                                lastCons.getConstraint(SpringLayout.SOUTH)));
+        pCons.setConstraint(SpringLayout.EAST,
+                            Spring.sum(
+                                Spring.constant(xPad),
+                                lastCons.getConstraint(SpringLayout.EAST)));
+    }
+
+    /* Used by makeCompactGrid. */
+    private static SpringLayout.Constraints getConstraintsForCell(
+                                                int row, int col,
+                                                Container parent,
+                                                int cols) {
+        SpringLayout layout = (SpringLayout) parent.getLayout();
+        Component c = parent.getComponent(row * cols + col);
+        return layout.getConstraints(c);
+    }
+
+    /**
+     * Aligns the first <code>rows</code> * <code>cols</code>
+     * components of <code>parent</code> in
+     * a grid. Each component in a column is as wide as the maximum
+     * preferred width of the components in that column;
+     * height is similarly determined for each row.
+     * The parent is made just big enough to fit them all.
+     *
+     * @param rows number of rows
+     * @param cols number of columns
+     * @param initialX x location to start the grid at
+     * @param initialY y location to start the grid at
+     * @param xPad x padding between cells
+     * @param yPad y padding between cells
+     */
+    public static void makeCompactGrid(Container parent,
+                                       int rows, int cols,
+                                       int initialX, int initialY,
+                                       int xPad, int yPad) {
+        SpringLayout layout;
+        try {
+            layout = (SpringLayout)parent.getLayout();
+        } catch (ClassCastException exc) {
+            System.err.println("The first argument to makeCompactGrid must use SpringLayout.");
+            return;
+        }
+
+        //Align all cells in each column and make them the same width.
+        Spring x = Spring.constant(initialX);
+        for (int c = 0; c < cols; c++) {
+            Spring width = Spring.constant(0);
+            for (int r = 0; r < rows; r++) {
+                width = Spring.max(width,
+                                   getConstraintsForCell(r, c, parent, cols).
+                                       getWidth());
+            }
+            for (int r = 0; r < rows; r++) {
+                SpringLayout.Constraints constraints =
+                        getConstraintsForCell(r, c, parent, cols);
+                constraints.setX(x);
+                constraints.setWidth(width);
+            }
+            x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad)));
+        }
+
+        //Align all cells in each row and make them the same height.
+        Spring y = Spring.constant(initialY);
+        for (int r = 0; r < rows; r++) {
+            Spring height = Spring.constant(0);
+            for (int c = 0; c < cols; c++) {
+                height = Spring.max(height,
+                                    getConstraintsForCell(r, c, parent, cols).
+                                        getHeight());
+            }
+            for (int c = 0; c < cols; c++) {
+                SpringLayout.Constraints constraints =
+                        getConstraintsForCell(r, c, parent, cols);
+                constraints.setY(y);
+                constraints.setHeight(height);
+            }
+            y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad)));
+        }
+
+        //Set the parent's size.
+        SpringLayout.Constraints pCons = layout.getConstraints(parent);
+        pCons.setConstraint(SpringLayout.SOUTH, y);
+        pCons.setConstraint(SpringLayout.EAST, x);
+    }
+}
diff --git a/gui/JavaApplication1/src/javaapplication1/User.java b/gui/JavaApplication1/src/javaapplication1/User.java
new file mode 100644 (file)
index 0000000..336749f
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * User.java
+ *
+ * Created on March 29, 2008, 11:36 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package javaapplication1;
+import javax.swing.*;
+/**
+ *
+ * @author soners
+ */
+public class User {
+    
+    /** Creates a new instance of User */
+    public User() {
+    }
+    
+    public void setCurrentUser(String hrn, String type, String directory){
+        this.hrn = hrn;
+        this.type = type;
+        this.directory = directory;        
+    }
+
+    /**
+     * Holds value of property hrn.
+     */
+    private String hrn;
+
+    /**
+     * Getter for property hrn.
+     * @return Value of property hrn.
+     */
+    public String getHrn() {
+        return this.hrn;
+    }
+
+    /**
+     * Setter for property hrn.
+     * @param hrn New value of property hrn.
+     */
+    public void setHrn(String hrn) {
+        this.hrn = hrn;
+    }
+    
+
+    /**
+     * Holds value of property type.
+     */
+    private String type;
+
+    /**
+     * Getter for property type.
+     * @return Value of property type.
+     */
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * Setter for property type.
+     * @param type New value of property type.
+     */
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    /**
+     * Holds value of property directory.
+     */
+    private String directory;
+
+    /**
+     * Getter for property directory.
+     * @return Value of property directory.
+     */
+    public String getDirectory() {
+        return this.directory;
+    }
+
+    /**
+     * Setter for property directory.
+     * @param directory New value of property directory.
+     */
+    public void setDirectory(String directory) {
+        this.directory = directory;
+    }
+    
+}
diff --git a/gui/JavaApplication1/test/NewJFrame.form b/gui/JavaApplication1/test/NewJFrame.form
new file mode 100644 (file)
index 0000000..bc1510b
--- /dev/null
@@ -0,0 +1,1037 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <AuxValues>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jPanel1" alignment="0" max="32767" attributes="1"/>
+                          <Component id="jPanel4" alignment="0" min="-2" pref="604" max="-2" attributes="1"/>
+                      </Group>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace min="-2" pref="153" max="-2" attributes="0"/>
+                      <Component id="jButton1" min="-2" pref="277" max="-2" attributes="1"/>
+                      <EmptySpace min="-2" pref="198" max="-2" attributes="0"/>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jInternalFrame1" max="32767" attributes="1"/>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace min="-2" pref="53" max="-2" attributes="0"/>
+                      <Component id="jLabel33" min="-2" pref="501" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+              <Component id="jPanel1" min="-2" pref="92" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jPanel4" min="-2" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jButton1" min="-2" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jLabel33" min="-2" pref="33" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jInternalFrame1" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="794" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JPanel" name="jPanel1">
+      <Properties>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+            <TitledBorder title="User Info"/>
+          </Border>
+        </Property>
+      </Properties>
+      <Events>
+        <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jPanel1MouseReleased"/>
+      </Events>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="1" attributes="0">
+                      <Component id="jLabel29" min="-2" max="-2" attributes="0"/>
+                      <Component id="jLabel1" alignment="1" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Component id="jComboBox1" alignment="0" min="-2" pref="66" max="-2" attributes="0"/>
+                      <Component id="jTextField1" alignment="0" min="-2" pref="212" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="61" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Component id="jLabel30" alignment="0" min="-2" max="-2" attributes="0"/>
+                      <Component id="jTextField24" alignment="0" min="-2" pref="173" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="39" max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jTextField1" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jLabel30" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="jComboBox1" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jTextField24" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jLabel29" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JLabel" name="jLabel1">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Enter your HRN:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="jTextField1">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="planetlab.jp.osaka"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JComboBox" name="jComboBox1">
+          <Properties>
+            <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+              <StringArray count="3">
+                <StringItem index="0" value="user"/>
+                <StringItem index="1" value="SA"/>
+                <StringItem index="2" value="MA"/>
+              </StringArray>
+            </Property>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="jTextField24">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="./client_osaka"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JLabel" name="jLabel29">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Type:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JLabel" name="jLabel30">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="User GENI directory:"/>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Container class="javax.swing.JPanel" name="jPanel4">
+      <Properties>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+            <TitledBorder title="GENI Parameters"/>
+          </Border>
+        </Property>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                      <Group type="102" attributes="0">
+                          <Group type="103" groupAlignment="1" attributes="0">
+                              <Component id="jLabel2" min="-2" pref="38" max="-2" attributes="0"/>
+                              <Component id="jLabel28" min="-2" pref="38" max="-2" attributes="0"/>
+                          </Group>
+                          <EmptySpace max="-2" attributes="0"/>
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Component id="jTextField2" min="-2" pref="271" max="-2" attributes="0"/>
+                              <Component id="jComboBox2" min="-2" pref="66" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <Group type="102" attributes="1">
+                          <Component id="jLabel31" min="-2" max="-2" attributes="0"/>
+                          <EmptySpace max="-2" attributes="0"/>
+                          <Component id="jTextField20" max="32767" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <EmptySpace max="32767" attributes="0"/>
+                  <Component id="jPanel3" min="-2" max="-2" attributes="1"/>
+                  <EmptySpace min="-2" pref="106" max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jTextField2" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="jComboBox2" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jLabel28" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
+                  <Group type="103" groupAlignment="3" attributes="0">
+                      <Component id="jLabel31" alignment="3" min="-2" max="-2" attributes="0"/>
+                      <Component id="jTextField20" alignment="3" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+              <Component id="jPanel3" alignment="0" min="-2" max="-2" attributes="1"/>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Component class="javax.swing.JLabel" name="jLabel2">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="HRN:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="jTextField2">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="planetlab.jp.osaka.tokyobranch"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JComboBox" name="jComboBox2">
+          <Properties>
+            <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+              <StringArray count="6">
+                <StringItem index="0" value="-"/>
+                <StringItem index="1" value="user"/>
+                <StringItem index="2" value="slice"/>
+                <StringItem index="3" value="node"/>
+                <StringItem index="4" value="SA"/>
+                <StringItem index="5" value="MA"/>
+              </StringArray>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="jComboBox2ItemStateChanged"/>
+          </Events>
+        </Component>
+        <Container class="javax.swing.JPanel" name="jPanel3">
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <Component id="jToggleButton6" min="-2" max="-2" attributes="1"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Group type="103" groupAlignment="1" attributes="0">
+                                  <Component id="jToggleButton9" alignment="0" pref="82" max="32767" attributes="1"/>
+                                  <Component id="jToggleButton7" alignment="0" pref="82" max="32767" attributes="1"/>
+                              </Group>
+                              <EmptySpace min="-2" pref="106" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="0">
+                              <Component id="jToggleButton8" pref="82" max="32767" attributes="1"/>
+                              <EmptySpace min="-2" pref="106" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="jToggleButton6" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jToggleButton7" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jToggleButton8" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jToggleButton9" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JToggleButton" name="jToggleButton6">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="register"/>
+              </Properties>
+              <Events>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jToggleButton6MouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JToggleButton" name="jToggleButton7">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="remove"/>
+              </Properties>
+              <Events>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jToggleButton7MouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JToggleButton" name="jToggleButton8">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="update"/>
+              </Properties>
+              <Events>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jToggleButton8MouseReleased"/>
+              </Events>
+            </Component>
+            <Component class="javax.swing.JToggleButton" name="jToggleButton9">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="lookup"/>
+              </Properties>
+              <Events>
+                <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jToggleButton9MouseReleased"/>
+              </Events>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Component class="javax.swing.JLabel" name="jLabel28">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Type:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JLabel" name="jLabel31">
+          <Properties>
+            <Property name="text" type="java.lang.String" value="Public Key:"/>
+          </Properties>
+        </Component>
+        <Component class="javax.swing.JTextField" name="jTextField20">
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JButton" name="jButton1">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Send"/>
+      </Properties>
+      <Events>
+        <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jButton1MouseReleased"/>
+      </Events>
+    </Component>
+    <Container class="javax.swing.JInternalFrame" name="jInternalFrame1">
+      <Properties>
+        <Property name="visible" type="boolean" value="true"/>
+      </Properties>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" attributes="0">
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Component id="jPanel5" alignment="0" max="32767" attributes="1"/>
+                      <Component id="jPanel2" alignment="1" max="32767" attributes="1"/>
+                      <Component id="jPanel6" alignment="0" max="32767" attributes="1"/>
+                      <Component id="jPanel7" alignment="0" max="32767" attributes="1"/>
+                  </Group>
+                  <EmptySpace max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel6" min="-2" pref="207" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="jPanel7" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="19" max="-2" attributes="0"/>
+                  <Component id="jPanel5" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+                  <Component id="jPanel2" min="-2" max="-2" attributes="0"/>
+                  <EmptySpace pref="55" max="32767" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Container class="javax.swing.JPanel" name="jPanel6">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="PL parameters for SA/MA"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Group type="102" alignment="0" attributes="1">
+                              <Component id="jLabel11" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace pref="63" max="32767" attributes="0"/>
+                              <Component id="jTextField10" min="-2" pref="133" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="1">
+                              <Component id="jLabel10" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace pref="58" max="32767" attributes="0"/>
+                              <Component id="jTextField9" min="-2" pref="133" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="1">
+                              <Component id="jLabel9" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace pref="102" max="32767" attributes="0"/>
+                              <Component id="jTextField8" min="-2" pref="133" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="1">
+                              <Component id="jLabel8" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="32767" attributes="0"/>
+                              <Component id="jTextField7" min="-2" pref="133" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="1">
+                              <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace pref="91" max="32767" attributes="0"/>
+                              <Component id="jTextField6" min="-2" pref="133" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="jLabel12" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace pref="75" max="32767" attributes="0"/>
+                              <Component id="jTextField11" min="-2" pref="133" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Group type="102" alignment="1" attributes="0">
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="jLabel15" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jLabel16" alignment="0" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace pref="56" max="32767" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="jComboBox5" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField21" alignment="0" min="-2" pref="133" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="jLabel14" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jLabel13" alignment="0" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace pref="62" max="32767" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="jComboBox4" alignment="0" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField12" alignment="0" min="-2" pref="133" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                      </Group>
+                      <EmptySpace pref="36" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel7" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField6" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel8" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField7" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel9" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField8" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel10" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField9" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel11" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField10" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel12" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField11" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="0">
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel13" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jComboBox4" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel14" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField12" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel15" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField21" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="32767" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel16" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jComboBox5" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace min="-2" pref="150" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JLabel" name="jLabel7">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Name:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel8">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Abbreviated Name:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel9">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="URL:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel10">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Login Base:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel11">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Longitude:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel12">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Latitude:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel13">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Public:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel14">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Max Slices:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel15">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Max Slivers:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel16">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Enabled:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField6">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="newname"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField7">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="abbname2"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField8">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="rand.com"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField9">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="my_loginbase4"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField10">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="44.4"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField11">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="66.6"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField12">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="10"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JComboBox" name="jComboBox4">
+              <Properties>
+                <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+                  <StringArray count="2">
+                    <StringItem index="0" value="Yes"/>
+                    <StringItem index="1" value="No"/>
+                  </StringArray>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField21">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="300"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JComboBox" name="jComboBox5">
+              <Properties>
+                <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+                  <StringArray count="2">
+                    <StringItem index="0" value="Yes"/>
+                    <StringItem index="1" value="No"/>
+                  </StringArray>
+                </Property>
+              </Properties>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel7">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="PL Parameters for slice"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel25" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel6" alignment="0" min="-2" pref="90" max="-2" attributes="0"/>
+                          <Component id="jLabel26" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel27" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace min="-2" pref="43" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jComboBox3" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
+                              <Component id="jTextField22" alignment="0" max="32767" attributes="1"/>
+                              <Component id="jScrollPane1" alignment="0" pref="235" max="32767" attributes="1"/>
+                          </Group>
+                          <Component id="jTextField23" alignment="0" min="-2" pref="56" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace pref="191" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jLabel6" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jComboBox3" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jLabel25" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField22" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="7" max="-2" attributes="0"/>
+                              <Component id="jLabel26" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="jScrollPane1" min="-2" pref="58" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace min="-2" pref="16" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jLabel27" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField23" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace pref="18" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JLabel" name="jLabel6">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Instantiation:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel25">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="URL:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel26">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Description:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel27">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Max Nodes:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JComboBox" name="jComboBox3">
+              <Properties>
+                <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+                  <StringArray count="2">
+                    <StringItem index="0" value="plc-instantiated"/>
+                    <StringItem index="1" value="delegated"/>
+                  </StringArray>
+                </Property>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField22">
+            </Component>
+            <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+              <AuxValues>
+                <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+              </AuxValues>
+
+              <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+              <SubComponents>
+                <Component class="javax.swing.JTextArea" name="jTextArea1">
+                  <Properties>
+                    <Property name="columns" type="int" value="20"/>
+                    <Property name="rows" type="int" value="5"/>
+                  </Properties>
+                </Component>
+              </SubComponents>
+            </Container>
+            <Component class="javax.swing.JTextField" name="jTextField23">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="10"/>
+              </Properties>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel2">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="PL Parameters for node"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                          <Group type="102" attributes="0">
+                              <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
+                              <Component id="jTextField3" min="-2" pref="161" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" attributes="1">
+                              <Component id="jLabel32" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace max="32767" attributes="0"/>
+                              <Component id="jTextField25" min="-2" pref="161" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel5" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jTextField4" alignment="0" min="-2" pref="161" max="-2" attributes="0"/>
+                          <Component id="jTextField5" alignment="0" min="-2" pref="161" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace pref="102" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="30" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel4" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField4" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jLabel32" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField25" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="55" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="3" attributes="0">
+                                  <Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField5" alignment="3" min="-2" max="-2" attributes="0"/>
+                                  <Component id="jTextField3" alignment="3" min="-2" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                      </Group>
+                      <EmptySpace pref="24" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JTextField" name="jTextField3">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="boot"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel3">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Bootstate:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel4">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Version:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel5">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Model:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField4">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="PlanetLab BootCD 3.1"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField5">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Dell OptiPlex GX280"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel32">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Hostname:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField25">
+            </Component>
+          </SubComponents>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel5">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+                <TitledBorder title="PL Parameters for user"/>
+              </Border>
+            </Property>
+          </Properties>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel17" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel18" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel19" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel20" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jTextField16" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                          <Component id="jTextField15" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                          <Component id="jTextField14" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                          <Component id="jTextField13" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel24" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel23" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel22" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel21" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Group type="102" attributes="0">
+                              <EmptySpace min="-2" pref="21" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="jTextField18" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                                  <Component id="jTextField17" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                                  <Component id="jTextField19" alignment="0" min="-2" pref="155" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace pref="59" max="32767" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="jScrollPane2" min="-2" pref="202" max="-2" attributes="0"/>
+                              <EmptySpace max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace min="-2" pref="19" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jLabel17" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField13" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel21" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField17" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jLabel18" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField14" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel22" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField18" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jLabel19" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField15" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jLabel23" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextField19" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="103" groupAlignment="3" attributes="0">
+                              <Component id="jLabel20" alignment="3" min="-2" max="-2" attributes="0"/>
+                              <Component id="jTextField16" alignment="3" min="-2" max="-2" attributes="0"/>
+                              <Component id="jLabel24" alignment="3" min="-2" max="-2" attributes="0"/>
+                          </Group>
+                          <Component id="jScrollPane2" alignment="0" pref="47" max="32767" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+          <SubComponents>
+            <Component class="javax.swing.JLabel" name="jLabel17">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="First name:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel18">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Last name:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel19">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Title:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel20">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Email:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel21">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Password:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel22">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Phone:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel23">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="URL:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JLabel" name="jLabel24">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Bio:"/>
+              </Properties>
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField13">
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField14">
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField15">
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField16">
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField17">
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField18">
+            </Component>
+            <Component class="javax.swing.JTextField" name="jTextField19">
+            </Component>
+            <Container class="javax.swing.JScrollPane" name="jScrollPane2">
+              <AuxValues>
+                <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+              </AuxValues>
+
+              <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+              <SubComponents>
+                <Component class="javax.swing.JTextArea" name="jTextArea2">
+                  <Properties>
+                    <Property name="columns" type="int" value="20"/>
+                    <Property name="rows" type="int" value="5"/>
+                  </Properties>
+                </Component>
+              </SubComponents>
+            </Container>
+          </SubComponents>
+        </Container>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JLabel" name="jLabel33">
+      <Properties>
+        <Property name="focusTraversalPolicyProvider" type="boolean" value="true"/>
+        <Property name="horizontalTextPosition" type="int" value="0"/>
+      </Properties>
+    </Component>
+  </SubComponents>
+</Form>
diff --git a/gui/JavaApplication1/test/NewJFrame.java b/gui/JavaApplication1/test/NewJFrame.java
new file mode 100644 (file)
index 0000000..ba49203
--- /dev/null
@@ -0,0 +1,1221 @@
+/*
+ * NewJFrame.java
+ *
+ * Created on March 24, 2008, 8:22 PM
+ */
+
+import java.io.*;
+import javax.swing.JOptionPane;
+
+/**
+ *
+ * @author  soners
+ */
+public class NewJFrame extends javax.swing.JFrame {
+    
+    /** Creates new form NewJFrame */
+    public NewJFrame() {
+        initComponents();
+        
+        jPanel6.setVisible(false);
+        jPanel7.setVisible(false);
+        jPanel2.setVisible(false);
+        
+        //public key prompt will be visible for only register and update
+        jLabel31.setVisible(false);
+        jTextField20.setVisible(false);
+        
+        try{
+            rtime = Runtime.getRuntime();
+            child = rtime.exec("/bin/bash");
+            outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream()));
+        }catch (Exception e){
+            JOptionPane.showMessageDialog(null, "The program cannot start bash.\n");
+            return;
+        }
+   
+    }
+    
+    /** This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
+    private void initComponents() {
+        jPanel1 = new javax.swing.JPanel();
+        jLabel1 = new javax.swing.JLabel();
+        jTextField1 = new javax.swing.JTextField();
+        jComboBox1 = new javax.swing.JComboBox();
+        jTextField24 = new javax.swing.JTextField();
+        jLabel29 = new javax.swing.JLabel();
+        jLabel30 = new javax.swing.JLabel();
+        jPanel4 = new javax.swing.JPanel();
+        jLabel2 = new javax.swing.JLabel();
+        jTextField2 = new javax.swing.JTextField();
+        jComboBox2 = new javax.swing.JComboBox();
+        jPanel3 = new javax.swing.JPanel();
+        jToggleButton6 = new javax.swing.JToggleButton();
+        jToggleButton7 = new javax.swing.JToggleButton();
+        jToggleButton8 = new javax.swing.JToggleButton();
+        jToggleButton9 = new javax.swing.JToggleButton();
+        jLabel28 = new javax.swing.JLabel();
+        jLabel31 = new javax.swing.JLabel();
+        jTextField20 = new javax.swing.JTextField();
+        jButton1 = new javax.swing.JButton();
+        jInternalFrame1 = new javax.swing.JInternalFrame();
+        jPanel6 = new javax.swing.JPanel();
+        jLabel7 = new javax.swing.JLabel();
+        jLabel8 = new javax.swing.JLabel();
+        jLabel9 = new javax.swing.JLabel();
+        jLabel10 = new javax.swing.JLabel();
+        jLabel11 = new javax.swing.JLabel();
+        jLabel12 = new javax.swing.JLabel();
+        jLabel13 = new javax.swing.JLabel();
+        jLabel14 = new javax.swing.JLabel();
+        jLabel15 = new javax.swing.JLabel();
+        jLabel16 = new javax.swing.JLabel();
+        jTextField6 = new javax.swing.JTextField();
+        jTextField7 = new javax.swing.JTextField();
+        jTextField8 = new javax.swing.JTextField();
+        jTextField9 = new javax.swing.JTextField();
+        jTextField10 = new javax.swing.JTextField();
+        jTextField11 = new javax.swing.JTextField();
+        jTextField12 = new javax.swing.JTextField();
+        jComboBox4 = new javax.swing.JComboBox();
+        jTextField21 = new javax.swing.JTextField();
+        jComboBox5 = new javax.swing.JComboBox();
+        jPanel7 = new javax.swing.JPanel();
+        jLabel6 = new javax.swing.JLabel();
+        jLabel25 = new javax.swing.JLabel();
+        jLabel26 = new javax.swing.JLabel();
+        jLabel27 = new javax.swing.JLabel();
+        jComboBox3 = new javax.swing.JComboBox();
+        jTextField22 = new javax.swing.JTextField();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        jTextArea1 = new javax.swing.JTextArea();
+        jTextField23 = new javax.swing.JTextField();
+        jPanel2 = new javax.swing.JPanel();
+        jTextField3 = new javax.swing.JTextField();
+        jLabel3 = new javax.swing.JLabel();
+        jLabel4 = new javax.swing.JLabel();
+        jLabel5 = new javax.swing.JLabel();
+        jTextField4 = new javax.swing.JTextField();
+        jTextField5 = new javax.swing.JTextField();
+        jLabel32 = new javax.swing.JLabel();
+        jTextField25 = new javax.swing.JTextField();
+        jPanel5 = new javax.swing.JPanel();
+        jLabel17 = new javax.swing.JLabel();
+        jLabel18 = new javax.swing.JLabel();
+        jLabel19 = new javax.swing.JLabel();
+        jLabel20 = new javax.swing.JLabel();
+        jLabel21 = new javax.swing.JLabel();
+        jLabel22 = new javax.swing.JLabel();
+        jLabel23 = new javax.swing.JLabel();
+        jLabel24 = new javax.swing.JLabel();
+        jTextField13 = new javax.swing.JTextField();
+        jTextField14 = new javax.swing.JTextField();
+        jTextField15 = new javax.swing.JTextField();
+        jTextField16 = new javax.swing.JTextField();
+        jTextField17 = new javax.swing.JTextField();
+        jTextField18 = new javax.swing.JTextField();
+        jTextField19 = new javax.swing.JTextField();
+        jScrollPane2 = new javax.swing.JScrollPane();
+        jTextArea2 = new javax.swing.JTextArea();
+        jLabel33 = new javax.swing.JLabel();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("User Info"));
+        jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jPanel1MouseReleased(evt);
+            }
+        });
+
+        jLabel1.setText("Enter your HRN:");
+
+        jTextField1.setText("planetlab.jp.osaka");
+
+        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "user", "SA", "MA" }));
+
+        jTextField24.setText("./client_osaka");
+
+        jLabel29.setText("Type:");
+
+        jLabel30.setText("User GENI directory:");
+
+        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
+        jPanel1.setLayout(jPanel1Layout);
+        jPanel1Layout.setHorizontalGroup(
+            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel1Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(jLabel29)
+                    .add(jLabel1))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 212, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .add(61, 61, 61)
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jLabel30)
+                    .add(jTextField24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 173, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .add(39, 39, 39))
+        );
+        jPanel1Layout.setVerticalGroup(
+            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel1Layout.createSequentialGroup()
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel1)
+                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel30))
+                .add(8, 8, 8)
+                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jTextField24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel29))
+                .addContainerGap())
+        );
+
+        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("GENI Parameters"));
+        jLabel2.setText("HRN:");
+
+        jTextField2.setText("planetlab.jp.osaka.tokyobranch");
+
+        jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "user", "slice", "node", "SA", "MA" }));
+        jComboBox2.addItemListener(new java.awt.event.ItemListener() {
+            public void itemStateChanged(java.awt.event.ItemEvent evt) {
+                jComboBox2ItemStateChanged(evt);
+            }
+        });
+
+        jToggleButton6.setText("register");
+        jToggleButton6.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jToggleButton6MouseReleased(evt);
+            }
+        });
+
+        jToggleButton7.setText("remove");
+        jToggleButton7.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jToggleButton7MouseReleased(evt);
+            }
+        });
+
+        jToggleButton8.setText("update");
+        jToggleButton8.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jToggleButton8MouseReleased(evt);
+            }
+        });
+
+        jToggleButton9.setText("lookup");
+        jToggleButton9.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jToggleButton9MouseReleased(evt);
+            }
+        });
+
+        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
+        jPanel3.setLayout(jPanel3Layout);
+        jPanel3Layout.setHorizontalGroup(
+            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel3Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jPanel3Layout.createSequentialGroup()
+                        .add(jToggleButton6)
+                        .addContainerGap())
+                    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
+                        .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                            .add(org.jdesktop.layout.GroupLayout.LEADING, jToggleButton9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE)
+                            .add(org.jdesktop.layout.GroupLayout.LEADING, jToggleButton7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE))
+                        .add(106, 106, 106))
+                    .add(jPanel3Layout.createSequentialGroup()
+                        .add(jToggleButton8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE)
+                        .add(106, 106, 106))))
+        );
+        jPanel3Layout.setVerticalGroup(
+            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel3Layout.createSequentialGroup()
+                .add(jToggleButton6)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jToggleButton7)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jToggleButton8)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jToggleButton9)
+                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+
+        jLabel28.setText("Type:");
+
+        jLabel31.setText("Public Key:");
+
+        org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
+        jPanel4.setLayout(jPanel4Layout);
+        jPanel4Layout.setHorizontalGroup(
+            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel4Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+                    .add(jPanel4Layout.createSequentialGroup()
+                        .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                            .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jLabel28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                    .add(jPanel4Layout.createSequentialGroup()
+                        .add(jLabel31)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jTextField20)))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .add(106, 106, 106))
+        );
+        jPanel4Layout.setVerticalGroup(
+            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel4Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel2)
+                    .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel28))
+                .add(17, 17, 17)
+                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel31)
+                    .add(jTextField20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+            .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+        );
+
+        jButton1.setText("Send");
+        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseReleased(java.awt.event.MouseEvent evt) {
+                jButton1MouseReleased(evt);
+            }
+        });
+
+        jInternalFrame1.setVisible(true);
+        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("PL parameters for SA/MA"));
+        jLabel7.setText("Name:");
+
+        jLabel8.setText("Abbreviated Name:");
+
+        jLabel9.setText("URL:");
+
+        jLabel10.setText("Login Base:");
+
+        jLabel11.setText("Longitude:");
+
+        jLabel12.setText("Latitude:");
+
+        jLabel13.setText("Public:");
+
+        jLabel14.setText("Max Slices:");
+
+        jLabel15.setText("Max Slivers:");
+
+        jLabel16.setText("Enabled:");
+
+        jTextField6.setText("newname");
+
+        jTextField7.setText("abbname2");
+
+        jTextField8.setText("rand.com");
+
+        jTextField9.setText("my_loginbase4");
+
+        jTextField10.setText("44.4");
+
+        jTextField11.setText("66.6");
+
+        jTextField12.setText("10");
+
+        jComboBox4.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" }));
+
+        jTextField21.setText("300");
+
+        jComboBox5.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" }));
+
+        org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
+        jPanel6.setLayout(jPanel6Layout);
+        jPanel6Layout.setHorizontalGroup(
+            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel6Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup()
+                        .add(jLabel11)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 63, Short.MAX_VALUE)
+                        .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup()
+                        .add(jLabel10)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 58, Short.MAX_VALUE)
+                        .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup()
+                        .add(jLabel9)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 102, Short.MAX_VALUE)
+                        .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup()
+                        .add(jLabel8)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup()
+                        .add(jLabel7)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 91, Short.MAX_VALUE)
+                        .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(jPanel6Layout.createSequentialGroup()
+                        .add(jLabel12)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 75, Short.MAX_VALUE)
+                        .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(jPanel6Layout.createSequentialGroup()
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jLabel15)
+                            .add(jLabel16))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 56, Short.MAX_VALUE)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jComboBox5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jTextField21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                    .add(jPanel6Layout.createSequentialGroup()
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jLabel14)
+                            .add(jLabel13))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 62, Short.MAX_VALUE)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jComboBox4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
+                .addContainerGap(36, Short.MAX_VALUE))
+        );
+        jPanel6Layout.setVerticalGroup(
+            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel6Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jPanel6Layout.createSequentialGroup()
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel7)
+                            .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel8)
+                            .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel9)
+                            .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel10)
+                            .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel11)
+                            .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel12)
+                            .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addContainerGap())
+                    .add(jPanel6Layout.createSequentialGroup()
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel13)
+                            .add(jComboBox4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel14)
+                            .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel15)
+                            .add(jTextField21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel16)
+                            .add(jComboBox5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .add(150, 150, 150))))
+        );
+
+        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for slice"));
+        jLabel6.setText("Instantiation:");
+
+        jLabel25.setText("URL:");
+
+        jLabel26.setText("Description:");
+
+        jLabel27.setText("Max Nodes:");
+
+        jComboBox3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "plc-instantiated", "delegated" }));
+
+        jTextArea1.setColumns(20);
+        jTextArea1.setRows(5);
+        jScrollPane1.setViewportView(jTextArea1);
+
+        jTextField23.setText("10");
+
+        org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7);
+        jPanel7.setLayout(jPanel7Layout);
+        jPanel7Layout.setHorizontalGroup(
+            jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel7Layout.createSequentialGroup()
+                .add(25, 25, 25)
+                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jLabel25)
+                    .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel26)
+                    .add(jLabel27))
+                .add(43, 43, 43)
+                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jComboBox3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
+                        .add(org.jdesktop.layout.GroupLayout.LEADING, jTextField22)
+                        .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE))
+                    .add(jTextField23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 56, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap(191, Short.MAX_VALUE))
+        );
+        jPanel7Layout.setVerticalGroup(
+            jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel7Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel6)
+                    .add(jComboBox3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel25)
+                    .add(jTextField22, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel7Layout.createSequentialGroup()
+                        .add(7, 7, 7)
+                        .add(jLabel26))
+                    .add(jPanel7Layout.createSequentialGroup()
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 58, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                .add(16, 16, 16)
+                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel27)
+                    .add(jTextField23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap(18, Short.MAX_VALUE))
+        );
+
+        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for node"));
+        jTextField3.setText("boot");
+
+        jLabel3.setText("Bootstate:");
+
+        jLabel4.setText("Version:");
+
+        jLabel5.setText("Model:");
+
+        jTextField4.setText("PlanetLab BootCD 3.1");
+
+        jTextField5.setText("Dell OptiPlex GX280");
+
+        jLabel32.setText("Hostname:");
+
+        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
+        jPanel2.setLayout(jPanel2Layout);
+        jPanel2Layout.setHorizontalGroup(
+            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel2Layout.createSequentialGroup()
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+                    .add(jPanel2Layout.createSequentialGroup()
+                        .add(jLabel3)
+                        .add(23, 23, 23)
+                        .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                    .add(jPanel2Layout.createSequentialGroup()
+                        .add(jLabel32)
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .add(jTextField25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jLabel5)
+                    .add(jLabel4))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap(102, Short.MAX_VALUE))
+        );
+        jPanel2Layout.setVerticalGroup(
+            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel2Layout.createSequentialGroup()
+                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jPanel2Layout.createSequentialGroup()
+                        .add(30, 30, 30)
+                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel4)
+                            .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jLabel32)
+                            .add(jTextField25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jLabel3))
+                    .add(jPanel2Layout.createSequentialGroup()
+                        .add(55, 55, 55)
+                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                            .add(jLabel5)
+                            .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
+                .addContainerGap(24, Short.MAX_VALUE))
+        );
+
+        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for user"));
+        jLabel17.setText("First name:");
+
+        jLabel18.setText("Last name:");
+
+        jLabel19.setText("Title:");
+
+        jLabel20.setText("Email:");
+
+        jLabel21.setText("Password:");
+
+        jLabel22.setText("Phone:");
+
+        jLabel23.setText("URL:");
+
+        jLabel24.setText("Bio:");
+
+        jTextArea2.setColumns(20);
+        jTextArea2.setRows(5);
+        jScrollPane2.setViewportView(jTextArea2);
+
+        org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
+        jPanel5.setLayout(jPanel5Layout);
+        jPanel5Layout.setHorizontalGroup(
+            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel5Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jLabel17)
+                    .add(jLabel18)
+                    .add(jLabel19)
+                    .add(jLabel20))
+                .add(28, 28, 28)
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jTextField16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jTextField15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jTextField14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jTextField13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .add(22, 22, 22)
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jLabel24)
+                    .add(jLabel23)
+                    .add(jLabel22)
+                    .add(jLabel21))
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+                    .add(jPanel5Layout.createSequentialGroup()
+                        .add(21, 21, 21)
+                        .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jTextField18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jTextField17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                            .add(jTextField19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                        .addContainerGap(59, Short.MAX_VALUE))
+                    .add(jPanel5Layout.createSequentialGroup()
+                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                        .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 202, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                        .addContainerGap())))
+        );
+        jPanel5Layout.setVerticalGroup(
+            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jPanel5Layout.createSequentialGroup()
+                .add(19, 19, 19)
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel17)
+                    .add(jTextField13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel21)
+                    .add(jTextField17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel18)
+                    .add(jTextField14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel22)
+                    .add(jTextField18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jLabel19)
+                    .add(jTextField15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                    .add(jLabel23)
+                    .add(jTextField19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                        .add(jLabel20)
+                        .add(jTextField16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                        .add(jLabel24))
+                    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
+                .addContainerGap())
+        );
+
+        org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.GroupLayout(jInternalFrame1.getContentPane());
+        jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
+        jInternalFrame1Layout.setHorizontalGroup(
+            jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jInternalFrame1Layout.createSequentialGroup()
+                .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addContainerGap())
+        );
+        jInternalFrame1Layout.setVerticalGroup(
+            jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(jInternalFrame1Layout.createSequentialGroup()
+                .addContainerGap()
+                .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 207, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .add(19, 19, 19)
+                .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .add(22, 22, 22)
+                .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(55, Short.MAX_VALUE))
+        );
+
+        jLabel33.setFocusTraversalPolicyProvider(true);
+        jLabel33.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+
+        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(layout.createSequentialGroup()
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(layout.createSequentialGroup()
+                        .addContainerGap()
+                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                            .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 604, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                    .add(layout.createSequentialGroup()
+                        .add(153, 153, 153)
+                        .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 277, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                        .add(198, 198, 198))
+                    .add(layout.createSequentialGroup()
+                        .addContainerGap()
+                        .add(jInternalFrame1))
+                    .add(layout.createSequentialGroup()
+                        .add(53, 53, 53)
+                        .add(jLabel33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 501, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(layout.createSequentialGroup()
+                .add(22, 22, 22)
+                .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 92, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jButton1)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jLabel33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+                .add(794, 794, 794))
+        );
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased
+// TODO add your handling code here:
+        String operation = "";
+        if (jToggleButton6.isSelected())
+            operation = "register";
+        else if (jToggleButton7.isSelected())
+            operation = "remove";
+        else if (jToggleButton8.isSelected())
+            operation = "update";
+        else
+            operation = "lookup";
+        
+        //user data
+        String user_hrn = jTextField1.getText();
+        String user_type = (String) jComboBox1.getSelectedItem();
+        
+        //call data
+        String hrn = jTextField2.getText();
+        String type = (String) jComboBox2.getSelectedItem();
+        String pubkey = jTextField20.getText();
+        
+        String gparams = "";
+        String pparams = "";
+        
+        if (type == "SA" || type == "MA"){
+            String name = jTextField6.getText();
+            String abbreviated_name = jTextField7.getText();
+            String url = jTextField8.getText();
+            String login_base = jTextField9.getText();            
+            String longitude = jTextField10.getText();
+            String latitude = jTextField11.getText();
+            String max_slices = jTextField12.getText();
+            String max_slivers = jTextField21.getText();
+            String is_public = "";
+            String enabled = "";
+       
+            
+            if ((String) jComboBox4.getSelectedItem() == "Yes")
+                is_public = "True";
+            else
+                is_public = "False";
+            if ((String) jComboBox5.getSelectedItem() == "Yes")
+                enabled = "True";
+            else
+                enabled = "False";
+            
+            if (pubkey == "")
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}";
+            else
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}";
+            pparams = "{'name':'"+name+"', 'url':'"+url+"', 'login_base':'"+login_base+
+                    "', 'longitude':"+longitude+", 'latitude':"+latitude+", 'is_public':"+
+                    is_public+", 'abbreviated_name':'"+abbreviated_name+"', 'max_slices':"+max_slices+", 'max_slivers':"+
+                    max_slivers+", 'enabled':"+enabled+"}";
+        }
+        else if (type == "slice"){
+            String instantiation = (String) jComboBox3.getSelectedItem();
+            String url = jTextField22.getText();
+            String description = jTextArea1.getText();
+            String max_nodes = jTextField23.getText();
+            
+            if (pubkey == "")
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}";
+            else
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}";
+            pparams = "{'instantiation':'"+instantiation+"', 'url':'"+url+"', 'description':'"+description+
+                    "', 'max_nodes':"+max_nodes+"}";
+                    
+        }
+        else if (type == "user"){
+            String first_name = jTextField13.getText();
+            String last_name = jTextField14.getText();
+            String title = jTextField15.getText();
+            String email = jTextField16.getText();
+            String password = jTextField17.getText();
+            String phone = jTextField18.getText();
+            String url = jTextField19.getText();
+            String bio = jTextArea2.getText();
+            
+            if (pubkey.length() == 0)
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}";
+            else
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}";
+            
+            pparams = "{'first_name':'"+first_name+"', 'last_name':'"+last_name+"', 'title':'"+title+
+                    "', 'email':'"+email+"', 'password':'"+password+"', 'phone':'"+phone+"', 'url':'"+url+
+                    "', 'bio':'"+bio+"'}";
+
+        }
+        else if (type == "node"){
+            String hostname = jTextField25.getText();
+            String boot_state = jTextField3.getText();
+            String version = jTextField4.getText();            
+            String model = jTextField5.getText();
+            
+            if (pubkey == "")
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}";
+            else
+                gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}";
+            
+            pparams = "{'hostname':'"+hostname+"', 'boot_state':'"+boot_state+"', 'version':'"+version+
+                    "', 'model':'"+model+"'}";
+        }
+             
+        String message = "{'opname':'"+operation+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}";
+        
+        //do the call to the python client
+        String curdir = System.getProperty("user.dir");
+        String client_folder = jTextField24.getText();      
+        String result = "";
+        
+        try{
+            //cd to the client folder            
+            outCommand.write("cd "+client_folder+"\n");         
+            outCommand.flush();
+
+            FileWriter fstream = new FileWriter(client_folder+"/tmp_input.txt");
+            BufferedWriter out = new BufferedWriter(fstream);
+            out.write(user_hrn+" "+user_type+"\n");
+            out.write(message);
+            //Close the output stream
+            out.close();            
+            outCommand.write("./clientstub.py\n");            
+            outCommand.flush();
+            
+            //get the result of the call from the python client          
+            File file = new File(client_folder+"/tmp_output.txt");
+            int i = 0;
+            while(!file.exists() && i<5){
+                i++;
+                try {
+                    Thread.currentThread().sleep(200);
+                } catch (InterruptedException ex) {
+                    ex.printStackTrace();
+                    result = "Problem occured in client stub.\n";
+                    jLabel33.setText(result);
+                    return;
+                }
+            }
+
+            try {
+                Thread.currentThread().sleep(200);
+            } catch (InterruptedException ex) {
+                ex.printStackTrace();
+                result = "Problem occured in client stub.\n";
+                jLabel33.setText(result);
+                return;
+            }        
+    
+            BufferedReader in = new BufferedReader(new FileReader(client_folder+"/tmp_output.txt")); 
+            result = in.readLine();
+            in.close();
+            
+            outCommand.write("rm tmp_input.txt tmp_output.txt\n");            
+            outCommand.write("cd "+curdir+"\n");   
+            outCommand.flush();
+        }catch (Exception e){//Catch exception if any            
+            System.err.println("Error: " + e.getMessage());
+            result = "Problem occured in client stub.\n";
+            jLabel33.setText(result);
+            return;
+        }
+                
+        if (operation == "lookup"){
+            
+
+            
+                        //node fields                      
+//            {'pl': {'node_id': 10756, 
+//                     'last_updated': 1206716001L, 
+//                     'boot_state': u'boot', 
+//                     'site_id': 10145, 
+//                     'pcu_ids': [], 
+//                     'session': None, 
+//                     'key': None,
+//                     'conf_file_ids': [], 
+//                     'ssh_rsa_key': None, 
+//                     'uuid': u'154709652654203573378094948211939942919', 
+//                     'nodegroup_ids': [],
+//                     'slice_ids_whitelist': [], 
+//                     'last_contact': None, 
+//                     'nodenetwork_ids': [], 
+//                     'peer_node_id': None, 
+//                     'hostname': u'tttyeni.com', 
+//                     'slice_ids': [], 
+//                     'boot_nonce': None, 
+//                     'version': u'PlanetLab BootCD 3.1', 
+//                     'date_created': 1206716001L, 
+//                     'model': u'Dell OptiPlex GX280', 
+//                     'peer_id': None, 
+//                     'ports': []}, 
+//                     
+//             'geni': {'description': None, 
+//                     'rights': None, 
+//                     'pubkey': None, 
+//                     'wrapperurl': None, 
+//                     'disabled': None, 
+//                     'userlist': None, 
+//                     'hrn': 'mynewnode', 
+//                     'type': 'node', 
+//                     'pointer': 10756, 
+//                     'uuid': None}}
+            
+//user fields           
+//            {'pl': {'bio': None, 
+//                    'last_name': u'Okawa', 
+//                     'last_updated': 1170811781L, 
+//                     'key_ids': [], 
+//                     'phone': u'+81-466-49-3529', 
+//                     'peer_person_id': None, 
+//                     'role_ids': [20], 
+//                     'site_ids': [10145], 
+//                     'first_name': u'Keiko', 
+//                     'uuid': u'53584984475370335298592451262408000792', 
+//                     'roles': [u'pi'], 
+//                     'title': u'Professor', 
+//                     'url': None, 
+//                     'enabled': True, 
+//                     'slice_ids': [], 
+//                     'person_id': 12397, 
+//                     'date_created': 1170811781L, 
+//                     'peer_id': None, 
+//                     'email': u'keiko@sfc.wide.ad.jp'}, 
+//                     
+//              'geni': {'description': None, 
+//                       'rights': None, 
+//                      'pubkey': '-----BEGIN RSA PRIVATE KEY-----\nMIGMAgEAAoGBAJccs4vXVSA5slLmlvx+2DPuSy2W0IP5RrUNIcp/wzVqdG9xWdLW\ns5nSv8g926tbFGvLcQqtoErAc7+oANxNWCO9cGJr/MUzjqOYWZQU92qXYdlCpbuL\n7lAVWkiJt8IYlRHe7BpCSSCaFgt7cUfv3fbuhmIDkT/7G/Ktl5NsvQgfAgMBAAE=\n-----END RSA PRIVATE KEY-----\n', 
+//                      'wrapperurl': 'local', 
+//                      'disabled': None, 
+//                      'userlist': None, 
+//                      'hrn': 'keiko', 
+//                      'type': 'user', 
+//                      'pointer': 12397, 
+//                      'uuid': None}}
+//            
+            
+            
+//slice fields            
+//            {'pl': {'description': u'', 
+//                     'node_ids': [], 
+//                     'expires': 1207943671L, 
+//                     'site_id': 10145, 
+//                     'uuid': u'166270525633143177647274842267687147563', 
+//                     'creator_person_id': 12974, 
+//                     'instantiation': u'plc-instantiated', 
+//                     'name': u'keio_keikoslc', 
+//                     'slice_id': 15390, 
+//                     'created': 1206734071L, 
+//                     'url': u'', 
+//                     'max_nodes': 10, 
+//                     'person_ids': [], 
+//                     'slice_attribute_ids': [], 
+//                     'peer_slice_id': None, 
+//                     'peer_id': None}, 
+//             'geni': {'description': None, 
+//                     'rights': None, 
+//                     'pubkey': None, 
+//                     'wrapperurl': None, 
+//                     'disabled': None, 
+//                     'userlist': None, 
+//                     'hrn': 'keikoslc', 
+//                     'type': 'slice', 
+//                     'pointer': 15390, 
+//                     'uuid': None}}
+            
+//site fields            
+//            {'pl': {'last_updated': 1206743152L, 
+//                     'node_ids': [], 
+//                     'site_id': 10240, 
+//                     'pcu_ids': [], 
+//                     'max_slices': 10, 
+//                     'ext_consortium_id': None, 
+//                     'max_slivers': 300, 
+//                     'is_public': True, 
+//                     'peer_site_id': None, 
+//                     'abbreviated_name': u'abbname2my', 
+//                     'name': u'newnamere', 
+//                     'address_ids': [], 
+//                     'uuid': u'215768548793207591574508192043308034894', 
+//                     'url': u'rand.com', 
+//                     'person_ids': [], 
+//                     'enabled': True, 
+//                     'longitude': 44.399999999999999, 
+//                     'slice_ids': [], 
+//                     'login_base': u'tokyologinb', 
+//                     'latitude': 66.599999999999994, 
+//                     'date_created': 1206743152L, 
+//                     'peer_id': None}, 
+//              'geni': {'description': None, 
+//                      'rights': '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:slc:planetlab.jp.osaka#1:reg:slc:planetlab.jp.osaka.tokyobranch2', 
+//                      'pubkey': '-----BEGIN RSA PRIVATE KEY-----\nMIGMAgEAAoGBANsAFcsPHdx1cEyChNljSHDp16vp9GjJBhOhD5/1jiaD8qfQgbcx\nIlMDGOROKJqeNCIk5yuuv46O4obai6MXCfGPnLCvBL7IeI95tImJt0NFg19wHe+I\nwDOabHRJCfSXYViuBDBJUuuMITLmK2cBIlY/lkPKYROXq9FMtht9dekzAgMBAAE=\n-----END RSA PRIVATE KEY-----\n', 
+//                      'wrapperurl': 'local', 
+//                      'disabled': None, 
+//                      'userlist': None, 
+//                      'hrn': 'tokyobranchty', 
+//                      'type': 'SA', 
+//                      'pointer': 10242, 
+//                      'uuid': None}}
+//            
+            
+            
+            
+        }
+                
+        jLabel33.setText(result);     
+        
+    }//GEN-LAST:event_jButton1MouseReleased
+
+    private void jComboBox2ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboBox2ItemStateChanged
+// TODO add your handling code here:
+        
+        int selected = jComboBox2.getSelectedIndex();
+        if (selected == 1){
+            jPanel5.setVisible(true);
+            jPanel6.setVisible(false);
+            jPanel7.setVisible(false);
+            jPanel2.setVisible(false);
+        }
+        else if (selected == 2){
+            jPanel7.setVisible(true);
+            jPanel5.setVisible(false);
+            jPanel6.setVisible(false);
+            jPanel2.setVisible(false);
+        }
+        else if (selected == 3){
+            jPanel2.setVisible(true);
+            jPanel5.setVisible(false);
+            jPanel6.setVisible(false);
+            jPanel7.setVisible(false);
+        }
+        else if (selected == 4 || selected == 5){
+            jPanel6.setVisible(true);
+            jPanel5.setVisible(false);
+            jPanel7.setVisible(false);
+            jPanel2.setVisible(false);
+        }
+    }//GEN-LAST:event_jComboBox2ItemStateChanged
+
+    private void jToggleButton9MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton9MouseReleased
+// TODO add your handling code here:
+        jToggleButton6.setSelected(false);
+        jToggleButton7.setSelected(false);
+        jToggleButton8.setSelected(false);
+        if (!jToggleButton9.isSelected())
+            jToggleButton9.setSelected(true);
+        
+        jLabel31.setVisible(false);
+        jTextField20.setVisible(false);
+    }//GEN-LAST:event_jToggleButton9MouseReleased
+
+    private void jToggleButton8MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton8MouseReleased
+// TODO add your handling code here:
+        jToggleButton6.setSelected(false);
+        jToggleButton7.setSelected(false);
+        jToggleButton9.setSelected(false);
+        if (!jToggleButton8.isSelected())
+            jToggleButton8.setSelected(true);
+        
+        jLabel31.setVisible(true);
+        jTextField20.setVisible(true);
+
+    }//GEN-LAST:event_jToggleButton8MouseReleased
+
+    private void jToggleButton7MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton7MouseReleased
+// TODO add your handling code here:
+        jToggleButton6.setSelected(false);
+        jToggleButton8.setSelected(false);
+        jToggleButton9.setSelected(false);
+        if (!jToggleButton7.isSelected())
+            jToggleButton7.setSelected(true);
+        
+        jLabel31.setVisible(false);
+        jTextField20.setVisible(false);
+    }//GEN-LAST:event_jToggleButton7MouseReleased
+
+    private void jToggleButton6MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton6MouseReleased
+// TODO add your handling code here:
+        jToggleButton7.setSelected(false);
+        jToggleButton8.setSelected(false);
+        jToggleButton9.setSelected(false);
+        if (!jToggleButton6.isSelected())
+            jToggleButton6.setSelected(true);
+        
+        jLabel31.setVisible(true);
+        jTextField20.setVisible(true);
+
+    }//GEN-LAST:event_jToggleButton6MouseReleased
+
+    private void jPanel1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MouseReleased
+// TODO add your handling code here:
+       
+    }//GEN-LAST:event_jPanel1MouseReleased
+    
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[]) {
+        java.awt.EventQueue.invokeLater(new Runnable() {
+            public void run() {
+                new NewJFrame().setVisible(true);
+            }
+        });
+    }
+
+   //global for communicating the shell
+   private BufferedWriter outCommand = null;
+   private Runtime rtime = null;
+   private Process child = null;
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton jButton1;
+    private javax.swing.JComboBox jComboBox1;
+    private javax.swing.JComboBox jComboBox2;
+    private javax.swing.JComboBox jComboBox3;
+    private javax.swing.JComboBox jComboBox4;
+    private javax.swing.JComboBox jComboBox5;
+    private javax.swing.JInternalFrame jInternalFrame1;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JLabel jLabel10;
+    private javax.swing.JLabel jLabel11;
+    private javax.swing.JLabel jLabel12;
+    private javax.swing.JLabel jLabel13;
+    private javax.swing.JLabel jLabel14;
+    private javax.swing.JLabel jLabel15;
+    private javax.swing.JLabel jLabel16;
+    private javax.swing.JLabel jLabel17;
+    private javax.swing.JLabel jLabel18;
+    private javax.swing.JLabel jLabel19;
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JLabel jLabel20;
+    private javax.swing.JLabel jLabel21;
+    private javax.swing.JLabel jLabel22;
+    private javax.swing.JLabel jLabel23;
+    private javax.swing.JLabel jLabel24;
+    private javax.swing.JLabel jLabel25;
+    private javax.swing.JLabel jLabel26;
+    private javax.swing.JLabel jLabel27;
+    private javax.swing.JLabel jLabel28;
+    private javax.swing.JLabel jLabel29;
+    private javax.swing.JLabel jLabel3;
+    private javax.swing.JLabel jLabel30;
+    private javax.swing.JLabel jLabel31;
+    private javax.swing.JLabel jLabel32;
+    private javax.swing.JLabel jLabel33;
+    private javax.swing.JLabel jLabel4;
+    private javax.swing.JLabel jLabel5;
+    private javax.swing.JLabel jLabel6;
+    private javax.swing.JLabel jLabel7;
+    private javax.swing.JLabel jLabel8;
+    private javax.swing.JLabel jLabel9;
+    private javax.swing.JPanel jPanel1;
+    private javax.swing.JPanel jPanel2;
+    private javax.swing.JPanel jPanel3;
+    private javax.swing.JPanel jPanel4;
+    private javax.swing.JPanel jPanel5;
+    private javax.swing.JPanel jPanel6;
+    private javax.swing.JPanel jPanel7;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JScrollPane jScrollPane2;
+    private javax.swing.JTextArea jTextArea1;
+    private javax.swing.JTextArea jTextArea2;
+    private javax.swing.JTextField jTextField1;
+    private javax.swing.JTextField jTextField10;
+    private javax.swing.JTextField jTextField11;
+    private javax.swing.JTextField jTextField12;
+    private javax.swing.JTextField jTextField13;
+    private javax.swing.JTextField jTextField14;
+    private javax.swing.JTextField jTextField15;
+    private javax.swing.JTextField jTextField16;
+    private javax.swing.JTextField jTextField17;
+    private javax.swing.JTextField jTextField18;
+    private javax.swing.JTextField jTextField19;
+    private javax.swing.JTextField jTextField2;
+    private javax.swing.JTextField jTextField20;
+    private javax.swing.JTextField jTextField21;
+    private javax.swing.JTextField jTextField22;
+    private javax.swing.JTextField jTextField23;
+    private javax.swing.JTextField jTextField24;
+    private javax.swing.JTextField jTextField25;
+    private javax.swing.JTextField jTextField3;
+    private javax.swing.JTextField jTextField4;
+    private javax.swing.JTextField jTextField5;
+    private javax.swing.JTextField jTextField6;
+    private javax.swing.JTextField jTextField7;
+    private javax.swing.JTextField jTextField8;
+    private javax.swing.JTextField jTextField9;
+    private javax.swing.JToggleButton jToggleButton6;
+    private javax.swing.JToggleButton jToggleButton7;
+    private javax.swing.JToggleButton jToggleButton8;
+    private javax.swing.JToggleButton jToggleButton9;
+    // End of variables declaration//GEN-END:variables
+    
+}
diff --git a/server/component/planetlab/acc_file b/server/component/planetlab/acc_file
new file mode 100644 (file)
index 0000000..46d4ddf
--- /dev/null
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDUwNVoXDTA4MDcyMTIxMzE0NVowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52Qb
+JtucIQUEYZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5
+vxvHG/ba6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5
+amLZcMPmu/G64ieWI8QMUxYgCE1ut3bI1QIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjI0MzUxNTc1NTgwMDAzMjMz
+OTE1MDMwNzc4Njg0Nzc1MzE3NDMwDQYJKoZIhvcNAQEEBQADgYEAOUYu4V5PBKiW
+PlUyLlNTrRRMvF7drxEG1T4BFHhQ9Nn2zWkT9Kbo1PmJBFTGoqHw+E+zJ5bUSirm
+iLByRm5WV/bJSwY6WGuupq0vrDrqKQJLwQO/C3Y9frAYiHEgOeRN3TV3nKmDrTQ6
+lNrOd7q0H1mNFEOOh60oKBgOFOb3SC0=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/buaa/buaa.cert b/server/component/planetlab/buaa/buaa.cert
new file mode 100644 (file)
index 0000000..334ffa9
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRidWFhMB4XDTA4
+MDMyODAzNDUxNloXDTEzMDMyNzAzNDUxNlowDzENMAsGA1UEAxMEYnVhYTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyZeOXa7mEE4qpqe2G+fdsVsVzMFMR3hG
+Jhq5Q7NUD68DMVrSy42Z/ZbfVr4x4FeU3AYkYYB59J7kWRSgJS1baPmsWjexta73
+DbjRbOb8R+zsNMXq3GJ7t8QpjkVvQOgO41qO18Hv4o4buOqBPNLDTIf2g08wv++r
+EPITtsEaWOkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAwx9cw840gTPhxs6wQj7TQ
+SZ61sDE4hn1fPzy+7CuwclgIHaapaZVoMyki4l4GiU0GC4gXQL8I4+dyj6ymEjiw
+jvWNA6kC+MuZAYgemDEdse8hbl7bPUY/RR/I4MjNC9tsqRMRJOVFLYP57jTFF+aG
+yM/0kkQ9I0/IlVncRV7g8Q==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/buaa/buaa.pkey b/server/component/planetlab/buaa/buaa.pkey
new file mode 100644 (file)
index 0000000..25350e2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDJl45druYQTiqmp7Yb592xWxXMwUxHeEYmGrlDs1QPrwMxWtLL
+jZn9lt9WvjHgV5TcBiRhgHn0nuRZFKAlLVto+axaN7G1rvcNuNFs5vxH7Ow0xerc
+Ynu3xCmORW9A6A7jWo7Xwe/ijhu46oE80sNMh/aDTzC/76sQ8hO2wRpY6QIDAQAB
+AoGAb+udlbOBdTIAie/4sfuD4HCCZOA4WkGTKJqTmtuX4vE2Y5NaDrq58Mlvi3gi
+trvJIHKkhiFPFBmXC0HhO2K4KUza2faGlxr1Haz1gfBnibVmQFHm5EzfY7TPAmmB
+vuktBSGUXYexrOallF3G1VDsZpVC0rkeEx0IAsV3q0RfclUCQQD/nrITIEdRbhWT
+ljYOSzwWCtOkcTxWHJqCKX//nuaPU82YkRypfjoembeSWe9LLF1QAyT5ep7vz3m9
+CBLTaXJXAkEAyeRLUrLIobYFxfxJQor3o8zfMPk/UiX+OKFkxmoR0H0f/26OpkWC
+v8w5/NOagPTuGF7u1LBr0zxFmhPRYUAGvwJAEfYXsypYeItQrs8mOzjkHvRhzLM8
+NxzJao359X832ihcUPUZW3uIH/BTKtBw9QpIAEBIT9Ni6Zzdg//WOs60/wJAFJTS
+XO7e5yVgN0u9yCvUjP1Ar4RpQR2gafOCC3wars9iqK6Dmk2xw421R6HmuUi+0Ps0
+i7gkdddKHSfyC2D0jwJAZbQwq9JS/yEzqB1jyUXnr13h3k3YSNWriZS4zHGJRvkM
+zRzRqORiUALCrvsCAArbmhj+oUBf85Uilehmoq47eA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canarie/canarie.cert b/server/component/planetlab/canarie/canarie.cert
new file mode 100644 (file)
index 0000000..7c2656d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdjYW5hcmllMB4X
+DTA4MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowEjEQMA4GA1UEAxMHY2FuYXJp
+ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3jYKDL4WmomA+pE0h93I7HYP
+pF1FVVnBMOHMh96QEF+42x3jJONsp0ygkfH5fKG4t22m2y5yrsPWzovH0xYF2veT
+AlUkUTLEIAPrubKA3a0unvOj0a7hzboLKvC56SxGQzjfnKTM2n30hbrDdkdEQSXp
+jCdIpx+qpp8Gd69xagcCAwEAATANBgkqhkiG9w0BAQQFAAOBgQDI/aczA6wxKreP
+lP4uFL33dAK0OnxYGywJ16RaWrtOz5G8Na8OA3pWJGpHcRIILWPre0IaP/Z6VHh9
+O8bkQXVPwh44XslwP6XQA6kSnNE23QYSTnTxJd6fdVzEY8GwFTYvaJUFyLPaEcOV
+LhW3TKJ/5QMwOSdM++U+hEznrYSUtw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canarie/canarie.pkey b/server/component/planetlab/canarie/canarie.pkey
new file mode 100644 (file)
index 0000000..ea15897
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDeNgoMvhaaiYD6kTSH3cjsdg+kXUVVWcEw4cyH3pAQX7jbHeMk
+42ynTKCR8fl8obi3babbLnKuw9bOi8fTFgXa95MCVSRRMsQgA+u5soDdrS6e86PR
+ruHNugsq8LnpLEZDON+cpMzaffSFusN2R0RBJemMJ0inH6qmnwZ3r3FqBwIDAQAB
+AoGAWQ39PxgbhPmgmEsDa4QmFyZFpJDAzbD37PhBeR5oTDegpSg4NTtz+ySJoZQB
+ccJ6fgDTAzp9Oa9A8mwwvFcyJs0ljXhBogN+UPS286dI1QvCn7spQJXCR1gORHns
+xTtFI1McpSbxPTLEn3MzsN/RcWJxqqC8R6pyibrdFGDnsvkCQQDzPzNVO2gP6Qqw
+s1zvF/ZP7xRi/To7LGAqoHg8OBa9+I0Nl6mL/zPdGIWoLmntXBsuLMr03TctNc9S
+O93ycGXTAkEA6dyAabhecpJeIipVRoTnM9jTF9lThEAYSDhZwPsKo+1KU/HucSKG
+VkxKijkTm4xrScQX5BNhdMxslAXg12hGfQJBAK51ub97qBshLYWmXxUsvoB+HMUS
+kd026pIoHZQzNjxyM9h32iaKlwwQNmx1PYv775Kilb4hmx1V5qg4P+tOKfkCQDHW
+CY99+LKVunWxa8bBX7vOwv1cFM4kEoihaY8UcGoKkUJeVh/J6bLOQzw9eY42WE65
++RVjg+st/R12OznsQMkCQQDHHITsut3W932XWKqkWjPL0Uj8biv+pthkmF9vGWR+
+eNxhrq6U5F827ntcdRuswl4BhqSyPf7DxrwGvnAJsQ2O
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canariecalgary/canariecalgary.cert b/server/component/planetlab/canariecalgary/canariecalgary.cert
new file mode 100644 (file)
index 0000000..4114752
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWNh
+bGdhcnkwHhcNMDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAZMRcwFQYDVQQD
+Ew5jYW5hcmllY2FsZ2FyeTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtc25
+kbCfHxwMP1+meY6oEycqt0BtqprPFNIO7gd1V/cybAuDNpcE/kBSDtqbsaSsu0AB
+LkuWznYpM4VSytbeNLpJfIocRKG7zBFt302VJAVXJGZqiZA0Pz2h8JkVIaPCN2wx
+L66bPjql5gqfEe3DsNXKJzU8LpvQbyOdg1nkJTMCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQB39RMq1VSypgxAwtPGw49fnJpe0IdxWFTN9lL5qb2mOh0/sjGYtmXtcQgx
+XmpbIAgrPWvz5PuLL/9LEBrRv9ZcmRFQJ55Cgfcrlogz2SK9aAXHH7rb6xHDC9Zh
+wArfmkCUjGXvj6iUnW995x6NIETWRszWgILZmwkA7pg0N/07uQ==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canariecalgary/canariecalgary.pkey b/server/component/planetlab/canariecalgary/canariecalgary.pkey
new file mode 100644 (file)
index 0000000..a8b9ae0
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC1zbmRsJ8fHAw/X6Z5jqgTJyq3QG2qms8U0g7uB3VX9zJsC4M2
+lwT+QFIO2puxpKy7QAEuS5bOdikzhVLK1t40ukl8ihxEobvMEW3fTZUkBVckZmqJ
+kDQ/PaHwmRUho8I3bDEvrps+OqXmCp8R7cOw1conNTwum9BvI52DWeQlMwIDAQAB
+AoGALg99IGg7KEqW38eACfQWqSOXMu5j2oF2TbQajDvfgvXiFHWmPMJuRWxOXe0M
+3Sj3iklhAzWrc4uETMVOgI2Hpi7ZN8GGSk+v2Khko0/3eJLW8tJpJSYVsV6SaSQ2
+cETEaiZBSX6XPiQ1VX7OClLwXm1CuXXxl+8gaMuSqof0rIECQQDfpT/dZAjcsW1Y
+ZzirX20+muBjsCiktpwUt22PX5cDGfxYshIaIQTwiw3fOohNsrV13bH7+MU68Y4B
+yTdkKRnxAkEA0Bragy7Uv0WR2FXXl39nTqrpBg8PliedDNvWn+L8fHH56NQKpgrl
+DdwJQhha/HiR1DgWXK11VOamuqkYDavtYwJAb8zyQkCR1ZG08e6X+8O2nwdZiTw0
+9TJ8kDaqRHQqz9gbuFM8jWdYSs+Y3bErFnxyDjwHj8jq/+5laSsnz6BkYQJAWCbX
+4vPGeNNOaVZLgcgdCazKEp/0mUVkeFrzOj0beNeK5f5UGGvLBSjs3wuUFxg3pa6w
+gkeTyQf/HliccMYgQwJAWcaQ4Cwo2R2zbbDykHrB3I4Zws34V8xdNvNwdQfxMUid
+DA4sn24t2AT/jdW2lIfL+zMlVBWv7TVJ/cipbBnBuw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canariehalifax/canariehalifax.cert b/server/component/planetlab/canariehalifax/canariehalifax.cert
new file mode 100644 (file)
index 0000000..8829e22
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWhh
+bGlmYXgwHhcNMDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAZMRcwFQYDVQQD
+Ew5jYW5hcmllaGFsaWZheDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvtI1
+dPD0GphqXPqDL2+qnzcgQdr3ofOxGSiCG1/32qnJg66DkoaZL39b+ZVbUh3TXCZA
+azv60Odc6OznsnBn5Q+Y0GTFuX8857w2ITNivVZzWxsb88pPKZyuFb8HC0zz7ZNt
+ElsWPIdT1ydzYEhkrap9nPilr0VjiLTqNnZehqcCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBddA64IXn/bTO+jpcqUKcs4trnqZ+a16yDwZovT2YDUow3av8vW8YfbHSK
+HD6KSO1EO/eylukNYgFlOZcIR+daKzWcvygOurObFyEvvhN4XVBsrQc7S5MKIv3X
+NLTc+zG8LAEc/SMCo2DoWNDpmgp2v1qwxvOTReuGyKEFw8Wgaw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canariehalifax/canariehalifax.pkey b/server/component/planetlab/canariehalifax/canariehalifax.pkey
new file mode 100644 (file)
index 0000000..138772a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC+0jV08PQamGpc+oMvb6qfNyBB2veh87EZKIIbX/faqcmDroOS
+hpkvf1v5lVtSHdNcJkBrO/rQ51zo7OeycGflD5jQZMW5fzznvDYhM2K9VnNbGxvz
+yk8pnK4VvwcLTPPtk20SWxY8h1PXJ3NgSGStqn2c+KWvRWOItOo2dl6GpwIDAQAB
+AoGBAJFgQrux6rbsUXQ+on0cPMgJznh9otVufAjntJ+4cHLVkaHR7YlPJBtskxzF
+bgpUkLcOqVtJGd/XtA/8lNR8EJnAVBZf1DD79DOZXtqm7BYMAli7eC8u9NAU0XI+
+bs7WfSYLm4/xJixtydqVW3L02mIGwJm2yyfTOlO/flFTDG2xAkEA5WHemxVr1/1o
+CrZBMSICXYT4cZlVBeUuDtfbc2p0I+leuDHh1jjpT36PcB3hPR4eJn9Y5vlanIim
+7S4dP6eQKQJBANT20wELh2QQd/K/OPPwVwKrxzl1hZIxOoOJ3ecCUHgOzkmGsjhd
+bA4KCbdK8/W6o0KTf4Xg5xUfM/3wph/5+k8CQQDDFPZWXOSIIFsw6QoOuEbctG77
+ZhV6WwxN0WUxBnNZ62sEKmBQabx7QD7Lco4SBaBMy3eXkLBweoPFKbf0YBTpAkEA
+rX7T0eMhjsy324Qbkuf3Cs8FA/ORONNwNx9HL168TcLKHi5k3PSHBjz5Q2EFtOgy
+/xcI6fmaaKO+CKBXxm8xkwJAfOQlvP3vDgcMHE7tpNcPwV6cv9Mm4jWgpE+M+vOZ
+uC8on90OpKiCoIec8tKAe9UsD4+H3257IbPYvWGPG6dMQQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canariemontreal/canariemontreal.cert b/server/component/planetlab/canariemontreal/canariemontreal.cert
new file mode 100644 (file)
index 0000000..fde0627
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZW1v
+bnRyZWFsMB4XDTA4MDMyODAzNDUxNVoXDTEzMDMyNzAzNDUxNVowGjEYMBYGA1UE
+AxMPY2FuYXJpZW1vbnRyZWFsMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7
+EXFo+JX2HP6fkaGACCszvP4W3kJJEM7k4XF9OQuyF49MKNZESlCIBXdxO3hqUXsa
+XuxYwgqN/5kigJaKIsrgRITF6wRG7G+VW1YTOI78cHgyxGoq8rL+Fk5eAJR/z5+k
+VbYCBtG/ZE3M9gkpYiQ+eC0thT1j9vhyJ0Wf+At9/wIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAAlD/WVNRjoAE2WjV0C8ZbdC7ruWP7KqCikPp/LGaZTHCmkg/5vGFnHB
+qnXGzyDsP7ojT37mDPSrLTjWs9dmQXPIiVy1hMqXTxEf0UXQs9S7NaT0tmUDVCZD
+3XVwrffaIHNQbLCxtvYiHkyrDIUqenLENv6eUPZmWqkHuMb+n5Kn
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canariemontreal/canariemontreal.pkey b/server/component/planetlab/canariemontreal/canariemontreal.pkey
new file mode 100644 (file)
index 0000000..03dcba8
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC7EXFo+JX2HP6fkaGACCszvP4W3kJJEM7k4XF9OQuyF49MKNZE
+SlCIBXdxO3hqUXsaXuxYwgqN/5kigJaKIsrgRITF6wRG7G+VW1YTOI78cHgyxGoq
+8rL+Fk5eAJR/z5+kVbYCBtG/ZE3M9gkpYiQ+eC0thT1j9vhyJ0Wf+At9/wIDAQAB
+AoGALgnX8G6lcYGnRJwxs/HOuBf+LKCcjaDeWkQFizz73OOhd6vhN8NWWHOH9s0d
+EIVnF5Fe92Uh9dp+1Jfy9KIlbWmskeoVGYCZgsC59ywEKm94+d6Q6ZHMsQBkbAOb
+w2bmOWuY/4mMd7MZ9jT7xCsriegtQcq9LJNDThPij5F3QKkCQQD5Y/gbMJsYoPp1
+faaly7kCtda0v/2eXjZaaWPFiiYiApqcW2tjvZ5n4SUaFbg1jmCaiXIuNk8QpU3m
+YyeyQscDAkEAwAajM3CCY+i1ft9EPiTCE9JeeyNDPMXfIMU2CTSuTB4SkU1VSH8y
+mE8c6pHLgL5a4N/3dpkBDX+0cqYyTunOVQJAWBEkYT2l12mpaGoJukyZtcpO2p9d
+yVoNqZnD4NMrKiFvRb3Gy37/fEF2X6LB3S+9D3Vv+7+z5fXp72yebQXFzwJAFAtd
+U8xFwBoVf/XcUMRTgfAurpniteBNx0TuvA1EuGtXMtWotlWYuW9grFelr32vTNP0
+J+wWwQr4khMpIzWitQJBAJkjqgMiFdbHKp7KrySzjskDLwm9ef8qX0vri82xFE2E
+uBDxaUNk/5ryKgGc60nRS8ejBwNtA+vsELnL5V5rS5c=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canarieottawa/canarieottawa.cert b/server/component/planetlab/canarieottawa/canarieottawa.cert
new file mode 100644 (file)
index 0000000..467ae3d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBnzCCAQgCAQAwDQYJKoZIhvcNAQEEBQAwGDEWMBQGA1UEAxMNY2FuYXJpZW90
+dGF3YTAeFw0wODAzMjgwMzQ1MTVaFw0xMzAzMjcwMzQ1MTVaMBgxFjAUBgNVBAMT
+DWNhbmFyaWVvdHRhd2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsehfto
+7rT28DebePJM2S/1D/svAPKm12Y+zwVkVTOrIgSl79k6fvOd03KKbGqqiIIq2Q9V
+RCs89k0XWOcYpbAhr9E83uz6iPtkKy3yI0fxE/R7j54MN1phBb4hDb/1FAUy7TYO
+yRgAbc3wwyHpvNE2uFHDVZD88kqGW6RH3Tf9AgMBAAEwDQYJKoZIhvcNAQEEBQAD
+gYEAij6o9JYVxr/eh6dDJ/q+CVExdFJwURCtUGd/Cb2MPMh4KwW/Uj9P8/ALh7iO
+LW34o0Uy9Hu3j6eSDyVSG/YIYdeWodrFxOxdl6bRpKACcn79KUF9bQxK/48KxBaH
+rT9UgwP0aXBsyFVyVm3HHh3r8OTb4dnhPeETBVmC20UEx14=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canarieottawa/canarieottawa.pkey b/server/component/planetlab/canarieottawa/canarieottawa.pkey
new file mode 100644 (file)
index 0000000..f707b17
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDbHoX7aO609vA3m3jyTNkv9Q/7LwDyptdmPs8FZFUzqyIEpe/Z
+On7zndNyimxqqoiCKtkPVUQrPPZNF1jnGKWwIa/RPN7s+oj7ZCst8iNH8RP0e4+e
+DDdaYQW+IQ2/9RQFMu02DskYAG3N8MMh6bzRNrhRw1WQ/PJKhlukR903/QIDAQAB
+AoGBAJbKDpHQyFSoiu75guXblKq4DmNhGVnjDuBB4N1pCmkgH6zrNH9dDfhAaD6u
+m6Vb7c0GB5HRr7PBpA2xP3DpOTsR06XvYBOsD1003IIm9DFzg9ex1qPyBSh8i8Z8
++DyT0fGCu8IdFG69J7+6GJ+jsGO9LZPAE6vunbn913PtPKHRAkEA+NZisssoFpUe
+earqAnNmbWuSF3AN48rhGf3npKoGfYKibqlCbQpc8KX9fdagQcZF9Pjb0DgSiE5p
+vXuwpLm0ywJBAOFtJwvqkJO9rm/5flY7j3Wv0DqVGOgvSr66/I7g9P/gAYoiF/SJ
+PQ/hQvxVR9jeo4UJ0I5r3zY24+AAy8NgdVcCQQCbYmQnea0CzQNGvm96ME2Zrj5/
+3D0QLbP64w4vSOzcmyKLL66HIJ2AuGZemhNgf0tX+b5pe1o3O5/T7tUTR9OZAkA3
+A6Z12Ab0p2P828yjSuHV/NQ6l8x+TZxWM9gTHn9sOsTlazChcyS9zWHFpyJjoOIT
+Q7PsLhNJbdfrAQa5Zb79AkBDtiSWBvMzlycXbN1W2jD0w8U69Nw1JFA6QvC+5TJr
+1cPM8vtIAO/Nfsxef4tnJH4ZC0D3jNynjUSSQQ43qgkN
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canarietoronto/canarietoronto.cert b/server/component/planetlab/canarietoronto/canarietoronto.cert
new file mode 100644 (file)
index 0000000..1fb40ff
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZXRv
+cm9udG8wHhcNMDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAZMRcwFQYDVQQD
+Ew5jYW5hcmlldG9yb250bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArHDM
+jD4o/ieSTKVNeQ21os1nuJge3BI04kpltuTdgZeQJUOSG6cQ45kERtFAwSKjFIsH
+wGMgbjyfp7kCD+oBEft+8HhJ/tLdiXJwb77fyczlqFm4em/cJui3g3ktaSTTrWGI
+tkqYYbdrPVAUO9XFzql6cawa/CawOZ91c36er9ECAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQAYq5ArENN1S6fHpTHS9YeF8/PN9T6naiNg1qIGZjuT+FXhL6ZQp1ZCxc/T
+YsPi9HE3VN/hm0+8srKZ7/Gs8hN1YHTw1pOEFhjMDQ2+vAVD25smBKFwVqtfbFPA
+HuDhZkfsp8wJKwz9hoTu8cNMt5upVoseLX7ZcbedHIhGbE7sUQ==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canarietoronto/canarietoronto.pkey b/server/component/planetlab/canarietoronto/canarietoronto.pkey
new file mode 100644 (file)
index 0000000..cd6a709
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQCscMyMPij+J5JMpU15DbWizWe4mB7cEjTiSmW25N2Bl5AlQ5Ib
+pxDjmQRG0UDBIqMUiwfAYyBuPJ+nuQIP6gER+37weEn+0t2JcnBvvt/JzOWoWbh6
+b9wm6LeDeS1pJNOtYYi2Sphht2s9UBQ71cXOqXpxrBr8JrA5n3Vzfp6v0QIDAQAB
+AoGBAIGD6y3+Vf2mLQziLxEXye+wRRHxN2RlTFEWPdUjincWJg7G9ItObLH1MLAb
+5H3rDP+V+Ml36ljBscxgeXsIb6odEHn4zsACsJrhG2t6nRLOR3OwyS+licCxKlO1
+5ZuXabEy0kpoRs0cAIAeziirlEnVjYMD3RpTa7JVmJdeJZR9AkEA2uWe6A2UCmj6
+wIFMJ4StMp8E+Y4npp2YbyRxc94nffUnr/0tAHaOkr3Vv7SKiU5cJsmoZrdZe2hZ
+s52ziK5azwJBAMmrWC6+LGBHl+WU+Xw3FAj5W/4+sqzR3lwkmF9UNdXgwregooQM
+IVFdZlHCeXggsLU8TOw0dTIQq1Q76aLgc18CQQCzKsNYWNTVeHvV2X8F0ZkaGAKw
+aOSXgeLlBcU++5UDiggECowtFt03yt4L3bCPFm5i6ShHesdpNU5GsEvlEiENAkEA
+lXr0zQjXGbJXa6ul1SV6K0CxqF1O0PxqZkAV1Ss1EEgd7EAb1ear14R0cAvHP3xz
+npKIrdggOjDS3YffIIRf3wJBALvKZsztWzHL4963GDlW3syaN/m7BzPw9TBX7gQF
+Ey7DFXYA5lZgr56cuYnuQ8cWYsEYuodi2gYSXJulPEJNRcU=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canariewinnipeg/canariewinnipeg.cert b/server/component/planetlab/canariewinnipeg/canariewinnipeg.cert
new file mode 100644 (file)
index 0000000..e104525
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZXdp
+bm5pcGVnMB4XDTA4MDMyODAzNDUxNVoXDTEzMDMyNzAzNDUxNVowGjEYMBYGA1UE
+AxMPY2FuYXJpZXdpbm5pcGVnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1
+NKpF8AeUWS8fsMZTNASvQ1lPF73LZJiNi407cEcrElgr39zNU0ztTyOlka/e/c5f
+LtRLbq8FlTF8Wt3QtQvmdISs5EBbWhzDaDvERcmJb8S99ZeCCnJpqIoHSam91w5z
+1mUrG1+jYi6Ypa7s6uF7y1fJVDgGoiqqSkKB7ZJIWwIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAL4mPpKmOCX9R4SNFz5B5qu7auc/pU0kPqFqOVb0LMNCrtPZUElo/LxY
+WAce0FtWU3LXOqcl34KgHsqM9QwN0OprLOnxhtw9vhmucIXgBaIpQ32neROMdl1W
+fs3LlLRuOrQNlhiLVklC6UHNF9VSOHXOhb/1toaKaNFVL9/g0I3H
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey b/server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey
new file mode 100644 (file)
index 0000000..3159e46
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQD1NKpF8AeUWS8fsMZTNASvQ1lPF73LZJiNi407cEcrElgr39zN
+U0ztTyOlka/e/c5fLtRLbq8FlTF8Wt3QtQvmdISs5EBbWhzDaDvERcmJb8S99ZeC
+CnJpqIoHSam91w5z1mUrG1+jYi6Ypa7s6uF7y1fJVDgGoiqqSkKB7ZJIWwIDAQAB
+AoGAQsY3xFnsRnrO+WtTZt8Yk33cuUw21Eetv4YMTO5zgwg42KHa6FNR9KIDjBgT
+c79cTtFa4Lvgj72kP0Ajfa1/8pa5gbaEtxZl5fzqZZ0y0MK1lSUSBO/9kyouAEdc
+MxBBug5vGursmGOMpR3QBZQbixq241H/LLYaajNJMz//9NkCQQD+KKaUlg6V0IAR
+zBfXCWLOQASuq7RZmeG/RWq0ooRatAYhBwe0XgMkll4k7mOYH9X/YHS9CLnTlBgo
+FsAZXSEXAkEA9vtpGVZ6c4a1vCF2MFjuVkOeJJQwducH1fkGmDSs0gxVov2VMa6K
+RxNdDSo7mtWC4R+1bfeIv0f5ksuhG2i1XQJBAN0VH1JA9Y78P2s7zcEQORKQPYJz
+ef43DVgEWj2m4NrFnk88fkc3QCSjaGFXvOqnRs9OaD3HSV3yhNDaeV+W0yECQGWm
+ccog4oL7tX55kygw4d8VM1hAuXWmfn4dYQ5x15MXyoMrtSTefkDkgk6xzBhcueIn
+58cbsudvGxPExUj/nm0CQQCF/bvqvafdvujepCKhqWsOyMkVT0BR2hLXJc1BZwwL
+Fc/cZln/IjNiGFF8bJUBDRMPI3fThEolwmkxiLVNnXoH
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/canterbury/canterbury.cert b/server/component/planetlab/canterbury/canterbury.cert
new file mode 100644 (file)
index 0000000..5249fbb
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2FudGVyYnVy
+eTAeFw0wODAzMjgwMzQ1MTRaFw0xMzAzMjcwMzQ1MTRaMBUxEzARBgNVBAMTCmNh
+bnRlcmJ1cnkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK62ChC4YDwm4WzH
+DGvWVljmH9tmlhPVYPVcSw0pnCE270jzCQNI1IVP6soFrmACIqCAhHlK4vosNLrE
+AzrRXM4h8ulHSp1Ncm1DF88yLnDe4iqMTV72NTr1tEdmMAFgh7572ILurFrBiE9o
+1IVhsoPR/7kEiP9zW+fGmX72DERpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAiZpn
+VkZfktFqUEXRuUrPmX9TnwZCEeWCuQDNsvEmUeMsJjCNIKWk+0o3ov7MOmfX1tJf
+sfmzgaBeI5nfOkojs5yNv4AbFJls/gIvaHPc8l5n3jqXWpCuDsj50VSPNrC7xQwv
+ykAiu+/Ue6bwhBnpRdUfnQcVBsIjVr4MCTJxz3A=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/canterbury/canterbury.pkey b/server/component/planetlab/canterbury/canterbury.pkey
new file mode 100644 (file)
index 0000000..772c2a9
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCutgoQuGA8JuFsxwxr1lZY5h/bZpYT1WD1XEsNKZwhNu9I8wkD
+SNSFT+rKBa5gAiKggIR5SuL6LDS6xAM60VzOIfLpR0qdTXJtQxfPMi5w3uIqjE1e
+9jU69bRHZjABYIe+e9iC7qxawYhPaNSFYbKD0f+5BIj/c1vnxpl+9gxEaQIDAQAB
+AoGALkwxOKMTZX1MKX5J7V28PgyljoeN562Y5wxRGyjWpfqfyG4XClbHcpht+KEu
+x2Rpdqz37giJQ5BpXMDKtlB6zfkZ6b2vX7uIUvSKx8q+rgHxVd4ghKSJ+3cr+9vH
+qTq3wia5k6Eh387oHIsPKZAYIxZYRd4xS+JdJJcjERUgPA0CQQDWiJq88+E4qUK0
+Rz2/YnnZzyzAsAOBYph8DtDO8ORTWoTCOJIjXdY4fpM7q/0DiApCYHoOFOtdrCcj
+JQz9EBtXAkEA0Hr3S/Rz9PH9kk/oQ0fkji+qJn/hI1PZx5aH03gOaJGNTBOenp7a
+2EFUeUh7K9TI+e0LL9YO3x3OdgeGD6qGPwJAalvBM0pJb1ji3BOxti9xL525lzHs
+GvoxlNeXh/D/kZ9/z/ZR5TzBVrLR9bR3tId+ZpgECvUuFvuhT5gvz0pr8wJALmcg
+QfSwFpYCJZ3Jiagn1AoB6j3OY6mXMJhttQDk3BuBgqxfQtkCxt2Lqs8aM0BSV2aO
+deBEQR8GRDkaesQuywJAROUBn2Het4js7Yjc1KcQNSgjqsANOyJk4oqmv3GM/7zH
+4U9yA4JwibcIqvQzkxQMP5LFNL3TiHcmvbTCAzEW0A==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cernetbuaa/cernetbuaa.cert b/server/component/planetlab/cernetbuaa/cernetbuaa.cert
new file mode 100644 (file)
index 0000000..3ab81dd
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0YnVh
+YTAeFw0wODAzMjgwMzQ1MTdaFw0xMzAzMjcwMzQ1MTdaMBUxEzARBgNVBAMTCmNl
+cm5ldGJ1YWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOU56plFuussQyN5
+HGwE93iVAQJlDysPxGFJfbGD3/kllKtEPFNza34GBLClz+ILSB0RC1lIoVqI/3/v
+1c1djzaI24bu4fO/+VAkyNxSk0xdKNMOGX3zWJPrXSwSm/V0kUiaRJrAe4TJ8ybA
+bjSoqhwCjh86MdSoqkh4WmwihqtpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAGymq
+KV+ZmpYG7UaELknvgqOThcqJTRKFx57Y9KDzVcCukSjzCo294JI3AU0I+jqX1g4L
+fu+UX//IDi4RE5wV9eFUjWZePwYqfZ3PU/cNzip7uxC0MvhAIAlNcpN/IClkfcef
+A91/LE1qrfqj4QwtrqKp3sm1bZ6FVklSll33d1g=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/cernetbuaa/cernetbuaa.pkey b/server/component/planetlab/cernetbuaa/cernetbuaa.pkey
new file mode 100644 (file)
index 0000000..dba785b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDlOeqZRbrrLEMjeRxsBPd4lQECZQ8rD8RhSX2xg9/5JZSrRDxT
+c2t+BgSwpc/iC0gdEQtZSKFaiP9/79XNXY82iNuG7uHzv/lQJMjcUpNMXSjTDhl9
+81iT610sEpv1dJFImkSawHuEyfMmwG40qKocAo4fOjHUqKpIeFpsIoaraQIDAQAB
+AoGAfrv4sulUoPWF4TTyu947HJX1Sueo7Tv4bXl+Xwj0agGXIuHFILZtte2J5kim
+mOl342orBiAb5bxc1tU5NiQGKypuLLuX7NPASxlULGBdF9PkZdMPRbq5Kt/Hz+18
+Fwpz/Z1P2LeNbarH46qQUtIlZdG4Wgfgugg26QLYjyI8cgECQQD+MWgTZCdO5Tbl
+bmdM1XeEpXyJLcAIKpz69A9oSMwF6kormQwtB8+ksfkwJA3p3I9yggBd6up0rA7y
+EnkUzeWhAkEA5tsS9hSCnN/v+a5+FyAp0aFEok3mZvgsUSRtIO9iMKtROiMgwksL
+v8X8eLTE9bZGzqhnfSyaz99pbaBn3SFgyQJAT8SFWoB1bWa0wW7R7+SVKwUbfZjj
+yCxHMuFf7GPb0odhWykeDwuCd7Z58kd+LkNOqKpvHwnXJWHRFtoBMSwjwQJAH9nF
+6fG2e5Jh957dgq9LVcLcR1BcI4TGCIPwEoU0lOZuFIlYMbZM7q6QQM8gBY6aglS1
+wo1u5pM6ZoelDNtYEQJAW5u7DUHSzofCkc2pijD08yeZiLbYaBNGjjNQOmHOnqex
+s7E7C7hRRCBsG34gQyicM39QM34KY+T8hoBsxTJPEg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cernetpku/cernetpku.cert b/server/component/planetlab/cernetpku/cernetpku.cert
new file mode 100644 (file)
index 0000000..729688a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0cGt1
+MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy
+bmV0cGt1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFXdkcYlGIK/c3d3vk
+37Ym2n7VgrFjCDDTs9noz5l+d+LEIwcralcDpHQN7gfN1QI5DiNx7FI7AyuK30+A
+72Bqt0Y3CmNdoqJLgdxRgvZqmILgMU0cVmZhuyQghKRVg1S6B7xVt1D0iCMZcR8r
+mk5uWvsdcgxNxWVrgd+1hQbkwwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAKdifuAf
+RW4tExQ+TD82wrbYNugjg7llF9rmS1beIPuJ/XM8On7qVECBaDqERuT9xzf83J6E
+FvFaM4YknmmY4UMS/9kZ1TlmwXnhb/HdgiY+oHrP/sCPmIReLLXinLHZrx8/BDhO
+vaNWZ8FQUUS7xME1kHxWYjpXorX8e9g6t95c
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/cernetpku/cernetpku.pkey b/server/component/planetlab/cernetpku/cernetpku.pkey
new file mode 100644 (file)
index 0000000..8febd3f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDFXdkcYlGIK/c3d3vk37Ym2n7VgrFjCDDTs9noz5l+d+LEIwcr
+alcDpHQN7gfN1QI5DiNx7FI7AyuK30+A72Bqt0Y3CmNdoqJLgdxRgvZqmILgMU0c
+VmZhuyQghKRVg1S6B7xVt1D0iCMZcR8rmk5uWvsdcgxNxWVrgd+1hQbkwwIDAQAB
+AoGANpV+7x+t5tgp9fgglqrcSKCTBV+wyW/BeTs7X+zSSazEVXROjk5JpGM+CYA0
+PlPT2o2zddVi5Jk62Jxr83/AjSaYscsb6I0b+Ga3V2zmYgEaqRAv6V9gHg3X/XDz
+QGLCWmZAW7bxJWWlH8kPJJW1x4BFilGPjVN7sC3JYg2xHwkCQQDpfCls9smZuomL
+Olqsv+y4AwobCClBdpsQ6iNpOaeFPKzdJs1sJQ+434CnMlgeKxeVgWLTg62of7ci
+k+cwrbVPAkEA2GYQGoL/gU5j/F7mms83pRV3DD3WUiwGBsDMsL3PQTctxTuThKFj
+QHnMl/DXp1MTV4+VtiMPc/VRB82jJqPkTQJBAJ6b4ehLnZf4yAb0lTRVDJHUPsEu
+QhheYeiTpYqNx+cS2LtC6LlWU9/atKLf6ExWKac+Rcw533ZfjCDJKHxBBLECQQCt
+EGsemNe41TW3tzocY07wUwtjmezWyOiE7BqH2zVuxa9wRqZC80NKZF6QwYfnBNS6
+OVYVVVLdfTsxz28EzxwdAkAWUlma89vUe9LaNWl+fT+yR63TvQA7ZOebjz68xnU/
+gCH/MModP/E6wT03TpMPVUKfB9fs/rw3LqfkLx7IRmTF
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cernetsdu/cernetsdu.cert b/server/component/planetlab/cernetsdu/cernetsdu.cert
new file mode 100644 (file)
index 0000000..1f8d5ff
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0c2R1
+MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy
+bmV0c2R1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD5YZVljyUyrf3joEi
+VRJV/figk8NfpSVlyTZmCa6MUwdVW2DOW+trGnbyOh/NVGG35k6jEV9ulUfS5sTU
+cDCnhUoZTkHo71oZb32nK1EpxT8051/IyRGXy3P39LH4j1phFJsA8B/j9Ur4uDiA
+FZ9mZZ12l72pAGNjJpLg7kSU0QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFwUP4GP
+9X/SlnfHnftioaLp16i0hZBYha+fOC0GI4pOv/oUK8NJkJTDIaawZ1EmFioH89oB
+BJQakAqXmfgSdxYta9zLgrzuM2sFfuWGOudeig0m4TzALo55cAsZN3Ag5tndmsms
+L8ass8DIzdkcP6OVau5YittLo6W8IIjcY+Zy
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/cernetsdu/cernetsdu.pkey b/server/component/planetlab/cernetsdu/cernetsdu.pkey
new file mode 100644 (file)
index 0000000..e732172
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDD5YZVljyUyrf3joEiVRJV/figk8NfpSVlyTZmCa6MUwdVW2DO
+W+trGnbyOh/NVGG35k6jEV9ulUfS5sTUcDCnhUoZTkHo71oZb32nK1EpxT8051/I
+yRGXy3P39LH4j1phFJsA8B/j9Ur4uDiAFZ9mZZ12l72pAGNjJpLg7kSU0QIDAQAB
+AoGAVrLloklspHmXtAOo2VYHWHGfsQnUpScFByhnX/+W9dnlW/ymOo5qAavjys64
+tnpLCUXvtbIBp4KAGDI0GMVScntS9cyjXMRR+5tQbBhwkbR2Xqjfhq77kCXckDl0
+0PwRxWkB9ORBi0K2GPpuXWhVv43PuPqN2pCKCDS2SjMU8yUCQQDq6CT994MwT57u
+d8UHwcMrmVng93FcUmRqgDF7R0uyfbNYH40RCaWCrh1yGRCASg94R3CALaFOaJ66
+aHRejrVrAkEA1XykrfpVJ/MiXUJvdElLSIJbJp7/FIl5rLD2ErUZ/39mjBOtOKil
+aQrHcicrPup+AQQFzqJjIToR725wQZbxswJAannzWpK4ikts1NbBHnT7jGWkUc6X
+Oau3DHcy9pgofa1wf389p/1hYkyd2Dv4OM5ZGMH5AoCsXygY2pHCPaIeJQJBAMkk
+6zRQzLMbTaF42vJBrIDg8WjuHYAIF3AyO2dc4uXr737De04K9+6EjW5soT5iSd5D
+IAWU0rmXsRZag8IIqikCQQDlQhvshRrm8sfEaOn3d5isqMI9S1BuBaervevQPziQ
+/6iBwFRoiVpuHHE4Cy2Ci2KDwhrZ1HKNERQLeicyLz5O
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cernetxjtu/cernetxjtu.cert b/server/component/planetlab/cernetxjtu/cernetxjtu.cert
new file mode 100644 (file)
index 0000000..0158e75
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0eGp0
+dTAeFw0wODAzMjgwMzQ1MTdaFw0xMzAzMjcwMzQ1MTdaMBUxEzARBgNVBAMTCmNl
+cm5ldHhqdHUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALR5VcYbJxbv9T/5
+jqNfs/2L7L3YsElp2AOgMyxsJe3nbqjqa0P0hpJlVN86voY2izJfm5jkMG12BvN3
+cDNLx0JO2+0auZk9VkhXpQkvS5RNHiyzwH6Op/vAR4bKQbqd7mWGDTpyBWPTDOrn
+ZQ+/lreYZvrGWPv3YRDcsWZBnRepAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAEWN6
+LkHFbGON43U4TX1pcnFrMmGS4LdpWo9bXEnMUlTqKSBhrgWUtT47CHxPuvtJ3D2y
+fx52FrrbQ6cvS/bL78G4SJDPcH2zx+GpKcYTrT5RdZNvUd125e8+vBFJzExqLHry
+YASbjzPhXPIu17iS6hEMLtQ7MH0HMZFC5JuLw3s=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/cernetxjtu/cernetxjtu.pkey b/server/component/planetlab/cernetxjtu/cernetxjtu.pkey
new file mode 100644 (file)
index 0000000..1164846
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC0eVXGGycW7/U/+Y6jX7P9i+y92LBJadgDoDMsbCXt526o6mtD
+9IaSZVTfOr6GNosyX5uY5DBtdgbzd3AzS8dCTtvtGrmZPVZIV6UJL0uUTR4ss8B+
+jqf7wEeGykG6ne5lhg06cgVj0wzq52UPv5a3mGb6xlj792EQ3LFmQZ0XqQIDAQAB
+AoGAezhk0e/0DnsjjdyMAQv0zmZc63opUtaLgF4+0lO8yeQ77+St/CXWQ9ofypJH
+R0eyXmBc0lTqo7H0KQMhfkR89KjNa/MJ8MPUn114Gb68mtKO2lwt19fh9aR8bfNH
+7BDE+KX5d0DfRYgajOW7I9TVFKxkvGsIxHXGevue2/hZOAECQQDlsg625dpBQjbl
+8nnRIMjGkSVbS/uxMr5jW17h3mMlXsas2wLWHFASgl0EkHYdUaLKwvCDYEIxbiy3
+CFdTmUwpAkEAySRB9XF66lW0xZt/KSE7UoBeQX03/OE8Rf3X4awPx9Ppb49Cbns0
+jKwqirZt2wTNB0GnbH04PhmEKwE/OJbfgQJAW6z2fH8+3h78ZEij4BjyqXYS795i
+xXWYUXWNaB7neWnbZ/A9sJE6UDjhwUmbKtaDX+PwNK89nBb6F89nc0FTCQJAReMe
+M9zJG3DKDbr4lN7iEMlfdpu+f1P3ME6B2vyAwyrDOirppx+R46rSYT3/r5DceD/8
+nzpm91TAUnztbYkmgQJBANbOtpCtC+XBO+ry6VVq+CCZX7IEYAcTd8L6AQGKw2V6
+iKRF5P+sraQ5hzy8zutPE+OnDfcf2OZgWCoYoUBTLSQ=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cernetxmu/cernetxmu.cert b/server/component/planetlab/cernetxmu/cernetxmu.cert
new file mode 100644 (file)
index 0000000..0549510
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0eG11
+MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy
+bmV0eG11MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjHAvqs0SoOQvZa/on
+VVJoSwj76HhGQVkPnDdN8kFOelHTOYIBU1t1tR6AeDam5Q9Cz9R+7phd04P1cZYX
+sbK3dpTaAx9/QtdlOYtJhb8Czl02VGiAIKGtucWGwdUqBhDjyL9OtAQLCeYYRDOR
+41FITTS8g1QoUuaddMkULWlCIQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAOEAEp5/
+fQsgpnUDp91rQkyp8kXVynwIGcq/yexKVP1sXR0B+RiSQNYae/Z80AFdyjaGxXv5
+54eaxTB4+nslYgSH5112freERD/VQVI5g265DBQbNslWM8cAjZKCznxE6+DYB+rq
+3MXDSynVGJ/FiO9dQ9ZMLzYAJy677iI0Dxve
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/cernetxmu/cernetxmu.pkey b/server/component/planetlab/cernetxmu/cernetxmu.pkey
new file mode 100644 (file)
index 0000000..90cf5e8
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDjHAvqs0SoOQvZa/onVVJoSwj76HhGQVkPnDdN8kFOelHTOYIB
+U1t1tR6AeDam5Q9Cz9R+7phd04P1cZYXsbK3dpTaAx9/QtdlOYtJhb8Czl02VGiA
+IKGtucWGwdUqBhDjyL9OtAQLCeYYRDOR41FITTS8g1QoUuaddMkULWlCIQIDAQAB
+AoGASnlhAwbkZdHHK/Y3ovxcuKyadpkGD+vP+8l7bUka11RPTtfV5P9jx5asOO6y
+5UnKFlu20CUHvATnie5EjOKNuvOm9/XypubZy5kY2phGx4xeWNylqmdvPb6QF1tQ
+AnLCMZqZoDG7IQqqJpHeWCBDXQj2c/qIoN1Gu+8ILCqG6H0CQQD4Yd9dcjxwgdxy
+ASRcEf6KB9uZwLHoHOrDJasz04bRdvD+kc1nnOjLFeX9SmpYOSKOn9Nhbmq7UVHq
+YREOG4O7AkEA6hMnqdnBBdtiOMHoovWAx+oJawqjdKR7IvZ1ZJWKD+SYqpKUnYsW
+N3wwwIVhQvAPZMuffikGytJCDLK1srad0wJBAJ0xM69sEJwTU3RDDMPID5NDjdMs
+hGslgd2nBUZzZCtEXxh9JcWhJCMC5N78LXlQD3K764cJ3jpWKMVwUN7gwukCQQDO
+ZBljAGfb/Da9CO1RUts8arXnNjguDyGsEFguWlSj8tJSBHEaAJuUTOLHvlOmK/nG
+zGxTV2VvzLkEbUcczzyVAkEAitZ/SQKEFIKyqTp8UJhaWOEl8cXXKq4BF2yUNBqL
+cJF/gEpK+1pa9cL5l30ZjQsI3UglZvKpe0PI0zLNN2aAzw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cernetzju/cernetzju.cert b/server/component/planetlab/cernetzju/cernetzju.cert
new file mode 100644 (file)
index 0000000..7bce17c
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0emp1
+MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy
+bmV0emp1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC41psBzJCUM4N89bkl
+ZscR7AS6/06JI5dA2X0XHEkJ1YJhHAVOWL/4N0ocHe4XjI58zp8ZH7Zs1p/Ypb0a
+i0Blgowxmlmiljo6QxcySp/7Gf2c2v5WvR2jooL4ifrqE4tvaGP8Jbe6taLJ8dh0
+o8vkZZAQBKHqBfIIqThtUOsdFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFPo1/q8
+a9GbA8l6BZBMNdnRv3ltdV0qETyXOas2Z+NRjutGUXBw5Tgz2+6OUIyw8+nzfd9U
+IE6jOm2es9gz1e8uhpHpbc9f/BHZu7WNF7uiszMmlw4R5eMou3AGEQGP92PL/VG6
+fdPU1NYJCF0vUHePSuoE9r2eQdoFeYEG7b5J
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/cernetzju/cernetzju.pkey b/server/component/planetlab/cernetzju/cernetzju.pkey
new file mode 100644 (file)
index 0000000..1ccc56f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC41psBzJCUM4N89bklZscR7AS6/06JI5dA2X0XHEkJ1YJhHAVO
+WL/4N0ocHe4XjI58zp8ZH7Zs1p/Ypb0ai0Blgowxmlmiljo6QxcySp/7Gf2c2v5W
+vR2jooL4ifrqE4tvaGP8Jbe6taLJ8dh0o8vkZZAQBKHqBfIIqThtUOsdFwIDAQAB
+AoGAILdbmGXs8U5s56FWtBgNBE8SR0cJT5zNGN1mFsEa7HKuMSIUjlmHIRgoNfHW
+QrTOQ6kO4BOM5pbWlDJB1oDvVLsTH1PXMl6sLuy4/PMVjwqKLhXOOxEIqfGY+axM
+VfHXX5+N9BDYUCKVKJI/njqOvZrNvLPfLjM7YZI6t+vafIECQQDsFSPVsCejDqJj
+rH2kJOesdsHZXjWDVvUIzXBnCHdkQRPjdPh9j7/kxpY5xAf5y7YhA+J6hhLK4g92
+K2dj7fvrAkEAyG6z7R/8aMkhYvMkq7jSdGKmCojOQzpB+KEn+dq9lThRIFpHIEqP
+8CtndjjImXjDERjmh7pWpdde8ilmh/K0hQJAPQa17a4MgPTue0+CZuT3UjicoYDd
+2manDrB0Zt3kZvD/oCODfImlNBE1khcfbK4BFYW4jK2NvA41qvlLT6ScIwJACjJH
+iPqllpcU0bnY1buTSURzefm3tIfUL1fTdsx/9IVm6yRsleH1LJyoqMT+v3/7PHVt
+1N3P5qPsOpmMk8HvGQJAdaW/Ipy6ZoNxNTH/s2kURF9ppkBMO0FAkENe/ELglcM7
+BHudxfWofoJ7mSwDKSdkaaZMXoQ65GFZj26SXqw9yw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/cred_file b/server/component/planetlab/cred_file
new file mode 100644 (file)
index 0000000..baee0f4
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFDCCAX0CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDUwNVoXDTA4MDUwODE5NDUwNVowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALWW
+L+HnZBsm25whBQRhkxmQDy1ZxL1/RWQA81Ln855GFpD+IsRFAjYRX+uY8K4BFCGV
+kuGbljm/G8cb9trpFv29goQwO6NnB1zdCOEBthLvZXbytt0h4fKwnsl4bP0nU4Mt
+LNtwK3lqYtlww+a78briJ5YjxAxTFiAITW63dsjVAgMBAAGjcDBuMGwGA1UdEQEB
+/wRiMGCGXmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt
+MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6Y29tcDpwbGFu
+ZXRsYWIwDQYJKoZIhvcNAQEEBQADgYEAAXHGFK7T0PrNSNk0kDYeHm33WuMars2w
+LNAbFiqDmvJONGq1x7RmBSnskrqyI+pkMA3qHwnq5ixqcr+B45jOZfuZuhwQqSLc
+7iR06F3AC3Xad+uN++JR9zXUueNcy4hKrQPkIrPOSZJKow9IWEk/3f3TFQKu+pfm
+7gaaRN11vAg=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/equinixsi/equinixsi.cert b/server/component/planetlab/equinixsi/equinixsi.cert
new file mode 100644 (file)
index 0000000..22cccd5
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJZXF1aW5peHNp
+MB4XDTA4MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowFDESMBAGA1UEAxMJZXF1
+aW5peHNpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUiF/QE/IzkQQ47Vs
+Y+gOMig7vjYkZydOv9GV4IO75rcvWi46jzdziQusIa8IHBLIKq/EXbIDttS1vmr3
+JDzvBey3/ZLJVNyjlU309L3IfGLQn2KxhvO7Rtck6olpuvy3ehmRAI6YiTu3JLD1
+Vf/hmkkf8qWUUv3QxeNXn9i+AQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAC6Ez075
+hyhPyqwj3e30GoT5VSxZ7EPNFJ5s9QjF1XKEdBvkjydaZpZU9kS4tqfWWkubr9kr
+z/z8VEBJJibOmXn5m1k9qDKWvdJuajstq9hy0T3qkEF0bkbCIbRpv6ELWBdEyhXs
++xiOGvZri4tN3X8d9No8+iIP6JVGHpfedIp2
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/equinixsi/equinixsi.pkey b/server/component/planetlab/equinixsi/equinixsi.pkey
new file mode 100644 (file)
index 0000000..ed8b366
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCwUiF/QE/IzkQQ47VsY+gOMig7vjYkZydOv9GV4IO75rcvWi46
+jzdziQusIa8IHBLIKq/EXbIDttS1vmr3JDzvBey3/ZLJVNyjlU309L3IfGLQn2Kx
+hvO7Rtck6olpuvy3ehmRAI6YiTu3JLD1Vf/hmkkf8qWUUv3QxeNXn9i+AQIDAQAB
+AoGAVLiCA+Tg8Tm7FupzCAvROtD66AnzdfZiusIMcJmacrTfHE+Wmuip2kflZeYh
+diIXHDr2jcH/gS1ec511RB8Tb3FVX4Hz7UQpE80d8gHwANKCRVzkvOpjWT7P2w9E
+Nr2uzoPm9tTl0pD9eKPywCX4fwHozdNsHg/KHXDiTzz30IkCQQDnx4UWjPR3cur1
+LLv+LtMlKzUdNPROykd5xDIyPijg3oIeFVtnbwJFfeNM/NpTcKAEdTpfGurSEQqj
+0lx9NWFHAkEAwr8A3MBpT17T8HOyKN01Fq0EA0JTIrrxKFwuJ3aqRu2Cv0QzB8Lu
+OEt2uzTLtVb5s0pxumrtsfYD8TGDt8ZKdwJAGy61Fw305cVedN6INak8LhHBKum4
+9TyX4Vn3IRlVJfoyfGC41YqZU5kN/UtyN3Lv8VXmQJ0hiP1iqA/VtQF7pQJAX4/Y
+fXqRcpgmyeQL9Y9uwJzPzkWag/1V3yc0orrRHZLoyLBPlixqNweY0I48s9RlHTyX
+iBF2aBA/qPhSGTjdSwJAascMKL0kxlK38BsUa/EEVgY9ljSLRZ503BfJRoAfDtJt
+sDugaoW6uThetvCpmBraYE8vH9xT0Gd1z7HZAK3YzA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/aston/aston.cert b/server/component/planetlab/eu/aston/aston.cert
new file mode 100644 (file)
index 0000000..df8fa5f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVhc3RvbjAeFw0w
+ODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBAxDjAMBgNVBAMTBWFzdG9uMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhItY3WxNdSEOgvMlmQJDU4SpDqUmZ
+/cLkXhdkkgend1lysqTBGd0zUaq153a7vdyVFlDjjCWDy9IcWvzXxm+zW0AiocWO
+vkA3jSNlZlAFelTPQymkyemdoRVwDXwq5jLjd06Ce4Jw+O1Gmx16FoHAhsiEusn7
+9cHDLmlv2HtrhwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMkOlb+SEM8cKIzNe2vN
+UAm5/OQvCjsXWBMzPJJJqLjpLLXCmyU67qnF6vFcPTYbjD3qWVUmYuhDsmYi9X1K
+RFVaCzVbawv8S327/IjUAmJgqrfZWbx2n0jXRh9L4sCJKN+byHebx4Rdn/l7tNK3
+rurToaW1yGisqsoxalMAgzHu
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/aston/aston.pkey b/server/component/planetlab/eu/aston/aston.pkey
new file mode 100644 (file)
index 0000000..57f18eb
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQDhItY3WxNdSEOgvMlmQJDU4SpDqUmZ/cLkXhdkkgend1lysqTB
+Gd0zUaq153a7vdyVFlDjjCWDy9IcWvzXxm+zW0AiocWOvkA3jSNlZlAFelTPQymk
+yemdoRVwDXwq5jLjd06Ce4Jw+O1Gmx16FoHAhsiEusn79cHDLmlv2HtrhwIDAQAB
+AoGBAMjb8c61XNNus5dmlzC5Df4/XRu8n0PaGNTx9WDuwBFy88TXCRKW5rjwdaOQ
+/GeHfpMss8IvuRCa+bv+mXJRQjlQIUe0ZvPtaPu7btoWjNXpb7GXYAg5n1w3KV8l
+73UN7ctJqfDTx0zqOi/rG3Ifd1dHEiOXnb2OgCHzAcx5L+jhAkEA8MoOR5nc4Hrf
+Xzux9GbjF8rOHJhbBgzTok/4cpbQAkIbpe/Y5BvPaC87wI58dg74IWVBFN4mEyAW
+P6h4mnnBHwJBAO9bpNsBCjFbjzRChJ38zLe3beu5glNeLXxX2/EIPvEiEPbeeNgw
+zRRDFwdOxeMHAMK6KYB9VJnz8SsEmrBpAJkCQQDnkxv6prJzvhhXqbyy9cSQHD7v
+52MbRXjAULL72alBkryucSah81EcvNh1j1OJ40mmLJBT9nadzC05mdgrkM83AkEA
+ihaT8CkUaU9KObsaaU78CA1R5AmdD12o3jCN2euI7HJb2SCWFRtqZQMjmPqwHX7f
+yHfAE7m6gisC+m9oktexGQJBAIf0MBJe9emMEpm1O7x4GnCc4UuxbLwoM3NLj9vU
+FnOWfwtdsh4kZGsvFDrVutkQ69Myu7wO0P9j2V04ZPHqFxI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/bamberg/bamberg.cert b/server/component/planetlab/eu/bamberg/bamberg.cert
new file mode 100644 (file)
index 0000000..af917cc
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdiYW1iZXJnMB4X
+DTA4MDMyODAzNDUxMloXDTEzMDMyNzAzNDUxMlowEjEQMA4GA1UEAxMHYmFtYmVy
+ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsTjYSNopBhkruvqj0irmcG9Q
+6yZkJ5855UBI6Mg3PPU+FZdaNjqaLUQ7KYLGaWOVEUiYU2ibLxSyqkcdoPgSitoK
+kB1jQvDH7zRnxiIvcN5a3I9lZe2V1/pMOEH3v4dffTCn+NjuqjBDxq/nOpy9NS+f
+6QUX11fmlyvX+85NYa8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA8Nn0ZAryb+VXB
+44LNQfZUgOzpTE+E4QwN1kw12TZ7zup0syf9lw47bbRraUTo+4Be0zQ3sSAV4WWG
+0IffaXHMF46mecGiotu5JzU7kqAhbMfWZ9cdY7emtErN5Q2R7qNt4gt3qTPFLQE2
+xkw4xqs4KVWaHDIR5cJcQacotiEarA==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/bamberg/bamberg.pkey b/server/component/planetlab/eu/bamberg/bamberg.pkey
new file mode 100644 (file)
index 0000000..865bc2e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCxONhI2ikGGSu6+qPSKuZwb1DrJmQnnznlQEjoyDc89T4Vl1o2
+OpotRDspgsZpY5URSJhTaJsvFLKqRx2g+BKK2gqQHWNC8MfvNGfGIi9w3lrcj2Vl
+7ZXX+kw4Qfe/h199MKf42O6qMEPGr+c6nL01L5/pBRfXV+aXK9f7zk1hrwIDAQAB
+AoGAQF0+4Caro5Vcton1GY2PJ+Kl5uGImoNPyZ0xXanpte/z3m+byfo6qJoRSqA+
+Y2RRbXeKKzDgu5au1P0DG8U9Jim59yDkHfyCgPiPrnbKZGsYskTrjYlNtiFdS5gi
+5iiKTk4rvM0RvpdfJq9eO1lAFmFfkaRdCcdwG4Pn1Q3zkwECQQDkE0e2htlohoCM
+Cli5M7Ht+xWQk0MJJk213iyQSw4NKg81/0AKCVC5TCUQNbkqNcH3YbFgsTBvxL7i
+r69SVx/vAkEAxuui43Wqz48Bepq+XyTMBeT6oBxX+MWA2wL546OMSo6rNxqccsJg
+ZpQvsnDhJ4xsTIy+Ctl/INB7FE/50hAaQQJAG2fhryInD7NR0QIRRTfcAo+wOK4p
+WPkcT2VCD5ilOJm8OC3SwSH7bDilH3yFInhRNWusx8Si4FtQ4KZht9A2SwJAYSPJ
+E9LuaxWm3zyaItRRXb+INJAi1bV9S3aUmXnQlMg/DFXOeKw7b1yGPlmpWirU6D0C
+wUGdN2UX9b9ofBCpAQJAbTWBCa0slC0jevP9lpFqD95IuqIdUqvLeA161/wFF66K
+MXfLyE879gEq0ymOEhXvIH1HqX/1ntZy8MBjsrS7ZA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/basel/basel.cert b/server/component/planetlab/eu/basel/basel.cert
new file mode 100644 (file)
index 0000000..e9c3291
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwViYXNlbDAeFw0w
+ODAzMjgwMzQ1MTFaFw0xMzAzMjcwMzQ1MTFaMBAxDjAMBgNVBAMTBWJhc2VsMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm6vgvoOYyxRFARTDsAr4roIVljF8A
+C2oTcRO9rwMlOjv351KNn1J44I6Wbo7k96kl7ss/hDJ6rh3mabUI1X5QSKRW+qgv
+o9nNXB8uaxjZYImzxAh/lXigP7gSFFKduDg1wvQPQ9JrUEmHGDh79R3AnXQy46Qd
+RCzi1tWTdCOAXQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAApNt6gFVAGcaMqKfyXm
+NaWSDywxQlfLeakh4cSl2RQRvzeagb7WknzUCTcyAcVTS+FTWF2ar4CN4T7kFkIJ
+8cSARUnEAdiovLluIFjsHT6cplSlVo4XyOmBJc2nV/kx03O/ZVE2KzXNmhUL2ILH
+mZSaBedAKzRa0DYNfHZNGkZW
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/basel/basel.pkey b/server/component/planetlab/eu/basel/basel.pkey
new file mode 100644 (file)
index 0000000..90983dc
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCm6vgvoOYyxRFARTDsAr4roIVljF8AC2oTcRO9rwMlOjv351KN
+n1J44I6Wbo7k96kl7ss/hDJ6rh3mabUI1X5QSKRW+qgvo9nNXB8uaxjZYImzxAh/
+lXigP7gSFFKduDg1wvQPQ9JrUEmHGDh79R3AnXQy46QdRCzi1tWTdCOAXQIDAQAB
+AoGAehWWHU/zzuJwca+pzpVa/pHTv6hhu6idl0a3h59AD7R+NB3PNaJ4Mc0cvU5z
+2WiDISl9IyHPwgcj+2kJbkKotWU14B/0d1JtZMQkZNzeTjRutFnetLlq+8GHbB3O
+7aGbm+18/THVjRa/iUFXMN+jFNErtEB1mcYc3I+pgdM3DAECQQDWWeOli4JCtDVh
+BR2Gu6fbttMDGhXhjLsXa5bCqoDQldy6GGNkTtHMoCQeEX1Ei+EpkvKpOHJ8EBt+
++9hrZ6DdAkEAx1mviJJWE3Uhn45x1EsEysVk1hBl1ePFY2nr4hhVjkykoaDrl/og
+LubbmNUGaG2eMDB6QlYUL9Mw9STNSOGlgQJANKAZDdm0f1/zAwDYgO2thnnaUJak
+7J06icN2XhCyU4OXj3DRZh0b0Rs4AtHUaXHWM/jJ7tXW9bKWrZRzS9tDWQJBAMUi
+yrRKyjY5qcNokOZ4PUfsRlhuJNaMhQFXmL2ghNLQtiljwjcrUbIv988+MjUI2dsb
+xXteNl5JAewatasyAYECQQCr048hst5rvKBQtWwgebSM6C08rXPjMsMEyhXuNkl9
+HnDilxnQJ9H1EXZMAoO3SYTQu6OFcvShMGjEtVfkId7p
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/budapest/budapest.cert b/server/component/planetlab/eu/budapest/budapest.cert
new file mode 100644 (file)
index 0000000..84b84fe
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhidWRhcGVzdDAe
+Fw0wODAzMjgwMzQ1MTJaFw0xMzAzMjcwMzQ1MTJaMBMxETAPBgNVBAMTCGJ1ZGFw
+ZXN0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC4Ia89aJVladDMP3vI6Ir
+vnNrpG9nUKC1/+G57iTwdcMrD6VCMVOh2LiXIvhJ+DqMRXObj/mtYBEOdlbVPiaQ
+d9N/p6d5Ohd0WgG4gIvWFVjVpXb48fNxOdJnbgeJLl04Y/wREx/ibJ86+z2oi1NS
+Mwh3AuQTNWvC7PIAaOvzuQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJiOVAY5zlLp
+qiBT/03vSMPy/7n/RPzUcMUV05bmKk4NX0309/MxWcmyyfeG4sZ32baoT2hBjivj
+0DaoGTrvp2BjXBuAyOwpqBKD5xx7XVrqZo8SGavAzfmw/E3aWGsakrX+jEzSb+k+
+lEPs5Nf+HWcBXN09CHRvjrKOeLyHOK0J
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/budapest/budapest.pkey b/server/component/planetlab/eu/budapest/budapest.pkey
new file mode 100644 (file)
index 0000000..258340a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDC4Ia89aJVladDMP3vI6IrvnNrpG9nUKC1/+G57iTwdcMrD6VC
+MVOh2LiXIvhJ+DqMRXObj/mtYBEOdlbVPiaQd9N/p6d5Ohd0WgG4gIvWFVjVpXb4
+8fNxOdJnbgeJLl04Y/wREx/ibJ86+z2oi1NSMwh3AuQTNWvC7PIAaOvzuQIDAQAB
+AoGAB1a1PEBz0I1GMz2REoRhAwy1BAS5PUbIBpKQSZQyR+vnYaPBMXDyGVI0AV0L
+xJ1YdxfWdrFBUcogWk8Sjg09Hnq+uDzvNJeCCnpIQXrK7B07o6qxNc616Jo3XzeL
+zY8fwzallYU0vUqdKv/MlNQUoBGZEFDPLSUrb6+I7GJTnxECQQD1lQeDX87UwNea
+9jJC2RLLoLnnbuo9zg5djuBOgbpNgP8Qv7WCtcinhD23O+a/4+mW/nf+6fzUfnK3
+gQyShIBDAkEAyyTZroDD1sA1ZmKuK9C/89uyhywaVFTB3K5tGJIkC9+3NUeK/U02
+d0MRfve76tFP5jDMnfYmhjVrSOD8oOFKUwJBAM9IHrNQZq9EpbbyHrI1rpuY6dDh
+2WyZQ57MPZ+F9837F073wSi2bsqV39GNCdLleAAugPH0ZaalpAYnMolotSkCQQCh
++7ZgQWjnushZ5eIAKiqFpu/KfU5ZZGRZNfTkHNQFa9RI9c1Mgd8mZiJzXdNIQLM3
+WD4wzvCVH892g4CuQDblAkBvNtWJC8d8dfGCfl/7j8v2A6soJ7e/VdaGY5Y0Gd6t
+IikUrHPy96AQ6IvyLyC2+Hu2hwp+F93YysY0EfUpOiWV
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/cesnet/cesnet.cert b/server/component/planetlab/eu/cesnet/cesnet.cert
new file mode 100644 (file)
index 0000000..bcbf30c
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZjZXNuZXQwHhcN
+MDgwMzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjARMQ8wDQYDVQQDEwZjZXNuZXQw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMmLxk8ynQsQmyHLGBT/LJbnDiLA
+Lb+NWL83XfYATmyUepxf3q/QL5c2pn5zWEn2tSj7Vk/i77n77uklRsz0Fyklp9Fm
+GnyRvL32TC/Q5G1YkVQD/TLwaqgFzgEalWxyxvWx6S1XphVH3N4KdQ6l4YqANAL4
+wM5JMDl6zSNb6owlAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAPSF/xBjhuhA+G+Wo
+mLLPzOmZMFvtzJDkBldiVHVW/BnH9m6tvpzot/ICJseCOMjL4FLr5XsNPQGY5Q06
+dMBOrAQ5F+P3797Vryqnt+aZ2Q7/3qmkz1U90xDWkY0YnPay99w1op8t+bU/urOB
+QCPBP5eXEAiW3YHoJglYY02mTtM=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/cesnet/cesnet.pkey b/server/component/planetlab/eu/cesnet/cesnet.pkey
new file mode 100644 (file)
index 0000000..9212c24
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDJi8ZPMp0LEJshyxgU/yyW5w4iwC2/jVi/N132AE5slHqcX96v
+0C+XNqZ+c1hJ9rUo+1ZP4u+5++7pJUbM9BcpJafRZhp8kby99kwv0ORtWJFUA/0y
+8GqoBc4BGpVscsb1sektV6YVR9zeCnUOpeGKgDQC+MDOSTA5es0jW+qMJQIDAQAB
+AoGAQM8Te9AYs8ApQlqeadIMMpIl94K4s0nuab6SFlLO5RdxvesOHpbhVsyaCTtp
+/o64fm8juBiPYczjbFEyTSGIeH5dKZt2HCR3/veYt3Y9TWRUKiJIyHX6T9lUvk3c
+a94ouLAbnznug/rZzgBgbEsTljxEA5l4xY0W+bGF64UnYgECQQDyv0nSirrOJZsN
+oCtqeuRhW3Sb1+3stBNNSE8Nx+DhVyiH3/7w5InpWko2T+FH8bS0itDIqVrew6zM
+ENds6yRBAkEA1IylHKnhEt1IqzVk/JjFBzn5FN/TD2PPDujGvgdSoxefk3lP9Wvh
+TzsdUFZ9FgYrwRbkIhfNh2CvFCYjhHOe5QJALwaPrpHhjn4Kg6E7x+z2wUWOWYKD
+PQ/FjXsslWbbUcwotenW4aPkc6hiKBNheSaB81fRCo6EZBNULlQ054zGAQJARHeV
+zFjwtrnvaa9Ge5PejAhhsxayj1eQYHYdZyNGvGCkt8WxOxZoOrSJKdLiclDEkWuF
+S3Itc7lyTGRItqbj/QJAVp3kuDwvZFPOPvKKxIGud8kDq6DUx6Qh1VBEzieECcBZ
+IHxAnhhS7yrhx5TGBb60ElsYlN8Cz5cHT2rrt7h2fw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/enst/enst.cert b/server/component/planetlab/eu/enst/enst.cert
new file mode 100644 (file)
index 0000000..aef7771
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRlbnN0MB4XDTA4
+MDMyODAzNDUxMVoXDTEzMDMyNzAzNDUxMVowDzENMAsGA1UEAxMEZW5zdDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzythg9Lyz4WQExbBco51Yp5eopHFTG62
+dqqmCKxwfUMcfdNejdZMpVHpK22ZguCLY+jzErF081hrvsnAh8mnYm2YgJQB+UH8
+VMv8+T1tZ93qw+0Fb/Ge2tfy66syLGYxt1Tv43wVhBpnQHBZLhp3bhB3m4iaCBBh
+FPOuovHAHPsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQArY4c80aunEoaNfFeJ6a7a
+aYz8ly5bLuhLPbPI5oM3JvtAVlFAvi1SdfYJei+CoJw8V79/hdcws7NyltCsAoyM
+KE+sJo0XmOuaiPIbrAY1zMvDMUxNQV35L4emBS8xvkb4lMS564nybiaWkdTLcj57
+R+uQYSN+eUhYM0ISl1UyNQ==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/enst/enst.pkey b/server/component/planetlab/eu/enst/enst.pkey
new file mode 100644 (file)
index 0000000..616175d
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDPK2GD0vLPhZATFsFyjnVinl6ikcVMbrZ2qqYIrHB9Qxx9016N
+1kylUekrbZmC4Itj6PMSsXTzWGu+ycCHyadibZiAlAH5QfxUy/z5PW1n3erD7QVv
+8Z7a1/LrqzIsZjG3VO/jfBWEGmdAcFkuGnduEHebiJoIEGEU866i8cAc+wIDAQAB
+AoGBAMrxbC1+0G2KIYERoZ9e/o8FJR+MPQKK0iOdN9j3U5rhy19XWCEJ9Ttd6lSo
+oOEcpm/RG40MWcyoqaPUb86VNGnr9OVMz1aKgtd7UT5/wSH6qNQqTyxmc5UvT9a5
+HYuZGrLhYKqpdHgCTAs8fFadBlqvie7Egjk4xUDgqL86U4uBAkEA75w/6Rjc02Tg
+3CMRO0ND/HhGk5QmPKr9O1VvoKauHVJ7BcggiSzVJNDfs9wXCBE59N5RW5QuBesC
++9A94Uv+uQJBAN1XEVpHrp+uQO+HgCMWUroihS8xdeXzmJFl7AoUzisdpgrf378T
+CozPhWtmVTVPbYlpw9mRVDUFtfG0mxdVP1MCQQCz40iQBZx0EH5IhwM+zMdT2jCS
+R11VmsG3M/M0Vy7M0MmPk6npkoEKvM3VyFx6MASk8+t8p4jN5Jw+1R4/8L/xAkAY
+z1OgnPxT5cJdlwCj7jKjro7jNVYTynRFh/knQCHD73TXLzTzQ/0gv3ojCbtvWFHc
+30AWuRWJQ/Sa/TWNLf8FAkByoMy2N0qxZHW56INWxeQxLUjQNjreokzc+uxnuid7
+99G90MYtDF2xB4MuoGEmuhncN2ootOzNJBtoJBhgXPrh
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/ethzcs/ethzcs.cert b/server/component/planetlab/eu/ethzcs/ethzcs.cert
new file mode 100644 (file)
index 0000000..09989f4
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZldGh6Y3MwHhcN
+MDgwMzI4MDM0NTExWhcNMTMwMzI3MDM0NTExWjARMQ8wDQYDVQQDEwZldGh6Y3Mw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMOZHp315vFgwqJt8NGyGjgjgGNy
+pIjQraOeOI7NiQtQGPatyHdLfQcx3NP/vr9IWvBiWuzc8nsefBGcCo7/zHgdPgFC
+4NwuLC+7wwx74vaUfQzZ/w4iwyCdK/z7D72N0aeArDXJtO6WyQDJ4Obq4VEynic/
++w1WqRiMocL1vcTDAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAmqgTWVs1am54+9uG
+o51Frye/U7bBuMIdQxW8sje31fpeovY5ax6L2VdwlpLzHHGTjwrt9P7QP1O+9Ate
+t5PInr8dRtnHwaTnfvjCPCBqiVUV2eZdQ5ykMuMGp8GjGp3YItYYrW3zjoyxhjLg
+n34+mlVKXVGJvsRNMtSd0QPqv+4=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/ethzcs/ethzcs.pkey b/server/component/planetlab/eu/ethzcs/ethzcs.pkey
new file mode 100644 (file)
index 0000000..5d7f051
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDDmR6d9ebxYMKibfDRsho4I4BjcqSI0K2jnjiOzYkLUBj2rch3
+S30HMdzT/76/SFrwYlrs3PJ7HnwRnAqO/8x4HT4BQuDcLiwvu8MMe+L2lH0M2f8O
+IsMgnSv8+w+9jdGngKw1ybTulskAyeDm6uFRMp4nP/sNVqkYjKHC9b3EwwIDAQAB
+AoGAQf3EHakcLK3nnOOYzzbWr8ASjfrc1igJnV1BWbSwmveAJKHHM7BtU2MYTRJI
+6cJgpB+a67UzviQv2cUartpQwlIQCF0lbeODfV02NJuRvm7l2zabPnsD3Vpkd/fT
+Ddypd58/fhtMkXC5in9OpkFBIhPZIBzoozGcRPBGBBCUKaECQQD0SFqoxNNpOIol
+Uef52Ns5GRZqJAk3KL2bYQ4u60Wus06NZ9h0IaRHGXFCPmxjsFRBxOecZKIvtuKW
+9fCTSSixAkEAzPry1EGgoFl293tSW/eVBa/ppkc20Xqum6d0LAff1U7m7xYJgDKS
+NPnF0hFOzJ6sdnSu2EUm2dfdVfQ0Bq+hswJAHIeOvwMtxa4qxC0KsK1Y/RQnAAJx
+aRXC/zCYnXYwzzR1yiIEr5t2Oi+IgLoVopbnYD8E5ckDABuV3xeeHzV+IQJAXu3N
+La2jBP/Jz71GHB9h3XtlesM6SPNHEAESFR4kdDYRTyJmjf9dpLkT+0BWvP6zIjzR
+iIkl//cvoxHwUjRebwJAGG5LWzSUdoKEdJIaVY+Di2BNcnCrY9aPHE1MfmPrMWe6
+6uoRR1h2M+Zjwg8utfZZHiSVXRD5aiXbpxONw6Jsww==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/eu.cert b/server/component/planetlab/eu/eu.cert
new file mode 100644 (file)
index 0000000..7150322
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJldTAeFw0wODAz
+MjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMA0xCzAJBgNVBAMTAmV1MIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQDqHC9YfOeLuKZo00SXcAb0nbblh6CXXC12EWRP
+ONatusAytLXOmwFFx4/wwAAkXoRFeigwbwIoOdasZxbXdTDEGIK2Ca3/ZgRaDJ/Q
+Gox5xFSlQnDymMqQwKMy4orplR5F4sCvK7bX5eZ2TaJK/B/old4ztyUVD7fNWtaD
+ywD09QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJlRUNLmYhdpShPAcZLTDtP8ThQg
+ck9r1qS+nm/yH+vifbYxkcovj4mNk0QwT9Ji9wIqyBBLIWkiQHHKIZsLrqd44NWQ
+Z72zY2tghAPZ5StfWXymMzSPXOlEYXeiKhh18jKwJCqNMQys/g/rc7cANT5zvHlL
++KgWEIeKa3eZ9g0a
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/eu.pkey b/server/component/planetlab/eu/eu.pkey
new file mode 100644 (file)
index 0000000..d08593e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDqHC9YfOeLuKZo00SXcAb0nbblh6CXXC12EWRPONatusAytLXO
+mwFFx4/wwAAkXoRFeigwbwIoOdasZxbXdTDEGIK2Ca3/ZgRaDJ/QGox5xFSlQnDy
+mMqQwKMy4orplR5F4sCvK7bX5eZ2TaJK/B/old4ztyUVD7fNWtaDywD09QIDAQAB
+AoGAUT/Q6rwGvEYscusHvisiLtlhtY15na5fFL/6eUg3sXnD5JU1F+xR577X5O0t
+33FyJI69zflo3T8dkx4AHmzMrEfw+UKV4lxL7sIY3Z7+Myk0Xi3cQeMJZ2pmScOU
+2aLXvoF8knBpvwN4aGriXyJLLCigwRnFk4Wv9yQypzQlWG0CQQD9jTeLbgwwUQNz
+MnaNheqZFhCgjHaSs7q8klGZp7tPdf+pp0m2S8yZTx8BDCdAdbVeMFnxsq1ObP0X
+ROBy/O3DAkEA7F7ogtQ8+XWUjDe+jowOQiGyBGeQzDBnG/EMZMg+m1yOd7vPW/Tt
+UvfYM7E7DsI5kVPyb9IgrORtPRl2KAdO5wJAT9pJw//ElvLswzsBW1DxsYThd67F
+KS6xgPIUAPBybXQcMLIe5Oq6ZQ4mFY5eTk7D8AYKTbSYIDry+oEWryA5QQJBALAv
+pjwumyyOuiUyP/Xc65vbpeemksXApnqrWEOfBxujCAazlULD9EpNt3gAeTbtCyAK
+ZMF47SYyNkK+wdXgbK0CQQD4FR/Zbo9fGuR6C+zV9BO/GfF2HP7986y4/UhPRqnB
+AkCVOZTNTKGRMgtfWJ4uOX4lZofsVyt3JkZk4JZ1lD1q
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/eurecom/eurecom.cert b/server/component/planetlab/eu/eurecom/eurecom.cert
new file mode 100644 (file)
index 0000000..20b6774
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdldXJlY29tMB4X
+DTA4MDMyODAzNDUxMVoXDTEzMDMyNzAzNDUxMVowEjEQMA4GA1UEAxMHZXVyZWNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHptkJhfxO8csVHW3Nh6+Xdf
+wSxDSLG/C1OB3MIaZ5hZx67Z2nY8yTq16btMr3KW6HkiUWcggFhm6ODIt6xZl/Hi
+s2KnRuxPxHghmmflCcV9NOV+gSCS2fK6XVkEQWGjH9SbbSwaxuNsxgrremH1KEpt
+lbMexhZEoCLPsK6AaDUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCbalTuhd9eFTu0
+aSRh8h2MzQLrSFXvSeNxNEeMN+h7TAnDHa5foNB/AIrn6xKjwKGmRcIn6SCXXgsc
+0l0Eo/Tp5VTyocYApeBz4Z5MQgS2Jhj+eAVjqzvpKet0vfzQvHCmCHD3hILtcZg7
+LQVHX3w7j+W8xgMuNzIVL+vvhr1+WQ==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/eurecom/eurecom.pkey b/server/component/planetlab/eu/eurecom/eurecom.pkey
new file mode 100644 (file)
index 0000000..09e646e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDAem2QmF/E7xyxUdbc2Hr5d1/BLENIsb8LU4HcwhpnmFnHrtna
+djzJOrXpu0yvcpboeSJRZyCAWGbo4Mi3rFmX8eKzYqdG7E/EeCGaZ+UJxX005X6B
+IJLZ8rpdWQRBYaMf1JttLBrG42zGCut6YfUoSm2Vsx7GFkSgIs+wroBoNQIDAQAB
+AoGBAKSo14xIXj16FQC4s2gQpfs+HSODezf4HyhQUxsIzk/rbHq/4Uzbs5quaCtA
++RRqoiDUaABdiddiSP9WNT+z6Jvw7/RHtVBA8/t+3IVol0J5JyZXIjtxHAIr5sJi
+4zT6tibREPpA75JQS4tZb1jzh7o40FXLwjpT5h7DhHaYBECtAkEA5M/UzThkVqrh
+MFJANc1JFbGxw14C5aad/KJ/w54Wp9ntAFaufzH/4LZJVv2z//nlh/3nIexZIXdI
+BRjpgu9eewJBANdZX8LTrrwlBT1RIljK0CjQE3xQggOQyFMS2JgsLqco/ACvKDCe
+vIlYhbrs7a3tQxz65CjOWEVn7ELeFllm7Q8CQGRJAwf/U1r5AkHfiu0J0KKFg1gR
+eEuXP19fCYh/XYar6UhgtZJiI7glrPdHswDaUlPMYOVpZZdZZGN3i8ErkMkCQGOI
+oJU5J/M4HTLZFEn7+7hRbCAySdWCDsUu2cOD8FA8xjU+wBGw3K2Sp8TdC4IvPqzf
+XaNqtCvoO7AwXB4YT4sCQB2C92++rozjILLzaZCVcZB3/KTz3dhDm098gCjwT3FD
+Qp9TJbGu2gHDMOi/+FkjebbcCPdIbi673jeWLRrq420=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/fokus/fokus.cert b/server/component/planetlab/eu/fokus/fokus.cert
new file mode 100644 (file)
index 0000000..09bb754
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVmb2t1czAeFw0w
+ODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBAxDjAMBgNVBAMTBWZva3VzMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCvsj70OcS5KZc6ZSzgfhwO0rUQjRy
+SwlywNLsOl1LiYEW3DMYsjM7itxsVHmgyc7MXQECx+drmrr1WMdaTJbtFUEQ+Cw/
+VPRvYL5lGeKb25GYN7AG5FbE/0In9wM16qBkIcCEACis+xfcKhBCWfC12N+WiCD/
+7PfJhesjAElv9wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIxtLycCN44lgR7m6tPD
+5QJriSSIcKh32mjtEmms3hz9wgIC77NLMxf3dUHZnbd5wHWzic5HowE2aICM3Ojw
+5FX+AJNj6rbT3ay7YTnI9aqYj93Ae5ILvYUF3D0jx1bf/OelBGxxcDGDH0mfnLHb
+nqgJIZy+ykHsGnCrfYpdTMi5
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/fokus/fokus.pkey b/server/component/planetlab/eu/fokus/fokus.pkey
new file mode 100644 (file)
index 0000000..717abc6
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDCvsj70OcS5KZc6ZSzgfhwO0rUQjRySwlywNLsOl1LiYEW3DMY
+sjM7itxsVHmgyc7MXQECx+drmrr1WMdaTJbtFUEQ+Cw/VPRvYL5lGeKb25GYN7AG
+5FbE/0In9wM16qBkIcCEACis+xfcKhBCWfC12N+WiCD/7PfJhesjAElv9wIDAQAB
+AoGBAJ18N4AcUaFfsoFUi2IW6tenuz2nRE5hDAT2lhten2+khPX9oHyKLxApnVMl
+hS5XxJpTY6viCO1ltWcPIjeN1EX+yjUrN+H1v3YMNf8+1bjXn3pbbtFS8kM0rCDO
+08fGEzBoU344vGnQs+Ng7Lw+2S4Mp4Z3YGk2PuB0KJmvSyzhAkEA9PLGQdf4gliI
+EjefsuGVl2Cu8/bNxcn+7vPl3vvnoMGDnI60DFNEGgAi8UthiX+nz7ErydQmj75Y
+K9pdlti9WQJBAMuIJnVOrWlx6MbZzFM5SkpzHckdBkuZlUW+EvlLfQmfPUj6yq+v
+Bl951m6RtZCqB5BgM/jl5EcSZnz29VlXXc8CQQCx3OehQBWvcGG9+K350lwxQ39G
+n1vj1z1KfcfZFsmmrV3H/Mc4e+3jg13cIIR+tzc/VMMbFvW5Qtn7XeC/fDphAkEA
+n/9ctDTwT4cTRVarr/TGePY7wQCHFWEbnmLISZ9VIP5EUB2OvkLp0J5Xuj3jLGDt
+Z0qpMI2QQWqulKgSwXPTswJANzY+qdqxsP4AMAOsCnFEIWhHzQYxZsABupiztoUR
+88vcCcUXfociKq2Rq2H32ZP/fUkqAH5fxFrHoYfv86RdVw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/hawh/hawh.cert b/server/component/planetlab/eu/hawh/hawh.cert
new file mode 100644 (file)
index 0000000..d3a9eee
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRoYXdoMB4XDTA4
+MDMyODAzNDUxMloXDTEzMDMyNzAzNDUxMlowDzENMAsGA1UEAxMEaGF3aDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAraNVWkOIx6q3QgWENg+ctj2zKPwqHzSn
+esPQGV2/oeFflpLhcI3wkIunmmOkjTEKU21l91h7PZHhO8Unu9pijstrMSEV9dSF
+9KS++UlFxNr1WUN1E24h0lGYpxg7at5jJyABYsZxicEDGTJC1KDz5hYlsJuzZOdP
+m4fqtknWlUUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBO5Ij8xJ4a/C8QyEwrhqqq
+lPFmR6LOj9E7QKUDkvTN4aUcyAhwKFO3jPYUj0kTKEZrMYHfBuAZCOKuqZ3CsiM4
+Q3MbsrsK2QaaN7Y96Hi4+y6I2AxURhPny94+cvpuy+R772CImZcQkchbYkWN9PxS
+6j9KZpingwedMCfTDhmaXg==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/hawh/hawh.pkey b/server/component/planetlab/eu/hawh/hawh.pkey
new file mode 100644 (file)
index 0000000..18d860a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCto1VaQ4jHqrdCBYQ2D5y2PbMo/CofNKd6w9AZXb+h4V+WkuFw
+jfCQi6eaY6SNMQpTbWX3WHs9keE7xSe72mKOy2sxIRX11IX0pL75SUXE2vVZQ3UT
+biHSUZinGDtq3mMnIAFixnGJwQMZMkLUoPPmFiWwm7Nk50+bh+q2SdaVRQIDAQAB
+AoGBAI1A7DRr8B+OD1rUJgPcm33dn5vd115fdUd3eBjKnRRRxXM2tdLchTDxiz0b
+hked92p6+pJHFqq1u+blsjctpzJv1OkVwQAtAjMCEXJkV4oHp7WBQzkB38vrsSkj
+61UY8+zx+s6f0T+ufOzP9X9hHBgnYG97iKH5thRBs2AHMyQBAkEA1buEGBmn7INw
+fO3ZTLOlMbM+00sZ8XcUAKDL9wbTRUDTT50KMsBEv2FoyDozj2qzdQ1+VPQ+wjCJ
+1gwNGZPcgQJBAM/5+7aWWDEK4XsbD1hD4eBQ9ExNEvDHX1SpC7pNRyEV7gb1zCRo
+bfdrkTfEgVhkl8QdluRlmVFiMCEZW9Hy5sUCQQDMN1Y4nNL5RoGFrNFy2zddLJI7
+20dXk1qWWw1n46qcQhtlt3wWD+XgIte2cP3w65e6oQDzdUg9zZj13x/pL4GBAkAl
+jERdmpchg41h5GjIzrig/vycKe4ZemVDq6FqaTlGR+dJamcIy7HO0aTOJLQVeVPN
+HGp5ob4ka021LBbfuLLhAkAu23E7+Fu2juZHVnd/tbb59TRvewUHLMX1dNhRgQ6O
+Dhio1INSE3+JfdMHWBuDKmh8mAlBE46GdAq0ejfvScVH
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/inria/inria.cert b/server/component/planetlab/eu/inria/inria.cert
new file mode 100644 (file)
index 0000000..2af2bd6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpbnJpYTAeFw0w
+ODAzMjgwMzQ1MTFaFw0xMzAzMjcwMzQ1MTFaMBAxDjAMBgNVBAMTBWlucmlhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUB3CRlBac5jA61ydzRIu5ZlJIs1qg
+UYkNbkFCqs5kb+g+NGU8/jZ6ib2NBYLZeiKULFly/TygM/RuCmCbXDm3HB1ua+Er
+wfHH8PgCPC6xhukurBfIcW9z1m4xtIL59uSWHcSOTaaIUyUxpf+olRZSjVWCZXjA
+w1FKO4Mcja7ZVwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAC0hE3yEmrKDcwHLDKvn
+Aw+lESJrcRgMn5aR0i7gG+cyFImle2i/qVg1C8S2N0Fsama6gV08aRKoelkETlsl
+rpbN1EEGmCyGXo0ZrKQcGyRGePtD4EBUNvVADwp3xsHgDLLN02NcxAbIe8V1tr79
+bN2MVTUfqGHYyqPSMAgWNpB0
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/inria/inria.pkey b/server/component/planetlab/eu/inria/inria.pkey
new file mode 100644 (file)
index 0000000..4fea2f5
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDUB3CRlBac5jA61ydzRIu5ZlJIs1qgUYkNbkFCqs5kb+g+NGU8
+/jZ6ib2NBYLZeiKULFly/TygM/RuCmCbXDm3HB1ua+ErwfHH8PgCPC6xhukurBfI
+cW9z1m4xtIL59uSWHcSOTaaIUyUxpf+olRZSjVWCZXjAw1FKO4Mcja7ZVwIDAQAB
+AoGAO8V5I2D22vY9RGkg0urQ5MwGiD4fXzB9DU82kH+sPT4a32ZP39jeLL8ls1qJ
+X5uBofm6oaLn81WSI29DeqiOEB/zcu0QALv6qf1PzaZjJHMSA8nBpTShGPHngzKL
+0i5aPmMulfwx8AvopxqGWuwXBoo5hYB186se0kDkh4aGL1ECQQD5FKhQgd1Q1EU7
+VZVwEIfyDkkXEGXHxZxCGKErTRvZY713FVgWKPbql2LoJLz/md9HzMJC5py6wraF
+i4Q2eerfAkEA2etJ7mGKRlWk2jf6ujtcR5kpyY2WNJJAEl4Ad+5YBdut/qVwyp7c
+qmB0cyXn4MiOPzNs9E+16hDS0UuaBDzYiQJBAI+cI3dXiN0Dpm8RZznXrioXpniP
+0b8e5nsNbE9lA/uREDpKqiEMuWCErFggZoAQnbXuDss334GmpknVKQOnw40CQQDW
+3dtAs2YuoYVxMN8EP0Fmy0tbk0J2RXntYkhd+GFMLWXq/l8vOeJkD8TiQI7YoYc4
+I9GbNvkseDgV69BJu2DZAkEAmq3b7bKzWV7LIzzT9C+n6sJk4ceHbOmNU1UUXEyR
+piMtZ5Diiu/XIbMK3BX7DOgwyjZg3PYn6T1ETkiGLuEoiQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/irisa/irisa.cert b/server/component/planetlab/eu/irisa/irisa.cert
new file mode 100644 (file)
index 0000000..35e4662
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpcmlzYTAeFw0w
+ODAzMjgwMzQ1MTJaFw0xMzAzMjcwMzQ1MTJaMBAxDjAMBgNVBAMTBWlyaXNhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4aHi15dxe2j22K6SaUVfn/M/qi93D
+MNqm66kYfDnoHW1S578KuvYKm8LjHMxE1iEmQYaPBlUhuFI4GA2sXCvkwOa4DXmk
+4Y9drbsXbes1xUKPgW4pk6aWUWoEF++Yom8oUs88Cj2fYj6hYWJMH+vwxe2hEug3
+GQJgt+PzwrwFUQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADYmO3j6KxWng87gcqKy
+WPYlXzsmHsY12l7SHxCvuVA/LWEi/+Lq/mIKs8NP0Vz3usTLC0Tlnux8zA3eY/BV
+RogbG2zMCqMOWmGI6Cuk5www6kg8xcB0pEdEOSrCkdl6tOvD+P70qENdCyzTVRAq
+UYu6jXXfgOqEFKsA8RsLyjz2
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/irisa/irisa.pkey b/server/component/planetlab/eu/irisa/irisa.pkey
new file mode 100644 (file)
index 0000000..9d45280
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC4aHi15dxe2j22K6SaUVfn/M/qi93DMNqm66kYfDnoHW1S578K
+uvYKm8LjHMxE1iEmQYaPBlUhuFI4GA2sXCvkwOa4DXmk4Y9drbsXbes1xUKPgW4p
+k6aWUWoEF++Yom8oUs88Cj2fYj6hYWJMH+vwxe2hEug3GQJgt+PzwrwFUQIDAQAB
+AoGBAJXYnq4AWG/jG15aXGjhTHNAZZsLiGpB2ork2AUDfPJ2Zw2FLyIDBkdchqKS
+FhKhhVJW0IaL+MVrx7O5J/M0+pyIP7S4tC34+hmMEMEnLX5kz+5Ew0mz0X9DA3q6
+Y9tCpXMK1ZcMJ0+aKHKtQ3l+EO0UpW3ktbSyXP8n3pFtahU5AkEA3w0Otqu+PtyR
+QneXmTyYUKGfBob5gkrnCt5JzXKH+ZeLNma88gRlLRD0zVaTa7IHuo9WGfWRYrda
+jNbIMkMEAwJBANOmFfC0qP4hTYJp2E1KVweDr/5fBKdnHGLFFAgPfhjCR/SrU3dW
+CuhtXWfqWLx7nlpbYwHt9VjVe2GuZVFKMxsCQDLVbv0CtyDsc86KIuqxfKUjsHJ0
+YHjpSS6Y6okACS1A9GE5mOYvSj+zFZeWm5J3yHskH6Na6/9reh+O86FA1LECQC2I
+NoIhK5X4bidXQ/xkuNJaBzuvD15ANYAeK9AMHTGQYlCFpyAuN4yHMqgPZ2WtJoUD
+0gnxOm4RB0kdbpiNYO8CQDTRO9fv8+Kj/Ae2cEgNtpzdIBZbkD+pfMQbIhbOlbV7
+4zUniBi6a3oyPMJhLB4+cDyPXgU4MkhJ1+g0f/DG/yo=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/konstanz/konstanz.cert b/server/component/planetlab/eu/konstanz/konstanz.cert
new file mode 100644 (file)
index 0000000..a2b81f2
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhrb25zdGFuejAe
+Fw0wODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBMxETAPBgNVBAMTCGtvbnN0
+YW56MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWT2bjARg/AQ8DEkNPpyl
+5YAolBOgKC1y06iY7xzEttATHJCzYKzKQXMe5PUNjyzC2uBo7r3vfvwyI/wybIWO
+m+irk6MZFR6113aszUbfU6qjdwOr75NGA30+WIWYAtCLGAPp0bSgfVZ1/3ubPaGo
+fBO11Y4Gx2K0S4raiOxLXwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAL+CG7ZLbQVb
+QOedZ0wjFNHJnB0Ljq64egmLLxGm282ILaIjfCRHgO7t+YTLav83VWgauDvDEhqg
+HOE8AbMfwsqnB9/9qdvY4CcYQZLP8GTrlXw0VJ30EAhE1l8zJACSNJ5EdWanynlD
+y4KNFMTvmuml7vCGIk5nCct4KHN4Fsdr
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/konstanz/konstanz.pkey b/server/component/planetlab/eu/konstanz/konstanz.pkey
new file mode 100644 (file)
index 0000000..91c5ab4
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDQWT2bjARg/AQ8DEkNPpyl5YAolBOgKC1y06iY7xzEttATHJCz
+YKzKQXMe5PUNjyzC2uBo7r3vfvwyI/wybIWOm+irk6MZFR6113aszUbfU6qjdwOr
+75NGA30+WIWYAtCLGAPp0bSgfVZ1/3ubPaGofBO11Y4Gx2K0S4raiOxLXwIDAQAB
+AoGAb4HDgjM+yLU4gvbERi1jYzpgC9esZUP7hwAWtLsMd4+r7v6Txx0PfTPoK/m3
+2WjuON8xyZc02i/pQ+CUglwoYcJ7+UIcAvV9Q0FpWifTqu6wuEVIQ/uak+PnfNJn
+HgQ3JoBaMc/kjPwifsP8ZH1cI9LzxbgJSz2a/gqOLxQJ9LkCQQDqt3pnz0kDxDu/
+2NHtEZFMWlnMS/zb/wSQUQin6NWdMi4cL2vPPBoYSfNRu6PYFirgY3gPiowF8dXt
+pqQjZ+l1AkEA4z2stRzqXlLFe3rEKT8/T9fCGg/OSVRd9HNq1QaWL8Z4qe8lS0Hu
+l60S+CxKF5VdSCLxIb4tRiDqHvJAHeFzAwJBAMuXJpeQ1xZrSiBYY46spEmEPUvV
+xZjVlRHRGB78+P0HH7PW9j6lNUVIL8P/bFjssXg9D1D7rgUiBZvD5a/IXFkCQCyK
+tEWz60Sd2NPBVp33JcPSuNs+6eJ5xQjbbr9e0SWAM7qrg5Xi0I+ufx9iHwvMXUJ8
+huNkUZ+DaCC0v1icDl0CQFGvVWVIt2gs+zRktRDn4A+9bn9DNQR4EYjXFRLpcjZR
+9BToOH4F1YFwN8KsLsd1Trwxbgn95tcSLVsGv+i/df8=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/lisbon/lisbon.cert b/server/component/planetlab/eu/lisbon/lisbon.cert
new file mode 100644 (file)
index 0000000..68acab5
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZsaXNib24wHhcN
+MDgwMzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjARMQ8wDQYDVQQDEwZsaXNib24w
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMkMVksDZpnD0JPgwE9Bef6HmLu/
+hbnXMkYY1myiz6t1k++O3drDeHwk+8xv/CIaRN1373Fk8AY79xzBndpE/JyrDK7b
++zzF4+l/E+AypBu1744WK6t+Vb0X57NvearVYj5qqw+dMbDAXsG8VZpqTMvgvFga
+0VWEJHaLRnA7DMYPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAFvusHll6EiW+MugQ
+xiv4YrEz3mgZGligfsYgdO+S5DqSVGVw/oQZ9s+d955wKcLm8cplyq3SZjjxbQo5
+WSH/3WM6Yc5dq9JxKugOQvCW8xEkktAkxDXd6pxzKtKVNt3NVyqCIQnJI1eNHZDD
+K1N9wiQrABEaPmp66QTyLCqnaZ0=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/lisbon/lisbon.pkey b/server/component/planetlab/eu/lisbon/lisbon.pkey
new file mode 100644 (file)
index 0000000..f0c0e62
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDJDFZLA2aZw9CT4MBPQXn+h5i7v4W51zJGGNZsos+rdZPvjt3a
+w3h8JPvMb/wiGkTdd+9xZPAGO/ccwZ3aRPycqwyu2/s8xePpfxPgMqQbte+OFiur
+flW9F+ezb3mq1WI+aqsPnTGwwF7BvFWaakzL4LxYGtFVhCR2i0ZwOwzGDwIDAQAB
+AoGBAMDTpVxTCbAHAGEk2i3p5eD7GsFQAyloPd6/acFOMpIHtni4dQ6iFkgzjJHb
+Al+PBGfJ5YzDu/auwucAyK6VJhZEkzaX2Bs0LxB4mRuZkyAdyaNkopsLKlLGIFjn
+ooofucnegUCxPpTOmqW8eP5UVeDPW4JNB2KCTquM9BVKg45hAkEA98qW3cdtbinV
+pHLnSl0dDOF52EtZZV8l4cVQZaojtW2hRw16z4lBVXR1i4dbPci+NK0BGJlJn3wG
+G+KIdvwVUQJBAM+1Vtnytxaedz8Xu4QlaYiNLifJJevlnJb3m1HNd89s+AqZrcRn
+UOdophiHd619i2muYKegUpbJWPUTQ5+/zV8CQC4+oe9cE8E2j4e0ZhQL0qsfvYSv
+c0ym+EPtdjazDR0EC9Bd5Kis3gOby4Axz8Z1G4JrM0Qq/4GDPQShP4StQTECQQC8
+Q7eHMPI2tEeNjmtOqcJwHNc7BJ00phg61g+YI8522mQw536TSLoSJc526ULWo7ab
+gYzmIvD472OML3vZ7jWtAkEAvDSN63WyYNcRginRZDz3DtCBLDnKH7DP84KbSWU4
+pNZY05m99ncDEreUQUE+C5gIfrgHxj7OoU6vej96sXPwEg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/moscowstate/moscowstate.cert b/server/component/planetlab/eu/moscowstate/moscowstate.cert
new file mode 100644 (file)
index 0000000..7be3a6f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLbW9zY293c3Rh
+dGUwHhcNMDgwMzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjAWMRQwEgYDVQQDEwtt
+b3Njb3dzdGF0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAl627vZKnAp6G
+ENRWovRyvghFcKRpfdUPH/3y8sc6VU6gaBOe6Gj6zYzQmVWsUALUYImrhNKuHqby
+gJkU1FJE7Gvl06FW12bOHXgxCZ+++RVdA718BRtJ35eg155kXY/H8xQJA+IQfOcs
+8VT5HBMNj1SQdDDV5VUniJN8nq4qGkkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCJ
+JCqRa3eH+edF6N01F5p+CbD7CU+yACr1SRoVYT/vEFduy0ILDMSdsoyK5eKNKkbI
+yx0LPnR63Sz/0T41Bw4MJvepDkWebKGiHkvR2ijH4M7DslrXRCQbiFJ/RMlh9eGZ
+I0kxWyfQ++DvwTM8PKskEGvDZ3Aoa8U8ZMPDbzvuYA==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/moscowstate/moscowstate.pkey b/server/component/planetlab/eu/moscowstate/moscowstate.pkey
new file mode 100644 (file)
index 0000000..7b0be2c
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCXrbu9kqcCnoYQ1Fai9HK+CEVwpGl91Q8f/fLyxzpVTqBoE57o
+aPrNjNCZVaxQAtRgiauE0q4epvKAmRTUUkTsa+XToVbXZs4deDEJn775FV0DvXwF
+G0nfl6DXnmRdj8fzFAkD4hB85yzxVPkcEw2PVJB0MNXlVSeIk3yerioaSQIDAQAB
+AoGAXUqBP49U45qHERDZHK9HZ7SEqUymibui6uVyKXr6WP/cT0dKJN507DphDv6P
+1kJ3R81FTpOafsXmP8xn8FONif5Fxgwd4IhjMpzvMFTl78WqBDIzPtoMvkCYnzeI
+jWrFQuCGbsJqKcqNq8x3Pc4nr6Noyp8W3d6SKvJyjFFO5BECQQDG86Tk16i7fZHP
+4jWfSI2eJq/5K1SqtvZLpr3tHAvJ+tQEnCTPSN6mAzhmt5f9B5nbz8TYShlO/Gsm
+zwOg+w4FAkEAwyvvm9JbPqh7CuUSE0j5fOdsjZ473csln0hz/Tp+Zg55h95uQzmn
+gnkc/SYL4rk/SB1M7Rdo8LiXbbKPlsaKdQJAAzY3uUIKBUzXp8V9HB8tuhnhyWH7
+se3WOA5vDn7fadlUxuZGadpBTejLZk0cdQdEYpoOEXfQxMeqayv4YQbsiQJAOxok
+9yTeaL0QdZ4kuR5SHtbd8ozGSEXqYK/KIBcEi9c6SkC7VzQwW7xdYPOSidfbJ/Vn
+hCygpLThdmCqRthcuQJBAJg7AgQYAShkV0dWo2+8V2phqD1OOydQGlmVxV5l/3yM
+EPGI4nacY55lEf2thkectSzyOVnUdlqf3fhiVxzzZEw=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/msuchem/msuchem.cert b/server/component/planetlab/eu/msuchem/msuchem.cert
new file mode 100644 (file)
index 0000000..145aced
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdtc3VjaGVtMB4X
+DTA4MDMyODAzNDUxMloXDTEzMDMyNzAzNDUxMlowEjEQMA4GA1UEAxMHbXN1Y2hl
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArPBMxnccIJ7m8M3B4KxsUj0U
+4GwaS48ZDXp0nJSf/sRIiFEw1lGFYH246UaklHpOWejrgPsx8QneEHDVNHZoxVp2
+bE0nQ6DAqrNBX0YPCW5URJi21ufMz/SiFLPAn+BHYGqI+TPiy2IrhwaXXQunetBL
+CejJlm4Fiwwl0qCITq0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBT2aVYrS9V01P1
+DeC6AW+qVS/jNqzST0j5lGrpmJ+vp3O5oGxkM5KT2JIiuy0thilK1w3+RF8nOw1q
+tp9+e4inxujR/NWdW7L1fUemPMX1h9VI0o1w8S9xSFm9/ShyNf1cM9yS8nVYi3JU
+TMRydbPlsMNK1gFuZdIvuzVvuzxDUA==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/msuchem/msuchem.pkey b/server/component/planetlab/eu/msuchem/msuchem.pkey
new file mode 100644 (file)
index 0000000..7285d8c
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCs8EzGdxwgnubwzcHgrGxSPRTgbBpLjxkNenSclJ/+xEiIUTDW
+UYVgfbjpRqSUek5Z6OuA+zHxCd4QcNU0dmjFWnZsTSdDoMCqs0FfRg8JblREmLbW
+58zP9KIUs8Cf4Edgaoj5M+LLYiuHBpddC6d60EsJ6MmWbgWLDCXSoIhOrQIDAQAB
+AoGAFDB9lhHju78xUN2Ei9k1UCiHXmfgbf/HufYY1QrY3uJFYXyxCeQ8gPZMdxdj
+MV5R9Vcm30j0HKK9RQgXK+fC9U4n+u0khOhLWDomkRZZokJv5VHpjCtQ1BmT8vjU
+uL7PEjz5/BGVIj15oo8nN0Cvdct0UtD7lM/mn8zpd4JILcECQQDUJayAO1y0hd9X
+v8wIzkb7M1b2aHYsG/djaaqQFpBScEMQwoMQsahXoykESTrzAL46rdRk5u/ZbjXo
+vYELA+49AkEA0K/OLxxZmGec5hpgpqkIces7zV+KOk1j0BbnL3xed7rF0Y2ty58G
+PtWXTI9Mj1enxn6mu4P3eEUIITCx0o7ZMQJAbKiLLPa6qd+zoD8lYxE8O+d00Cp6
+9GaylCGH8dsMupyzTP9DoCZOgeyY0pAreFFWHbnxAmliSexwAjAlyx2NRQJBAJeN
+NSVNZ1ug03bf7RTbaMCiXpm1KoNQtI3oNBhuL4Sv5P1b8L0RTc3P+8KjxqvKspMa
+YyeGnO+A4niIDnulNeECQQCle1G30FUv+GgM9OswiyDkwTK4cXi7/o3SEzLrV7e4
+l57JCKPSfIBNxH6SvYsThJmQaZdtVANh72pL2PF1hup/
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/tcd/tcd.cert b/server/component/planetlab/eu/tcd/tcd.cert
new file mode 100644 (file)
index 0000000..1e444e6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0Y2QwHhcNMDgw
+MzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjAOMQwwCgYDVQQDEwN0Y2QwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAKJ4mpTDyGhza+hxWAXyoqSIGXS+517fgfqp
+Ep6AHEtGizp872mFFoSspQCrmhlh7VzP530oq83/JwIxGYdR9SG6/f+92aH0chVo
+fq0iIlCaQXBdecDLFComSOacylZ/CSs1MI1bTdzEhRq3jUw++eeEjK1GC2NjSXb9
+3/IqJnyjAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAmnAkMdB2gVC4vY7gnRWPOZHd
+ZipXDZaQABgTDvWyt36xlfbMLE6K2GU40i2FqQspQOmmgf6EMjEBDKvsll3McZLo
+55EB/TR8rhrBVgGGgvg9OfZeYP1ECwxlxkd9x+nczWzLHW6V2aii344c0P8il6S1
+gir3sb7jPmVYfyk921E=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/tcd/tcd.pkey b/server/component/planetlab/eu/tcd/tcd.pkey
new file mode 100644 (file)
index 0000000..f95b523
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCieJqUw8hoc2vocVgF8qKkiBl0vude34H6qRKegBxLRos6fO9p
+hRaErKUAq5oZYe1cz+d9KKvN/ycCMRmHUfUhuv3/vdmh9HIVaH6tIiJQmkFwXXnA
+yxQqJkjmnMpWfwkrNTCNW03cxIUat41MPvnnhIytRgtjY0l2/d/yKiZ8owIDAQAB
+AoGAcYB/vV3pK882m3RTYhRXu0m5Pu3/BTBvxYVIFKK7IXtu2LVfLABl8toJi6ZW
+SVU4VZaIyc8X9xlBTy6t/vMqpADe2S7R4qg9ZsCOCPJp6HXd5dFw7jLb2MZrvVVH
+mlVG9tRNis2Q5j8msyuwM46QtnJBZepV4swFGlKYdTXZiwECQQDOCKFkeqsgd8lb
+tm5s2T78mkr20OfrkvGaDxpLbf2duXuK5gJrvv5kXQQg4t/g4W9U+3QZvTIm651i
+/J7fBAzzAkEAyd9wQT5NPOsMlkLNOJobUupQCLrU03XiKHLa2ZYNqKD8UTSsgxAT
+1G57q0SpqDE5DXuHB70CTS+yMrEun3X9kQJAOCd2BXLBjVnYkZyJQDV9y08qO1b4
+vuYP31NacVCLHR/eoh7Kbh9iKmyHoYb0SdBnjZvzKsi8EIuLG92KV3I9LQJAWkVa
+MzKi40zQUhkJH/h5o3g31c+GABFE0oWZq5bYAMIMUlvVkL4Nv/6vuoR3wUhRlN/a
+H/G7J7zeWKC2koP2oQJAK4ugULFZQT2Y+TiT0IeZ0kxoj/MALVcxqj6+kNH0eYIL
+ueCTvcZkgcAbjD/WzGhCHFNUg931ej9jyUusrrgZZg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/univie/univie.cert b/server/component/planetlab/eu/univie/univie.cert
new file mode 100644 (file)
index 0000000..891d9e2
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1bml2aWUwHhcN
+MDgwMzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjARMQ8wDQYDVQQDEwZ1bml2aWUw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANNMPYyHTw5D1By7KsmXmBJZpjKO
+uuO1bAZDmqXDGkUgTgfCxHLFH+ARW2f4jwckX4XJQgzhAjKU+X2jf8WrYYipRo9m
+ueKNdZa6R35/nJ368ZaM33+pXQEbRa2DbWTGD/ysw7LysOP2uygmy8NGG/hI/U4D
+jZyyA3hMALfxg/tLAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAJNJ5jlSiZ0M7kAdN
+8gUIC0bWs+xphl9VIdcIOfhmO7rl7tG1T0FAda1jVXWVMpLbYCSPWg4uG/IZz7r0
+ZW2hMoeWVu0caM9t9Nrk+vGq0lyBfO4mF2VMydZCOBn08gl10QjnfMIOQRDHX0QC
+4SltWoEvF10/SoNrUKLdDW9rdkM=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/univie/univie.pkey b/server/component/planetlab/eu/univie/univie.pkey
new file mode 100644 (file)
index 0000000..8cc271c
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDTTD2Mh08OQ9QcuyrJl5gSWaYyjrrjtWwGQ5qlwxpFIE4HwsRy
+xR/gEVtn+I8HJF+FyUIM4QIylPl9o3/Fq2GIqUaPZrnijXWWukd+f5yd+vGWjN9/
+qV0BG0Wtg21kxg/8rMOy8rDj9rsoJsvDRhv4SP1OA42csgN4TAC38YP7SwIDAQAB
+AoGBAMMjfRBEgjlNYR5rqLdm3lXMH5Y/hM/5Y9thIfiGd8Nxcz7tnBnWfXqk7QLX
+ZdgVunZHCU31m971AHkMv1rhzP8GuBmQXIy5Vfhh3VvXArTzWaaZjymqDr9wFP7z
+2Myi7z693ukezZChp1QSbNz171G9O19vs5PZ4yzF9YF+P8HxAkEA/7narf4mOCb5
+9Xs+eeAJXgFFDq2eJYTtDs8HPFMoz9Y8XOx2evuyan/2CAgO9RJ052sViRLR0HrL
+zeiTeuHGwwJBANOGMxSm2n7SjJy102C8Q3IYEIuxU/f2nDB7PRHmDzI9nlWlNCDA
+aKRyOYtU4r37xb38BuKpCHM8rCqTBlYrgNkCQQCdhC1e3x1LmTZ+Ltvc1lLuxHl1
+ARxYn/glFwCt98s7ugqUclLIjiDn2MoDSHNuIWBA64ToWd9DO2AuBQRSvJ9hAkBO
+c8CwUS5KyWaznNCYWVsejwRb+1osZsAJTzwYTl6mgKogE9TgrNxi2aa0IbizRBVU
+YIxhNtZWf1NPuxYnkZ0JAkAVSSeRZ0mMEOhDPF4NWUWptK+FlrZDMM+rZaT/MCnr
+T3C+fhKkmg3hto88hONW0j/1hj1S95cMRnbqxrlKqPhX
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/unizh/unizh.cert b/server/component/planetlab/eu/unizh/unizh.cert
new file mode 100644 (file)
index 0000000..eb1cf08
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1bml6aDAeFw0w
+ODAzMjgwMzQ1MTJaFw0xMzAzMjcwMzQ1MTJaMBAxDjAMBgNVBAMTBXVuaXpoMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDtHmPkqhgqVlwDMcgjZhXRkOMbxnOW
+zBg+EaTBR2oCmw7qt0LGQuqBRIEsW/hn9hZzrrf5Dunps/rv0J8f26i5sv5qw9Vw
+oVmCORcFw/q4aEvPn2oEZX8E5huPYjGy9c1eb0Q6JAX1qStv+AM9Hq47QBEDkZq5
+T1VfcCt8UAw79QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIFuptajC6HtzQOEykji
+j7EsBrShGtLQZCGtaJStrk463fthVKwZATDWqhxRgCmvI5LFqQcxjvnZmixQWf7G
+SxzVpO2+wbfk8932Aiu6+BeckFySB1ZNG6czmE8ijPIgGkm/Qneub1kKV438Pir4
+nSuSmrHTue1P8tvqwVfc5vB3
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/unizh/unizh.pkey b/server/component/planetlab/eu/unizh/unizh.pkey
new file mode 100644 (file)
index 0000000..bb0dfa2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDtHmPkqhgqVlwDMcgjZhXRkOMbxnOWzBg+EaTBR2oCmw7qt0LG
+QuqBRIEsW/hn9hZzrrf5Dunps/rv0J8f26i5sv5qw9VwoVmCORcFw/q4aEvPn2oE
+ZX8E5huPYjGy9c1eb0Q6JAX1qStv+AM9Hq47QBEDkZq5T1VfcCt8UAw79QIDAQAB
+AoGBAJd7br3KnJ2PhkDUMNPMh+vV8ADyiy2vPV2J0ANaKDN589GnOhWG8mGa7hr0
+toFUCYvl9so56N3QiWNjmAS2Q9cDwgAXdItVxvjj9m7Iog8RNIqf+hCSmW1yWzCW
+5QR5B0RWxMQBuEKo8rb8G4XfUXPBa5u78IpXqaM6PMruUJYBAkEA/WsCBYi8iIBZ
+Kpg7TKcjKL26dtjfgCZcXibyAV1vvhfIk0ViY3YglDJNTTFQertLjYhnMw9jf/s2
+IHIXOJg41QJBAO+I3map0mLX8hT7EZhdJdjusSv2XyZ9XoXlrW8tEqHCkGrSiF8S
+Q3olk2BIHe4VslCuia+xksHzDdJULmjNhqECQCd07c+mxpQKR9fV9AWvUE4bnFi8
+06/ESUVvkuabgbZ7RYOInhUWY2QvoNGQCBPT7aOPxWGx17ApkPfkS7FIIjECQE/M
+cBMRljY5rLtSnRz+QyKO+lUkAbTn5TqENpAoGuHq2IPN2YKaqgIiTIOx4s6zSbFZ
+RCNU7AhS+ZLNWpytg6ECQQDv87sce1NHkzgWTUugH/c3NvXFv80mai4bNXUi2sPR
+uLTtTrsEkMdVQaZje4KrzO/81me0ihK+8mn7FshpMYAI
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/eu/upb/upb.cert b/server/component/planetlab/eu/upb/upb.cert
new file mode 100644 (file)
index 0000000..f9bb6d4
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1cGIwHhcNMDgw
+MzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjAOMQwwCgYDVQQDEwN1cGIwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAKciMgBkd5Edh9nGAQdDZqgvp8fUdf4sK9g1
+1YZTgQSE7cd1WvIpRqsm65IrEyeyTAJZ5EYYv3uFeOsHD7Wu5n9SOJSTi1SDemQn
+m+ydaAEj3xVUpQNhqqWMMYPx3JMSLBqGn1SL3QF0N5Ll26q14ebsR9NEO31MHIvD
+CylKcbXBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEARqpWQsoqanjmOnwINgUJ6wfH
+C7VJtAmNDmH3VTWQgQIIp3+tZMuUqUvSJi9fMrwA9F3NyajPVUW1H5pNuHzvNHy7
+k2w0Etm3wSkYdpTMYDHdk8lIG3Yzhy4M5o6Q7BJ9Yh6s3Hfg+cIrJTp8I08JSHEJ
+15HWiQgamhtiubXo47I=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/eu/upb/upb.pkey b/server/component/planetlab/eu/upb/upb.pkey
new file mode 100644 (file)
index 0000000..0d5ab11
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCnIjIAZHeRHYfZxgEHQ2aoL6fH1HX+LCvYNdWGU4EEhO3HdVry
+KUarJuuSKxMnskwCWeRGGL97hXjrBw+1ruZ/UjiUk4tUg3pkJ5vsnWgBI98VVKUD
+YaqljDGD8dyTEiwahp9Ui90BdDeS5duqteHm7EfTRDt9TByLwwspSnG1wQIDAQAB
+AoGAQUFErIqNdIdHJ2v7ss5KIpiYtZjqiNbON5itSckIsq8D98CGRc5/3QtRJrzS
+uckPjEt0qTm4aY3vbDRRmeoz7Bizy7wrgpdDu2BGCSh7IS5Gegtc09ljXhPjMAKC
+zAqOI3/e07jBnHBFVNlQRaEGTyHR0k+qaAg4sWfvu6hbgAECQQDPTQ6TULXorTqq
+4+s6n/LVeFRef94dpo3QYk+AoWa5y5g5ljK0t92o3sRSmEDwNf2ATZKx6lfGDEk6
+GIxt8ZFBAkEAzmV/CbiSK85gUBVvVQ1aDDa6YUle1JyRzF1P/4y+9d53rQR0PkKU
+6JU5W928cByu34CNyvny36iD1tpTTlKEgQJAdvb3yF7nJhJTusJ1uf0UtKELeffT
+lhyBAfeJPH5jn3hRcaraio+B62l8LRInIjM5uanK58Nef8+JLofr/yREgQJAJWRL
+5JX0nU0RM9D+T3lQw/+yOmfRb1FCNLT/BjwYaHC6W7T/3juvwIcwUg1U0zbPE5y1
+k30+2/gqkmURTJI0gQJBAJLuidQk3oiMUoQXbdIyFqaNUK8UV7FZjOR2nLvkDbMK
+0MrfV9JcsBOR6PBkoFfGsBcH5P/ofyOTbhSrZcJTBFI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/fing/fing.cert b/server/component/planetlab/fing/fing.cert
new file mode 100644 (file)
index 0000000..e1116a0
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRmaW5nMB4XDTA4
+MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowDzENMAsGA1UEAxMEZmluZzCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwpqTIWTTb0YSSLNHVUTaoBSZuwadn+Hn
+vJ4WsA4UCh9H3m5EqcvFMaGt01CUjWJF414BzxfstsZOjIGRT8O2i1lXzstw01v6
+MmGzOs2HdZo0BVKBzqCUq5gnfj6HKFqIrbfd1Sebm+7h9fAhAE84ptMvZ78Oi72/
+WB9nHacpG4ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQAuC5l3PUk9MM3goNedNco/
+nSW2pZ+1UT5XtISbkzcJ0kuwmEaegQcMg7cM4aVTE5YqrrOO4rSPhHzAv7C93Dpl
+HR7lgJnwIEeP2h8aP5l8WJU2d/g2cwh9KJhUT1GptAPkWpllN9GFrnSqrSD5ZdsM
+dK3qUgkVIV2avvEqKVl/Jw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/fing/fing.pkey b/server/component/planetlab/fing/fing.pkey
new file mode 100644 (file)
index 0000000..8a77f78
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQDCmpMhZNNvRhJIs0dVRNqgFJm7Bp2f4ee8nhawDhQKH0febkSp
+y8Uxoa3TUJSNYkXjXgHPF+y2xk6MgZFPw7aLWVfOy3DTW/oyYbM6zYd1mjQFUoHO
+oJSrmCd+PocoWoitt93VJ5ub7uH18CEATzim0y9nvw6Lvb9YH2cdpykbgQIDAQAB
+AoGBAL3u2AMTwTktjtLeB5U1qpvq/1AG2PkfJ2p0cXhLhUuL1D1IKkP+2evi/SDt
+2M9VRxjuu51AoIyTaD7Chuzu+822wX4bwPVw13K6pz/KIutcr3Ge2aN+2Eq+abbp
+Q2OtGPrzaJBh7GOFoXBU26fJLHF0ACcg4E6PBLG/WtzyH+dxAkEA/OF7bX0qbY9D
+K4z+whOig0yxSegzJQw1v1YMeixrmGIYfHPliAFiqkjYQu+inC2qwhtfucRRCxC+
+XJoO3r1KDwJBAMUBEn5XfL1AIMhynqeX6zuNkpJUFjzXtu3BjuQ4Gylbr0LcJSXJ
+bbB6nGUGOBtfZ9ZqMf39+wyC9P7+D2MlEW8CQQCNmFPcQrF3FzitMg2T7hqZGmBK
+2dGJdQTDVhM2dZjpgkPjq6FiPiRY5ODy2etbN9bdSSaYhew7Hez5POoGnkbRAkEA
+hjrazPbzaUd+jtV6QJsEjolB6y4cEMyyOYF+yQVpjF6KJjY1oW+Dq5F/al44cH4r
+FC87bOJW4gmAwRV+ioFBRQJBAO293rYT50Uyvx9uNA+uVz5LR6phxUrQWzKzdM++
+AAm9y8hcH6WhWFZsfuu86QOgi508PrOerY1my5w7UlMkES0=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/haifa/haifa.cert b/server/component/planetlab/haifa/haifa.cert
new file mode 100644 (file)
index 0000000..c0a0041
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVoYWlmYTAeFw0w
+ODAzMjgwMzQ1MTRaFw0xMzAzMjcwMzQ1MTRaMBAxDjAMBgNVBAMTBWhhaWZhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVRFJyFpUvwjrBT0A2VBPQGmAFehnL
+Jfd61juLdNL5Pou7tULogaQlRq0TiE5+mDdRSshVrTDp5lmOvgzECs9fI07jNPhS
+JL7aHNdy5CIcRibq6s7jAW2ulj+6fMvtB3LP6M1P2TMaJETIQdN0tF6cTmXTW3zc
+9DHufx5twIXOUQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGPTcm8qei/mtCl9RXtx
+Z8Ijw28v3LA48w7Y+72qB+oVmUiepzsd9ZjOVed1aQu1lHk1KwcwHy8YpPLacBzt
+yLTOraiDfZOE4PFnzqr0zMAsHBhjlFBcoFU5MJUuo7cO1I2Ru0zLtBAQLKcxpOY/
++9dbqhSnRYWlDiSfmz846HLX
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/haifa/haifa.pkey b/server/component/planetlab/haifa/haifa.pkey
new file mode 100644 (file)
index 0000000..60e341f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDVRFJyFpUvwjrBT0A2VBPQGmAFehnLJfd61juLdNL5Pou7tULo
+gaQlRq0TiE5+mDdRSshVrTDp5lmOvgzECs9fI07jNPhSJL7aHNdy5CIcRibq6s7j
+AW2ulj+6fMvtB3LP6M1P2TMaJETIQdN0tF6cTmXTW3zc9DHufx5twIXOUQIDAQAB
+AoGBAMdb0bIimB0H9MKl4cGngMnlDeOwyxHTEO/7+beYYmtp41d5zuzn21iZI8uB
+fNbsVbGhNXqZpoLPuOItmGNeM4/m8Bxvq3M6Zb0ZZjzcWa6dbIPevIgcYq+TTUVW
+te27nvS7ScZYk2Znp0nDAN6h1zHXxYgBmY2iq5ZUJZgpUYrdAkEA+cwqwZCiDubS
+QjqkUwQ7nUFk6s/xYFltLDBdtbWQHxEi/5E5SKyQpRvBFd7XxVYYjdG3k2wLVhbR
+UjIA5dEvlwJBANqP8t/K8e4Ikpcu/Dqy5hEJp8zsDGPWPVG4Pfn9wK8/VmkuLLGJ
+0lb1TnNptL7FGuigLXPkRurGntzZ/MtarlcCQQDQKvPKoVRcJME9zg7Y2+MuNqv5
+/taBW6TeOWQupKL5MNfAsO5TAPP9lDaBmlaoLgqCTS213klIMfW4kNEss/n7AkEA
+lD3ciwQYsc2ot9hLhfi/aUD2Sly0TqcKMjpX9w6wuWypTG/gKo8DVq3NhyRkTpxc
+EvpJufhUTXtoVv2Xo8oewwJAH0uqT46zoJ4AMas8jqA2Eyh4t42d0YxmmsYUwWCv
+Q4hxi9dD4JPjzmjD3QDbFFiXH3kAJxhDupGcVigxVqZDpQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/icavite/icavite.cert b/server/component/planetlab/icavite/icavite.cert
new file mode 100644 (file)
index 0000000..0a30704
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdpY2F2aXRlMB4X
+DTA4MDMyODAzNDUxNVoXDTEzMDMyNzAzNDUxNVowEjEQMA4GA1UEAxMHaWNhdml0
+ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu9p0gv4RXjs85pSNCaIL/Aw4
+YZM2ITkft6+sptBFDHFD62MVRIORJ8cXYMG1qyKvAJuyrXlijvrAVk0ipk0I36/4
+VSC7ZxrETCuKgpxZYmurdIDcPY9keX1S6Qd5Enb7lBCwuoYRJnkwZJdl9Wn+JEHi
+grZd8GF0PUQiJLLRkW8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBWcbT7WlwsI4dr
+vqyu37TD1arT3XF62imjOXJkLRS8LqrX6Eze7j+v7ATgnReOy+uzIDPucs9f/Edo
+Lj0n0YgbZPXfqoJglraC3SRZNHL2I/Obuc74SLUXD2z46khzLH4l2qz55XPOpheR
+u4YUxRl/wAeP6nmhfrcDerJfSoKPJg==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/icavite/icavite.pkey b/server/component/planetlab/icavite/icavite.pkey
new file mode 100644 (file)
index 0000000..30e22ca
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC72nSC/hFeOzzmlI0Jogv8DDhhkzYhOR+3r6ym0EUMcUPrYxVE
+g5EnxxdgwbWrIq8Am7KteWKO+sBWTSKmTQjfr/hVILtnGsRMK4qCnFlia6t0gNw9
+j2R5fVLpB3kSdvuUELC6hhEmeTBkl2X1af4kQeKCtl3wYXQ9RCIkstGRbwIDAQAB
+AoGAFsaz3bYEURKJncNhHkvhfBvXMi1xILIWYGUSX99cn9eTzpRi3b29+b6v3PFf
+n3JDGaXHEjVnd8J7U3tiuhsY+iC8+Wy6jFC32ssFX4X/p4IDjjUPTi/A/8TlSOJ5
+gS/IiVurHgRFgSVx8/Q9KHIG99Kbojy04m6t667QQh6RC2ECQQDsoEU45wyTRUOJ
+8FqNGd+QznXIR4Ll8NX1VU4jnFymi3B0bqH2CttIoS3cQI6f6VlMzcFnRklAkujz
+oEKnRnHpAkEAyzvmGM0J8d9xskkUbVl+jGlkQCrzhhppag8S8KwSn5rzmYlfAnn5
+Iievq1Le26BdHARtBGBMe4dd08NiHXu5lwJAdkv5z2TTSJ0MEt3ypzAUMNTG1YXK
+zyIEFU68bdkyCKEVa2AT4Gm1Dy5lOwObSh7i4h7LXdIptPq9M28fY3k4YQJBAKOL
+8U+1+LHG8VTakHCq2zadPUqSBeS97mSl+sTohBgidrPwox94Dm9Y5noFN0ggVa1N
+NnmWERY7Sds22QcG4MMCQHcKgBhqnJbGFgMYTumyZFsmDOiP+Fk9cgTatIl5RD6L
+qZhbQksOriBHhrPhQwFd0sV7yfvzb0SIG+0jc2FDnNo=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/ihaifa/ihaifa.cert b/server/component/planetlab/ihaifa/ihaifa.cert
new file mode 100644 (file)
index 0000000..7803d2f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZpaGFpZmEwHhcN
+MDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjARMQ8wDQYDVQQDEwZpaGFpZmEw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANfTFZiyfNB5Sme43bsZjbEwD2AQ
+2pk5XGqDl1sFnzRABmItRU5lmPbCNwk2vxEGxLMRGhTryawroqoXt1HMgBRpgIbh
+e5YttkCxwh2a0FbSyTdPyUX7u2a60S9uhIC9Jot30tL72wkpSWKVvfFG+8h51Nw0
+0FIMoILG4daOqNipAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAFKFvMG6TPXCbjzUn
+j490a+ugqEoxap3zUrHjwU9UCo31D/fZ5aV4BYdnz7U0Z7kKJfuE/eFGWk52cKlj
+BxoxtBcnXDUwTLV9cvYBbuXi0X1RIOTCkrIh6OXffbyno4uOg7811KvSplmoZjm6
+d0jZbipPIXbjhUGxG/d5YBiOZaM=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/ihaifa/ihaifa.pkey b/server/component/planetlab/ihaifa/ihaifa.pkey
new file mode 100644 (file)
index 0000000..3faa7b5
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQDX0xWYsnzQeUpnuN27GY2xMA9gENqZOVxqg5dbBZ80QAZiLUVO
+ZZj2wjcJNr8RBsSzERoU68msK6KqF7dRzIAUaYCG4XuWLbZAscIdmtBW0sk3T8lF
++7tmutEvboSAvSaLd9LS+9sJKUlilb3xRvvIedTcNNBSDKCCxuHWjqjYqQIDAQAB
+AoGBANZ7HoY+Ms3XC7tiO3BZp7dDpLP6a9ND7vSnS34Yayu4yN8+UBbl3oqzXZBZ
+iK26BTZTM5FA9Y2VW7Ufln3C9i//j3k8gAQ8EXX4Ag8LNosrLTv+wxRYwnT21U3R
+wt3e60L9UlODb8OVaF8Eym3svdb/glCofRR2nRO4QSiOlbt1AkEA8Dnk6t4AxjdB
+/jYrlVrohADV9OEs3p7TSTwKUe2ABN/FYKRHPZb9M3v9kyUNCImFrfbwDWPl9RGW
+5d+nhoSY/wJBAOX/AkvLwRLWtR0VtP0npEDTylLLH/Eg2IIYILODQrNj33HoeH/o
+oZqKWP1TD4IO/TrrKgoB6tBVJK/+YSwdJlcCQQCli5AIlsK71hqhP91bCJHRXe4T
+2hUcuSDrh/eoq92b/kU7qxn5BJMqppiBjXfk2TiJQPH+mEhBUUTG1xDQb5IrAkEA
+mIhvNWWEPsI2i3uB9QL9ZCER5abhIEHwVRc7WNKMwfxSjHDouavGwX9PVXJorpDS
+UOj1kH2FBXXyRuYl++O5MQJBAO25lGjB+zf+lC1q0HzJ/gpKNcsTJ3iQwOtnwcM5
+NirU4DBdEpESX7wOODlX+KMSk8jk3MEu7J+kOfD2XdO9Mms=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/iitr/iitr.cert b/server/component/planetlab/iitr/iitr.cert
new file mode 100644 (file)
index 0000000..2fbaab5
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRpaXRyMB4XDTA4
+MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowDzENMAsGA1UEAxMEaWl0cjCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtXCGHTOYNsc7Ywl8i4zAI5V0nnzpPk9T
++HJsBJ0R5hUTdyVwq1U03S7AcrMGB8ah2BZ5m7BKT6RF6z1EHA3B8Usg3d838d0M
+yYvka2xWyyt7Wv0gKxivxYs+hNm+2nDe0SkQ7MgEiHaDxh4dRoJAP3LtWTxzziy8
+aEkQHmNQ38sCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBVY5oZq1LGw5nQU/gstVT3
+ll6hKkPZNMBCJqnQWX1m88Z2ujEqhOHQie/pYcqHan15tpSQ36N2+Yb9KEPo+OWp
+QbhODG0OsteTCEXcfkjJIo680pGtSfzwlIqc0BYWO6fSTZmJxGLT3FhkFD5NjELd
+reJMPK9dlS0bs+cVDTOrWQ==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/iitr/iitr.pkey b/server/component/planetlab/iitr/iitr.pkey
new file mode 100644 (file)
index 0000000..0767d89
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC1cIYdM5g2xztjCXyLjMAjlXSefOk+T1P4cmwEnRHmFRN3JXCr
+VTTdLsByswYHxqHYFnmbsEpPpEXrPUQcDcHxSyDd3zfx3QzJi+RrbFbLK3ta/SAr
+GK/Fiz6E2b7acN7RKRDsyASIdoPGHh1GgkA/cu1ZPHPOLLxoSRAeY1DfywIDAQAB
+AoGAM3YC0+16Uq8XbPOX24zEQlN1jC4piX6+dk0dzgEuvm9j4ftAhZfZMpK8Cswz
+/aic5skZHMtXiFczbZEm7D4Kr4clsxCZfrwUqx3FxuxmxfjMsh3Fu9AgBVMVyx7E
+exLICtEDl9R1uipOf/8DWkeqwRTqn2dHFlnLraVnFSjJzwECQQDfb7Y7zqDzWrtf
+M4mX2xXNENz6iJg41ZvT1JNeX0YELavyWkFGt6ZGqwnGMV+4Za6YtKc3tAPMDD1E
+OFFu5hKhAkEAz+Hu+ZA34XC7At2pAMBtX3sk5Y/k/KqLu47EhXXPfY+9PuOAQl3s
+0ZRkrO7p4xIHy3Yrr0V4SE+MkTNS4O4G6wJAD2EiGwXDAF0rbocenmw/GOljPH9w
+cuEJI9CLAEDwkdMO9dSOj66ObGjTeGfnncqp9OriY6wpYr8o7Gwv9sExYQJADgra
+BLusOqtNxqzIfMeC299Kp8MnmbW/iKTlO4qwwG+UPgpKILGNjL60akYdQHx4UFMk
+MkvEC0ZsXWaVI6KQjwJBAIdddkJtyGlY8QKUyZKwy5RfcJElo8RvyqbiwutZM3Qu
+wEyQfHiCmobbtlKYupg2BT6fRXRabDUP8wTCk3nZRyE=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/ileixlip/ileixlip.cert b/server/component/planetlab/ileixlip/ileixlip.cert
new file mode 100644 (file)
index 0000000..7cf125a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhpbGVpeGxpcDAe
+Fw0wODAzMjgwMzQ1MTVaFw0xMzAzMjcwMzQ1MTVaMBMxETAPBgNVBAMTCGlsZWl4
+bGlwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3q7HMiN4fWJSWt/s4QpIs
+5/6Gp62YdqoOLDn6SNPvvNtdO6bzOY+DbOrI/DkQtyJxnuhootacKZquMxDzzwtW
+AzU4RmGo8W7OqhSUSg9uoKYgDSTDPfg/detasx54qgr210LUp1rNKw88e/cmBysP
+vSROFRKcn1I+670/tw/mdQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADQpxAkBtOcq
+QkNyo3KSNOwY603kWhsgmPlZ1BJ7M7A8z4C35EP9E3G3Wd16Orzx5zk51GJGfG5p
+B7T/U8lnCdyBP8bb+kxHWPY2ZypJ9pkxpIQacNtx/ghOhKPWzK/PPnfOT4qclk7k
++cs9JBCLGvfcUoOH66WYT08sDkKCL7Bv
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/ileixlip/ileixlip.pkey b/server/component/planetlab/ileixlip/ileixlip.pkey
new file mode 100644 (file)
index 0000000..db7b5f2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC3q7HMiN4fWJSWt/s4QpIs5/6Gp62YdqoOLDn6SNPvvNtdO6bz
+OY+DbOrI/DkQtyJxnuhootacKZquMxDzzwtWAzU4RmGo8W7OqhSUSg9uoKYgDSTD
+Pfg/detasx54qgr210LUp1rNKw88e/cmBysPvSROFRKcn1I+670/tw/mdQIDAQAB
+AoGARaVqd0eTCsnZFknPjibYLQUPo9njXsPoehVVKs4A55BykijzhplWDRz47puN
+vAPloLYEJOFShcbU66dbj0f8YM3Ak3fpRFCZEbhKyl8UrCL7nTsZYtWW1L9Q1szj
+ApjCLnHDmdUsfc3+wsczmlrmxqm9b9C2JAq1DsGKGWfEh6ECQQDcJisKiXUyRfyQ
+VBoDoE56A8vW8vtwcEihMKRL5m408brQDQ3pmczMyLeCHcaHpIAST3YMgueQ4l+y
+gSEaGsEtAkEA1ZTFl8RBnSFG3PqKLotxH5nOuAbi2sWYDn5YWrHB1b+hf1rTBdb5
+e17/dcAZFTljO2kV5vAkI059nJfijq43aQJBAInK6g3CU7SP0bGUsmOqpvQABEoZ
+8/9AiHU7uNo49Kn203L9eMPKHEHhL9slP+oOsIrFaaITHVW2GyfjYxCvxlECQQCJ
+k35AB2wYcgH6f+wYlTu2FlYhFlZ0g4kx9NKnAQ+RxxGZPoDlpxcnEAdP6wB9Om0g
+LM2t54vvrjSddPy72Z7ZAkBBeMG+9r6V06BH8xsJ65gNsAneH3wi/xO6xc2HI3AL
+B6lYUXaIN0xUhwTjwqWr/Gyj9gjJ1oYcQ33qw2UngxTQ
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/jaist/jaist.cert b/server/component/planetlab/jp/jaist/jaist.cert
new file mode 100644 (file)
index 0000000..504c19d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqYWlzdDAeFw0w
+ODAzMjgwMzQ1MDdaFw0xMzAzMjcwMzQ1MDdaMBAxDjAMBgNVBAMTBWphaXN0MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDic2ybBWwWDf4s22JCNA3Q/FSQv5zk
+k7G2HTXLmSgpva5pPVN+ou25Nc7dobIxOgtFgRMLRG/z8MekYQvN/oeOKnfA/3GH
+YxtUB8aQOq/zje3mmbJ6euFBhxginWm6RB/BiK4rMDHbjClJ1NVATQPJ0oe/XvWJ
+1yJkcGLt76fjnwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAF0OSdldZmbIQX0GfXWL
+EMFxBn5fu9jb+JZbRQOwg35ynP24yPspJEirfXxZKnaR3QQzH4W812nVk8IoIri5
+RmkdfaSn7gX9YbJQyFJio5HdLNTHF6jlp+2ox02wslsd3MwGi6dRiUceloRs3nm6
+ngDGUeWnds8Rj4V2wYN3vEI4
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/jaist/jaist.pkey b/server/component/planetlab/jp/jaist/jaist.pkey
new file mode 100644 (file)
index 0000000..c15a007
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDic2ybBWwWDf4s22JCNA3Q/FSQv5zkk7G2HTXLmSgpva5pPVN+
+ou25Nc7dobIxOgtFgRMLRG/z8MekYQvN/oeOKnfA/3GHYxtUB8aQOq/zje3mmbJ6
+euFBhxginWm6RB/BiK4rMDHbjClJ1NVATQPJ0oe/XvWJ1yJkcGLt76fjnwIDAQAB
+AoGBALGlAsoJ0uTqTT87SzXMSBpuGJkE+DuIcZ0ABTeXCp7UIoKEjX+GqR7mS0Yq
+lvNvKXB49UudgIXJmZQmXXBYAFXYzHyM3u+m7T178sCD6r2LhThZEBlRVOhup2d8
+6vm+9HM6Si8eQzCmxQzb6oeTU/qgeUotC0YD4pTW3KzDTcQBAkEA8oqW4oNnEXUu
++zlYMZnymy6VGVtZpx5qZOniaqO2isA7eYWbeC7W56pRZeW6FMMw+PAcs4lZNfjB
+MWIw3ZtRgQJBAO8EQxpNuk/fNNZ0Vu8oM3e+Ke8KLMpebWS+8OKX2jTUujrAOfOi
+JQnjPLSwm3t/AkVtHkQknG1p97qks5cBhR8CQDfCqvu6kAiQc1OolGEa7o7Ev9yL
+huoH8RfwOXCg4Me3eDTxBZQ02I18N6iAjy5Uzb59nWudSRhCb1AGLgvUuIECQGgR
+jAIM691RC1mAyEVTVK2DcBCzdnMakDj4ZjvS8GBmazufbNwmskfO2CS4bMplr6B4
+9V+oLS/6nrF2evd54vMCQQCYU5W50/YdpIaysLbHou4yDNqEmMmgnmYeZLmzKAp7
+AyieJek0QIhz8Pdt1Uv8/Z5K2i81HW5Znk1ijsiMUGtV
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/jp.cert b/server/component/planetlab/jp/jp.cert
new file mode 100644 (file)
index 0000000..b5c047c
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJqcDAeFw0wODAz
+MjgwMzQ1MDVaFw0xMzAzMjcwMzQ1MDVaMA0xCzAJBgNVBAMTAmpwMIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQDG54g2Zw05TvORV1u1rsdxWPJI0hGhvvYxCFUz
+2mzgrb+iB2j29mbkCW4brtTfKMjynMRJ6BcPNf4ZNvV9K1c9PXOzzdz2a17R3k3a
+JMA2TZFG1S64V+XfO3bJt7AKSV34IIvYVS3fa2mEi0Y34DC2Py//LE0rrRtS72Pz
+TFWm3QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALQ5eRlhZ+QttwWoNL/8/d633esY
+80uLAWi9M34UzUD9jn4j+2VLBZAnX9T9DInMHty2zNhbiUokEEwImUR4U1jeUcGG
+iC6fz2iMQC3mHfvcYKVJ0itFvxOZkbqn5Cswbfdzf3ZiqCGrpOajrx4xSnqbNORd
+YGk7ytRDpkU84I2V
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/jp.pkey b/server/component/planetlab/jp/jp.pkey
new file mode 100644 (file)
index 0000000..7c096c4
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDG54g2Zw05TvORV1u1rsdxWPJI0hGhvvYxCFUz2mzgrb+iB2j2
+9mbkCW4brtTfKMjynMRJ6BcPNf4ZNvV9K1c9PXOzzdz2a17R3k3aJMA2TZFG1S64
+V+XfO3bJt7AKSV34IIvYVS3fa2mEi0Y34DC2Py//LE0rrRtS72PzTFWm3QIDAQAB
+AoGBAIUaSzycmWzQOI36N5TM8QoYy4mPid0DPRxyxxF8CYAQxTxYWRVqrk/LP7Om
+uyzazh4Mag5LEaNMLk4RSRYJ+sYCAQyuxa8/pj6GS+kp0Evysx1pZc6+++PecVG1
+74BrVAkyL7ox3bPvgg6fax9WwpjJXPruFAHKIBJgvbPwtvoBAkEA7Yn7MFmBsxrf
+gfCiRLi9hKo9GgVxYNJLwRTuB5BjErIF08NujTHsJEAdthzsiX0WfE61iNufSWGX
+0itEmtTUqQJBANZc4wSz8Lgj1DbB/w58RvymUEQP02fWYnpaGvfwQ5bwAZSlaR48
+i/9l7v8KG2pNuyZoOHt53Iji8HBYCUwarRUCQCnCBO91/LAAvGP6anxMQbzNtJob
+dNgBgCG8TS/1OQVzWETm6UtXCF1DDDYUlZyB6e8GYzFg8nqS9n6S7qeNXKkCQBsd
+kNHteQux7IwoqfzJF6mp2Alj/xfpdHeJolOunr4fCfQloFBk1EiwOjUksCcYQg4v
+rMVhutXN7yAm4rYvwakCQEaMRVL3cd1pJHLP7gY6pZs24TfPvOEi8mBo643vX4mD
+8Ky5Tn0yuUjW213T/rv4bX3LoFSNvHJxDHbuINw7Y+A=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/keio/keio.cert b/server/component/planetlab/jp/keio/keio.cert
new file mode 100644 (file)
index 0000000..0627235
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRrZWlvMB4XDTA4
+MDMyODAzNDUwN1oXDTEzMDMyNzAzNDUwN1owDzENMAsGA1UEAxMEa2VpbzCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu0TiWDCiaIP0VAktXNJTFhLSvwb66LbT
+tTutmcPKtiJggrexYLdS4ZjSXiToqzpkWj/cCPjvKORWFTU6a3ETHnHlVGWfia3T
+1IiUuCFzG1NB9IjBH+o/0tsxow5s0wX+cl+3Jqj+VihWvEntyOaJ+7C1CiKTS1G1
+FP5acRP473MCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCiFGqgj1w5JHuli/uBsP6z
+TEzL8XNsLcU8ccbv9fTBp55VqC1DPdTldU0UCjoQs3/ButuZupJjWp33dtlt4jcM
+FE0DUMj1RxRXOSg/RDszEQ/AiFA51fhFf2nCisVcYMbge0W/PFko6Cbc2ZQ3/ESa
+XLASlCT+bEX7r02va/SlEA==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/keio/keio.pkey b/server/component/planetlab/jp/keio/keio.pkey
new file mode 100644 (file)
index 0000000..7627098
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC7ROJYMKJog/RUCS1c0lMWEtK/BvrottO1O62Zw8q2ImCCt7Fg
+t1LhmNJeJOirOmRaP9wI+O8o5FYVNTprcRMeceVUZZ+JrdPUiJS4IXMbU0H0iMEf
+6j/S2zGjDmzTBf5yX7cmqP5WKFa8Se3I5on7sLUKIpNLUbUU/lpxE/jvcwIDAQAB
+AoGAD5N0LBenen/3M4Ir5ruLs5tPMhpXhkGmrD1RfCef1bRYSKcUttGosCDw5mm1
+fIB31lXXbFugMMuFKXBq8oLOLyankUbNuJvDwc+RT+J5WZ6jELSz1ay2h/SoT622
+t0RdmJCNnPGr0o8LOOQX4VZQlm/HXTqFmcSmCmYuug7LowkCQQDb9PdDo9tojgB/
+HMFt5C4MYT/fC1eyjlFJd8Qoy83B+XUqdKH7/ocPUXMFrWo9QZz02N2BX+fXPgMI
+h6pV9XD3AkEA2fSwDbHhlEu3+/v1NWcA0H8lSw1yJ28paMLTM6oV4xevGaMBcgYL
+W9BEXhehw3Hx2rmDwMS6ZZM/CPqLHt4SZQJBAMsLfV4RWq9PtqGgl+arpt6Cv4VU
+YSZRPjSFvKy0RkJz13bTp9yJf3/ifj2VcecONKfJseCF+ey2L/Kl2dXz9s0CQDmH
++Ay1Xnj5f6gY+sHM3Y8rcJmeA/rawdBwVLV3eO2Hq+WVfGUvqUHj+Jfpnv5rDk8Q
+1vFEPHthYasqDxznu20CQBJIxujmGajl09faO9GKPpfl3B2PZ3v7BcHyLcXPEBog
+WY/TwXBcHkI/4FKw8iSVMEbAosg/p11ZXOzXcHc9bvI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/naist/naist.cert b/server/component/planetlab/jp/naist/naist.cert
new file mode 100644 (file)
index 0000000..75b3a1b
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVuYWlzdDAeFw0w
+ODAzMjgwMzQ1MDVaFw0xMzAzMjcwMzQ1MDVaMBAxDjAMBgNVBAMTBW5haXN0MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6T9srwMUCCSXJ4qjB9XqP+FomrtdO
+SGkdkhHBfgzCeHWMkkC68BCPmzgTkMKi4GVvFQyRJltCk4r5ayhG4h3SwuTEIVWC
+hlMrfZMyB+ziuB0nXyoiCJiyU6Zi7qFjj+8hcE8fgJts0o5Qwb9Q9AsZwHPD6SJT
+oqXgXj8vBxU/kQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABPiuWtaKUvjx3tmP12s
+wjW1ezl3bO/hscr9lWZ2Yi9uq75MdVTDbKZbgllfxQVYVdsksmegYvIO+tNisnsW
+/2IAtigrW+89U/SEpgGcDB0qUlvkuxiPcZGg+f9Phrw/FpR/47i9E7wmYfo5hi6p
++3uEVHL+EU1SKH5sfqbHkCUq
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/naist/naist.pkey b/server/component/planetlab/jp/naist/naist.pkey
new file mode 100644 (file)
index 0000000..8de0cd2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC6T9srwMUCCSXJ4qjB9XqP+FomrtdOSGkdkhHBfgzCeHWMkkC6
+8BCPmzgTkMKi4GVvFQyRJltCk4r5ayhG4h3SwuTEIVWChlMrfZMyB+ziuB0nXyoi
+CJiyU6Zi7qFjj+8hcE8fgJts0o5Qwb9Q9AsZwHPD6SJToqXgXj8vBxU/kQIDAQAB
+AoGBAKmuZvbPJt22xRK7+mRDlK8gScKnQ/HI4usKiF9H1IkcujofTRKz5vFTNVwk
+YA+E/PyRGBPt8fmNdGm6HUGJWAx21gYsjMJ0YLW74rJM1gqzJD9BGcghU8ifUS1d
+HTjoPMAqe97CQttwx1h+yWT07SNMnIFyOkGrqRjjP85r5wZtAkEA8DHvBkPkAfRr
+1+c38jaUz+AZbc1TMfEIdFeD69oVRRDjipyMMYZkfvIU6n9iBrwSIeC6TQKy56xq
+2C3tZCPfmwJBAMaSRAWs5TVdgjQ/CersVdqe+utf986UPAMqU1mPe97AXwVAe0or
+JwMQIYxl2pQSDS7y2Ix0+u79GAVn88L5zkMCQQCkrGdGMVdpq6wgGmp1ycvedLKa
+X/GQxMJaGQHduedpMXn+tvM6pPvTOJ70Yh7PpTL9PPgdAiOrx758tYgSZrHPAkAj
+TryjmbODwqW1LoRP7kfxwJTzJzRD2h21nmAFq7qlx+TdZTLG5FdidwrQEQhFjdQk
+Re/1QZOgzQXpaCtyvsJLAkAYc7UhlPac+4yQpwyhMtxVvd/qjyrF4yYyAyNfrI2L
+ktfp2cw1/9tuZeGaymmn8BSqKqKTOePEtqISAn/tChXL
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/nict/nict.cert b/server/component/planetlab/jp/nict/nict.cert
new file mode 100644 (file)
index 0000000..750a7ff
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRuaWN0MB4XDTA4
+MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowDzENMAsGA1UEAxMEbmljdDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1HgF/Ae3eVigZBiS5CF9NlDInHpY1bz5
+5xFF3rsbsS1Ks613amaQol7UAriYrMx29aqKrwtUCVEjuxud1tIRkSuyvCVdlioj
+jBjzI3WXWY4A8NHG6kO1eIAiLN31UUQJ1pz0T7I5B+vF2gR9awDpLwaj1M4lUN9h
+QlmMhxoipP8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCB24g4EN78aGHE4lp7CJLR
+NYwE4FA+xmUKRVFAJ+iy6LPdiWxKG0TvSyScYUmP5p8wNVlw8UqbNInomvPmpVBA
+RxYNCy+fBRdcgWtwBWshQBPUfk10btjUDDYyPgGoZHEcqP+VcRIA/hxmhuXV3Xuo
+lCPiUE1tGIv78rncYpAS6A==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/nict/nict.pkey b/server/component/planetlab/jp/nict/nict.pkey
new file mode 100644 (file)
index 0000000..c4b2363
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDUeAX8B7d5WKBkGJLkIX02UMiceljVvPnnEUXeuxuxLUqzrXdq
+ZpCiXtQCuJiszHb1qoqvC1QJUSO7G53W0hGRK7K8JV2WKiOMGPMjdZdZjgDw0cbq
+Q7V4gCIs3fVRRAnWnPRPsjkH68XaBH1rAOkvBqPUziVQ32FCWYyHGiKk/wIDAQAB
+AoGAVgGT4pa5FXzjyEEOTRylU/RVkMoR5cuOmZOrZeL17b24zIz+luqXx7J9PfC9
+lM1bpkx3wS3jwbW/sgEW3pvAkfdCEHUqvVjp1kk2IH4feNCJ99YIVfrFMC9q/XcW
+boyx7bq0BFVhE19aLZF5y6cHRsP6u2NUSVKkrP5p0KxT38kCQQD1L0vDSYfSZ7Er
+puD9tnBvycThEYWzouGekXhcKqQB8Jad1bapqh3OLVU+a521mYuVwZBSU/JaX8zP
+mwF5FbMzAkEA3ddJ+/jC6dcEeoTb0h1FVOJCYEcxGWq2QagMlINqmJXYJhaCyWph
++MuzuTFzvGXiHTIisH1ce+9UpEoO5/FHBQJBALtlHLjz+FV+X1GHyKrhx+oJAusq
+40+7DEqP0LhQ9u1snxGfiG8A0KsGxwJgajekVaVuPgpOkwsz8WwzgtqzFTUCQQC9
+UXJxF313xCitSl6ydIprg1/z/C15rGj3pSt/PpukthQthP5+V0xe37Bz9jD38dbC
+5btW9NUNa1THk/AenvjlAkA+H9baKaCAo2nTCq0N26Y+i0lU8bPqwLsLgLkqhyKS
+jyNx6ahK51qf+l3N6kbXwRdUqOXWoYSzpuisPuhCqstj
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/osaka/osaka.cert b/server/component/planetlab/jp/osaka/osaka.cert
new file mode 100644 (file)
index 0000000..066aadc
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w
+ODAzMjgwMzQ1MDZaFw0xMzAzMjcwMzQ1MDZaMBAxDjAMBgNVBAMTBW9zYWthMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvOrdUhMZtS5ovbjcWD554LWLjS29J
+T8Vx2M2sdgiphs2hSA129RsQ8JJFAf/G4hTOGPAyfY0OHCjI4PKp6gjOdYO80aty
+HyzNvTrpDD++zhPJi+2m1tc/nv28PJYyDhif6pnWL9l9kixcPvYXAlpUhH1igkv+
+fnyRsBqcWyFyGQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAE72TvEG/vx6FbI7YVUz
+0B8IN2D66gicWvr81T78bijQdvXuKoV3JY9Qz1kwZrzVhiWFgmXYd8peXAgs+7l2
+GkN/ZnNED6g4DjJuGfhCN9LH0ISCoMID5aP/XqvjGg94aVEccW+vEJVR25IE5kW/
+wn2NrQ4ZfrJnmTyHpDxs1t5m
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/osaka/osaka.pkey b/server/component/planetlab/jp/osaka/osaka.pkey
new file mode 100644 (file)
index 0000000..f2dcbde
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDvOrdUhMZtS5ovbjcWD554LWLjS29JT8Vx2M2sdgiphs2hSA12
+9RsQ8JJFAf/G4hTOGPAyfY0OHCjI4PKp6gjOdYO80atyHyzNvTrpDD++zhPJi+2m
+1tc/nv28PJYyDhif6pnWL9l9kixcPvYXAlpUhH1igkv+fnyRsBqcWyFyGQIDAQAB
+AoGBAMnUFLWmqy2sefGIH8tp8/1Z9TLkAoisV1zcV3Enx9kWlMd73Xg+A86/1/eG
+Xz9wn7LdUVCXofiEg1guiCwX+cJrr2d+/f8W82otpzKav9bqPlqyj4S+FQqOOJyv
+X4rx0aiRyrSvwDJWPb0qdV+FeN0RWOPmMAUQo8E8MjtAFpF9AkEA/QvHjBi0AgWK
+HB7zVeYt0qvw0vTySr4fH7DpwheM9iKVeUA8lSD+dqp32P9DIJ1h5JbLy9OwH3/P
+szzSBDbPbwJBAPIFpV+yw3+1/B0AwKEJI6qN87+ftt5nI+rrjyctCfBiodRSFU7S
+IycVCIHTRzscMKJFghl0xIIgJ7I94V4ukvcCQQDkSOA5L4AV4tF6FSIJ+KKWUK/u
+YTTE4UhK2tvIUl7FHuYigSUmlKF8hMWiaocwwUszYidxNwTJJhFG7jO5wYjZAkEA
+hRAVnEfstIqZ0lhXkDI2Kc9h9DkbkaujU8WvLxrUHBYeY1292Vgve41U4AwJXbZi
+BtWwcc6BPAnxyU28WsvAgQJAem9czQyUwYos7WEdO0G9uVu2nRwkexmU9MjbXo6h
+xwq1px6MOh60eSlHo1haUmbO6qhjo4KW0WhuDB/xr722xQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert b/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert
new file mode 100644 (file)
index 0000000..fdc475d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu
+ZnVrdW9rYTAeFw0wODAzMjgwMzQ1MDdaFw0xMzAzMjcwMzQ1MDdaMBsxGTAXBgNV
+BAMTEHBsY29sb2pnbmZ1a3Vva2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+ALiP4bMZ+YGWbXliJoulekSWpr9oFikDgTt2/kiLRjbutSfgkzXQy6U7LuqHkqNs
+xv3q5HtgfRRxQgBBbvqZwc8N8FeKRYtfMHuSkWL60NHICPgxfvD3w76ke/3wEUEf
+3F7qFnGKUM6382WZbNvbuFkaKUc1W71aXZQdmnXgHcTvAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEAqb9J79EoVIM27ZvenA0TguPiUitoChAfvVGwPij0tEmtRC9KzeYz
+dqoOZRb7BShH+OdQhMMP9n3d9ZQCIhgEei44bxHVgqRY/LXYNQmekMnfNmm44lVD
+znfm/4oIibwmZ7oLSHBR0JHyWGL6VyHDTV/rXxuaV2Q8iM6wVpj8hDE=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey b/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey
new file mode 100644 (file)
index 0000000..ce0a75e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC4j+GzGfmBlm15YiaLpXpElqa/aBYpA4E7dv5Ii0Y27rUn4JM1
+0MulOy7qh5KjbMb96uR7YH0UcUIAQW76mcHPDfBXikWLXzB7kpFi+tDRyAj4MX7w
+98O+pHv98BFBH9xe6hZxilDOt/NlmWzb27hZGilHNVu9Wl2UHZp14B3E7wIDAQAB
+AoGALRVwk7iPm1ksqs8QDWLByElouC7r4t7pTaZWnU/wOfD7rZ8NNsMnS9h2MHIn
+nuYugc5EO+MpCrpT3g4d1veCQPCmgYnnXKnMeiK580cJjkWc/3P1IWd5kwNk3EXK
+yWT9Jc0iaXFYnDRS4QUkScGvLT9A9251faM26br/+AA/8XECQQDiH9pnDLzN7vg6
+E9fiZHNoqlsAUAerWYhmH28r+0pdpx1Z4ao/9hbPVKzmuAs1a0jZZUAXW8wS0Rb8
+tlEJDTUXAkEA0PJGWImZstWz6DdXv5yoEodLSXLBYBF0OamHGIiJVfTMun+8Ljmw
+K4qA224zTG7B9ELnzMx3RdhNkpeQHskF6QJBANKtYssILxCfSV6zBjzD4lLuBYMx
+DTQ0YsTjHK0Zn5vKC6qmefzFx1K8TatYZfkLUABcOW6J9ITDkms5Yh7Q01kCQQC5
+h2aPFx8yfC7S8tEngqJ6UUe4X/z0oIri6HTcg9/uQv/GWcVuBis3fjQMoz1JkM8H
+ZKEOaD8/9WBr2chOjZCBAkA6NdAQXDpOiO2P59A3xMyWWfk90RrIQ0zF5Xz1sSP/
+zaFRtfuDRLRkdbq1EWVY3D+gYJf2NygOqxIdTSoe3dji
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert b/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert
new file mode 100644 (file)
index 0000000..fd39e55
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBqTCCARICAQAwDQYJKoZIhvcNAQEEBQAwHTEbMBkGA1UEAxMScGxjb2xvamdu
+aGlyb3NoaW1hMB4XDTA4MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowHTEbMBkG
+A1UEAxMScGxjb2xvamduaGlyb3NoaW1hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
+iQKBgQDVI4af8tt3QE/CCrjRaR4UWTwKaUVXXPJ8ks4dleaZnQiiA3mgsoIidmJb
+KOgZivvSxjKBhSkrsEr3JeQDN4ux0hnW/KH7JGFwZHHAdNF53l3ltZei/B9PT9GV
+vTUAA+ZvOMj2nfdBAdr4lGAE3+Uj5AhniiArfZIrWmsdWHX02wIDAQABMA0GCSqG
+SIb3DQEBBAUAA4GBACVKQAHA4+gTEiBslqR4Vjb1bFO04i4VwZZNS9CwToQCdVo4
+xyU+eU2uLzGyrGQspY4konw4znaCghzbiWz4y5HTqeEl+h74epjPZlOZH0Z8c4+H
+KerQf1InAmU3cr8O7N+/zDO29RT1P5Drtp5FNHFAXTMJcMTOda4SJB4nVEGn
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey b/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey
new file mode 100644 (file)
index 0000000..e4cb2ff
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDVI4af8tt3QE/CCrjRaR4UWTwKaUVXXPJ8ks4dleaZnQiiA3mg
+soIidmJbKOgZivvSxjKBhSkrsEr3JeQDN4ux0hnW/KH7JGFwZHHAdNF53l3ltZei
+/B9PT9GVvTUAA+ZvOMj2nfdBAdr4lGAE3+Uj5AhniiArfZIrWmsdWHX02wIDAQAB
+AoGASGdMGVPPt//x2DH6PLEf1bvGiKbgNmBNw4G/YQ+GCZLt1tOlYrChQoHCwcLw
+rZSoHR7VE2if5sZ5gOGvRmR9IGjoxZWOiIoKjQwa7LqS+PL+z5QJlu5k4mzLXMR8
+t2nwOlIjp5uoNcHNQ87sjO3aB8uemInWDa4gpzbU3CfmbuECQQD7BOYYRie27lqy
+9XoVXU9844OdoDdI9kGXCvhtYI3nsK4IMshBKSuAD5xEYF0rSphFmyBcRGU1gzeq
+TNF8iaXRAkEA2V40z+9vqA7ziLXuqj79FkQ6b4dXXrbt2bvv4x0bwebYob9icu5V
+avIgvAnGnCJuk5/5kW6h7m6hXJzLvbhe6wJBAOUOjFTcN8NS74rcO+Ig+rbQ+bot
+iCVZKXMF/Ln6YKNqcvRiOqBTTDGYjRVMBdjKQfdKXhY0B1L0gSgy3vpQtPECQDEu
+K2zQk8bGezt3TmSek8yx6zbIvG/lm7Mj3obYUytv+5u9HZ07Z4AnAFkLLTCuaa5l
+B6ZsDZ9Q0JmPsFlgmbkCQQCKhk8Ak94BhK8PhH+ci0id5IxJbpMM2LPP0jpFTIYV
+3AwhtDqlPSqnvXfW4Eq8uj9Sc2SJMJ8/CZCw7i32DaCD
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert b/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert
new file mode 100644 (file)
index 0000000..f9aeed1
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu
+a29jaGkwHhcNMDgwMzI4MDM0NTA2WhcNMTMwMzI3MDM0NTA2WjAZMRcwFQYDVQQD
+Ew5wbGNvbG9qZ25rb2NoaTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu7X5
+54fIGlQr1h91GY2NjRnYWRDnyw0QrcsM1F20AHnGE6MLchfH1g3VsUDw9d0tFO5x
+Migpu/ca0l6DobQN6Ft8+zZy9N8o+fQPYrSHAm4Cf66rMHY1IyHN0VnQmczs4Ig7
+GZBSPXbZBXA0nbgQ9VXeZW1xktDuzEUOnLIvzCECAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBNIQsP7JVGa4Tk/0K//v+kDUtEQe866QBAIScFUaYXNycM62NphRDI7ZXX
+b8E5tnCY0qJy+SuzwseIMlP2ffHeHEGeurbjAcz5WpNl1h0BN1RVcTO5UXlSiwZR
+xON0k/A+uHIjQzJb0FfxdDikaS01tkeBfq+/O/VoW6A7Xi5mZg==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey b/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey
new file mode 100644 (file)
index 0000000..5d2b311
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC7tfnnh8gaVCvWH3UZjY2NGdhZEOfLDRCtywzUXbQAecYTowty
+F8fWDdWxQPD13S0U7nEyKCm79xrSXoOhtA3oW3z7NnL03yj59A9itIcCbgJ/rqsw
+djUjIc3RWdCZzOzgiDsZkFI9dtkFcDSduBD1Vd5lbXGS0O7MRQ6csi/MIQIDAQAB
+AoGAPK/Er7oSU5DK61sYPL6q+OdWLtVsWxVKQyXWbAIvY8f65fZciPJvRSEL6VaZ
+kKOFI7NDHXgmpgJpxYGRBQJ1TA/PrrySy/7eM9cnKa7h6GaJNWBl9dae0VifqESP
+GgDd6xci6mI3C9A5VrmT0OJqU2eivubOvu5e39XvFmRNhsECQQDrMVpfFztxUb2j
+AmiNSyznFTHHaOdKk1a/WqcGNj3THv3R/FoP8ritKNJi4hzPmxAwqlj0YtEl06js
+JCFtYitlAkEAzFFAhJmgkVYRMMdfeZd5mXdJDQ92+sNjOhUz2EY8Ra6d+ZeCsIpD
+/LXFHbk4xhukdQRp7EEw9QcmxNkgnEe4DQJBAOmgy+G7xTuK9DLSOKNqcr9VyW4J
+of/tnnVVCqdcCEwI9B+8aoZ/GL5B18OMUwxTP2DoRpb09kd6GsoAFgh/RRUCQQCy
+Oe5dvOUj4j/8nO3b0xZvmG5QxjyzYd0cvYIMFrhc0IVdQ5ztAq9rsePQmdG8fkBn
+EwKS5AsgsqxO6lhX+vfBAkAGXCZHSgrjY4DLrpZ988qfr+zTmr8GXyywLxbHQtli
+HmUEcaykHMW8nfu8F/eD75k5XuBUcSETOqG2hnsdQZSd
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert b/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert
new file mode 100644 (file)
index 0000000..797e7c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu
+bmFnb3lhMB4XDTA4MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowGjEYMBYGA1UE
+AxMPcGxjb2xvamdubmFnb3lhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCl
+Ijoty6h9vvAwHFsMpD56jZSYcU/LAunUmsjMvKn7Hv5X00Lod0gpzylooM8P8w9s
+n0sodFVNfjfQRiXhzMMhcpKBlK6lW+7L3JPpN4A6E2WkTKBKrRECb2n+Wj978+jq
+LaXPvA7QKpbkFXRttyd8e27IerXaLGOcRs1YMNFbnwIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAHs48zcn3MISFKwFMMs+znnivqPfbNPt5k2EnOcnN4zAoOfaybs2vWR1
+ohVhYi49RCMNvPEj9DR+FYVG8KbKN6JTW4eG+6LSlOt/VgGOR5MhUNeXWpqo4m/v
+6eTY8cxiq69b50amrEg4VOEUglMmscCyZdU4W/hUAhN4Edf2KIL3
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey b/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey
new file mode 100644 (file)
index 0000000..d223dd9
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQClIjoty6h9vvAwHFsMpD56jZSYcU/LAunUmsjMvKn7Hv5X00Lo
+d0gpzylooM8P8w9sn0sodFVNfjfQRiXhzMMhcpKBlK6lW+7L3JPpN4A6E2WkTKBK
+rRECb2n+Wj978+jqLaXPvA7QKpbkFXRttyd8e27IerXaLGOcRs1YMNFbnwIDAQAB
+AoGBAIQ1cQr1QQLb+gUqzqLCZNtNuyiJn+7TeE6lVhrE+fp6B/xcwfbIeVgv6eFA
+zkbgvPqkVlIfQaR3Z0wyvWWYwKgfLUtEXztsd1T7ogmYQpAScdeKH7/jfduAYlHC
+yMkmhlRYsQlRUizT6clug1cKLrTEoaKEBwMVvOYkElPzonVBAkEA17DxTtwYIaNB
+vOqbKeCtaE+XbRVuIVy+gadnguLpi4x8T5dZPPssmvv8hiuiuaDDSYZzbwzBV+To
+yRxzhSkHLwJBAMP+heRUCm77/tB69VeY+JOeYPeq5ZXVi34PyKF3OyBIFF9IvML+
+nBr+mFLZfHDs03dzVqXCr8qwMa+XRMvd1pECQAPKmHNKayIsPHuVpCSYTnQG8iJ4
+vfbYKoEc8DTcyD4rugOsJWVtBNu0kjvJiJK6wLQKKP1KvBtPasgeN+mfTwECQGsM
+Um8CY+x4YJXYArbEi0h9YbMEOX9b8mN5FXjzWWzpUY81eDv8uqCX2/SsayZ2g42j
+hnjk3AUVtR2VvnKnCLECQFK2ewWFdrSRfLKcN4vhULGtPl3x7uh4VbyUSUsiuls4
+q1b2xApXYVKRxD+LyGxiD+Rt6luvVEzdnvmt76ENa54=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert b/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert
new file mode 100644 (file)
index 0000000..d7aa238
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu
+b2theWFtYTAeFw0wODAzMjgwMzQ1MDZaFw0xMzAzMjcwMzQ1MDZaMBsxGTAXBgNV
+BAMTEHBsY29sb2pnbm9rYXlhbWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AK5FphD9l7e77gFWdDTI7GgsUNL6ZcdsallvNVZzhXihOqlsKmrHXLh2Hg8BBRth
+UHkNi77iD0Hc//8dAIAJWFdIPZahfa7U9caQZlYraNfqUEmuuCTueh3Qv1AspThg
+gIrNosP8Jz29W64FGLmMDe1Tu/ITty8K3BIJW/HIumWdAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEAEXJJRBW9GTO+clwX6pK6CqQ0iJS638UossGRSMR/whhBf/SneQb7
+Dx+QoXae3vlxM5o1QxEKsBom4jixLIzeJd0uA6qvIQaalJTjhFqCiCtiZQ3a16Sj
+hsdRdubn49iYWScE9JpgDRGe52mheIZd185rlNzXAUWr6OSFcN5iK0I=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey b/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey
new file mode 100644 (file)
index 0000000..176fdae
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCuRaYQ/Ze3u+4BVnQ0yOxoLFDS+mXHbGpZbzVWc4V4oTqpbCpq
+x1y4dh4PAQUbYVB5DYu+4g9B3P//HQCACVhXSD2WoX2u1PXGkGZWK2jX6lBJrrgk
+7nod0L9QLKU4YICKzaLD/Cc9vVuuBRi5jA3tU7vyE7cvCtwSCVvxyLplnQIDAQAB
+AoGBAKfS2sGx9NEzYVhYcUAD3eXUB2GlUS5i8Wd++NZwGTC500wkphR+OIRK+1dn
+nAtqA50Ptmv0Ns0ujjiXLUwfs7mC6QQIO6nP+qlhQQlzky+jx4Xe0hIUEc+zzndh
+rFdBZRnEViPo9XBeV2wB9NvLDnZ8pEafkjI0GrRy7cbyRNbhAkEA3ANkH2nDlVOX
+PMRRjI9sWxSGpQEgiIjgGPCpSWiO+G4/0xRtQ+H9FTzegk1JTGZDj7hjf/tHVlvF
+qOXncaxPKwJBAMrG8DUKysiWf0z4hPmYBRX4Y3I8xgEBnPgZPfm1utdsTAs0D6hM
+raRKxWnN8j6jy5lEBbgCkxTsY0vYndvTelcCQCZxJT5j4Xum9mb0unb/3GPxqzEL
+iF6y480Xx8x+y3RW9ynviMPyqaDbWNmVnXgO6kEja6dCBY3uTRQcz5rKC68CQAyO
+SO1f37KP7w37DXDPAvGbUb0PGkuRqACMv5OotwsDv6mp7ZZEOTRFFPg6MlfCmKbC
+2X/NWQIgqP1XSl8ENz0CQHgkffufkyBVijLMAQDwi7NSWHJOFBj2i4tK0uf6IVyq
+nJCqQFMU+HWYlzB/DHzFn3xhqqVKyYnUQqPU6qhkQKA=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert b/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert
new file mode 100644 (file)
index 0000000..e1c35d7
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu
+b3Nha2EwHhcNMDgwMzI4MDM0NTA2WhcNMTMwMzI3MDM0NTA2WjAZMRcwFQYDVQQD
+Ew5wbGNvbG9qZ25vc2FrYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzLZp
+mjyYl0Dp5VSgj4I319Fz2ikuorayYmbnyyrKDX92eVEj54oYdl7qrcl4tUDn8eDg
+qQLnN9G/aF2Ky048+pbZN9REh0UN9y/N+xxNO9StBb6BqvVk2JG+axvnTQ4sBluL
+LbM7BmrVo+5s5p66SDZ0YTd9zbblq3un0uQGv8kCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQCKBHxWrJxTgMTR+wHhmc428FrNZYc4IDF7BxfRcnOzORzud5xBtCtJIqpz
+QZKASxUPgd1YIs3l4yRsO0Cj8Ks9Mr23d4XnGBSszONlwzzXkPeXxLiBnZdMmE/q
+FquF2Tjf6R+7dJrLVCUimq9DznNoOpmaqgDc8+Mr9RURbczkAw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey b/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey
new file mode 100644 (file)
index 0000000..1effff7
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDMtmmaPJiXQOnlVKCPgjfX0XPaKS6itrJiZufLKsoNf3Z5USPn
+ihh2XuqtyXi1QOfx4OCpAuc30b9oXYrLTjz6ltk31ESHRQ33L837HE071K0FvoGq
+9WTYkb5rG+dNDiwGW4stszsGatWj7mzmnrpINnRhN33NtuWre6fS5Aa/yQIDAQAB
+AoGABJkURiKWSs9qcXw1HwQNvQs3Tu8d3Qm9d/hXvHh5kVQLlS39YHX5lq8LFlww
+GeIbU5N5eFJYXyiW5AE13NslA3GR+9XODISe4yhGT/yJtbGzbxRROPhRx4saY0L2
+5Nh5dhSlXeC7YLFjlPNfiAyvpQ4/p6unovMZagA5IAmhNwECQQDz8rw5nyJ3OaVC
+6wXL4nJFVqdzGlREeu4bMO96nWMqgeylFPJnwth3ixQeWv83/zaVN4k7OkWXggXk
+kbjqCJ8TAkEA1tN0rzAexkfWPrfIS/K/OkWJd992bEL7s28onL1syCIA/5n3c5lS
+r8Pk3TQXXQt2K4yCikwfTIsbkPo644OVMwJBAM08fdE4qgWGkRxAoKrMw/jEE7MK
+BrVqeyKTRBdzjHe5wT+N5PcY/YdtkiqLwkb5R5G4nJMgzmXONWj8lIcJY9MCQQCf
+9pTMXmiL/LHrwa3D393E5kKWoC7uLnJ+CieTjvmRjMBxk5RO37xSZOvmSwOapQ45
+H0eU81nbBTphmfJ/t1tBAkAIVSUyTwHGddiLSI2vkKsAhtlMHM/jdMnsi5XjauFm
+qHpaqYvM1hUo+jMR/5VeYnE1p8QyM8I3b3rG79VT7DMH
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert b/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert
new file mode 100644 (file)
index 0000000..259eb9b
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu
+c2VuZGFpMB4XDTA4MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowGjEYMBYGA1UE
+AxMPcGxjb2xvamduc2VuZGFpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1
+b6T3col+V1yomlQHPrWYqJdL4+snvgcoS+zqDP+5xR+U0oFRfwnGGDRZvIyQHjDg
+XrXiLsz7vLotQW6bhFhWC8SqDYJGZsPQF7v+xi4Pma+Hv3gU/Z7zwgOBy5P8XpYP
+3waHzT1aF+r8EgbAhINFH0S9JffsXc53/7fxldUSbwIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBACL8PIa58DZbe4H9fsEDboF7SY8xyl3XwwnWk9xoRs8YgAiQRbzAaQEb
+Rwu0qkbagYvRVdNRj+OMBWZUGgQWBulJ4gNo/BKXZPkn9+ZnOJ8wlkG6cXrZgkjM
+0MaODu2oDgZxvPTc7fYD+DswC+47LGQT5Wwq8RI+lqopiMrjm7wN
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey b/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey
new file mode 100644 (file)
index 0000000..f8e75b5
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC1b6T3col+V1yomlQHPrWYqJdL4+snvgcoS+zqDP+5xR+U0oFR
+fwnGGDRZvIyQHjDgXrXiLsz7vLotQW6bhFhWC8SqDYJGZsPQF7v+xi4Pma+Hv3gU
+/Z7zwgOBy5P8XpYP3waHzT1aF+r8EgbAhINFH0S9JffsXc53/7fxldUSbwIDAQAB
+AoGAT7hqh79v4m+IaxzEZxqKuDT7pYDTxnactnwF8SEdDActRTrpT2G+bagc+ID8
+Uiax2yRCTsu5jbLzKwdhDjwsg4TqKnDI+kp/FSp1wotRMqe4WN5lZvUngU0RGbvd
+S62S0qvHTPGIxjwgkyWNk7B7UOY3jU2OpE9TSNtgSRbfN0ECQQDZLeB77qSSkjf9
+NRUPa2j0QWF2uhOoh04cvuNf3zsRz9o1TPRgLvszzkb/692PheEwhhyh8EIfGYsn
+xug9APN3AkEA1d4pu8rLcHhKmoTOUp/R2BPI/A24RLZwOoeXA/wX73D4DJDIFWt4
+WCgX1r+FRbiRiwdscgBSrXIa+jYyka/myQJAJZlNrecI0t9BljKkbMD5sJ/JEdbx
+JFIYcd2SW7y360OC0Yt7G1PG5Zcmr5PUDc7tx4rQVjDUIbI4ZzCGcFlDzQJAAuUB
+3ZfODxShtdusSzP8jBcgdkDdSJjLhg9FvPkRfd0ijlD7VEbjFxZb1D09WYc4+Q+9
+qQFWHSDZOp+3KX+e+QJBAJRnjecDlV5hGqLmsf0P7XwtmhM/MQcBFhs6HbeUBQZM
+XafaYRZKI5Z2ekgbHrspeM31paWfJ6zt0ub5Q6tA0tM=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert b/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert
new file mode 100644 (file)
index 0000000..991b562
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBn
+ZGFuc2swHhcNMDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjAZMRcwFQYDVQQD
+Ew5wbGNvbG90cGdkYW5zazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3ca8
+xc8Cqjw+N2ffP18miWdZJJ6z4bCp13huLEeJTca8DiVj2anmKW7QsyH+hKa84QNb
+OkK/bWnXEmBmDRd3ZILlnTUHmsWYrmmdcUMyf9MY9OfoMoByZp9xeJ0lTKUDahdN
+2Pk7bohEZKB5Eo5qq3oqnXy3UfVDF6P9IkNEqG8CAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQDQ3Qcf4roY3bvZD4YoGXmKhBDGKBQPd9O27JcCQ5XiLME4aexw4akaNnVL
+wOS5mUdjH04q8JuM8cNtil27uloRdYsCy1bX/trITqWg4foy5Cxsqn+ctHWbghZz
++DBPjgWQhDBw1sV1SDhjqg994/c5kWAWYh92FS/cv52dyy4WXg==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey b/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey
new file mode 100644 (file)
index 0000000..8b89596
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDdxrzFzwKqPD43Z98/XyaJZ1kknrPhsKnXeG4sR4lNxrwOJWPZ
+qeYpbtCzIf6EprzhA1s6Qr9tadcSYGYNF3dkguWdNQeaxZiuaZ1xQzJ/0xj05+gy
+gHJmn3F4nSVMpQNqF03Y+TtuiERkoHkSjmqreiqdfLdR9UMXo/0iQ0SobwIDAQAB
+AoGBALczxxk4yqDKJzMp0VfOSE1VXGRN3Zbgk0z1pT1a0ue29f5RkMxr9z/e1PRF
+brUx7/GJDkFwhiXiOtJpY6QI8IxDa8oCbEjLpYrMBZ9C3pLUHy4mbM/LaZxXdxX+
+A203NYrDWopRt3KcF/Fm63pOaPvu2b+DKips51XnQfp36qBBAkEA9PbfOWXIIjz5
+ZX5+FWcSLPpoI1G3hYldPgjMjrEI//ESov42bnN7BPwcYAZ0wZ7ecYZ0i8sd40LJ
+QZdLwlBMHwJBAOfEcTeIiaMvuBKnoWFY5GkZyDfstgynsBHsQRbMWnGBvUvAgAMi
+y++mrZUwxzumC7LdbBfZucqqcupH8dOPGbECQQCzm98IAqy/Dd3+oMRphO06tU9t
+thjNfG41cdYqOXvTzTpQ7/uQ+HMWsJNNhO5OmOGYc3E4nnEHlIxj3z7Y9m8ZAkA5
+SWYOqvISYu4ltkd+b2Ft1RCXOiw5bo1nsLTZ9ML6QW5PthIuNECiSNmpAbiNNtq3
+aGGad5ejz4O+AvB0MW/RAkBmdjKVwfBHBALXJQPxDNLa/1JrDHuT8qO7RVXExc2I
+mUcNAgvSDid4iA6wkFphe8z0vGDCgA987HDZfHYvI/EK
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert b/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert
new file mode 100644 (file)
index 0000000..e683e74
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvdHBw
+aW90cmtvdzAeFw0wODAzMjgwMzQ1MDdaFw0xMzAzMjcwMzQ1MDdaMBsxGTAXBgNV
+BAMTEHBsY29sb3RwcGlvdHJrb3cwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AOtiAqrvauL/hvfHuIF+LIYirzIXmpS09Px7gl/Dwj8ilqfPi1740CLtMiOiFx4I
+0aH2dDSwL2bH82aGICrLdTiL+7VKrK/xzloWIsHv7vdwekNNGEIH+MjLsU8NE5u/
+azxOJmFagVUDr6l7krxLlghGNhZQp7yWx9++RaY/+udpAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEANX/+a9QHDZo7TNGiP52Sf15Uyomdqaq6xhBkGpUTaeJWpRmTEE2/
+diXIHsCn3wUxoygIurWy/lYGuDewBeyRwF5jBaFcIqO+coPcrBsvhr4gzGCITB4E
+jRjTuJQI2q5XC4VO3J4UGs9yy3V2yJrmQ7KqcDC2YTj1M13hTQRd+y4=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey b/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey
new file mode 100644 (file)
index 0000000..df13212
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDrYgKq72ri/4b3x7iBfiyGIq8yF5qUtPT8e4Jfw8I/Ipanz4te
++NAi7TIjohceCNGh9nQ0sC9mx/NmhiAqy3U4i/u1Sqyv8c5aFiLB7+73cHpDTRhC
+B/jIy7FPDRObv2s8TiZhWoFVA6+pe5K8S5YIRjYWUKe8lsffvkWmP/rnaQIDAQAB
+AoGASLGsQT5PtGtWM4/q25MsDQEJOl8vzl1Ui+VZDlpW00jLXmgqktok7aRzp62X
+lh8DHxIOMXd4LDX0ZeVmadEMEiMJema5df+JNfc3vbtToAthkvDpr/YZXjYIC01m
+Ri62UjW8UnDnFavFa9KxzY2OtAkJ9IZP6eVH53eUhq1cQAECQQD168oPR49s13od
+WixJn/ZihnbGjiYb37pCbG0YBBU7DnpF9HnE3tWQUTT+6og3t54gPRLMdpMo6opz
+s56BEASBAkEA9Qenb1sMxorw9zGNhBc1R2fHb081OK2+zzXj6YFqUwckowcZzskR
+Uw01Po8bMaouwWtibNz4/yUDiipwJUfO6QJADwsadC7TdjwEK1F9zg8r+kDxeRnu
++NuJwFBzp/lv9wnervLSlBlxhP+Ct2lPZeEkmiJCSSGjxOf8CjHdq1V4gQJAJDmq
+dlsWq2+1KkaILoQj21erc3hZXPTK5eWIuWfpqTbAIt4U4a52QjoMqiAMHC6V1QCk
+P4X3xfjZ6h5WEBzqqQJBAO6RMB9dDyama/NJwGCOi6uJlIoVvdA80ss6GT8LPhM+
+ylMnkQcprV0GdOiDazRT5qJX9HAusOi18Gg3T9MGSpY=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert b/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert
new file mode 100644 (file)
index 0000000..7f546cf
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBw
+b3puYW4wHhcNMDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjAZMRcwFQYDVQQD
+Ew5wbGNvbG90cHBvem5hbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAta/a
+d5HU6ZntMyohbF6CH9MveCcuqfKW2bTzx3vVzY4aqs97D4pqV4F8zAcQwjq0Vzqp
+xIrwa4bxyikNwg2axy+abi9JvGHziKz03cVt7S84QkBmUMaEx/MNLHM6XCiZvTdi
+x8ZKl/U/l7mDW7mkteFEzMLXUEq1BMv0X/wFnw8CAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBJviwXpD50PkO7zgI9BCvoNvmD219go7DrZdM+PfEvHgES+zrBFUhue0/O
+8BeKqxaXDKChViG4O0Cs/BYNeRC/SM+e3O5GDzI2ixkVqiUOvHDrXpQnIEgzCURp
+xhxD3STm97N8qk4eV03RUuS8hSgVQpcPb3BPA3MtBeiWh4tvKA==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey b/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey
new file mode 100644 (file)
index 0000000..78ac001
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC1r9p3kdTpme0zKiFsXoIf0y94Jy6p8pbZtPPHe9XNjhqqz3sP
+impXgXzMBxDCOrRXOqnEivBrhvHKKQ3CDZrHL5puL0m8YfOIrPTdxW3tLzhCQGZQ
+xoTH8w0sczpcKJm9N2LHxkqX9T+XuYNbuaS14UTMwtdQSrUEy/Rf/AWfDwIDAQAB
+AoGAQAlyS/CHhapuMzlnPGX3ITZzJbtRtC6/wo4H2kioa+HpPkkQy8JyhtMp5FOd
+MYg1ZgVULuT1pkCS2jksEzhuU6wKQFdbjqP86GSx70iYPqgbq7hSBrl/gsJF/rEb
+vZ23Eh1hNdjPOhlamXGXNr6gS8zJbKkz6cY7Jdu7wfskR4kCQQDkS5VscxBWBtJe
+XqHu5D4HUHql9qUblpjQXOZal9NcNnE6hzGIwRyemea0WMMWyzfXNIVxg3ZFxYKs
+ZTuU0YX7AkEAy7xLqPvSRqVeTayngxFjs2OWN/26gGzvOUn7CCC/YDOkmanpXFL0
+rUXwXfFfVEAaRYrIOZ1/I6hjsQCIZITC/QJALBYslPTjgrluhqrfurJ5CBCSntoy
+qFE80YAfO/914ajh1NumxTIFxNsTomBBzHUSI40Q+ArbHD44LfKevu53YQJBAJr4
+HSzqb2XhP7whikF+JrI7G/Z2/zfUpJqVFWd3UVqhraBcx+68AvUR7+XlRbfWEqW3
+DNoWXLEI0tu+JgEfoxkCQQCS0RjIMOFFXc9FpLWCnyTwvAol0aUhiA2iQSuoMDZl
+fRvZyye13a43BdTrS9eZulPwCvhJZA/n2lg4s0+FE/6J
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/utokyo/utokyo.cert b/server/component/planetlab/jp/utokyo/utokyo.cert
new file mode 100644 (file)
index 0000000..29b069a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1dG9reW8wHhcN
+MDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjARMQ8wDQYDVQQDEwZ1dG9reW8w
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsNqOHKf2xdiCL5bCFd2/hKkY16
+1eh9aAcx3mAnr1ZsX1Rydq4ekbh8MbLfWgecku4K4gPEqTzWw9WVGdgS7uw9SjvG
+AR5PIqGYUUT3zd/yCpRbvi9EqS3t2h3i7jd8z6CogNFlxPQNYg8mYesqXZi+1wIR
+EaNkWiJOA3bppUdVAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAZRjE09B97FXikiNb
+MOggBAwPw4GVTx1YZRi9vvAg6TelkKHt4h7ASZjEq05DmCyYAeRuMqx3rCSqSdNb
+MtDtLSrnJFFdjTRuRPQN601wJLyC6QCGXmLZQeEMnq2QdQQ9XwHugaHBJGB+tB29
+k5tKGmEGoCINSkDson7C0XxxTp0=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/utokyo/utokyo.pkey b/server/component/planetlab/jp/utokyo/utokyo.pkey
new file mode 100644 (file)
index 0000000..226d120
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDbDajhyn9sXYgi+WwhXdv4SpGNetXofWgHMd5gJ69WbF9Ucnau
+HpG4fDGy31oHnJLuCuIDxKk81sPVlRnYEu7sPUo7xgEeTyKhmFFE983f8gqUW74v
+RKkt7dod4u43fM+gqIDRZcT0DWIPJmHrKl2YvtcCERGjZFoiTgN26aVHVQIDAQAB
+AoGBAKgBGf3SqVgbhEYOtngA3KzZxDiWdWkSha6++KcWyMun4pWKFKwGlgzAc/2U
+gCBGXgpkHmR1eLdIoHo3GNM38jWiHS7JfCYOYEvFx4aIQzX4P/R+5DfHBMN4Z5L6
+DzXO+ac5gQXaRL6zy47n9HSaH+wJh+09MeYj3tvPfs1lGn4hAkEA+lm5/ovFsKZd
+jZhvCr9HwpbXNG47+m2HImv4khXo64+b80oZILUB2NnkDd+ydH9Ym54WxT1jB7jc
+fs6mXGwxcwJBAN//ITh4PcvNVk4twF+AHmGennqCexN9UdC2KlwewWVKApKzmylC
+1N273B1COpeH6+kZl7PQfGPwR1NJsR4SUhcCQFfyk3uPwKg5GZ53kXLWFbCPaxS5
+MQrd1V5LTeyME+JE9gU237L0w6xZh1s0Xa29WvR4SgmKcjKxR4yorhrDy28CQEx2
+53xDb7T2r5OYgqcXMUfZwffIOwN4MEmzJdq0lQhir2Ys8bawHcJjssw6I44+1AWK
+uwKjFRN4nqCL8250ipkCQEoyBTRO/Dr7pNKD7reO6S4q8jBaMFoGYG76+6oAypBi
+prXOPilRps7ZKOkpGNvtKV7Xr7Cz3hUcwr7IWaC6eY0=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/waseda/waseda.cert b/server/component/planetlab/jp/waseda/waseda.cert
new file mode 100644 (file)
index 0000000..dfd33a3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ3YXNlZGEwHhcN
+MDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjARMQ8wDQYDVQQDEwZ3YXNlZGEw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALexccXPggc57pjBKUvx0xXr8c4G
+SQmcTs8sQeQqULwWGiTpIYKW9ku1f7Ccj+0UwJIQpgxVCJ7GI4T53Bs3qftrMgTX
+Tc6QajeCiGU7Aa/dwE/JFC6jqUAP1wHWuEXAm4DKZNma7vUOqElyq/92YseR1IRO
+N3/rvlPsA2wyEFIFAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAo22DfyRxdWis3Rzj
+etUjAr3oHQYcLpfTZV3J8QD4xGA553ZtuujTK9jOFHcc/d3qMEcbF6jZxdqWDrTq
+iMbwXBVDElLKxVlDqDT6aB3ahBau5l4aFdk0z5xUAlp0nN+FrZckftDK6TSQCusU
+C8wIeZUybyPa6M95DXhVI1YwIKg=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/waseda/waseda.pkey b/server/component/planetlab/jp/waseda/waseda.pkey
new file mode 100644 (file)
index 0000000..41e2812
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC3sXHFz4IHOe6YwSlL8dMV6/HOBkkJnE7PLEHkKlC8Fhok6SGC
+lvZLtX+wnI/tFMCSEKYMVQiexiOE+dwbN6n7azIE103OkGo3gohlOwGv3cBPyRQu
+o6lAD9cB1rhFwJuAymTZmu71DqhJcqv/dmLHkdSETjd/675T7ANsMhBSBQIDAQAB
+AoGAVbFcvwfvw8k9ylsKFdipPWfFdPQvrGETzsf5sSQgZ63z4lYzgMVF/smb2Nsg
+tVvh/gHwRH6Ct/b86PLawIO2Mr3xvgH0u53yLbi6QDtp4+GUmq0duLrWIRvKycpy
+dlEzn/15WcxrDzWXn8+voHek5wxdCH0iHV6pDiWeoHIdrWECQQDnFKUR/O3SjC/m
+1cTcQQCw310xP/eOjEGsMK1W10/BhtkzR6b75gEGHhslQp1WAN8fM+sTk8mDr1nM
+skf74W2JAkEAy4CXR9NwhicD25H+4i44/1+ikiG4fRyxVn74X5a7kdM037VmFgn4
+NMtqJyIXRBmsWYGm1Z4j1yDMGLIL2OK9nQJAOj+x/H7NVC2SRZXNMdgQ3ITxcOC2
+/m/MfiMnDqTnrdjYF10Qcp7f0zLzlMjd8Df4Bl2H/D9cpJ0m/bpS+uMwQQJAU5/1
+CqP9onMX57u35NQfwflXwfsvZ+JJkYS9pfI4A/WpzaAqYjYYlAFfDtO4gdiW9XUM
+zM2eZsHofOF1ctvCFQJBAJEsgFG/I3t3f0NnzOFwifDDzu2BYt28pFcBu2lpv14V
+IeW/ryOL2uNFkpvLLf1ZQFCAfeSPzHzT2k8YdZQkZug=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/jp/wide/wide.cert b/server/component/planetlab/jp/wide/wide.cert
new file mode 100644 (file)
index 0000000..e1827b7
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR3aWRlMB4XDTA4
+MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowDzENMAsGA1UEAxMEd2lkZTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxvuZnIVQj0yJAvn19de1bTD/Z7iBmSBL
+bgeeP4RenqFsa9U/3971ckOGTyStZta1XkCkpXMqqXh1nJHnTdgF0ILm/h5GLzUB
+hC+tzHFjETJ2H5YBDopuCf+AhlDkDBbpu6LEd10cJKwLSjHSxBa3bbQgtUT8sB7O
+Z+Kope+jONkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAa7GcURkSdqMaBH0VHRzdD
+QoHaSdUm+QTD7kVpP8NsUqP1ymvqV6JTWgRCLv5D7FRK6Q/EwvpdC8lxQCApKcno
+ZyTYG0dusHCDQmAkfS+hjKsYmsZic7nYi5dtil72wNFXxuAkiVN+KBFKj5d7if1U
+riGocsQF9GFe6d/J4l39Gw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/jp/wide/wide.pkey b/server/component/planetlab/jp/wide/wide.pkey
new file mode 100644 (file)
index 0000000..17c38da
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDG+5mchVCPTIkC+fX117VtMP9nuIGZIEtuB54/hF6eoWxr1T/f
+3vVyQ4ZPJK1m1rVeQKSlcyqpeHWckedN2AXQgub+HkYvNQGEL63McWMRMnYflgEO
+im4J/4CGUOQMFum7osR3XRwkrAtKMdLEFrdttCC1RPywHs5n4qil76M42QIDAQAB
+AoGAS3CygZwtudarj3xTWzzIJTjRbHKQeAy9bF7pCW3XLc9Huu5jxC3U4thlAHaI
+Y5f9tVlO0weB4jSwaocKqgG/2e3MSdWC6IU7wPQ75rlAWgtggyvowhpZqZht9UOE
+c+9vJcukH+5//LbuClNdRlpunihu+XVe88R/2naLz7vy7IECQQDlzRqUpsg9blra
+W3g5LimFwczYrZ2D3mHO0aPYsqIGAQq50KMR4ArpspV2l7bjUppWMHFGH10htjCS
+I6XnDS2xAkEA3asKw2zquzzCE4HWONBS0aKWA5/ZTT4WmMTqbco0NpDVpH1OrWx4
+pA7cgd4Mfix43+umpM0i+2inBCE+Oam/qQJAbrc1wj7kpKxBe4isUKhL+xSXNCHZ
+jQoch397eFEAPPJNj57Uoi0WNOgEmMGZrMZEc5gdSxKbVT2pAw/Hw50W0QJBAJPR
+dpkBbbq0dps5jthOG5xONoluNCNtTvZLAiV6nLzycnWBVlERr5V/j45Ou7f8AhMY
+ewUVAsnybMW1QWCEkRkCQG9e8cka04QBwPP7J+8uQD1gVks+ykFUiiZfXR92Y7SZ
+Oo49U4idOeSDBV+o89urWKY6S8GwJpxs14zUo9bMcTw=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/ntu/ntu.cert b/server/component/planetlab/ntu/ntu.cert
new file mode 100644 (file)
index 0000000..060caea
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNudHUwHhcNMDgw
+MzI4MDM0NTE0WhcNMTMwMzI3MDM0NTE0WjAOMQwwCgYDVQQDEwNudHUwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAKcx8RV8xui9KljAngEkZMsJTGrskOztJJ9A
+xDOPfkBU2/VGqp02Ax391+F1H9azPsbna4m2rW9wG0uo+4YWBCXNukNJUegTNgW1
+BWmHUrxtGIhdt47H2jAgiQJSSqs5ChjB4VfbaSNhlRYRCBKntvsYBdqsxtyUfwUs
+XsGNpCetAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAH7Eh035PJX3U4eh2J7j8g82K
+JalWYgSOZOsTc///FTZb3lfPuDjxNJT0DNumvDH11KIIckbeZeC7skwVE9RWE4OC
+PWNjne5M1BNTCtq8AqDqsn2eNZZV27vDjf1wGoiNhzqWZFkrB4IY/+t1k50wOI7P
+ZVHMN/tN9NSQeZbwbXI=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/ntu/ntu.pkey b/server/component/planetlab/ntu/ntu.pkey
new file mode 100644 (file)
index 0000000..b4000c4
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCnMfEVfMbovSpYwJ4BJGTLCUxq7JDs7SSfQMQzj35AVNv1Rqqd
+NgMd/dfhdR/Wsz7G52uJtq1vcBtLqPuGFgQlzbpDSVHoEzYFtQVph1K8bRiIXbeO
+x9owIIkCUkqrOQoYweFX22kjYZUWEQgSp7b7GAXarMbclH8FLF7BjaQnrQIDAQAB
+AoGAZQP7kOvukbeY2j6mODJw42sezItZlIxC0CUlZbGQqfWbX7nuY0W65Gf2ArXt
+Ip7xkuNHSdEhQG8PTssuDHlIz0RZkwkfpSTtvBZI/c1VMybA4g9+gNvUinKOCngS
+OIZsHp5aPcde7+pss0XOtkQGiO8B8JWwG+z6zlWSi5AXxtECQQDPqQ49KSVWLe0D
+5LsGr0sH5xNS25FcYu0sN7M6/EoXH6g3DWZN1WUlZ2DG0O+KslHZqlKUD4H1+DXh
+vb7a98gDAkEAzh14Kmzj6iQLvD2yhZWapOo67gvbUdQQCh2N167jujVNEhOPrxAP
+/9cjx1Grl0+F6D89+xMmmvdI1jI2vU56jwJBALDckjUC+zq36Lq9L5EU8PltFCco
+vFgMJWXYlrzxLQUewD0LG4vE6N1/e4w5XRsqns2c47IYtx5P5Uw7N/b0vBMCQQCs
+dDfAt48Srsoq3CxsXLohVeGsnrsIgjhRXlz5o1jiygoMH9XOkc/xLd6/vHOnjF/r
+7E49rs5URqbooObwCaO9AkBdJOqMfmkmhvCsKQdbsLSzjiRkE1WboMQJYcN50ntv
+FS2Zem6yhX07aEUoPpaqPhIp3Biz+kCumGyWNQ3ERnXa
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/planetlab.cert b/server/component/planetlab/planetlab.cert
new file mode 100644 (file)
index 0000000..c1b4211
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE
+YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba
+6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm
+u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU
+2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6
+X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld
+GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/planetlab.pkey b/server/component/planetlab/planetlab.pkey
new file mode 100644 (file)
index 0000000..15bf789
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC1li/h52QbJtucIQUEYZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLE
+RQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba6Rb9vYKEMDujZwdc3QjhAbYS72V28rbd
+IeHysJ7JeGz9J1ODLSzbcCt5amLZcMPmu/G64ieWI8QMUxYgCE1ut3bI1QIDAQAB
+AoGBAIIlztPfAMTlKOnSUMI/HStpMTeT64rWOWnftIZrcRSzr2DkhQ6fV2JhOZqm
+13ofk8ouZkQFO7rP2pzu0hM8lRi65WTelTbGPY+QAM0GFiCpNrQ4pIkyvFVLoMyy
+Uz+JIqv3LwNPws4OIQvbccTm9WkoPy5o99mlHFVBZvgFvQ3RAkEA4ZeWM4fOuUZB
+zdVeWXx2JqIrYCdbwvK5gSP3WtzilbUGLJmGZQzmohym/4wCYmecjH0F8LyFTxkh
+/Sh+7V7I5wJBAM4QH0F4htrbbjf8yUYsGmaUALE6ttnKy4fTHCHK3fZNYq3kkWo4
+5exbxLgU/OomS24lZJ6wOZ6bP8MBkab3vOMCQBjO2baq/aHERyJCj5CZrkiLVufJ
+DD9BAANimCYG2mgKMzaeX3gnVgmHyxmZJP37VOziJtAVezd6lRFI7cRewwsCQH4Z
+XZcqE5RQnbVDS0RW7t0BCx9pp8XFlSGMLfX7+DKmjpGNgvM22HT4f3yK027Semxw
+E5AMlWYa6T0Dc8dyaTMCQEqso8hRQIutEwddInaxrFcgj5fo/CAjqsaXhnPTCF5P
+YFI/k+5B6GRNwTWkdm5qM0T8exlNqcQIu3/VG0qV6Bw=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/qub/qub.cert b/server/component/planetlab/qub/qub.cert
new file mode 100644 (file)
index 0000000..9536b78
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNxdWIwHhcNMDgw
+MzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjAOMQwwCgYDVQQDEwNxdWIwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALs8ps88FatjYjIvAeUAbqQzZWdg+CckO9fT
+JdVF6I7fCHhaUU9KDFo3h+MCyu5IEvC+TtE4hhlGic+lIJbgOgLr9UKySLgHVd1M
+rc4Uvsm2eBnSCwGwR3VRmlcElbC4FCOndZ5KdJDvLVzZelkOAf3ihyXlOIQZUGoB
+F3b/UVzfAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAIYUDISPk5sTxAanVT+wiWJKw
+zKGHridFcHO/ncprwWdbjuAnrdmseEti+dw3IcSZJUIZzSOCU/hTlKYVLKLPOl/s
+BUY2PrnajFlAWcV1TIjgPnVpaNbMOsViAj4CahJgYmE7Vn8jn/hSkficucNMNy9F
+KnY5tLI6jSeDbvqaBBw=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/qub/qub.pkey b/server/component/planetlab/qub/qub.pkey
new file mode 100644 (file)
index 0000000..0af7fc2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC7PKbPPBWrY2IyLwHlAG6kM2VnYPgnJDvX0yXVReiO3wh4WlFP
+SgxaN4fjAsruSBLwvk7ROIYZRonPpSCW4DoC6/VCski4B1XdTK3OFL7JtngZ0gsB
+sEd1UZpXBJWwuBQjp3WeSnSQ7y1c2XpZDgH94ocl5TiEGVBqARd2/1Fc3wIDAQAB
+AoGAN8SY6qC605GGbewSZGL8kWu9iE0ZnI7uRBpf6mYoHmXP4AkGrtcfVr+zeaob
+R12wRoRodWigiGa6JV7JliazICh5wWv3UNDIlqacVzgqPm7hxLDL/f3nYA94Jp4b
+8mo7SgeiiO7RRGxTsaPhbunjUgdnfHOs6g/p/A66k/kG2AECQQDz3FMw1DLTbHuV
+qjSP8lUvn5LyAtsZrxY6Pkr+8o0/JY65qmgwpRUIf/52WEzFVo/r3Eh7u1YqP3Be
+EI3ObMavAkEAxI67z5wC/4oExJ06Z2cEkH7hR+RI3yDKpbsF2swMuqQIuFSlgYuq
+GLi5/HucgKqkzMkH3Mam101APL/zbPlY0QJAJ/HMErB/jtAzQiW6LGYGfCGIYWoE
+V6WtX2b6w94ZMuHFCjaWkHlKA7VrihkWojB2rKzNlq7uA0eW8WGGyOxacwJAP58n
+wXpxKf+lrXJq/h9FRfQbvWZyA+8cSOqxaXHUyPDhdbDIZZcsdpYMdWIZdThG4ZZM
+ejS+uj/iBAfppiNLkQJBAOY+pydoKtGgKoXg2oyWPPX3jAdjsT9tzCkL9nxNBCxx
+EH45AXqHga/t+GBtp2myEDyRIzcyxeyjI0oA77zUd5Y=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/snummlab/snummlab.cert b/server/component/planetlab/snummlab/snummlab.cert
new file mode 100644 (file)
index 0000000..66f846c
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhzbnVtbWxhYjAe
+Fw0wODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBMxETAPBgNVBAMTCHNudW1t
+bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkXEAuln8V2lp/00RME9wI
+aK6ZdcPVfbY/fnysijgqbO2ets2PSScOhsng0m5UcwguCjBd96B1v3HtA83kKJ3g
+2U/CfQAAPxoIYHiAAuhZAZmMdggGlq+UW5ulmlvlR5AfmetFq9ef4zcr1O90WmGl
+7Upnqbs3bk0MieLetMYWswIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADACDzVAAKKY
+MOKL8NHSELT0cts6a2uzfrkUfzF1qFTJbXfx+q8BJ/AFzcQs+zOSJRPNdizZSEFQ
+l0xPY989gFuOEiwp0rcR2MlhtBMvPCNuypLCZKBHRiriQzD05QKctwC6ta3XWFPX
+iV7jdYbeNCaM6TOXofcbKvOurshg82dO
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/snummlab/snummlab.pkey b/server/component/planetlab/snummlab/snummlab.pkey
new file mode 100644 (file)
index 0000000..ad1b48b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCkXEAuln8V2lp/00RME9wIaK6ZdcPVfbY/fnysijgqbO2ets2P
+SScOhsng0m5UcwguCjBd96B1v3HtA83kKJ3g2U/CfQAAPxoIYHiAAuhZAZmMdggG
+lq+UW5ulmlvlR5AfmetFq9ef4zcr1O90WmGl7Upnqbs3bk0MieLetMYWswIDAQAB
+AoGAfPnsj8A96Db9g574msSrFfXLdcMXYvnRH5ylXmlHZfMoB/xGeAKO4Tvau8om
+vK4vdRqoRntplr84+Jlg8HF2AfAojd12kb4D73hzFRZBncde/AsYLb3hAaN7UTxJ
+35NHXYHpSQOp9Mc3fVMa5VT0iA4WWPC7GSJ/XupW+6IecmECQQDNcSqQ6eVH6Jji
+TyH2CROz/Ec5oFm5JnJKGlnvAyc3Uom3lmDAyHd5PY/bgJB47VmuWx3JpVQsrqe+
+rwb52uaxAkEAzM7wvlu3yNzcKDrBAB+NQmlSRg56yG2qy+WUWhOFGhLJ9pQGbuuA
+87YNiIcO6QhEu20x7j5JekIouKhrnO10owJAHl3G0+quqEVaK8FUnMBUuDrm8D6i
+ZHqpVAi3GFwX9NZvYsKIhJZdCn+t/tzu/eDfa6UuLvsQCRa71rSaTF4t0QJBAKyB
+7dNY669bIHEeM+xHpzL2BV+O2KqzfLYrVM6ePHFevBBeVCDfaolcoX+KyutLlKEN
+842Jl1hMG4KWEbZnZ+MCQHF7YSkAjgTDN6rCljSTN3Gt0Li12K08asZtd9Vk24K1
+Z1RB0Zqyt0wiacOMoYEhAbgJx1aG68qyq79O89/TP4c=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/sydney/sydney.cert b/server/component/planetlab/sydney/sydney.cert
new file mode 100644 (file)
index 0000000..215be40
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZzeWRuZXkwHhcN
+MDgwMzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjARMQ8wDQYDVQQDEwZzeWRuZXkw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOdGb0v3G9K1Ygz+z/xM9VWYWkD6
+qRA4q+ITmRXI2TnWVDzTVUAhtYagZfNY21gVXXxmPw4Aq2yUNqwG/VL6Y2kg+kU6
+gXvviVU927um/eKTk1npbeRQOqgw0rJXBaD4eAk9w8zPEqQ5JX/gIu+he+l1MS2Y
+lInr3ZqQf6fM5d8XAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAAj/RzoL3bN5SW8Vo
+i8vsyx8H1ou053wpyjQut6SyiSEkUHLyirAEvTPiBzAcqB3l4PpgieHOjBPQkyeX
+sODexQelFr6DYvS0wLVV6W1nIYvtItxwF+XuIWbIcOw76aDqelGKeowVVoORGuA8
+khdy/7++27MuvrETC2oeslR3zAw=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/sydney/sydney.pkey b/server/component/planetlab/sydney/sydney.pkey
new file mode 100644 (file)
index 0000000..809d2ab
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDnRm9L9xvStWIM/s/8TPVVmFpA+qkQOKviE5kVyNk51lQ801VA
+IbWGoGXzWNtYFV18Zj8OAKtslDasBv1S+mNpIPpFOoF774lVPdu7pv3ik5NZ6W3k
+UDqoMNKyVwWg+HgJPcPMzxKkOSV/4CLvoXvpdTEtmJSJ692akH+nzOXfFwIDAQAB
+AoGASoJ8tOKlyhq5vioR49z/ZVYyLaET+q/nYGyj80rEAUg112rWmlTB4N+oOOA1
+uokXl05xnhdFIzQU8RNHZgZZJBavkEcZV4PBdkw6XLqBk0ZC+vUPQUP1Rtqim+WX
+NK0V7E9WIhB8+AMlwraLNGrD3wlgXNJJcctJ1KMQNoJwqSECQQD5pkOVSSX6OWIo
+rSAugKCMWAGV1NAgtDyIwKlkDloKVmCJWAt0ANvLt8XEpZYDuWfDihM1ohBTQWQD
+7ZNspiVZAkEA7SiEBqJYqS6OviritGGj/1kC64RwUX3mMHq2eYlHaWIrZK8N7XM1
+6WTURMmHnhiFdjNiCQ0+yFyVczhD68Pp7wJBAJOl6cKZCIT8+zjja20VVd6rDgT3
+YEB3WHXovEYY1tfWTjHsiJmLCHNrtOOgqyB4vw2+062cs9sJiYVpNQ/FE8ECQQC1
+nIA2QF6a+E9Ra6/+KIOZCIYG633DuiDr4R0ZxznLhuTqDnAg9UhEufUf1CCpved+
+U+zwN5drghLkkCLbSkU7AkEAwACEJB6qu+34pUIlowL+lS6cZXO+QOW6hqj+LeZ0
+02SgLt814wsiUbhiFesijxhL8PtVV1+eogcLwJltB5ZIxw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/tau/tau.cert b/server/component/planetlab/tau/tau.cert
new file mode 100644 (file)
index 0000000..aff99b6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0YXUwHhcNMDgw
+MzI4MDM0NTE0WhcNMTMwMzI3MDM0NTE0WjAOMQwwCgYDVQQDEwN0YXUwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAMahrQ5tP0SeLS0yzt0BpZI+OutFfD14jbzD
+cEnKRiGxWZu8w+ECtztbNuYGGosW/XRRAdQIzSTFO/6WvPvcoJLwiSjLzp5sARol
+DwPI4qCb3Syu3EuhFB2qIVNJNK873qHVFNVGlYb8VVeN7icoHhhgvksZOkdgLPhL
+iblS3Ht/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAlagtdmTzabPHhV3eBxfKTmBm
+6Z8EHlldK6gxmFl0rZaX4xrO25C+dyTSr0VLWRHmUsseX4jiCQ3foeecjlOX5261
+8a1P15qVUd5ZJGG9dPaRJcsaDTDl1bEZBJmTOX4Zst2WsK9Ro5oNs7gjS4u+edNk
+2/0BE43Vp1DwOBZIMHs=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/tau/tau.pkey b/server/component/planetlab/tau/tau.pkey
new file mode 100644 (file)
index 0000000..751a404
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDGoa0ObT9Eni0tMs7dAaWSPjrrRXw9eI28w3BJykYhsVmbvMPh
+Arc7WzbmBhqLFv10UQHUCM0kxTv+lrz73KCS8Ikoy86ebAEaJQ8DyOKgm90srtxL
+oRQdqiFTSTSvO96h1RTVRpWG/FVXje4nKB4YYL5LGTpHYCz4S4m5Utx7fwIDAQAB
+AoGAFphHlk+JFeYkX3LbIzrPuc4IZ8D0vA1dmi5lNI+k4KpK9jNH2O21KDRdD1d8
+Z3wLAtNAMP17UIZ7J5/ACap0PW92zANqv2l10b9axqTif9cGC0BGqWfiVU0iFJ/a
+J4c9O0z1uXdRh67NfvakXomsMRVcGvDEydY2Y9jJb7AuH4ECQQDp84/RiuayQkXe
+8oFbI0G+JKynwZx1BMHb+LZTShYQeG1/7aUKUUkcOZR7JKOaYgkv5rQHYfpoZWMJ
+TFWslys/AkEA2Vn30Mpv2JvLwHHO+5k6nr8Mq7rsNXGQFpE4G7KCUgFDMeuGvBy3
+kA6nA20Q7WnTLlQyh0Kyk/tLzP7XSIffwQJAb8MXFXdRth7K2jLncO5q3bcPdCSd
+5ZkcM0WhdDCUUdH2HYMdsMwcLQukzx81uO7UjLmdj1lTEsQ8h5ib5RNiaQJBAIk6
+lo6K4ecfJpvQv2B3NF26PiPHFw//LXwyH/zMzh88kNJZ5G2sq/EWbzhoikF7iUw8
++NIRuHJaPVempwIyV4ECQEUak56swuG7e4f3+YkYPodLAf+KI1oetSBXqrkZFabk
+R+4GmLSZ7yf1qD5TFMjpRUZVy7UKSqu//8cRLDk7mIo=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/ula/ula.cert b/server/component/planetlab/ula/ula.cert
new file mode 100644 (file)
index 0000000..d9ba97f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1bGEwHhcNMDgw
+MzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAOMQwwCgYDVQQDEwN1bGEwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALIZwsxDl9ZU8rEYUtPa7jtvqADiwis5RyjQ
+rjuuUKuWeb7dd2J13J005rg5mle8qt74H5GpweCG0cNMakedKaxH5ryxlsNEdiT6
+homPKHYp1gGLulTyzu+kNT6dNQtyR+nqwcMCJpae+eesxaTBFdz9RIwaqCdqxzs6
+sG93YUFnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEANMCaPh3Fz1R/884kpo5wrymX
+fkKMSg3IuMnMQpCHB+7nEWnIZ0Hv5merPTrjjRL2l755sr3Yiyj0vozKJhgWUVcA
+8lr/SrNWzUoJQ8KW3xpReMGwmhpiouDV0tGeKpi2/jHHfLOTaLhSDH7hvVDxGiFM
+m56R67xYhmfJE3AEUlY=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/ula/ula.pkey b/server/component/planetlab/ula/ula.pkey
new file mode 100644 (file)
index 0000000..46f7c08
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCyGcLMQ5fWVPKxGFLT2u47b6gA4sIrOUco0K47rlCrlnm+3Xdi
+ddydNOa4OZpXvKre+B+RqcHghtHDTGpHnSmsR+a8sZbDRHYk+oaJjyh2KdYBi7pU
+8s7vpDU+nTULckfp6sHDAiaWnvnnrMWkwRXc/USMGqgnasc7OrBvd2FBZwIDAQAB
+AoGAH98cTRGLin+JLsf7io4TM++3UPFDbhjB8zvk8ikvpoU3JEDdrHELGdbtsuoc
+BLdunJgqjhai61s1Do4ONuKZIj7trvnli55bIpt0jktkatNPLRYTZ0fPe9hvQy8D
+N6MFLXpRJSD+95z9DLAEwFJoThx8yE7p4QGOvjSu3M4pEIECQQDia/BQin+s2iHu
+yukNcH0/TJgbVBGJrZ3+ge14Pa/lYrCzn1xNfI4iEsV60cAXzBsSP+Bg6Nuk/eHG
+0ki3DHgbAkEAyV3bOzrxbvL0O8XkQyTNcMeR1l6jNaSOl9ZWa7llMXYmt1bM/Tf9
+ZnL4sstfcN7gMrnToky+bRUkSrhmYTUIpQJAM+xW1tF8B/KZ933Wxfs27a4t745u
+2yjSY4v+HiXfUXY5WWfBLg/TNGMjoE+7gnmO97doSDD+Na72+LY+cKPOYwJAP7G6
+eN/KIqgi7Q1JiJuJiFT4InDI+1zT5d9ccrKv+Zc/49pG+QnO06smU5fU1qUJEcKJ
+2NqhmWuIkUIG0FSwKQJAHrkFWXphVIJlCv/ehjLijLTV3p41htaUaxQh3mWgJl3s
+GLqYtrVCQZEVXdB2hc4TUHj5aZ7/+ov1ay9A8DNQtQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/unioslo/unioslo.cert b/server/component/planetlab/unioslo/unioslo.cert
new file mode 100644 (file)
index 0000000..f1d9cdb
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwd1bmlvc2xvMB4X
+DTA4MDMyODAzNDUxNloXDTEzMDMyNzAzNDUxNlowEjEQMA4GA1UEAxMHdW5pb3Ns
+bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvQCvKu5zq8gSdnniQR0A+Xmm
+CbNYJxcK2c7rtTHAKJgGYBZrvJRuEfwhW+6C1zmOuQfKL3KEyIQoXK05fRiWBM+U
+P0pwrJvXgOHiVTzBhDHIYyNMPph/mF5pK7+P5ne8xdGpccjs2D5i1bg0CJ8nMKsK
+1EftlXNAusLhhUuTWHMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBQXm1IhRFBlRi0
+9paxfWSkfLkLv/ndYeFmsqR1IBx8L2hopHKLYDR1cMSvxapsRPzWZrxLD8QWTDKY
+91yC5WOgSUhjEp+gGDI07pGqCtLvgfcGbESDzLrPdnJb+sS0wjSoG/EkigtVkUT1
+AOcilaV3/GTV4+DU7ws+SlGQYCcT4A==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/unioslo/unioslo.pkey b/server/component/planetlab/unioslo/unioslo.pkey
new file mode 100644 (file)
index 0000000..8dd2efd
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC9AK8q7nOryBJ2eeJBHQD5eaYJs1gnFwrZzuu1McAomAZgFmu8
+lG4R/CFb7oLXOY65B8ovcoTIhChcrTl9GJYEz5Q/SnCsm9eA4eJVPMGEMchjI0w+
+mH+YXmkrv4/md7zF0alxyOzYPmLVuDQInycwqwrUR+2Vc0C6wuGFS5NYcwIDAQAB
+AoGAfm7zvzNum66mcy0L5uUBHuJ66ShZQyUN9DCQy1BxrHYuZZ76CVf93fgdVMNU
+MafmSu7kGSNxojWOTpjuyTlmOL/O8PQ60tb0/vGReyeVUywa9tTD08dwuUtnnqPa
+cm5yCJbYsiA0b/g4qCO/sN4pOdw2vWJXBhDUcFkqtKQ04zECQQDzvj9HAIcm+u/s
+QoXazXbxmwB7G/AWcp434sbKeQqlKtYWdxw/OTLwHyxd0as8UZtCoYexMczh4Kb4
+z6gTiY6LAkEAxoHAlI6me4lu1lW8DGM0NTdV/MFT8ttbQcuAhBrAd1QcI8JNQ6OE
+QGRw7/ha10xawWp/oqYs/iKEvylkSDLCuQJBAIadhM8O8JXLs2Q1nT2pik6Hf61+
+UYvkQ5Oz8Hx0ezebP9/qarRUP9i0Lsml+b93hps3IPzw9yms7CqwbTBVIV8CQBJp
+sLJW9QxaeCR7eWDwxsP06Q3z5NSPEkztEnOug5HOBHowqLgQb9EFQBCSSeLUm0p7
+lXFB1sSP8R5GOZ4Uz0kCQBPn2MbYB0L4ctPeEHsAkaSOtXIoo9DG/R0FfPbXHiIl
+WLsxNoYIxmXA5OZLjN7z/JSiuNNLlOCCqv1pc72tWIE=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/att/att.cert b/server/component/planetlab/us/att/att.cert
new file mode 100644 (file)
index 0000000..f5ea777
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdHQwHhcNMDgw
+MzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAOMQwwCgYDVQQDEwNhdHQwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBANALwPfWO4pnLtZBhuo35pS3WOGngD+ywwSJ
+OH+jzENDyTyaLPWKrxwsVBQmjq4pvjQYPRbk/nFvvRGy3Yv4pA7GcdxsuOBlTEN2
+uPijQlsL/JDqJwLfuSxBZMMToM21jmsLhYG4M1Bf4Vfo32rrJmr7NMk41aT7wUuF
+oB4EEReBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAfKimUT5OC9F/uZqTeaS5GjNa
+fMqIYX5PvCQqyqWYNegV7VNQxKMqJ9TffxSgyv15i3kx4vmiOzmil72XKgts5QHK
+AikZtM9VzuDBbCmwM0ETuctYFMT6p9dNvTwcas80vjgzZY0TtzjLEkELm5mNagP3
+uyvb/jgus1KQjDbzLJk=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/att/att.pkey b/server/component/planetlab/us/att/att.pkey
new file mode 100644 (file)
index 0000000..c9360c0
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDQC8D31juKZy7WQYbqN+aUt1jhp4A/ssMEiTh/o8xDQ8k8miz1
+iq8cLFQUJo6uKb40GD0W5P5xb70Rst2L+KQOxnHcbLjgZUxDdrj4o0JbC/yQ6icC
+37ksQWTDE6DNtY5rC4WBuDNQX+FX6N9q6yZq+zTJONWk+8FLhaAeBBEXgQIDAQAB
+AoGBAJ9lof9A4HV2AOifY+Ln2X5vy2V4lEY5jDlZeTQyJzoSIYiRB4lJLEkFnZWi
+xQajbNs1BvkXkesPlWiOBjhL1EUrRiM3rt6XEpame7X/BK4arBr8LO1l+Lsp5dB4
+X/awQ3nuKt570VLtKZwceAJJIqlDu6yyEYKgzD+gdC+8oqyRAkEA9ygTgm7YhwIK
+SlnfZc9FIK01i+Mh2ZAaqzIXXw901qleQQ3axsz48zcfkGfyz2DBqv4y4XeYs4c3
+sR5ICaEW/wJBANd9bc7ZZ/PmrHkPPC4+I2cRKygPQXNGfaN9UcI6re5SU+UOdX7P
+O1mtAezPASrmN7WLPRcd00ADlXKjupsgUX8CQQCcjV4OOHgezEQIZHUE4A1BbXWF
+bhF65bR+y/PR2tB/SDjTrBrv4dWu+TOdHLrIcNk7nlhMSJ0I2pWEM1IeB1OxAkBO
+QYa3L8zIjmTkMdwxDu/cZie+DIxASMEntkMSviyb99nvvSh+PNPY5TNlxGcwJRrm
+GwK8emBVRvfnAf6qhzoRAkBPmOp19ehelSAqzBN8thmRCVByhuLHUNQwZgX+HqnG
+rPgfMILU2UL92mbk5kyC2p8uVqaLZjAGeCovrKAvceTa
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/aub/aub.cert b/server/component/planetlab/us/aub/aub.cert
new file mode 100644 (file)
index 0000000..364955d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdWIwHhcNMDgw
+MzI4MDM0NTEwWhcNMTMwMzI3MDM0NTEwWjAOMQwwCgYDVQQDEwNhdWIwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAMPs4WNHC3OxwDGISgDEgCahc3MBKAgpGhCd
+OgMF2XHUafUof6pqHcQcHQoKy1Yte2cp3bLh1DyzV9Y1fOZ5kqMNzQrs+RlAS5pe
+RIUVAPSGUTK/K5z9HyVP+rhGZlnjPJUZNbzY6eHq+65AfhNYf+75c27w1CBapN5Q
+bERR/ZsvAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAe0bET48RK/NN7RUsA3GVcf0T
+ikZDivZtj6m+yy4umB4h50jX1c4ORsuZ/Imm+6WfEdjd549N4JI7MqUzSqPlPnn2
+wL5Axw+X2PF9JmrNmdLOWRsdhBbvz0kjGI+MKwTsRhcRWByjqI/CqSnqeX8s1IoL
+wTlPdGIcpsQw2Dl9MdY=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/aub/aub.pkey b/server/component/planetlab/us/aub/aub.pkey
new file mode 100644 (file)
index 0000000..61b1a25
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDD7OFjRwtzscAxiEoAxIAmoXNzASgIKRoQnToDBdlx1Gn1KH+q
+ah3EHB0KCstWLXtnKd2y4dQ8s1fWNXzmeZKjDc0K7PkZQEuaXkSFFQD0hlEyvyuc
+/R8lT/q4RmZZ4zyVGTW82Onh6vuuQH4TWH/u+XNu8NQgWqTeUGxEUf2bLwIDAQAB
+AoGBAJk19za8Ss9JM+NIEZ6yCwiqfm5zfAuNoK1XVhMhEt553fXxmov3+Zju5yKA
+OGwGmxacXZrSEDb7g/el0isk7K4n2K6ea/njnhFdw/3daYAEMA8Cd3xrvjTSmuZT
+p5pH5QYqtJtfS2uls5t0xfahzq4amxhS9sRhshweAsVi7bq5AkEA80AXEEFo2m6U
++q9x0/nV+MozP/VNZGXwH+JvK5ebVMNLAjaGk6YOzyl7qE+8N+OGkpNTWwjyrBbA
+nq5necMZiwJBAM4xyZojZkA6xsJ/7BwFepD70LQ+cZaAoQurzgJ/B+3H8uZN/cAJ
+2bTto/0xNy8haTWr6Ha5EvSCv3BcGq/ckW0CQQCgW6vYp4Y8GZJVALwFhjos3P+U
+Nl5ixWDbZCbtkfBwnJ4iQ1fMljhFEY/XkVj/bxsUHdNhvDBeilFJSqgkeR2pAkA7
+JJC9A5ZaqgFE3MhuqSuk1nXgnWCbWL3YySjIEoPFsmp7oLc+FBU8DkXRZAJ+JEk3
+Od3t39wOAkrDAcgt1UhpAkEAnQiIS/K25MrP5dF6i3FBNUrnIgLOn/f73zxaEgyJ
+RblaJKR4Nbc+8bziLshovUR993meCeZr0kyinwIjlmghTg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/brown/brown.cert b/server/component/planetlab/us/brown/brown.cert
new file mode 100644 (file)
index 0000000..0cc2c63
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVicm93bjAeFw0w
+ODAzMjgwMzQ1MDlaFw0xMzAzMjcwMzQ1MDlaMBAxDjAMBgNVBAMTBWJyb3duMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDGLYEu9DsSrCvcEwMi1EjZcUoJpAM
+XyDZWEk2xt8kiNbJeJMhUsbRbJc6lxRFZwc6T6JN3YgbiKrH0AhLz3hA5hMJJete
+oOyHu1vRospzJzzGjzAmoSANUQ9tdJFt2Bxodt2iMNl5lxGB9EKFspKozoTCNJDM
+81pWAlxsMP7F3QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACwN7R4/oRQn7LNL5RTn
+IB0/8xWh7PB4DNxUN8iv0Nzcp8SPdMfbNO31HRLNbWiqGTQ4HjpU9sXP6pW5ds9p
+9eLDsPeGKVyvBDG4KlVZlMjdh2kjU9dJptWS+GoWvUSUTQOx+Q6PGDm1xlqJWb0f
+5Q8I/S5VoAIM7fpOK6w3glCA
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/brown/brown.pkey b/server/component/planetlab/us/brown/brown.pkey
new file mode 100644 (file)
index 0000000..b56e0b6
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDDGLYEu9DsSrCvcEwMi1EjZcUoJpAMXyDZWEk2xt8kiNbJeJMh
+UsbRbJc6lxRFZwc6T6JN3YgbiKrH0AhLz3hA5hMJJeteoOyHu1vRospzJzzGjzAm
+oSANUQ9tdJFt2Bxodt2iMNl5lxGB9EKFspKozoTCNJDM81pWAlxsMP7F3QIDAQAB
+AoGAQixeiKp/ybXnygnn8ZVLlxsMzXqO/3NAvBfC9Y5s34J+f+Wi2fmusBgKD3hx
+Cr1QaUnbfle2s8geTRnVxoj/e0L2T3vOXRBurHBYtIniEWmpcKP31UpYo4KpcNmn
+Yp63uVVLCgz0Rk5CiK2R0hBBqNd49Zwhrf4y72G8QaFZB80CQQD98Zh0xsosceQc
+Ytf2zPAbMvyUP62kf+FYUUpit7HUcH1eI3J5pvAkHRAGg39Gn0roH0LvmDVuONEW
+GqyyXf1XAkEAxK0hS8PXyGEzYY2wYroXSlUmPuGULNiUx50rwIenPMchl6hgwL2n
+MKIdSASocj3pcZk6by/qZ9V1KR02qQkh6wJBAOcOIbdvAJk771/cl7/ZbEZzN9nz
+rpzUNkdTf6keltFCoO88tXX27N0PDHvAvdeWLGPTveWeyk7Fp4jDMIsCdfUCQB0+
+pTHP6DkqguphmDXF+AqciLhW8KKOfekErOnPAgYekhcr+V8PlFm98V6xGp8KJ7k1
+kKPR2ygfbHF1n5gY/IsCQQCzFr0zWG2PCRi4Vpa7qw298xWU4oK/viFUw9BT6h9E
+uhfjxEWUE61bvq1iA2ozl6f0A9xp71rRGSUJa6ON9t1o
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/bu/bu.cert b/server/component/planetlab/us/bu/bu.cert
new file mode 100644 (file)
index 0000000..76d4f9b
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJidTAeFw0wODAz
+MjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMA0xCzAJBgNVBAMTAmJ1MIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQCyCbwwtmRj1J7QlDLiXgXnyUrJe3Cf/tSywQUn
+KttHVpOce0ulItvzXXGuQ/GPKR6N0sIu1P9GQwlFPCtJOppQZkXzd0QhxJQvVo9z
+CtQJhk6PgY9BW0VxX58l8psaawMjIj20d5wLmlOc/aZVi0bQ6XfVFmGKUjqTOJFu
+vHyG3QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABx5P9Sm38Ji6wV1dT7eoQbsBkc7
+uQpTHKrfiteGXbAETj7CvxygagQnpEW1PcTXZSA9OJhyD2oDpYo6ovJ3+wJxk/QN
+Dwcw9o1WHqEpMY1OxZfuv5+I9eygcFVz8pHer+AJNIitZmC9cUHNXKGCj7/mv+fK
+3VoJBySctBS2lD4+
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/bu/bu.pkey b/server/component/planetlab/us/bu/bu.pkey
new file mode 100644 (file)
index 0000000..769a89b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCyCbwwtmRj1J7QlDLiXgXnyUrJe3Cf/tSywQUnKttHVpOce0ul
+ItvzXXGuQ/GPKR6N0sIu1P9GQwlFPCtJOppQZkXzd0QhxJQvVo9zCtQJhk6PgY9B
+W0VxX58l8psaawMjIj20d5wLmlOc/aZVi0bQ6XfVFmGKUjqTOJFuvHyG3QIDAQAB
+AoGBAKwIGB4Bv9Nu+d6VtO1i6NXlfSxe6J7Q//mR5UbJdITkNVH5GUkB/AKWgmhf
+IqSwmON1iUjza48a63RJBZKG29/DD2Bv0zgHhLUe2hoQXjaN++EB7hInenrkshSn
+HGzl7Nbkbi+EfAfH4S6hXcn5k4HOoa2cZZ4q2ypGXshSHi2BAkEA4iaX88Y0xZfo
+qSw1oWqh0akiESq7HcjPJCkij13Rmp5o76J2eMCDy2jbg42hwVEMuuTUayVZw5RP
+aNHkDI0H8QJBAMmJdfzVzca77pEwl0CEFRUuXJL+JE5+1NUbcB62omVjOnBrzHo0
+1HKfBSfN3myo1rJEZdianzVoh7yZKraBua0CQQCI6i6iooP+gKqWCTLq58DSSyBZ
+3lHshU+LJ/BJddZZUsBbHDO3hW4FLxV+/rdIb4ZSfAlyWOmQc/Djl/cF9jgxAkA8
+WAta/A2ULts83+a565KAeBRB8xSd6D4D3SZSG+8+Glr6JFziToU6GMErbOnncRpv
+4Cj6lTmMfVL/NoFiii81AkAkixOrO//KRSn2KDN8PPreLCCeh+17rTK1quKcTobj
+6yGN6dFihAWYhdthG33ctl2ZUDgBnqSZ1EU11DRJHW82
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/ccny/ccny.cert b/server/component/planetlab/us/ccny/ccny.cert
new file mode 100644 (file)
index 0000000..970d6c1
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRjY255MB4XDTA4
+MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEY2NueTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAljF598JLC9OjVeo0ic1MT9IqmOXDZNZk
+YBybcGgVx3Fn9Vc3rXprBbdU9xE2oJZnOdYO3yKrPjPW73zVEQ5qiMsx9nVC4Jbz
+sl29UW2Tug7Rj91iY8p4H9QpbQoYyboZW/zrWjKYpQuXEg/Pcmd1jAuD17JJ7q69
+sQejujwgp+cCAwEAATANBgkqhkiG9w0BAQQFAAOBgQASF1qGhq+U7966BdpIX6cu
+yuSAvuRlBkmYIdjqL9fKyOHSXx+xO3MTxAGf3KBL3Sfk7oesaEJpOgEpR4C0MdOj
+8gthTINOoY5/M52GetW0Fw9ZjE9AF2ms7mWtJCD+YcEaaztwWRqc8LmnUsY+jdCG
++mfgTKbGBq/KYZSnCe4mJA==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/ccny/ccny.pkey b/server/component/planetlab/us/ccny/ccny.pkey
new file mode 100644 (file)
index 0000000..1fba42b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCWMXn3wksL06NV6jSJzUxP0iqY5cNk1mRgHJtwaBXHcWf1Vzet
+emsFt1T3ETaglmc51g7fIqs+M9bvfNURDmqIyzH2dULglvOyXb1RbZO6DtGP3WJj
+yngf1CltChjJuhlb/OtaMpilC5cSD89yZ3WMC4PXsknurr2xB6O6PCCn5wIDAQAB
+AoGAToMwog6EEnugz6GtszeJo9RWhjTdrpHQSNnLe7g9YlPrJzpflaT/2y4aEUmD
+R/E3puk6PvStlcednPWhn9fsYibnIc713kz7YWNsdZ86zTFiC+JYTfI8V9JJFr01
+vQB/gWADBKG5W2swHuAdzHOCn2XOQT3zBDh7qAbkODPDb8kCQQDG3dAG+UJAeji0
+1bgY2UmeOsEZx2gV3MpBl8lUr+Vc6g605etP+YZovRdmMQxr76mx01rtdGX1de6u
+DzXteEVDAkEAwVfbz1H8WazUtL/tWp0KDs9OH0yFGR33x9dIbCdCdLB+pAbsPuJs
+Xk1kKjUwX2CW9QuIJeCdUG9K1LHthwpWjQJBAJPB/20PCrDJnxSNrymXWOGeGhfD
+V4zW7dhqpQatYqf0qFS0eHCFn952kMo3K1mPSvB7b5X65D7LDzp4xsLYl+0CQEX4
+q/5d53v0xo4bn6TZjJhLgjRllw2+ALx8NyOdGbntXgey0bD4dMu0Knn0Aeuioz9P
+yxgaMBS6ElTjh9kFbskCQEMqDf28LHUuwquHByS7c5k1ZaGMm3K5STHsrlVby0CC
+wlFG2AQtySV46riKSqFHNNq7ivMXD/tEAT1FpjAaKV4=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/cernetneu/cernetneu.cert b/server/component/planetlab/us/cernetneu/cernetneu.cert
new file mode 100644 (file)
index 0000000..c645cb5
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0bmV1
+MB4XDTA4MDMyODAzNDUwOFoXDTEzMDMyNzAzNDUwOFowFDESMBAGA1UEAxMJY2Vy
+bmV0bmV1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTLF20LTPafaJz1Fpw
+BF3JKJzMr83zhsyarJGF3np49KDRRLG2WtzCQ402d0qxKTHhwVl5wHvYQTB2ZnMC
+QRue8kZVGYw8fduOkh147mIkz8btETWEIL3JeJF4jvN0SyJIYZax4QCwxEbvFWGn
+rFvLvyYZyTwQFni5t8nqfIyONwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAENDnMoz
+IgoaJOODParZ7f3kzntXdtwd17wmC8kCLzSoCwvSi6tdCfIy8WlTmLKd9B1fPPQD
+3amfMJW66bqAwAT7WTh4htNn4KvzSG5zn7MbYnpmu5hPk+rToyDs4MC+C2ZNajZS
+M04ux9JfV0c317TUPHVVoOe9T9p/5E/adVJk
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/cernetneu/cernetneu.pkey b/server/component/planetlab/us/cernetneu/cernetneu.pkey
new file mode 100644 (file)
index 0000000..bb22767
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDTLF20LTPafaJz1FpwBF3JKJzMr83zhsyarJGF3np49KDRRLG2
+WtzCQ402d0qxKTHhwVl5wHvYQTB2ZnMCQRue8kZVGYw8fduOkh147mIkz8btETWE
+IL3JeJF4jvN0SyJIYZax4QCwxEbvFWGnrFvLvyYZyTwQFni5t8nqfIyONwIDAQAB
+AoGAHXuuQX+mI7UyvzVAwy744SL4cWOCP6PsYRQC5UvgkY6l/VG39hvNgpnn11jk
+ZsO3oStbkLIdGF5Ro9Y97GymrFNp/FH74fY9bWQjYD97998v3P4BQ9fqgAB3eLvp
+m+SBfbjh0AFjMYEFrDebEfeTwXJKBafhjK7blbrK2U2jsYECQQD0TtWFh8M8Xl1V
+Cd/G8e4mDV+EchIUjG2tW3GLZABT8gWuupAHvm1FTUnqhJow/JPM4aXcnk2VZse5
+IoF3SELhAkEA3UeUSGo0JXjWi6x1w/96yRFX5DdHfOEQSB7FnkUXsMG9kXeNz4t8
+SRzART0kPO63v89IK088wdwnpXGFi2wMFwJADCQy1l0F5eUmrEg+V8vEMx3tBk8I
++P51oOzveqbwoTtg7usUp13eXlhV+RK3+wFCcycvsAQqBOfDuz6swnnT4QJATerX
+jww+ondDbNlkeoiqjsSZo1XHyXRizFJxmcKQjgAapW9osw1VzVTfa0IVUZNphpQR
+wJZdOZIxL7Oip657LwJAE2FGct3yCQBnYLd/xO6TC496oBFwoUOrAmUpKGKduMX8
+QR02FeFq99CS1jnCpiZ8Y//4uzyPNWrJJzdZqv81PA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/colorado/colorado.cert b/server/component/planetlab/us/colorado/colorado.cert
new file mode 100644 (file)
index 0000000..c16e32d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2xvcmFkbzAe
+Fw0wODAzMjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMBMxETAPBgNVBAMTCGNvbG9y
+YWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5R6/v89nwXY6prkbU73Q7
+oXdjntFSeOjADfhZWdiv97uDKkl39NzSChsNUyi7n7kkU2tuDmLgvNJdaimqpdNs
+AnRfTbH4VwzLKzBniXpb+bKk/sYABfAXae8Hd0uKF9kEwvMuxu6LW6Cznh9nwyHj
+o6F9425WPFsJvVDm97khjwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAL1oCgtKkeFu
+4h2Yp/xBvr3C+1WLyZCV0fnB0I9+p9ZhDUCmoJvGcYcWSPTkciHNUrcBgqqQgoaI
+6Y1xxnXqu5CFX36PLPsgvSI6gn/PzERdl63ZDo21hxxaMn2KDlcm93NDSWnvTyXy
+MlyCunt39C6tVqcF2cdkvC8HIVGYiIk3
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/colorado/colorado.pkey b/server/component/planetlab/us/colorado/colorado.pkey
new file mode 100644 (file)
index 0000000..e5e9bbf
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQD5R6/v89nwXY6prkbU73Q7oXdjntFSeOjADfhZWdiv97uDKkl3
+9NzSChsNUyi7n7kkU2tuDmLgvNJdaimqpdNsAnRfTbH4VwzLKzBniXpb+bKk/sYA
+BfAXae8Hd0uKF9kEwvMuxu6LW6Cznh9nwyHjo6F9425WPFsJvVDm97khjwIDAQAB
+AoGBAIg6U/y276g7CKbUFeNyRLv9vogTl+MRLmkeeVUjE5b+tFu29VV33GFwol4C
+zyTR4dTnPbN0azbUGcZxKPoYC1RMV8Bo7X30AalomY0gJnIuoVK8W3Nx1o59GAVK
+2hPYhvJ0wDQPuBhKfDxZ/TYEbsgTpk3Z+Y9Go7s8Vfg7s69xAkEA/zseYmk23dTW
+p8PCzc7d3qILxM/LpUf2IuN1/7QTJuIYFtWHyC9eqySyUVaHfczs5cXZVDYYUZrC
+WhZ6CKe3JwJBAPoH+maXo+RlZe0kKpQd5gq+IZo2mAJgb05NwvsuSUieujXxZsA3
+YTjN5ipFV2Y6SqWnFMV9hixRdae10mKzA1kCQFV6ukFhVYPT7ZRARvTgrIQMp35h
+zaVsRW4H2hQqfiOOo1y6ZQBRhRYycxo0raofQNPvgEro1xo1h5PeZT6S1Q8CQQCD
+wkCKX87WRTj5Rt3JQBhCAP/kLHDej8MYGJJvm2yzADJQyu3CzWxGavqnu/LaxE0i
+DnI7wHI8WJEP2BkOOhfBAkBlQ1o1LbMuyhPCKFh/yqZriaTvw0qtYwpDuOsEgk1h
+nMyN+1LEoRA0i4/8U1WciSQpgz/05yj0hfbbZ5ntxlgL
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/columbia/columbia.cert b/server/component/planetlab/us/columbia/columbia.cert
new file mode 100644 (file)
index 0000000..33c1d6e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2x1bWJpYTAe
+Fw0wODAzMjgwMzQ1MDlaFw0xMzAzMjcwMzQ1MDlaMBMxETAPBgNVBAMTCGNvbHVt
+YmlhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCPOe32hcQ/tsE/2fG6MYx
+gzNue59nuWyLYl1Q90YQsx5T5Sbz1Q6358s1tZmMrKNHbH2hUAPrYNSYTD1ac6M1
+IqK1YkeiWqkOXcm+qC/6d2Ed3AaTAw57AGbQmKVSmpPyxI02RwcmES1Ure6dqDXf
+yyyQH17Xs/qBUoFtb/pgOwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAA99GYIZlMCE
+Gmqr5017QPf1nsGUjJLcp/0BWpNjCEpatnLn5CrQkkOcYbi3/b43sktqY4vIvv35
+weMHdI/KKYMQSSuQflxE0JpHWhJFsg1+aZb+K41i0AO9IfvFNjar+wsBG2LRp2I/
+S8Bi5ODLNlWF2dH5DpUio0YPMS1/dCyC
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/columbia/columbia.pkey b/server/component/planetlab/us/columbia/columbia.pkey
new file mode 100644 (file)
index 0000000..576a74e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDCPOe32hcQ/tsE/2fG6MYxgzNue59nuWyLYl1Q90YQsx5T5Sbz
+1Q6358s1tZmMrKNHbH2hUAPrYNSYTD1ac6M1IqK1YkeiWqkOXcm+qC/6d2Ed3AaT
+Aw57AGbQmKVSmpPyxI02RwcmES1Ure6dqDXfyyyQH17Xs/qBUoFtb/pgOwIDAQAB
+AoGBAIY/cigwJCErBFW/8QoZeGJgO/vwlYwrLEpqAfUj8tk3844oo3ODnlidbGYC
+zc3cxD1pTqtfklXs5wMcLouFwRaURq8Io6lRmiZ/0liJVU3bx5uYnnOh0ND8/Lu+
+njgBHBAiVSyX303X6XEEo+2HNYswCv+IEkZNM0iLwXr2LogBAkEA4U1BwFqXkjCW
+nomJtyhgPXtm8JNmrX1Vlb32M41qG28VjKWQmKlgRLOptOMqvxIS+Mj0nwX2V2fq
+gDd5804qwQJBANy0HEiRhL1rODXumBMK6Fls88at+OEpaPpzuQ2vJ+PbbheXoAA5
+7lwfjTupac4VrguBFtO2B52JJvfZmjEctfsCQDvUxG1MoYvVE2quo7/cHRK2vrOM
+sWvJKP1HISa3m0IF0fcz0J55/HLCM4MyAJwVNKyU0UGZ172GfyPll6EhVQECQQCN
+qmLZRebxeyhKngspdf/snt3fcv5k8SK8WJm5Kewt+0Swihge7RCOO4Z5fGY47XuZ
+UNQpMxeyTD4iK6Ao1CgPAkB6Yq+Bil3gREUDFtXsnqGm/M5UePiP3fGoFB8IUvZ9
+t2nAfY6EtsInmEs6duGoqbBcLUGicBqUJojkL4SROFwV
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/irp/irp.cert b/server/component/planetlab/us/irp/irp.cert
new file mode 100644 (file)
index 0000000..ee69dbf
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNpcnAwHhcNMDgw
+MzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAOMQwwCgYDVQQDEwNpcnAwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAPzvSNF2gndHEE+bXk8ftHDeOBuBz74Q4tRE
+bje+KsMrfJEkoDE8JReP87rsXJOAqKK5m+zVS8K5Eag/7FkVtEwWYygmwHa+4B8s
+ryR/RSgz5B3dKiS2ZlGFB2tS5waaivy7HV5+7Dxe4EA+SRzM15smLGqvCFj8uot4
+RUp5+r5hAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAWYmG4UONb+7VVDSCO7vPjLml
+/336Oevuk2S/+lBCo3YNfm2jPSjYeMG343STrj1PF28wNyY3+MZKUnRY/HDOHqT8
+FZvis8lFDZaX7xSkP/SbszFIaCjlIscY61uGt0bIFTmHQ8/W0hUEtjrkbq4uOu9T
+0tF8Uh6BWD89R2YTHNw=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/irp/irp.pkey b/server/component/planetlab/us/irp/irp.pkey
new file mode 100644 (file)
index 0000000..d8838fc
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQD870jRdoJ3RxBPm15PH7Rw3jgbgc++EOLURG43virDK3yRJKAx
+PCUXj/O67FyTgKiiuZvs1UvCuRGoP+xZFbRMFmMoJsB2vuAfLK8kf0UoM+Qd3Sok
+tmZRhQdrUucGmor8ux1efuw8XuBAPkkczNebJixqrwhY/LqLeEVKefq+YQIDAQAB
+AoGBAN+LlG4cMZ693fqdtLJ1sQJ4RFp7VmIDhpZYjJkTp7OrAYM+PZ6GK7oxbhZs
+xD1RXrnDFb4xna3R53suU/NALYG4EttehyaCPPDVVrixQ/r7nw8ZvE9l9nbSvzkE
+kAkcwn2MCL82+J7i9PYi65cBieT1y1eNFdalxHPB4B8FPsABAkEA/xtsivCpNvVn
+wjoupM52ckBAZLqwpGoStZ6rdas8PkAVxVJjpU3zBLXnjuG5FNCTuLF3S1qktaBg
+DcV9TC+9AQJBAP3R6flyK6pJg9zggpYxg/qBFmJiK+dRW2+Wzd3rGu3GPzGFGSuz
+z7AD2sIwX3rRp3DxqvKvrTU5VLHlbMmHIWECQQDjqCCMOUp4/jWTMgLwFkPDn60X
+dzct8m8x3yBaCO7hCqWjCuxb1504pfC4JJ3bgmthlhXEjGaSo0U05Pn1JGEBAkBi
+Jc+x04IrAO5qdK5KYa9FKLF9LbUIZ59R0SCeFZF+LFC3V15aVdeTmon22TmyhmuW
+8vxFh8UUdazYdXzRmN1BAkEAn4oPt7XtQp/cM8K3Z4kElYLUWuh469vbofkOTHWT
+0A4hLZKwR901dTkjaC4sE30QwHkTM8xKei6kUr/14cy5Ww==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/jhuis/jhuis.cert b/server/component/planetlab/us/jhuis/jhuis.cert
new file mode 100644 (file)
index 0000000..3773d3e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqaHVpczAeFw0w
+ODAzMjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMBAxDjAMBgNVBAMTBWpodWlzMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5jmZLwSjBJ34ryAuZVvGYLhBNJV8q
+eG01YIpYUijMKv3VyH/E88x/Kkh/V9PTZ6eOnuPSC55tZxvE7FEHJUuFg/uuww1m
+eAamZV1twI8vG+ouTSIWcGfwj5OyPZiy8vLyHCCg+hHLBXRel8whm7uTaDKjBgke
+rjS0H26IEQj4SQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADCXtGPQiIBWPpRPiSJL
+tgPRVQvndalWATs4k8+tq7wQN2c6MUe1yGJedLTB+qYwJq5a+Ic4IcFK4gaHTLQK
+dPrX0lRTflOanbN7dJuSscJaQ9K0efNtHDzoVlGsJBTOTuUp6uKVBi8Vppmfj+N6
+xIFCmAJsAWHTWR2cW4SxeiXQ
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/jhuis/jhuis.pkey b/server/component/planetlab/us/jhuis/jhuis.pkey
new file mode 100644 (file)
index 0000000..1ae0974
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQD5jmZLwSjBJ34ryAuZVvGYLhBNJV8qeG01YIpYUijMKv3VyH/E
+88x/Kkh/V9PTZ6eOnuPSC55tZxvE7FEHJUuFg/uuww1meAamZV1twI8vG+ouTSIW
+cGfwj5OyPZiy8vLyHCCg+hHLBXRel8whm7uTaDKjBgkerjS0H26IEQj4SQIDAQAB
+AoGBAI6rXUozzLPYeyZWgGMStJ32v7ULB4QFQxH/9jeWCOLoNSPyMzGK279bkgTT
+VjOHD+DWb5JWuCT9jH+hRpWaObijAXcdDXn9EKXzXkMEqPsWL/nY1Z3zE801sFJs
+UbxkIGrGstKH137MHp5WEQgrbBJhYiXZEKG31tTVbmzExZEBAkEA/aGRxjiluMnG
+g23wjRJjct2Y94pE/Dn7wRNoz5xinrJ8nHPXlShGe0xeX0IWQArg9I1DDW42dMb4
+/bl4U68F4QJBAPvjFk79cPVHqcnCkYIlMgwBpNwHmG/sqUZc+YtdcvqDP8QIJRdO
+chnUvBZoUQ/jBydChmILMmWM4ia7/ssTb2kCQQDoGiFS6qgNkOkPgV5vWvKTPWMs
+tOYog891gxOZWh2N6PzMF96javYFA4AhYFMITGxMn7FK6x7+gs99MWuB+VtBAkEA
+3AlaGZKoNHxvw8JmHgykFXzyKQuxjERu8vqRO79ci55P+80pqZxrbEk8LU7fUUN/
+ojoo7kjds3xIqpGbWIcX0QJBAL7eTlqM8J6pyo/omr40JC5FGv7KNv0Pbh6JlV78
+izAwT0s/UzvLFTwgnjCmdX/DwMT2T4Bt3eW4C86KYAk5vTM=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/michigan/michigan.cert b/server/component/planetlab/us/michigan/michigan.cert
new file mode 100644 (file)
index 0000000..8781757
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhtaWNoaWdhbjAe
+Fw0wODAzMjgwMzQ1MDlaFw0xMzAzMjcwMzQ1MDlaMBMxETAPBgNVBAMTCG1pY2hp
+Z2FuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdUsESJzbkw8DWo5QVram6
+Tk4WclGCSnFiS86ERUkQE3pbDcv+kqKi5FGAuQL0dY3/A/s+4+eKWQI+t5b43EKN
+1xYpEesUwGfywIug03la0Kyb1bxHWdWqAtjfOv5AvkU07BgqHy1Os7hOQll5ZVsh
+z/Sdhx5WYQ0E1qth5XkbsQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJtcoYK1jyS3
+Qu/FNnkowgZyn4Bb9Et1l94pv2jilASHGFKQ5zMv0dFZwRe7N08XCFjDImJJY3EC
+kpDydQgJ0Cp3fNlm8WpI2fYgBnMImty6hgfPk0cARd6+hC0mtGJ9jcuROLYHM+pB
+ncZVQ5FSx8rvX2RVG4OWKUMMRReoUHCW
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/michigan/michigan.pkey b/server/component/planetlab/us/michigan/michigan.pkey
new file mode 100644 (file)
index 0000000..c1745bf
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCdUsESJzbkw8DWo5QVram6Tk4WclGCSnFiS86ERUkQE3pbDcv+
+kqKi5FGAuQL0dY3/A/s+4+eKWQI+t5b43EKN1xYpEesUwGfywIug03la0Kyb1bxH
+WdWqAtjfOv5AvkU07BgqHy1Os7hOQll5ZVshz/Sdhx5WYQ0E1qth5XkbsQIDAQAB
+AoGAByQ9jXRoQoQ8WcH9M+q5PLLXSp+P4ak9cmfcjRaUFX283StIKls/tMNGi+Ba
+KPy5IG1u11EDLr2Ro4Uz/kIJZ1K0sKAri8hck/Y6Dfzs5oIUM+Quw+ICvg2rBeAs
+FMb99JX1zkawyTIyBnbLl8bQLXcDytjmT4AHX4fK2bdZu40CQQDO4H5VielSlDTk
+mDWv4iVuzJmKjTavV+YsvND0E8sRawTTv9FOK8VYU/eg/uF/88/xR5HLv0kIxyFI
+Csioc3/zAkEAwq4F4BNiVk3nyFR3BAUOv1nF2ma77PRWQkS1+PU4Zqh8r+6oHLmb
+r/XhA8po4Ky9EnTH3Vj+g9NOwv/QCQJCywJAfgT+sDisauNhPQcDXTrTNqVnuqC+
++R0AV6xFVQlhoCCi9iJY69d6BY5QwD/DOeBZgU7pn0XMxY4X1fzLsuF4xQJAfH32
+Sd17c/8rqkLBPPPTA3BwAoLRx+xTwNrZl1OQ9qzl10eBf6T9tx8//kGQoaQ04DmH
+mbeQQlJ9OluF+EzW0wJABHmA6wNHmSbejWR9tCMPPY4CP+ipmjoDdSB4L4x23zKg
+qw80vi91ds6977k4M7ylBhSK/MU8e5KTRHX9yzsyfg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/northwestern/northwestern.cert b/server/component/planetlab/us/northwestern/northwestern.cert
new file mode 100644 (file)
index 0000000..d89febb
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBnTCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAxMMbm9ydGh3ZXN0
+ZXJuMB4XDTA4MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowFzEVMBMGA1UEAxMM
+bm9ydGh3ZXN0ZXJuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEy6IlCLsu
+pRyj9XUCq/VuDUAHc7illhn2DHEJtasenzDHagKbPBRTQAXgeOcRwjBGf9TX7QdR
+GBD/YW1MRONzwHmkh6TR2PVwnaMsIzFm1Wj3Pl1Jl35h2a7yq0nS/6nRUNEESxv9
+8konwGNdFow1/v+5wla3Zc8N0LcGU+yMLQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB
+AMLJKP02wDmcRVtJvULpRrpegdG6btUJzyf8eoCJFWl3o+Q4UbUTNdrKUepnp1Rf
+5Y9J9qsObnvwWfZZKsSHmZbMMbhw5NVjWp+6aZtNNJDzCsudJRaxuVU+LJRXdHIS
+GMT/QkcGpokGoKGyiE9o//V0FIK4olBMTS5r+gOXfHiQ
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/northwestern/northwestern.pkey b/server/component/planetlab/us/northwestern/northwestern.pkey
new file mode 100644 (file)
index 0000000..7de1afb
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDEy6IlCLsupRyj9XUCq/VuDUAHc7illhn2DHEJtasenzDHagKb
+PBRTQAXgeOcRwjBGf9TX7QdRGBD/YW1MRONzwHmkh6TR2PVwnaMsIzFm1Wj3Pl1J
+l35h2a7yq0nS/6nRUNEESxv98konwGNdFow1/v+5wla3Zc8N0LcGU+yMLQIDAQAB
+AoGAbib5FDel5j7/H/sFSsCLuNTr0QACC5VP5LwkDWZFaPd76zK4UMG5Mrv0Tif+
+Vp9WPC/TKCWBYe/Rm9Chx/4LPUNpOk9zkP+tuXaFeA8CV+1Co8seH0am+WJZew2f
+Olxp6UB5Ut7803BkoDAK/vQzYoFJo6wmyroctXIX3EHheaECQQD6aHYck47YSa8W
+PPG79l7Wg3F6RdPcnPdCo0Ek66qb9mwyTnn/BTosT+orgwHwnl51ONYKxmnS1NGz
+ngB/BEkZAkEAyTCtnUtHkmxW5kS0kbbTtsZObvkQmmSUuadvO7/d5rXOE4dE9imF
+Qay3jP8Dd15FYN3grsnH0FopBz0Ap7/6NQJAW0XYR3JBjvTMrP5p3mlfCDHBGyB4
+qOFN/ywigqKj/VVE+tFABoSRP7WhVVrbSilvpKqi2iqYSBDqnt3osGOPgQJAIV9g
+vSG6mpA8DfBBn5YbIktcwU2xMlsSzIT4j4mxDk8EAvtCNi8G+rDitZGrioZprbrA
+RV4VNftuqNO2oxzWLQJAIjY3Jsnwpp5R5xBdVQQFpttEIUx4D3zQiAC6YkvF43GT
+x9Prr5EZORDyGtO8t2Z94d/fnIKyxPzlUAZI//1MiQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/orbit/orbit.cert b/server/component/planetlab/us/orbit/orbit.cert
new file mode 100644 (file)
index 0000000..47df839
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvcmJpdDAeFw0w
+ODAzMjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMBAxDjAMBgNVBAMTBW9yYml0MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSEPH++WG45H9NhSiBH2Zrgz/EZaX5
+qdR1/H/p6IWP6wWrmmsm6qpXf7aX6NWUzG2e4t20p/pRENHQSLDmX5D1DxBMAs7j
+3z8dDJ+99GN2b7aVhSIXjOCQOJCXl94PuVKBrxW3Mp1FQMd4Ta1BEapoOPj0oYLc
+a38+BegrzZILRQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAH9RZdEbOWuNQj16RLa8
+ekUAKYkPvTCf+OPJ6lxbjfzI5kDX7E9+iCrkv3SNE55y+STgIXTpVRpwbqHo090E
+Dkcmst+6V43GxXDph+sDDRxQ0C+tAMpilPdLC86Yf1qR+OYhKJg2cMsEzS5cq3E6
+oHrAyAcrdze/I3zcAIqFxxyK
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/orbit/orbit.pkey b/server/component/planetlab/us/orbit/orbit.pkey
new file mode 100644 (file)
index 0000000..85b9aba
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDSEPH++WG45H9NhSiBH2Zrgz/EZaX5qdR1/H/p6IWP6wWrmmsm
+6qpXf7aX6NWUzG2e4t20p/pRENHQSLDmX5D1DxBMAs7j3z8dDJ+99GN2b7aVhSIX
+jOCQOJCXl94PuVKBrxW3Mp1FQMd4Ta1BEapoOPj0oYLca38+BegrzZILRQIDAQAB
+AoGBAJjNqrqGPQd5bwC8s9H5PU9HkcMTDcCmQN3yZjmH4l/l3aIOGZOdb3tmczPd
+Mj+i1LqW3B7lcbg2O+j+d2+cZJwMkVrF21jtKiaaAfzWt0rXE1ui9wkA9MIFMhp4
+2hqCK+KFrqv2zVy0ch6kE4/AyV9+0tTtCuLTEXaMmQBgoewBAkEA6AI+ojPFgQY2
+Onstz9Nf0KXKnh97XDI8BGyTEY0+/48uNED07xe28LyRaGzfH6b7Hi6umhsmhCVX
+TwDLlsh4oQJBAOfJ1b+D4jiSlRaTRxtN4NgKYH+4LoNDNoz11lOZGW8xUnC6oVOq
+6Zfr3josCrZ25tpWWMKgdjRmF98S9CkHHCUCQQDGHLSTGRY7mKxRv8Fcx6f3qLqd
+z1AtaA/rzzK+OBhlbUQNBrKgP2XNp5eazeyxQIsKON6LZUe8a45kPc+bD9BBAkAf
+8pDUkc/3bjTAZNJTMBvCi0Obtv4qN3RoX2YIJbz8t3aedQrRZmhF+UurBvD/D0po
+Y6heQxGnzT6TD6C5mvJFAkEAswlGfTMSAKLfJ45MtN/zR1nEkHot7l+ZPYbXdzT4
+ydJnFLDEYwBYTME5BqBILai3BMBKKhMl/di+mtroWDZN2A==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/rice/rice.cert b/server/component/planetlab/us/rice/rice.cert
new file mode 100644 (file)
index 0000000..98111dc
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRyaWNlMB4XDTA4
+MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEcmljZTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvPgtziV4JpT+7LTHWX3O7cefzxxjRuT3
+fC00NGEJHM3yFAaMcbLo0ppehr+HhXBcWxmffUd4Rg71/WKHZsdrnhpF8FkO89Yn
+dNNli5hrFuXDJDqdkdHzWC/EItdJGK993+Y4b9RjSlYRIKpfFDzIbdbtlrYdbMCZ
+jkq3hrpxkRUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAgkv9S4qCtZMG5gsdQhLJx
+sYgtjdDdv9d4TsnqYXPHsWCDQWnGaedz+CMufmaZko9GiRL5Fsw51Beo0hb2n9PX
+DRvc3uF0CvwzolsKP9UKaFR6IvgMOd6IBYhHdIguDxkqQDvHWmt5CqcoQJjmtrU8
+J5JBfiMyWH8OfhMz0yID3w==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/rice/rice.pkey b/server/component/planetlab/us/rice/rice.pkey
new file mode 100644 (file)
index 0000000..4185938
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC8+C3OJXgmlP7stMdZfc7tx5/PHGNG5Pd8LTQ0YQkczfIUBoxx
+sujSml6Gv4eFcFxbGZ99R3hGDvX9Yodmx2ueGkXwWQ7z1id002WLmGsW5cMkOp2R
+0fNYL8Qi10kYr33f5jhv1GNKVhEgql8UPMht1u2Wth1swJmOSreGunGRFQIDAQAB
+AoGADHiAZVtZq4onrK1dfo1r64tCA6QG9TXFE1/UUySYOlto/2NTP2mkLcncNR5M
+rkS1A5oUSWs/B7iTCU7ISsMcWeyve+dsSlcBsMbLzh/z75h1iR+Vdn45N+VFp62j
+yY64YvZrTtinUpSXxOpRnKO/NABi6qJGnHSJecXCPBz2KH0CQQDe/JtYzt3ggUXp
+VS47iHeZBI+YGGIpzbP+hConUC7vbbretzcf0mJDpkgQUIus1pNg/4edGTauXtbc
+Fm4h/3F3AkEA2PJJZ7RKkARPNCLlZcKgddCokzbfS1pfj6+Mh0fco5h6zucDjeeM
+Rafmn/HUEYXJM4XSpw9Lueu83SNSxLRU0wJAXwKa3lgmScZLF4Rn0o3vB4/d7xxU
+lyNCkiuWGnIbzYCfos3F+xUVMWXkRq9LFDXJTgcSrWlU1y8ptVUJUAsbOQJAUC9l
+QEZcFNTy7WNEhJMmOcWQuTDb4X8auQH6n/nIrFLseVLbdnSx3QEM9estJfjcAAYj
+cQnvRF3EZbvrmLbKbwJAWGaTxygBFH4xu+BWnGUR54JPaQiHXMU91XOsD65rFT0J
+CjGbJ4y2q2qqSQyY4oSTXKUKElMYh1LYIKRHNmBMAg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/rpi/rpi.cert b/server/component/planetlab/us/rpi/rpi.cert
new file mode 100644 (file)
index 0000000..3f50d51
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNycGkwHhcNMDgw
+MzI4MDM0NTA5WhcNMTMwMzI3MDM0NTA5WjAOMQwwCgYDVQQDEwNycGkwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBANvg9MJ7RnBY42IeRAYDaYZfJ1k8FK+mCGlf
+ttYkucu92w7fh25hszSbAq6LL+bkWfXCGS5CgmihFIspoZJD1qfA8Hi6lJnOO6Km
+YrhNv+PBvzGfr5W95rm6lymNP+ZVqOXw6iHHU4CusPjQVBt1AqqqN862XwspIoQn
+TD/j3VtrAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA07cbEDriUDSHPNNItmA5B3fi
+2ALrOUdJYN8E39HL/o6HEWpArpY3zhsXDr0glIpKvXm1Sz1720zvCTSfOuGN8xLV
+Al5h3rLBZVNeeOTz3HXUqCNJJh6J/O82Kt50Id/U59lFqwk2OAHqT6D3nDzmdngP
+qXTOnvqS2GEtJnpCT2I=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/rpi/rpi.pkey b/server/component/planetlab/us/rpi/rpi.pkey
new file mode 100644 (file)
index 0000000..08c0c07
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDb4PTCe0ZwWONiHkQGA2mGXydZPBSvpghpX7bWJLnLvdsO34du
+YbM0mwKuiy/m5Fn1whkuQoJooRSLKaGSQ9anwPB4upSZzjuipmK4Tb/jwb8xn6+V
+vea5upcpjT/mVajl8Oohx1OArrD40FQbdQKqqjfOtl8LKSKEJ0w/491bawIDAQAB
+AoGBALzT8h7a82EkVRI8X7qyT3uAWDCAMluuQOcNtd0t6QmZ4HhjatFWwinZPXJc
+QiUN0lwF9s4NfCUSwKvKcuFDtSD/vxHyspfUqxthqpAvrzqaKoDtkpz9JHchmj1s
+Kk5mEyjCUDjmDJ7CGXhZkzF0KVTc6DGVpQxEdd7ejSvr2hehAkEA+aNYPz54waYn
+s/H4uXuL1qT16K5gHKCsDDUYCAnleZAOBxNbW9anFDhIhESIG8QFCBTtAub3ghkA
+REFG33v+SQJBAOF7daPqeOTDCb1npugnS5Xk/guun7rdui3YPALFBkn5IuvFrRxT
+zz9osap/1mo8A2eVNgpeyZGA+wwUVy0NnBMCQQDHoNAZAyQd93kYdQ+phBq3cwMT
+Jx7ExdfPi0XEZ+WR6JjPH7OXJXhGuxuCaitNyNsdM161S23yI3wLGQhL/yPBAkAE
+ygqFoMVQlpPuYfU5mRwR4vtCZEMgRPVfY+hiZqzrhU8oktpKb71HK4IajPyQ5RVt
+bc3oCntdi8/JQeVYH6HhAkEAzpSQ2vRXTOAe76IJxRZeEFLAdmvoVtSwJ7DZdQRm
+/b/5hvlYx1xWsMNgr39qJkpzprp+708JubpPEZdpo6vTlg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/stevens/stevens.cert b/server/component/planetlab/us/stevens/stevens.cert
new file mode 100644 (file)
index 0000000..10ee7cc
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdzdGV2ZW5zMB4X
+DTA4MDMyODAzNDUxMFoXDTEzMDMyNzAzNDUxMFowEjEQMA4GA1UEAxMHc3RldmVu
+czCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvO65JFWWsxufe4FV5C7TKrK6
+t6aZEeHrcTPiW78P8bvKunGVVSEiRza9sq5c1Bp6q+Lk3GVYpUbDnhw/jnpMTB/8
+IcDLOjk7p0KhCa5OAsSEm/+GLC+R+AW7cpuvJTNoAyrrbQr6wI6vTbC4zkS5eeny
+17BcGYYiVCqBA6Np+1ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQAQRLlBZoYTHnJ/
+3jtJ4ocfywGrcDvldm+ymIx5H2GGMW9dnJClkcLkDNHVK5ZbQ6D2JyAOvV3Bu8+E
+6Ir4bIkZOiy7Xk3jmE8aBqbs9bg30612wTaZjeYo1FnOttwdAuVGXw0xOMOlDcrO
+zBzVBbLQ0u8fq/sb57cGRhREV9721w==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/stevens/stevens.pkey b/server/component/planetlab/us/stevens/stevens.pkey
new file mode 100644 (file)
index 0000000..4853cc0
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC87rkkVZazG597gVXkLtMqsrq3ppkR4etxM+Jbvw/xu8q6cZVV
+ISJHNr2yrlzUGnqr4uTcZVilRsOeHD+OekxMH/whwMs6OTunQqEJrk4CxISb/4Ys
+L5H4Bbtym68lM2gDKuttCvrAjq9NsLjORLl56fLXsFwZhiJUKoEDo2n7UQIDAQAB
+AoGASUgfL+Syy04PkgwckKFI7urcWZeZD8KdXA9P4V4+hPjeLWsZDSgI765f7gqL
+nwmWQ02Cj6oPtCu6fH1geZceOE1/LPia2MrhAbeIWAz+91tyBaqhNwYrIjQullzX
+uzaxq8VWzCoAMz+MjOFPJ89TPt4LNw1WcXJvuO872hswc0ECQQDv4ntkW3R4pk79
+dvg6pogxlV+D2jpto7tSWqZLKBVTd2p9FNtWpJPP+5pn40RuKTTFBxe7URei5u2i
+ahKQPZ+VAkEAyZ/4OAW7n7GyvavIzr6ZC0l1o3FGerp4Kmg5kYYN6q/BfvZ/pkYr
+dVkjp/FIRbbrgEMnRzSsJ/GHAqnhp/QtzQJBAMKD7faEyj8C7E5PaB126Dz8mMT7
+8iDxgXXYF7wdtp1F2c2vWeQ587nUlXHkMZr6QtX5WF8F9Jqdktf+FytrLLkCQQCv
+7g7ny1DQ4nwldlyM0dC3AY1NZUzrUAQEdNcuvLst+dgsEaiGjJnlFje/lhDLC/Zn
+/7CpODOz0tNMprFJHQ5NAkBr47TiRXDbM4qIkcUzl7zawrxDCCk7Um/iEIThHEFA
+X1cm54BWZGLlvaqEnm6Bv/kCdvMEn5ZFie27dnjGGHDm
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/tky/tky.cert b/server/component/planetlab/us/tky/tky.cert
new file mode 100644 (file)
index 0000000..1b06e13
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0a3kwHhcNMDgw
+MzI4MDM0NTEwWhcNMTMwMzI3MDM0NTEwWjAOMQwwCgYDVQQDEwN0a3kwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAMiykH2wAha6xH66PhU8520iX9E6Yd5nUmnE
+5LwX2hpEYj8Snm5yoVD5kAar5DBSrGpbT4JBB75uYxLnZQBSILUrLbOPxq/mw/7a
+ExiSiokfKv22g2EGhGUclFG4OOxFPUS4QNyU1sBVwjlTWy4hzK/7Xcp8OiGglu2y
+KRMGL2EhAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAn1x3uXxAPU8UcD7fpL7/w9Xu
+sMfRjvnDSaMlLxJuOnVopg0TXSSNllhqkQRLpopyswCxytDgagSZ4of5C+qemDYy
+fpsymZfVJD2jgHKJw5bGf54QleiwHnqDRr1EYHEySXID+yYeW9BCs4GZUVWW65cz
+CNxB848inuMrAYG3PbU=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/tky/tky.pkey b/server/component/planetlab/us/tky/tky.pkey
new file mode 100644 (file)
index 0000000..9a574c7
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDIspB9sAIWusR+uj4VPOdtIl/ROmHeZ1JpxOS8F9oaRGI/Ep5u
+cqFQ+ZAGq+QwUqxqW0+CQQe+bmMS52UAUiC1Ky2zj8av5sP+2hMYkoqJHyr9toNh
+BoRlHJRRuDjsRT1EuEDclNbAVcI5U1suIcyv+13KfDohoJbtsikTBi9hIQIDAQAB
+AoGAEXPNstBSbi2Rlr+VVH12VnwtvuEHz7JGbWIszdp5Id2eeYOh+VLIimUZTCs4
+badSzPDhyh7jkIDC5srucoexxke59VkRjluroHwtWug1uxoRYs+wpcO0K9JaugPR
+WhbSZZbHDifaI6z9KhKIcChQJJr+x+e/1ajH1N6ABvyMghECQQD63BGf3qJA7cjt
+qzZnj2dD3qdtdKDXJhG886qICjK3RHECFKpwWCDoAqO/ju9V8jhHT75j1XBvGOdr
+S2Yy9wMNAkEAzM9cWsadEVTVZhoIdZwRM0ZeO5sbFnDPJl/oEsnLHE1ZKV0pbqUB
+e9DJNEZOqg9Xn8dNbihYlUhn1Bl8pRChZQJAVYny7IuS0gcC65/lBj0M3kSu3JDX
+Q2W0yLRhos+vaXSKAEahs3sphVNZGLmZfLoCXLahWhNuqkNYrepg5+H4hQJBAMVI
+5WSHtxrPxfPhFc78c9EZcoImKZSXO+NyNOGMQjtUApQGqndrOJ+lAXt6UiIcP0Ko
+v9xhvtql8WXs2xVBjMUCQQDBLmwARF2iqmezIIrXrZCcHaHTzHHh1ybzcteVv5m2
+U1t0DS0jDzAx+nQAzTDkce9EFOC6p6pWQ1P1kZAusz8v
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/ucd/ucd.cert b/server/component/planetlab/us/ucd/ucd.cert
new file mode 100644 (file)
index 0000000..6ed3579
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2QwHhcNMDgw
+MzI4MDM0NTEwWhcNMTMwMzI3MDM0NTEwWjAOMQwwCgYDVQQDEwN1Y2QwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBANK61udOX7RD/yGJ4jzI2XhGaw/nY9INmG7L
+BNZ+BVelMe2qW7Cb3cKOcn9qB80KJYR/rhjU1NbUa3pfdbUk3Cu0/zasOvHDQdlE
+gjBvUirUeu6B6p1vRI51x03lSkpNqN//1/pquOmJoDTJU2xSslnyQYK0NRFc/Lri
+USiRveMBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAOmZDEEwKzi1kJt9+dvhejDGi
+8PWQ/OEtgMhdApFIKe5WyRFOe7kk7LsNl/aQE04NyVsuZDOhVj5X2hdtBX/UjB0A
+ojNVojFlqf4NKHZbFLUOZErWucBnR8Ljhd2Wo0foAp8WF795+NrGRUkB1KrdLZg6
+GTBPMn+NtfL01+1w/WE=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/ucd/ucd.pkey b/server/component/planetlab/us/ucd/ucd.pkey
new file mode 100644 (file)
index 0000000..9f98155
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDSutbnTl+0Q/8hieI8yNl4RmsP52PSDZhuywTWfgVXpTHtqluw
+m93CjnJ/agfNCiWEf64Y1NTW1Gt6X3W1JNwrtP82rDrxw0HZRIIwb1Iq1Hrugeqd
+b0SOdcdN5UpKTajf/9f6arjpiaA0yVNsUrJZ8kGCtDURXPy64lEokb3jAQIDAQAB
+AoGAVQg5oXp5mdb6Q0FNPjPZtPPNTcyT9fWwdbyMRjTx2Oz62akteHVcpZ4vS4Sw
+gyc9/lo7GSAAhnOOrwGIEME/6dNwrkFCC3YWbDYAybjhvpXdmFq17yS0ZMDIwLoE
+rJuWwYBbLPNtCDPisnS9rCCjElr/4kC/aBVdxQUyIcibMPECQQDyWqY7YKOuPMq7
+BtX+ag6Khj2LAzGpciR7boJGu4yEsvjA9Zxz9VdhjMnbRFV80Ycc8byZpXZ8f2NN
+j46mCIo9AkEA3phZtUMAgt/1VawHgvw7TxM2LyKR78gUmqkDMnik+yjykhnGa4ep
+fzhsPgI5oj2cZjdbdST3cZnsv20hMrl8FQJBAIU2TH8AzJd+NNT+meuA8kM0LGnX
+tJl18xWhlZw5hLCAC3lMx9V5OrGVCHMsqWy1YvYG7erqZylhf/zm9rrOoOUCQQDH
+uSUMuaCUzURA6YkX4x+IFPHSGw+ceQbbunhO6ecGIDh+FLhvNRtFNigQ/0gdJXDW
+Wicqlc+b04OUQuO9sqX9AkAgLPtcI3+gWbvzMzLfZNSl8bx/cZBUHrex+0oNRUE2
+Mw0J/13ZNhboJzjxK9wv/nq5Q47oZSIbIWRDbtxMFo4N
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/uci/uci.cert b/server/component/planetlab/us/uci/uci.cert
new file mode 100644 (file)
index 0000000..15876c6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2kwHhcNMDgw
+MzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAOMQwwCgYDVQQDEwN1Y2kwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALK9wNRqWBfWA/A+ATeiHjN8OcdzI4YB4NZH
+pCCCi5LxNgIvTqhvdA34kNNlvY9XaaeFuJFO+aBlofWHduKXT2Sy4XU3xUeC2vv1
+qBsWqRgcmMT9yZn4oyNZ4n8stQGF09vFzzJ2ERMhieS+0lm8YjnCnoSDJGb6gkKm
+VRbheve/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAPwbCHIV79NputR6kSgAVT/d/
+mYZLKozMY6CYEmgGYftK4rZA6nzWm9tWmGe/mr2S6DhS838YakTstaIW9885rGBl
+dMOrH8Rp3t3IXqsG+i96XDnnMkyt4SWLU2wnyG8H+1nhE0R4UyzoxhAgDHINZGON
+M6iz4IrcF8hA3nMdcDM=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/uci/uci.pkey b/server/component/planetlab/us/uci/uci.pkey
new file mode 100644 (file)
index 0000000..0fb7f6f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCyvcDUalgX1gPwPgE3oh4zfDnHcyOGAeDWR6QggouS8TYCL06o
+b3QN+JDTZb2PV2mnhbiRTvmgZaH1h3bil09ksuF1N8VHgtr79agbFqkYHJjE/cmZ
++KMjWeJ/LLUBhdPbxc8ydhETIYnkvtJZvGI5wp6EgyRm+oJCplUW4Xr3vwIDAQAB
+AoGAYns0XJT/Vpq/bsXrC8kSFNH0T9U7lGFCjS3J23OyDVNDq65/C0TlT7FNsnwT
+FoBWIUwHJmC6H0sAEnUB5tTxk6FR8v3molofw2NKfFAS8G10KEN+12Y6qtGrU7Lw
+XvdbfJKuC4OOADa9QOq0gxaChK477vY0nr0SIIcCxLhywIECQQDYuh0tSTLWqMl3
+JFpcEra6/p2b7C3Wq8srMKigs7v/tOCysnHOT5vO1PcP5z+iRjeU1sufClOPGtt4
+UPx9+h7BAkEA0yF+JEsssa7COOGNOcftJpy3F4PcEhIbhzGVcqiziS43huHAS+t+
+ww9lDxuN1x10FTP+cIBGA3E7bbbicyk2fwJBANTDEXWt0Jzvoqi2JYcSUBWPdIbn
++7AtgwzpfgIVsNA9cAG+MP+LI7iPVeRk7xGNwW7613dQmet5QFADoXzDGYECQQCS
+mmgfxX9kZcgBfUT2QUgADsPn9Syj86TfzGNMua3o7ImsBCflz8E2qwLuaaClJZOM
+gY0FC10SWNb+SQaXFp/7AkEAxPgxsf1r08knHRFwoYGrgOFc+y12JMA19fsj9wBa
++KoJtjbAycV+yb92Av7mAA5kXLYDy2ezbeBXp967gBJkmA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/ucla/ucla.cert b/server/component/planetlab/us/ucla/ucla.cert
new file mode 100644 (file)
index 0000000..4c71846
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1Y2xhMB4XDTA4
+MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEdWNsYTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA63bz0FFyeq8qsSfwC3Ou2Vshf8I3WXYT
+fCpP/MULZl7UHqn/1iRjhnixNoUu7YkJlPd6dUz0mW5sT3OECVZ9wHu1GF3iDBnG
+EbOn0Y3GseQIj0nZr7MxQeI82r99AuJgoVEddlgcc+hH4rsiLCzVggQDRNHhZiZ1
+HfKd5XKNFysCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAKq95d5WuFwg/fkkQACAfW
+cQB7HMxs0vXKmKViH+ehHZ+mZWlQurBwZO0O9L027KfgKc+8SLHsC9QSxzPJk2wn
+MsIyBDe40Q9hLVxkuRve/lENPgA5po9KarUdWikIyD+iyo2tHSghQzKHUZV744Dh
+3kfmYTpBckINAWC2EbCBxw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/ucla/ucla.pkey b/server/component/planetlab/us/ucla/ucla.pkey
new file mode 100644 (file)
index 0000000..5a0c2d5
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDrdvPQUXJ6ryqxJ/ALc67ZWyF/wjdZdhN8Kk/8xQtmXtQeqf/W
+JGOGeLE2hS7tiQmU93p1TPSZbmxPc4QJVn3Ae7UYXeIMGcYRs6fRjcax5AiPSdmv
+szFB4jzav30C4mChUR12WBxz6EfiuyIsLNWCBANE0eFmJnUd8p3lco0XKwIDAQAB
+AoGBAIuOniVbEKnsRjZnwFtZPkmvPKSXPOz2Echm36+mLgKHs9tU0MBgIujhgc8Z
+kt3QefBj2Z3KdbK2gtV4VsqeC7s1taiklE//UfOWM1G5+Aym0dXfc41LYfim99Fg
+xsypo5oxS/IZ/ik/twXr0z0S8ui6N6VPRw3WbuRkxSaUDQCJAkEA+92ZN5yrF4gg
+4tDaPjGrvpbMjCF4DL5I0mL/dUbVy7OnlP00zC0HDF7V6Kn6JTh+YLlxE+t8r0ZX
+kAgUmqqX3wJBAO9Ubtlq/OZCKng6sH4bXQgNtCd0+Y29M/Z7BY08uW043pNV7XNW
+V82CDdaN/ccoNDXBlQGcbiAOaoON+HwRGjUCQQCHp2j4nPdBq14bC+YgDVy1QD9X
+Ukd4hZxvREbXAZnxJwghpOck+TOMpB+OOs6x8WWP7xFKa1Eyji5nMxL14t/9AkAo
+J86BhEXyjF971L0QK58sXsA/bo0AjyJM1M9Vpz6laMlPhzdUBsSsoomX2jMeW0yH
+SHer0YdYsZKFiCiNCIGRAkBlJFRX6R0nHGz3mZMdnXKKzfgI5HjjWhcGRJaTauBs
+8EvhaDEzXXPlD2GRkvXbG/oK6C7qv2JAqIpRLETe3UuS
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/uclaee/uclaee.cert b/server/component/planetlab/us/uclaee/uclaee.cert
new file mode 100644 (file)
index 0000000..f11db54
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1Y2xhZWUwHhcN
+MDgwMzI4MDM0NTA5WhcNMTMwMzI3MDM0NTA5WjARMQ8wDQYDVQQDEwZ1Y2xhZWUw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALjfiIXW8jlRtWQyY3+TujcLl0vc
+mOF5qrJyVDv851FXV5o3U2AxQfxkLXYRmzocDdT3TUHQV9qLNJjHazlF2ogwCTQN
+QCEC3xXEDXnoOfCZDMPY665whEc0XUlrU3BLFsM4wPU+nr7EzCZhLLmx+ASEfAT5
+5HEiiYv8UU07yvH9AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEARgTAmhMNZC7237un
+Cy757WiTp/7Rl98P7GOYFRKDRRDjGl6iCUlsxiC5Sz7MUwI3A0rofDfu5RSikbLN
+k/FZY7H01+tALgFzMn42tIMkeupfnv0xXLpqnpPZf6oISKAdZN77XzRlVq2Cep5p
+X0lsb48z/Pls/H0uD97zJAHbQSc=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/uclaee/uclaee.pkey b/server/component/planetlab/us/uclaee/uclaee.pkey
new file mode 100644 (file)
index 0000000..a4f658e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC434iF1vI5UbVkMmN/k7o3C5dL3JjheaqyclQ7/OdRV1eaN1Ng
+MUH8ZC12EZs6HA3U901B0FfaizSYx2s5RdqIMAk0DUAhAt8VxA156DnwmQzD2Ouu
+cIRHNF1Ja1NwSxbDOMD1Pp6+xMwmYSy5sfgEhHwE+eRxIomL/FFNO8rx/QIDAQAB
+AoGAbUDc44uVdj5NXjtRBbH92E3nSZPCXW2TbQWXtiPNaAqf4KlVgoFZp5hkLWRW
+Qc8WdYb4hy5i3OprWOZw/VXEwLj1wZxg3QNYCAFFuMYvCpcJqsjfv4X5WBney5JZ
+jz5IC7gFRz67FMvjJzMJjXDTwpxK47i11/a+nXz/urHimoECQQDsC8oGIPInawfG
+a0CaKnR1f6va1rl9kPibrXd7mBhalykBekxvlv5pEnjG5SasXqgopGhIdjlN72Te
+DQ2b6NGxAkEAyIBTSfvqtUtXmlDRA99i7acSWBdpv0TOXsqsStWuDcWI5cvW/DMu
+a1nyaPpvHVVxCLhLYZYVlmZG7WzE3mQMDQJAIJID31Ked0fye7OC54LiLPBf80Nb
+tvLRCxIlgX1cJuvisZyBfYhVNIRi+/bUnkY1Z94/sXf2skVNIsKkVRYMEQJBAIdp
+09a141DKL8IzLtc0ufXTzpncRjk92TtAGpj4M/NtJAY/Y1U1o/Yw631nFkBzgkHn
+ZlHkMXRAY0rbGSMx4skCQQCV6cLw+Cg5llX1Nqf0vuiU/LCZjI+cXKz02wSTb/Dw
+AzCwNVKsv1My5hv4AuUVqMLZrEp09wyjl9xhJJnhSDl8
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/us.cert b/server/component/planetlab/us/us.cert
new file mode 100644 (file)
index 0000000..5aaaf0e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJ1czAeFw0wODAz
+MjgwMzQ1MDhaFw0xMzAzMjcwMzQ1MDhaMA0xCzAJBgNVBAMTAnVzMIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQCjh9+Z1MLgDFDEjZYpB4244uKgl7yWybcdzT35
+kUO8Ijz6tNf3s2fvXkG2hyJzvcMrGILFmFq7rwHZcuhj8xgEladPqFC7dQuz9EZY
+J4KNdVyWUhb0/wk+hGwAvAbmWDfSit/QMCpNgSSnRrWGWlt1wchyHw79xX8rOmmj
+3TDkjwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAABNua6OpYkmW8dlwivX4yxy9zRf
+GnXscmLI7AjGXbIo1VbrWlQayHJRFZ1Bn5of1jF13BaWC/PQ73HgdS4taWI6Etii
+yPnrruzrwsysTkoyXrQvsE0wG/ghj0j/8elEiP9xvCYjTpeXv6bjHXQYofNIMooi
+byos/pgwdg2f9AjU
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/us.pkey b/server/component/planetlab/us/us.pkey
new file mode 100644 (file)
index 0000000..2478553
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCjh9+Z1MLgDFDEjZYpB4244uKgl7yWybcdzT35kUO8Ijz6tNf3
+s2fvXkG2hyJzvcMrGILFmFq7rwHZcuhj8xgEladPqFC7dQuz9EZYJ4KNdVyWUhb0
+/wk+hGwAvAbmWDfSit/QMCpNgSSnRrWGWlt1wchyHw79xX8rOmmj3TDkjwIDAQAB
+AoGAXFixY3xro/wwbB6MipTyalLtqcSmQfydRN4PPmzS9F3dU7JmN0H/0oPG1h2P
+zg5+NUr9Jjp4Gn6kq7ghFbhEegMgY5dtmnjmqZhMJgS3Di8IolhCzBMR2AduvVIo
+ZxkuRTqg3YQZpmZbjwnbkVcZqAYIZqxz4UGwp+eYDZQF/CECQQDSQukYUoXsXQ+g
+bof/Nju7C+c/XN9D4mb9j78f5ejvri/IfrcD8lgZGBJHsrflv7UUbWyyOo08z1dn
+Y+wCf9t/AkEAxxqdzgaCr25+tHb5/mnrNrdMaAsI9LJgLorumo+BOeDaNWQ7GFge
+zJPfncyBOhMkrorZV7Nl4KBSYV2So5W+8QJAOxPNxqW5N1ZWg69KyuyED+QiT21a
+1goRAgGXo/DHaEC68EyaQ6OeGT7oM/kFLqqUyG6Oce19ra5cUpKCx5kBJQJBALyT
+wRL5p51xEiDq7yzANT/FrGB+0ySwLdjnTcamVMb06LfZDv+ntsQc6pcSsvLGXt/S
+MriV+dAfCOefMNwvYIECQCdDeU+y6zACGb3LEnjgcB34BgpdPDIK9LDW118iRH7h
+6WU5FSjxCXY+CtPVHLqC9awOW2FkOEuquKC/vGczvxc=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/utah/utah.cert b/server/component/planetlab/us/utah/utah.cert
new file mode 100644 (file)
index 0000000..ec41911
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dGFoMB4XDTA4
+MDMyODAzNDUxMFoXDTEzMDMyNzAzNDUxMFowDzENMAsGA1UEAxMEdXRhaDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwZZS+cKctZwcxNpFJY/g5CchL8OSWyK6
+dx5C65J/SoOuN326OgTGuNnCF4N54nIsivQjeZcTGIIn9P2abQVn61iq0OrGi+6R
+1bG/gwT1wCrGlh4WZ3mVn9BUhmWpGTaKLtyzT/n4cmfTDhgygPD0RIWsREeWbOOr
+kDbH9ZVEY+0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB4AAxHkuf+kMCqfJN1erQX
+9yAmK64FK+AwtV/BB6X/uaVX56yFAH/+mRWXrNhqIX4DymGY4L8SRWAPp8WQraqj
+MNLVaoxzO+vnDom+4NfdZjHjOzPVWboL0Bs7mjZS/RNxivfnXnD55SgIGNkXcCS1
+BTFSgAf3JRTZBGZEkQaH8Q==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/utah/utah.pkey b/server/component/planetlab/us/utah/utah.pkey
new file mode 100644 (file)
index 0000000..4814ed9
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDBllL5wpy1nBzE2kUlj+DkJyEvw5JbIrp3HkLrkn9Kg643fbo6
+BMa42cIXg3niciyK9CN5lxMYgif0/ZptBWfrWKrQ6saL7pHVsb+DBPXAKsaWHhZn
+eZWf0FSGZakZNoou3LNP+fhyZ9MOGDKA8PREhaxER5Zs46uQNsf1lURj7QIDAQAB
+AoGABmCcZSv7G6SD8hw6sO0XfIypdDheJvBy8h+mFrqhxOOnpp5WtziXD1nlIf8r
+0cDvJLi8PnIyp9kJ1fFQ2AyYisKRPFSzqs/ob5kkbFnR1yNs7W10f14mwz3pd5Ol
+S1XHJP823frLc+Bq4fvMEDveV7CMLtrq7JDqEg+4aYxPBWUCQQDvWYb9CeQJb5EG
+irm8kAf5/XxoB0who+vAtJheVmlLNI/89Zyyhwr/02X7A/8Qp8OddEVex/r3W/Vg
+QDSLtaY/AkEAzw3VJCmQWWzKeDeS1Cw3Y2iZXo+K9nYabbAdzOGwYo/8RG0MIXK/
+SNemX5PD7fwpxMfHDKRLSY2AxtKKw4gi0wJAWIYlPgtdcvv3iJLgdVRUDurpC1S/
+nKWS+VgSDropAW60Xpu80+7Ma6gVTMzClrdlyyOI0LBoKvqw+2Njy9RoYwJBAJzn
+D5CCyrdpYJjvDB4qj6KOPkLRJe4Um3xpjHuYvzBBilpUBHBIYzoQ6SvebwgmIYTU
+GzuyOLc5Os/v9mWsAS8CQFPi/pBWffJjVWdXUQnA4qMhvFNTs3pnaSqlS8S6MtpS
+BRJoIFY9dMbWS+EEmk7rY6WBk2TTCzrMdq6+SPhi+Ug=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/utxsa/utxsa.cert b/server/component/planetlab/us/utxsa/utxsa.cert
new file mode 100644 (file)
index 0000000..4ddaf43
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1dHhzYTAeFw0w
+ODAzMjgwMzQ1MDhaFw0xMzAzMjcwMzQ1MDhaMBAxDjAMBgNVBAMTBXV0eHNhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM5C5olBeb1f9gAN6WKn3jCjOPfstb
+JkNS7xJqXr6bdthDK4deWSPJhIyEcash4Jhf0X9qkMQi7gxNBQvbmE6ujWu/mYZB
+Kwwny+TasLFJHbTw2T7e2H3JfRA8IZwgDIN+4gOmgG/eVaa+Lbrl2T+Xre+9bLdM
+lj/gjv1nO76mWQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMIiWvoNm4H5Uy1GpV2A
+BOkx9S1cNm1dV9O0b40IrBrFWZyqXyJDbAEuTQIAf/wjcGF3k8ShzSBW4r/mLiQS
+dlvDXji3idVOqdSsHdyWtj9cLYCsQwQYrE0XgQcUFxeXa8YJwaYSN1giWLN897WC
++m9uCio5Gcam6YESz4NpbdSp
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/utxsa/utxsa.pkey b/server/component/planetlab/us/utxsa/utxsa.pkey
new file mode 100644 (file)
index 0000000..c789601
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDM5C5olBeb1f9gAN6WKn3jCjOPfstbJkNS7xJqXr6bdthDK4de
+WSPJhIyEcash4Jhf0X9qkMQi7gxNBQvbmE6ujWu/mYZBKwwny+TasLFJHbTw2T7e
+2H3JfRA8IZwgDIN+4gOmgG/eVaa+Lbrl2T+Xre+9bLdMlj/gjv1nO76mWQIDAQAB
+AoGAEnOiMkzT63bULsMlSIS/HYk3p36Vtbm2amuZTvcFV17WjwYGhNqmPGmxdeP+
+s2hUkJx/SwuKflLNzMndjYMj4q8cAHZLp9aRT/44sJcUhTvkwNryI/eRJizH9les
+YBLvwS3NEY15BttpWdvtrxZXaqkn61ntWP4L4WqH2v9ZIQECQQDo/XV+zdM/IEJp
+PtqLjSxE0qMoDWlqNSw1+iCwlW33uNkViJkWFDVAIjm11d2c+AqIR9e/Cxmda7Nl
+MbQey+6xAkEA4SBRz+/FLsGJn7DlWWc+Zs7WxUasRQdjrbS5hCq1O+xjdD6zx2p7
+ACsF2B7ZvHl53RuDZaO+lFWLWzAtSr8sKQJAA8S1tctWc1ruOA2QM1mhMavGf8tX
+vSQHBwh4puKD2NHgkPyYnUbOZa8oB8zhvLw2T2X6E1j2nRk02ZooM6dQwQJBAJGt
+AEO1u7rNseiL51062b5dCc0ONltUtMOqtoE3wZ7NEG4gROU9meo57MY08GBtmtXg
+/929X41M7ahMPIKpwkECQQDBNcFIpItiQh9lLUjlBR8l5w7WM1hOyK1gnm6xyicg
+jhQ5M8kPsZgg7V0wwir7JdV+y3Ohe0fHELjlg3/wXthd
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/uvic/uvic.cert b/server/component/planetlab/us/uvic/uvic.cert
new file mode 100644 (file)
index 0000000..bf50c28
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dmljMB4XDTA4
+MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEdXZpYzCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuCI9XCY9lYG1PLmFQlfwOrlANpX5ygrz
+EUQUQJ08FNvaCXzIek32Z5TbseLcLqE/p7jBctNmE9cEhe3Ni3mvQLbVLvdXsCv/
+wPMkEzTJLOKTafuFE7avahQqz3fR7OiyXs4hcDDycBcrdizqW5F3kLSqLaPrOEID
+zR7KEMEBlI8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA63jNDHL8vfZsIDVKsujbH
+wjkc8KXccaMSCSwHd50xjafgVgfLxj3sJNnMMc30ydU1pZuV2EQWFuAPy946dmZR
+2HJfNT1v/gItuq+XniiifednvQcjubzGwXMZx1QQAK8BiN16vdBMTfsHzegBhNFK
+zz9WyWE69mfjSui9B3vmNw==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/uvic/uvic.pkey b/server/component/planetlab/us/uvic/uvic.pkey
new file mode 100644 (file)
index 0000000..cc77e19
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC4Ij1cJj2VgbU8uYVCV/A6uUA2lfnKCvMRRBRAnTwU29oJfMh6
+TfZnlNux4twuoT+nuMFy02YT1wSF7c2Lea9AttUu91ewK//A8yQTNMks4pNp+4UT
+tq9qFCrPd9Hs6LJeziFwMPJwFyt2LOpbkXeQtKoto+s4QgPNHsoQwQGUjwIDAQAB
+AoGAJm7HHefBbOZA3ObgIKPYOXmXJI2TMI+ugkkSbRYkhzoIPXi1I4oIR0BzxqJS
+UM1JSwmuHvhu0u9LO2USRO1mHaIofZcRJRR3WppHHnY8DcwVvpa6evFx2r/un1Jp
+guVgE5le6YSU7HmQBAoESr5a3xAyLGzl2GUxAnnuqoAriGkCQQDbH7Kgx/Hh0qb+
+aq/REaKzc4qI3FmP7URxRZtJtZ3E+WGKH2h6hJWGazDAEAQkSp2Y8bycKA4UuGx9
+003yex39AkEA1x8ZHtVvPuINvfhGX/upP4IwGZNEdI9GyMRkWfZn5sAQYkKd9vMV
+YIOHxMTXuSCla/vgyzvLhEX5n50gqiScewJAJ9dflzRDmpe+nUuwpAbc2lwLuE64
+Sh8N7rqFPaW0BfiB76c+S+iHd2VN+93totueRAzQCmSOCt5te4NMDOat0QJAS7qv
+3jHmwq1Thx/CroFqeGf9RNOaEqppkb3JUf4zX4EXg2/OKiQyz1IeVn+xLYO3mEcI
+QKNhJsR3duAaoqrWxwJBAIPYAStgJUm/2wkOkIPHxWSIBQ6U/aD5Q9npDPFSmvP9
+xCqNQG+O1dTsU8TEi8vOnhyY9C4lC4tXiamcgv+MUkY=
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert b/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert
new file mode 100644 (file)
index 0000000..51baea9
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOdXdhY2NyZXRp
+dmVkc2wwHhcNMDgwMzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAZMRcwFQYDVQQD
+Ew51d2FjY3JldGl2ZWRzbDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3I0H
+6dgxxwZDSvdZDZv2a2el8ocBakKLYb5NlwPRZnQTbezEzIZ9iyvHsTIiNyhK1NNS
+5KrF708tMiUoGCmSw30ToJ+El7gQgPTcEwVxogDG33wtFss+9ODxneq9FKaDkf+X
+1F7ufHmApIoB2q0CVVUrIT0vJ8n8ElDC9sISnYUCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQDWaA3VNsnt+TpeTeZ2iMgFFGJrX4onRp1m2xOdWrXcBvmBcjIAFBBGCg0p
+RSP5dC6ggShFHFU3K1uAMS9ng3/uqdT1APtgaPA/svd9jcK6CtdSgO2enUCaG2v1
+AN0jb5TVvt39ZIEQDvyDhWHcF+PzhcvnlrHHlHXGvjmL8rc/pg==
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey b/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey
new file mode 100644 (file)
index 0000000..f8fce1e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDcjQfp2DHHBkNK91kNm/ZrZ6XyhwFqQothvk2XA9FmdBNt7MTM
+hn2LK8exMiI3KErU01LkqsXvTy0yJSgYKZLDfROgn4SXuBCA9NwTBXGiAMbffC0W
+yz704PGd6r0UpoOR/5fUXu58eYCkigHarQJVVSshPS8nyfwSUML2whKdhQIDAQAB
+AoGAXJUbSE/H/Yskfni8uljJJacZ42hG8MtEZWCUg5tHsOFzMobcyhp+4wgayMiJ
+0muolhSrzG/frSioiU9NuG7jO0NTClNiGm1TApFIVhlbdARLMYFMAqD6pc33RbMP
+/fJmFaF+vE0HoLNV9kR+ppd17yPNY6plYecc6uCXy5xZmeECQQD1PM+cA+lirnMW
+9T80fGbT5F+XxEmCeb6LlT6Oc4JyNcRncNHQxiT7tmQZ8v9x37u7DQyuB5DZQRof
+vvXjeO+ZAkEA5jre/IUHQs4xX5UJ+fFk1BmsSJhyMbDC1Fm5POmdMxptife0ERNS
+zULTN2Ob3qTqhiJKkc5lFj3xUcFFz8jAzQJBALb9Z1TdPlraHRq2aTE62mel8waF
++uwW9+2jsYgN/PpH0IP3FTiZgaMpV8xdG+rWrXhHpnx9PMI/58Rkc4oHBZECQHcO
+7K+Dj6yxeoDmTuFtPuocWKa2Bx/BPA+aUpu4Z628tfbKHNlTt9cj/pw/K6Tofctd
+wlhCdq4Y3Emd/B8mvuUCQQCi1PqTl8tU7FpmDSUhFboPaGvTNbUvj3VPjJPCDPwR
+ayjY/z6+6D2KFyWUt7YqVtKR8ewvgoNPs5W2Uumm9K7w
+-----END RSA PRIVATE KEY-----
diff --git a/server/component/planetlab/us/vanderbilt/vanderbilt.cert b/server/component/planetlab/us/vanderbilt/vanderbilt.cert
new file mode 100644 (file)
index 0000000..df04ef7
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKdmFuZGVyYmls
+dDAeFw0wODAzMjgwMzQ1MDhaFw0xMzAzMjcwMzQ1MDhaMBUxEzARBgNVBAMTCnZh
+bmRlcmJpbHQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOMTJnlQpJbwFUzk
+o+SP7asm3Ete9iZ2G3PfJFHblWyvmX8AM/tFIsrNqJPqlFGwvhhMnd+r6HnF/u8V
+WeRFKCt4hzNR3KY34fGaoQc/kAtQAfnlX4xBvb1iZzJi49gMiuz6RuK5XhP/RL9D
+4qcc3MhxlHS5QPaYv5naxgnJXM35AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEABXRt
+tVRPHLlhs9CMcUI3cttD77m0CilVurmRNCPW1vFj1u0aDBXynlVjMwV2SUi6J3+e
+KcsuA/Qtks9Fx4ScNqwsNu7wYn0drfG5/NR2e27ZSRtW9d78dTJvKq6RayNnUdDd
+ubXd6Nj30By1W/E2f+pddGmIRYC7TyDW1hDgjqI=
+-----END CERTIFICATE-----
diff --git a/server/component/planetlab/us/vanderbilt/vanderbilt.pkey b/server/component/planetlab/us/vanderbilt/vanderbilt.pkey
new file mode 100644 (file)
index 0000000..bb0ac06
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDjEyZ5UKSW8BVM5KPkj+2rJtxLXvYmdhtz3yRR25Vsr5l/ADP7
+RSLKzaiT6pRRsL4YTJ3fq+h5xf7vFVnkRSgreIczUdymN+HxmqEHP5ALUAH55V+M
+Qb29YmcyYuPYDIrs+kbiuV4T/0S/Q+KnHNzIcZR0uUD2mL+Z2sYJyVzN+QIDAQAB
+AoGAFSqq0nIm9X7prWI+uMaF1AdqT4hJj6pAwttRCmRamGgB+emt7sUyCg+DoE4k
+hzzfa2pw6PGgWQGQ0v59g57CsKW3eXD8huwyTssFRvVJEeWUuB6Na+9dUqMkqUSZ
+3qmiZE//ToCYoHtHyjCzKZWLzXZl4MQCjKkBT6TkaVL+gIECQQDxZjbXf8+NV3qv
+jY/C6vfA6Kxp5ruUQmpxtJhqxLhjcaDlonufkMN2jeJXYIzSN4pHTsKKblsAFVTG
+2U2KXymRAkEA8M8jbkDZfESGXhp3QPhrJ+bnLgzN9nhZP5fOgfFPXqFzNDaBgVhF
+A5HMhLGci7VVijioFqFMiiAJ5h6tb7vp6QJAWKQg5TbgftUtjsMblAZ13VdS4DxC
+iulsbr5S7Xm4/4MdAtWMMYaVz7W/9DfW3eZZF2AbXXuyXLB4heALchEJkQJBAIj1
+prccVxXge3OmJdFj+L4XC8EbM0FNLaWHl8I8FuJBfR5jKcEBDS98iw+lXN3w4pfc
+pW1JjBi7JCYnqIj2HZECQF4WkYtF4bdzrfa1gNKtpF9dRkUZFv2XHrWmCcyLpQOy
+vZbuLLaOXTNE4J06e9u9VnqJ/JNxch3Z8lxYdi0dir0=
+-----END RSA PRIVATE KEY-----
diff --git a/server/interface_tree_cr b/server/interface_tree_cr
new file mode 100644 (file)
index 0000000..9e3a8a4
--- /dev/null
@@ -0,0 +1,97 @@
+planetlab         |The root authority
+       jp                |Japan authority
+               naist             |Nara Institute of Science and Technology                                                          |http://inet-lab.naist.jp/                                             
+               nict              |National Institute of Information and Communications Technology                                   |http://www.nict.go.jp/                                                
+               osaka             |Osaka University                                                                                  |http://www.ist.osaka-u.ac.jp                                          
+               wide              |WIDE Project                                                                                      |http://www.wide.ad.jp/                                                
+               plcolojgnsendai   |PlanetLab Colo - NICT JGN2 Sendai                                                                 |                                                                      
+               plcolojgnnagoya   |PlanetLab Colo - NICT JGN2 Nagoya                                                                 |                                                                      
+               plcolojgnosaka    |PlanetLab Colo - NICT JGN2 Osaka                                                                  |                                                                      
+               plcolojgnokayama  |PlanetLab Colo - NICT JGN2 Okayama                                                                |                                                                      
+               plcolojgnhiroshima |PlanetLab Colo - NICT JGN2 Hiroshima                                                              |                                                                      
+               plcolojgnkochi    |PlanetLab Colo - NICT JGN2 Kochi                                                                  |                                                                      
+               plcolojgnfukuoka  |PlanetLab Colo - NICT JGN2 Fukuoka                                                                |                                                                      
+               plcolotppoznan    |PlanetLab Colo - TP Poznan                                                                        |http://www.tp-ir.pl/index.php?page=index&lang=en                      
+               plcolotppiotrkow  |PlanetLab Colo - TP Piotrkow Trybunalski                                                          |http://www.tp-ir.pl/index.php?page=index&lang=en                      
+               plcolotpgdansk    |PlanetLab Colo - TP Gdansk                                                                        |http://www.tp-ir.pl/index.php?page=index&lang=en                      
+               waseda            |Waseda University                                                                                 |http://www.waseda.jp/                                                 
+               keio              |Keio University                                                                                   |http://www.sfc.wide.ad.jp                                             
+               utokyo            |University of Tokyo                                                                               |http://www.planet-lab-jp.org                                          
+               jaist             |Japan Advanced Institute of Science and Technology (JAIST)                                        |http://www.jaist.ac.jp                                                
+       us                |US authority
+               uwaccretivedsl    |University of Washington - Accretive DSL                                                          |http://www.cs.washington.edu/                                         
+               irp               |Intel Research Pittsburgh                                                                         |http://www.intel-research.net/pittsburgh/                             
+               cernetneu         |CERNET - Northeast University                                                                     |http://www.neu.edu.cn/english/                                        
+               utxsa             |University of Texas at San Antonio                                                                |http://www.utsa.edu                                                   
+               att               |AT&T Labs--Research                                                                               |http://www.research.att.com                                           
+               vanderbilt        |Vanderbilt University                                                                             |http://www.vuse.vanderbilt.edu                                        
+               uci               |University of California, Irvine                                                                  |http://www.ics.uci.edu/~lbao/planetlab/                               
+               uclaee            |UCLA - EE                                                                                         |http://cantor.ee.ucla.edu/~networks/                                  
+               ucla              |University of California at Los Angeles                                                           |http://www.cs.ucla.edu/                                               
+               ccny              |City College of the City University of New York                                                   |http://www.ccny.cuny.edu/cint/                                        
+               michigan          |University of Michigan                                                                            |http://www.eecs.umich.edu/                                            
+               columbia          |Columbia University                                                                               |http://www.cs.columbia.edu/                                           
+               northwestern      |Northwestern University at Illinois                                                               |http://www.cs.northwestern.edu/                                       
+               rpi               |Rensselaer Polytechnic Institute                                                                  |http://networks.ecse.rpi.edu/                                         
+               rice              |Rice University                                                                                   |http://www.cs.rice.edu/                                               
+               brown             |Brown University                                                                                  |http://cs.brown.edu/                                                  
+               uvic              |University of Victoria                                                                            |http://www.uvic.ca                                                    
+               stevens           |Stevens Institute of Technology                                                                   |http://www.cs.stevens-tech.edu                                        
+               colorado          |University of Colorado at Boulder                                                                 |http://serl.cs.colorado.edu                                           
+               orbit             |Orbit                                                                                             |http://www.orbit-lab.org                                              
+               bu                |Boston University                                                                                 |http://www.cs.bu.edu/                                                 
+               aub               |American University of Beirut                                                                     |http://www.aub.edu.lb                                                 
+               jhuis             |Johns Hopkins Information Security Institute                                                      |http://www.cs.jhu.edu/                                                
+               ucd               |University of California, Davis                                                                   |http://engineering.ucdavis.edu                                        
+               utah              |University of Utah                                                                                |http://www.cs.utah.edu/                                               
+               tky               |new site for testing purposes                                                                     |tokyo.com                                                             
+       eu                |Europe authority
+               eurecom           |Eurecom Institute                                                                                 |http://www.eurecom.fr                                                 
+               inria             |INRIA Sophia Antipolis                                                                            |http://www-sop.inria.fr/                                              
+               ethzcs            |ETH Zuerich - Computer Science                                                                    |http://www.inf.ethz.ch                                                
+               basel             |University of Basel, Switzerland                                                                  |http://cn.cs.unibas.ch/                                               
+               enst              |Ecole Nationale Superieure des Telecommunications                                                 |http://www.enst.fr                                                    
+               unizh             |University of Zurich, Institut fur Informatik                                                     |http://www.csg.uzh.ch/                                                
+               moscowstate       |Moscow State University                                                                           |http://www.cs.msu.ru/                                                 
+               msuchem           |Moscow State University, Chemistry                                                                |http://lcc.chem.msu.ru                                                
+               hawh              |HAW Hamburg                                                                                       |http://www.haw-hamburg.de                                             
+               bamberg           |University of Bamberg                                                                             |http://www.uni-bamberg.de/wiai/minf                                   
+               budapest          |Budapest University of Technology and Economics                                                   |http://www.tmit.bme.hu/home!eng                                       
+               upb               |University of Paderborn                                                                           |http://www.uni-paderborn.de                                           
+               tcd               |Trinity College Dublin                                                                            |http://www.cs.tcd.ie                                                  
+               irisa             |IRISA                                                                                             |http://www.irisa.fr                                                   
+               cesnet            |CESNET - Czech Education and Research Network                                                     |http://www.ces.net/about/                                             
+               aston             |Aston University                                                                                  |http://www.aston.ac.uk/~pengx1/DSN-project                            
+               univie            |University of Vienna                                                                              |http://www.cs.univie.ac.at                                            
+               lisbon            |University of Lisbon                                                                              |http://lasige.di.fc.ul.pt                                             
+               konstanz          |University of Konstanz                                                                            |http://www.uni-konstanz.de                                            
+               fokus             |Fraunhofer FOKUS - Research Institute for Open Communication Systems                              |http://www.fokus.fraunhofer.de                                        
+       snummlab          |Seoul National University - MMLAB                                                                 |http://mmlab.snu.ac.kr/                                               
+       qub               |Queen's University Belfast                                                                        |http://www.qub.ac.uk/schools/eeecs/                                   
+       sydney            |University of Technology at Sydney                                                                |http://www.it.uts.edu.au/                                             
+       canterbury        |University of Canterbury, New Zealand                                                             |http://www.cosc.canterbury.ac.nz/                                     
+       fing              |Facultad de Ingenieria - Universidad de la Republica                                              |http://www.fing.edu.uy                                                
+       haifa             |Haifa University                                                                                  |http://www.haifa.ac.il                                                
+       iitr              |Indian Institute of Technology Roorkee                                                            |http://www.iitr.ac.in                                                 
+       tau               |Tel-Aviv University                                                                               |http://www.cs.tau.ac.il                                               
+       canarie           |CANARIE                                                                                           |http://www.canarie.ca                                                 
+       ntu               |National Taiwan University, Department of Information Management                                  |http://www.im.ntu.edu.tw/index_e.htm                                  
+       equinixsi         |Equinix - Singapore                                                                               |                                                                      
+       icavite           |Intel - Cavite                                                                                    |                                                                      
+       ihaifa            |Intel - Haifa                                                                                     |                                                                      
+       ileixlip          |Intel - Leixlip                                                                                   |                                                                      
+       ula               |Centro Nacional de Calculo Cientifico Universidad de Los Andes                                    |http://www.cecalc.ula.ve/                                             
+       canariecalgary    |Canarie - Calgary                                                                                 |http://www.canarie.ca                                                 
+       canarieottawa     |Canarie - Ottawa                                                                                  |http://www.canarie.ca                                                 
+       canariehalifax    |Canarie - Halifax                                                                                 |http://www.canarie.ca                                                 
+       canariemontreal   |Canarie - Montreal                                                                                |http://www.canarie.ca                                                 
+       canarietoronto    |Canarie - Toronto                                                                                 |http://www.canarie.ca                                                 
+       canariewinnipeg   |Canarie - Winnipeg                                                                                |http://www.canarie.ca                                                 
+       unioslo           |University of Oslo                                                                                |http://www.ifi.uio.no/dmms                                            
+       buaa              |BeiHang University                                                                                |http://www.nlsde.buaa.edu.cn                                          
+       cernetxjtu        |CERNET - XiAn Jiao Tong University                                                                |http://www.xjtu.edu.cn/en/                                            
+       cernetsdu         |CERNET - Shandong University                                                                      |http://www.sdu.edu.cn/english/                                        
+       cernetpku         |CERNET - Peiking University                                                                       |http://en.pku.edu.cn/                                                 
+       cernetbuaa        |CERNET - Beihang University                                                                       |http://ev.buaa.edu.cn/                                                
+       cernetzju         |CERNET - Zhejiang University                                                                      |http://www.zju.edu.cn/english/                                        
+       cernetxmu         |CERNET - Xiamen University                                                                        |http://www.xmu.edu.cn/english/index.htm                               
\ No newline at end of file
diff --git a/server/interface_tree_cr_dict b/server/interface_tree_cr_dict
new file mode 100644 (file)
index 0000000..17a9028
--- /dev/null
@@ -0,0 +1 @@
+{'info': {'node_data': {'key_info': {'acc_file': 'acc_file', 'id_file': 'planetlab.cert', 'cred_file': 'cred_file', 'id_key_file': 'planetlab.pkey', 'last_update': '', 'folder': 'component/planetlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'planetlab', 'name': 'planetlab'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jp.cert', 'cred_file': '', 'id_key_file': 'jp.pkey', 'last_update': '', 'folder': 'component/planetlab/jp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jp', 'name': 'planetlab.jp'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'naist.cert', 'cred_file': '', 'id_key_file': 'naist.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/naist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$naist_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'naist', 'name': 'planetlab.jp.naist'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'nict.cert', 'cred_file': '', 'id_key_file': 'nict.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/nict'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$nict_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'nict', 'name': 'planetlab.jp.nict'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'osaka.cert', 'cred_file': '', 'id_key_file': 'osaka.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/osaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'osaka', 'name': 'planetlab.jp.osaka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'wide.cert', 'cred_file': '', 'id_key_file': 'wide.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/wide'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$wide_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'wide', 'name': 'planetlab.jp.wide'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnsendai.cert', 'cred_file': '', 'id_key_file': 'plcolojgnsendai.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnsendai'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnsendai_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnsendai', 'name': 'planetlab.jp.plcolojgnsendai'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnnagoya.cert', 'cred_file': '', 'id_key_file': 'plcolojgnnagoya.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnnagoya'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnnagoya_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnnagoya', 'name': 'planetlab.jp.plcolojgnnagoya'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnosaka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnosaka.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnosaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnosaka_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnosaka', 'name': 'planetlab.jp.plcolojgnosaka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnokayama.cert', 'cred_file': '', 'id_key_file': 'plcolojgnokayama.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnokayama'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnokayama_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnokayama', 'name': 'planetlab.jp.plcolojgnokayama'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnhiroshima.cert', 'cred_file': '', 'id_key_file': 'plcolojgnhiroshima.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnhiroshima'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnhiroshima_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnhiroshima', 'name': 'planetlab.jp.plcolojgnhiroshima'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnkochi.cert', 'cred_file': '', 'id_key_file': 'plcolojgnkochi.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnkochi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnkochi_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnkochi', 'name': 'planetlab.jp.plcolojgnkochi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnfukuoka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnfukuoka.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnfukuoka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnfukuoka_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnfukuoka', 'name': 'planetlab.jp.plcolojgnfukuoka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppoznan.cert', 'cred_file': '', 'id_key_file': 'plcolotppoznan.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolotppoznan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppoznan_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppoznan', 'name': 'planetlab.jp.plcolotppoznan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppiotrkow.cert', 'cred_file': '', 'id_key_file': 'plcolotppiotrkow.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolotppiotrkow'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppiotrkow_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppiotrkow', 'name': 'planetlab.jp.plcolotppiotrkow'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotpgdansk.cert', 'cred_file': '', 'id_key_file': 'plcolotpgdansk.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolotpgdansk'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotpgdansk_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotpgdansk', 'name': 'planetlab.jp.plcolotpgdansk'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'waseda.cert', 'cred_file': '', 'id_key_file': 'waseda.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/waseda'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$waseda_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'waseda', 'name': 'planetlab.jp.waseda'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'keio.cert', 'cred_file': '', 'id_key_file': 'keio.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/keio'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$keio_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'keio', 'name': 'planetlab.jp.keio'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utokyo.cert', 'cred_file': '', 'id_key_file': 'utokyo.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/utokyo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$utokyo_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utokyo', 'name': 'planetlab.jp.utokyo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jaist.cert', 'cred_file': '', 'id_key_file': 'jaist.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/jaist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$jaist_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jaist', 'name': 'planetlab.jp.jaist'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'us.cert', 'cred_file': '', 'id_key_file': 'us.pkey', 'last_update': '', 'folder': 'component/planetlab/us'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'us', 'name': 'planetlab.us'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uwaccretivedsl.cert', 'cred_file': '', 'id_key_file': 'uwaccretivedsl.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uwaccretivedsl'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uwaccretivedsl_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uwaccretivedsl', 'name': 'planetlab.us.uwaccretivedsl'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irp.cert', 'cred_file': '', 'id_key_file': 'irp.pkey', 'last_update': '', 'folder': 'component/planetlab/us/irp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$irp_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irp', 'name': 'planetlab.us.irp'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetneu.cert', 'cred_file': '', 'id_key_file': 'cernetneu.pkey', 'last_update': '', 'folder': 'component/planetlab/us/cernetneu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$cernetneu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetneu', 'name': 'planetlab.us.cernetneu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utxsa.cert', 'cred_file': '', 'id_key_file': 'utxsa.pkey', 'last_update': '', 'folder': 'component/planetlab/us/utxsa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utxsa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utxsa', 'name': 'planetlab.us.utxsa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'att.cert', 'cred_file': '', 'id_key_file': 'att.pkey', 'last_update': '', 'folder': 'component/planetlab/us/att'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$att_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'att', 'name': 'planetlab.us.att'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'vanderbilt.cert', 'cred_file': '', 'id_key_file': 'vanderbilt.pkey', 'last_update': '', 'folder': 'component/planetlab/us/vanderbilt'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$vanderbilt_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'vanderbilt', 'name': 'planetlab.us.vanderbilt'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uci.cert', 'cred_file': '', 'id_key_file': 'uci.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uci'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uci_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uci', 'name': 'planetlab.us.uci'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uclaee.cert', 'cred_file': '', 'id_key_file': 'uclaee.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uclaee'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uclaee_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uclaee', 'name': 'planetlab.us.uclaee'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucla.cert', 'cred_file': '', 'id_key_file': 'ucla.pkey', 'last_update': '', 'folder': 'component/planetlab/us/ucla'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucla_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucla', 'name': 'planetlab.us.ucla'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ccny.cert', 'cred_file': '', 'id_key_file': 'ccny.pkey', 'last_update': '', 'folder': 'component/planetlab/us/ccny'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ccny_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ccny', 'name': 'planetlab.us.ccny'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'michigan.cert', 'cred_file': '', 'id_key_file': 'michigan.pkey', 'last_update': '', 'folder': 'component/planetlab/us/michigan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$michigan_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'michigan', 'name': 'planetlab.us.michigan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'columbia.cert', 'cred_file': '', 'id_key_file': 'columbia.pkey', 'last_update': '', 'folder': 'component/planetlab/us/columbia'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$columbia_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'columbia', 'name': 'planetlab.us.columbia'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'northwestern.cert', 'cred_file': '', 'id_key_file': 'northwestern.pkey', 'last_update': '', 'folder': 'component/planetlab/us/northwestern'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$northwestern_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'northwestern', 'name': 'planetlab.us.northwestern'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rpi.cert', 'cred_file': '', 'id_key_file': 'rpi.pkey', 'last_update': '', 'folder': 'component/planetlab/us/rpi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rpi_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rpi', 'name': 'planetlab.us.rpi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rice.cert', 'cred_file': '', 'id_key_file': 'rice.pkey', 'last_update': '', 'folder': 'component/planetlab/us/rice'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rice_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rice', 'name': 'planetlab.us.rice'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'brown.cert', 'cred_file': '', 'id_key_file': 'brown.pkey', 'last_update': '', 'folder': 'component/planetlab/us/brown'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$brown_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'brown', 'name': 'planetlab.us.brown'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uvic.cert', 'cred_file': '', 'id_key_file': 'uvic.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uvic'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uvic_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uvic', 'name': 'planetlab.us.uvic'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'stevens.cert', 'cred_file': '', 'id_key_file': 'stevens.pkey', 'last_update': '', 'folder': 'component/planetlab/us/stevens'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$stevens_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'stevens', 'name': 'planetlab.us.stevens'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'colorado.cert', 'cred_file': '', 'id_key_file': 'colorado.pkey', 'last_update': '', 'folder': 'component/planetlab/us/colorado'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$colorado_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'colorado', 'name': 'planetlab.us.colorado'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'orbit.cert', 'cred_file': '', 'id_key_file': 'orbit.pkey', 'last_update': '', 'folder': 'component/planetlab/us/orbit'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$orbit_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'orbit', 'name': 'planetlab.us.orbit'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bu.cert', 'cred_file': '', 'id_key_file': 'bu.pkey', 'last_update': '', 'folder': 'component/planetlab/us/bu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$bu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bu', 'name': 'planetlab.us.bu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aub.cert', 'cred_file': '', 'id_key_file': 'aub.pkey', 'last_update': '', 'folder': 'component/planetlab/us/aub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$aub_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aub', 'name': 'planetlab.us.aub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jhuis.cert', 'cred_file': '', 'id_key_file': 'jhuis.pkey', 'last_update': '', 'folder': 'component/planetlab/us/jhuis'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$jhuis_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jhuis', 'name': 'planetlab.us.jhuis'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucd.cert', 'cred_file': '', 'id_key_file': 'ucd.pkey', 'last_update': '', 'folder': 'component/planetlab/us/ucd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucd_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucd', 'name': 'planetlab.us.ucd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utah.cert', 'cred_file': '', 'id_key_file': 'utah.pkey', 'last_update': '', 'folder': 'component/planetlab/us/utah'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utah_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utah', 'name': 'planetlab.us.utah'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tky.cert', 'cred_file': '', 'id_key_file': 'tky.pkey', 'last_update': '', 'folder': 'component/planetlab/us/tky'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$tky_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tky', 'name': 'planetlab.us.tky'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eu.cert', 'cred_file': '', 'id_key_file': 'eu.pkey', 'last_update': '', 'folder': 'component/planetlab/eu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eu', 'name': 'planetlab.eu'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eurecom.cert', 'cred_file': '', 'id_key_file': 'eurecom.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/eurecom'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$eurecom_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eurecom', 'name': 'planetlab.eu.eurecom'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'inria.cert', 'cred_file': '', 'id_key_file': 'inria.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/inria'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$inria_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'inria', 'name': 'planetlab.eu.inria'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ethzcs.cert', 'cred_file': '', 'id_key_file': 'ethzcs.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/ethzcs'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$ethzcs_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ethzcs', 'name': 'planetlab.eu.ethzcs'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'basel.cert', 'cred_file': '', 'id_key_file': 'basel.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/basel'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$basel_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'basel', 'name': 'planetlab.eu.basel'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'enst.cert', 'cred_file': '', 'id_key_file': 'enst.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/enst'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$enst_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'enst', 'name': 'planetlab.eu.enst'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unizh.cert', 'cred_file': '', 'id_key_file': 'unizh.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/unizh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$unizh_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unizh', 'name': 'planetlab.eu.unizh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'moscowstate.cert', 'cred_file': '', 'id_key_file': 'moscowstate.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/moscowstate'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$moscowstate_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'moscowstate', 'name': 'planetlab.eu.moscowstate'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'msuchem.cert', 'cred_file': '', 'id_key_file': 'msuchem.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/msuchem'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$msuchem_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'msuchem', 'name': 'planetlab.eu.msuchem'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'hawh.cert', 'cred_file': '', 'id_key_file': 'hawh.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/hawh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$hawh_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'hawh', 'name': 'planetlab.eu.hawh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bamberg.cert', 'cred_file': '', 'id_key_file': 'bamberg.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/bamberg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$bamberg_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bamberg', 'name': 'planetlab.eu.bamberg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'budapest.cert', 'cred_file': '', 'id_key_file': 'budapest.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/budapest'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$budapest_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'budapest', 'name': 'planetlab.eu.budapest'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'upb.cert', 'cred_file': '', 'id_key_file': 'upb.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/upb'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$upb_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'upb', 'name': 'planetlab.eu.upb'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tcd.cert', 'cred_file': '', 'id_key_file': 'tcd.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/tcd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$tcd_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tcd', 'name': 'planetlab.eu.tcd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irisa.cert', 'cred_file': '', 'id_key_file': 'irisa.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/irisa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$irisa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irisa', 'name': 'planetlab.eu.irisa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cesnet.cert', 'cred_file': '', 'id_key_file': 'cesnet.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/cesnet'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$cesnet_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cesnet', 'name': 'planetlab.eu.cesnet'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aston.cert', 'cred_file': '', 'id_key_file': 'aston.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/aston'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$aston_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aston', 'name': 'planetlab.eu.aston'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'univie.cert', 'cred_file': '', 'id_key_file': 'univie.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/univie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$univie_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'univie', 'name': 'planetlab.eu.univie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'lisbon.cert', 'cred_file': '', 'id_key_file': 'lisbon.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/lisbon'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$lisbon_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'lisbon', 'name': 'planetlab.eu.lisbon'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'konstanz.cert', 'cred_file': '', 'id_key_file': 'konstanz.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/konstanz'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$konstanz_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'konstanz', 'name': 'planetlab.eu.konstanz'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fokus.cert', 'cred_file': '', 'id_key_file': 'fokus.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/fokus'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$fokus_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fokus', 'name': 'planetlab.eu.fokus'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'snummlab.cert', 'cred_file': '', 'id_key_file': 'snummlab.pkey', 'last_update': '', 'folder': 'component/planetlab/snummlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$snummlab_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'snummlab', 'name': 'planetlab.snummlab'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'qub.cert', 'cred_file': '', 'id_key_file': 'qub.pkey', 'last_update': '', 'folder': 'component/planetlab/qub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$qub_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'qub', 'name': 'planetlab.qub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'sydney.cert', 'cred_file': '', 'id_key_file': 'sydney.pkey', 'last_update': '', 'folder': 'component/planetlab/sydney'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$sydney_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'sydney', 'name': 'planetlab.sydney'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canterbury.cert', 'cred_file': '', 'id_key_file': 'canterbury.pkey', 'last_update': '', 'folder': 'component/planetlab/canterbury'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canterbury_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canterbury', 'name': 'planetlab.canterbury'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fing.cert', 'cred_file': '', 'id_key_file': 'fing.pkey', 'last_update': '', 'folder': 'component/planetlab/fing'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$fing_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fing', 'name': 'planetlab.fing'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'haifa.cert', 'cred_file': '', 'id_key_file': 'haifa.pkey', 'last_update': '', 'folder': 'component/planetlab/haifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$haifa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'haifa', 'name': 'planetlab.haifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'iitr.cert', 'cred_file': '', 'id_key_file': 'iitr.pkey', 'last_update': '', 'folder': 'component/planetlab/iitr'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$iitr_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'iitr', 'name': 'planetlab.iitr'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tau.cert', 'cred_file': '', 'id_key_file': 'tau.pkey', 'last_update': '', 'folder': 'component/planetlab/tau'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$tau_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tau', 'name': 'planetlab.tau'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarie.cert', 'cred_file': '', 'id_key_file': 'canarie.pkey', 'last_update': '', 'folder': 'component/planetlab/canarie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarie_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarie', 'name': 'planetlab.canarie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ntu.cert', 'cred_file': '', 'id_key_file': 'ntu.pkey', 'last_update': '', 'folder': 'component/planetlab/ntu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ntu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ntu', 'name': 'planetlab.ntu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'equinixsi.cert', 'cred_file': '', 'id_key_file': 'equinixsi.pkey', 'last_update': '', 'folder': 'component/planetlab/equinixsi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$equinixsi_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'equinixsi', 'name': 'planetlab.equinixsi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'icavite.cert', 'cred_file': '', 'id_key_file': 'icavite.pkey', 'last_update': '', 'folder': 'component/planetlab/icavite'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$icavite_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'icavite', 'name': 'planetlab.icavite'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ihaifa.cert', 'cred_file': '', 'id_key_file': 'ihaifa.pkey', 'last_update': '', 'folder': 'component/planetlab/ihaifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ihaifa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ihaifa', 'name': 'planetlab.ihaifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ileixlip.cert', 'cred_file': '', 'id_key_file': 'ileixlip.pkey', 'last_update': '', 'folder': 'component/planetlab/ileixlip'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ileixlip_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ileixlip', 'name': 'planetlab.ileixlip'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ula.cert', 'cred_file': '', 'id_key_file': 'ula.pkey', 'last_update': '', 'folder': 'component/planetlab/ula'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ula_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ula', 'name': 'planetlab.ula'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariecalgary.cert', 'cred_file': '', 'id_key_file': 'canariecalgary.pkey', 'last_update': '', 'folder': 'component/planetlab/canariecalgary'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariecalgary_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariecalgary', 'name': 'planetlab.canariecalgary'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarieottawa.cert', 'cred_file': '', 'id_key_file': 'canarieottawa.pkey', 'last_update': '', 'folder': 'component/planetlab/canarieottawa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarieottawa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarieottawa', 'name': 'planetlab.canarieottawa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariehalifax.cert', 'cred_file': '', 'id_key_file': 'canariehalifax.pkey', 'last_update': '', 'folder': 'component/planetlab/canariehalifax'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariehalifax_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariehalifax', 'name': 'planetlab.canariehalifax'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariemontreal.cert', 'cred_file': '', 'id_key_file': 'canariemontreal.pkey', 'last_update': '', 'folder': 'component/planetlab/canariemontreal'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariemontreal_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariemontreal', 'name': 'planetlab.canariemontreal'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarietoronto.cert', 'cred_file': '', 'id_key_file': 'canarietoronto.pkey', 'last_update': '', 'folder': 'component/planetlab/canarietoronto'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarietoronto_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarietoronto', 'name': 'planetlab.canarietoronto'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariewinnipeg.cert', 'cred_file': '', 'id_key_file': 'canariewinnipeg.pkey', 'last_update': '', 'folder': 'component/planetlab/canariewinnipeg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariewinnipeg_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariewinnipeg', 'name': 'planetlab.canariewinnipeg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unioslo.cert', 'cred_file': '', 'id_key_file': 'unioslo.pkey', 'last_update': '', 'folder': 'component/planetlab/unioslo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$unioslo_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unioslo', 'name': 'planetlab.unioslo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'buaa.cert', 'cred_file': '', 'id_key_file': 'buaa.pkey', 'last_update': '', 'folder': 'component/planetlab/buaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$buaa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'buaa', 'name': 'planetlab.buaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxjtu.cert', 'cred_file': '', 'id_key_file': 'cernetxjtu.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetxjtu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxjtu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxjtu', 'name': 'planetlab.cernetxjtu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetsdu.cert', 'cred_file': '', 'id_key_file': 'cernetsdu.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetsdu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetsdu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetsdu', 'name': 'planetlab.cernetsdu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetpku.cert', 'cred_file': '', 'id_key_file': 'cernetpku.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetpku'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetpku_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetpku', 'name': 'planetlab.cernetpku'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetbuaa.cert', 'cred_file': '', 'id_key_file': 'cernetbuaa.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetbuaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetbuaa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetbuaa', 'name': 'planetlab.cernetbuaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetzju.cert', 'cred_file': '', 'id_key_file': 'cernetzju.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetzju'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetzju_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetzju', 'name': 'planetlab.cernetzju'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxmu.cert', 'cred_file': '', 'id_key_file': 'cernetxmu.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetxmu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxmu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxmu', 'name': 'planetlab.cernetxmu'}, 'children': []}]}
\ No newline at end of file
diff --git a/server/interface_tree_sr b/server/interface_tree_sr
new file mode 100644 (file)
index 0000000..9e3a8a4
--- /dev/null
@@ -0,0 +1,97 @@
+planetlab         |The root authority
+       jp                |Japan authority
+               naist             |Nara Institute of Science and Technology                                                          |http://inet-lab.naist.jp/                                             
+               nict              |National Institute of Information and Communications Technology                                   |http://www.nict.go.jp/                                                
+               osaka             |Osaka University                                                                                  |http://www.ist.osaka-u.ac.jp                                          
+               wide              |WIDE Project                                                                                      |http://www.wide.ad.jp/                                                
+               plcolojgnsendai   |PlanetLab Colo - NICT JGN2 Sendai                                                                 |                                                                      
+               plcolojgnnagoya   |PlanetLab Colo - NICT JGN2 Nagoya                                                                 |                                                                      
+               plcolojgnosaka    |PlanetLab Colo - NICT JGN2 Osaka                                                                  |                                                                      
+               plcolojgnokayama  |PlanetLab Colo - NICT JGN2 Okayama                                                                |                                                                      
+               plcolojgnhiroshima |PlanetLab Colo - NICT JGN2 Hiroshima                                                              |                                                                      
+               plcolojgnkochi    |PlanetLab Colo - NICT JGN2 Kochi                                                                  |                                                                      
+               plcolojgnfukuoka  |PlanetLab Colo - NICT JGN2 Fukuoka                                                                |                                                                      
+               plcolotppoznan    |PlanetLab Colo - TP Poznan                                                                        |http://www.tp-ir.pl/index.php?page=index&lang=en                      
+               plcolotppiotrkow  |PlanetLab Colo - TP Piotrkow Trybunalski                                                          |http://www.tp-ir.pl/index.php?page=index&lang=en                      
+               plcolotpgdansk    |PlanetLab Colo - TP Gdansk                                                                        |http://www.tp-ir.pl/index.php?page=index&lang=en                      
+               waseda            |Waseda University                                                                                 |http://www.waseda.jp/                                                 
+               keio              |Keio University                                                                                   |http://www.sfc.wide.ad.jp                                             
+               utokyo            |University of Tokyo                                                                               |http://www.planet-lab-jp.org                                          
+               jaist             |Japan Advanced Institute of Science and Technology (JAIST)                                        |http://www.jaist.ac.jp                                                
+       us                |US authority
+               uwaccretivedsl    |University of Washington - Accretive DSL                                                          |http://www.cs.washington.edu/                                         
+               irp               |Intel Research Pittsburgh                                                                         |http://www.intel-research.net/pittsburgh/                             
+               cernetneu         |CERNET - Northeast University                                                                     |http://www.neu.edu.cn/english/                                        
+               utxsa             |University of Texas at San Antonio                                                                |http://www.utsa.edu                                                   
+               att               |AT&T Labs--Research                                                                               |http://www.research.att.com                                           
+               vanderbilt        |Vanderbilt University                                                                             |http://www.vuse.vanderbilt.edu                                        
+               uci               |University of California, Irvine                                                                  |http://www.ics.uci.edu/~lbao/planetlab/                               
+               uclaee            |UCLA - EE                                                                                         |http://cantor.ee.ucla.edu/~networks/                                  
+               ucla              |University of California at Los Angeles                                                           |http://www.cs.ucla.edu/                                               
+               ccny              |City College of the City University of New York                                                   |http://www.ccny.cuny.edu/cint/                                        
+               michigan          |University of Michigan                                                                            |http://www.eecs.umich.edu/                                            
+               columbia          |Columbia University                                                                               |http://www.cs.columbia.edu/                                           
+               northwestern      |Northwestern University at Illinois                                                               |http://www.cs.northwestern.edu/                                       
+               rpi               |Rensselaer Polytechnic Institute                                                                  |http://networks.ecse.rpi.edu/                                         
+               rice              |Rice University                                                                                   |http://www.cs.rice.edu/                                               
+               brown             |Brown University                                                                                  |http://cs.brown.edu/                                                  
+               uvic              |University of Victoria                                                                            |http://www.uvic.ca                                                    
+               stevens           |Stevens Institute of Technology                                                                   |http://www.cs.stevens-tech.edu                                        
+               colorado          |University of Colorado at Boulder                                                                 |http://serl.cs.colorado.edu                                           
+               orbit             |Orbit                                                                                             |http://www.orbit-lab.org                                              
+               bu                |Boston University                                                                                 |http://www.cs.bu.edu/                                                 
+               aub               |American University of Beirut                                                                     |http://www.aub.edu.lb                                                 
+               jhuis             |Johns Hopkins Information Security Institute                                                      |http://www.cs.jhu.edu/                                                
+               ucd               |University of California, Davis                                                                   |http://engineering.ucdavis.edu                                        
+               utah              |University of Utah                                                                                |http://www.cs.utah.edu/                                               
+               tky               |new site for testing purposes                                                                     |tokyo.com                                                             
+       eu                |Europe authority
+               eurecom           |Eurecom Institute                                                                                 |http://www.eurecom.fr                                                 
+               inria             |INRIA Sophia Antipolis                                                                            |http://www-sop.inria.fr/                                              
+               ethzcs            |ETH Zuerich - Computer Science                                                                    |http://www.inf.ethz.ch                                                
+               basel             |University of Basel, Switzerland                                                                  |http://cn.cs.unibas.ch/                                               
+               enst              |Ecole Nationale Superieure des Telecommunications                                                 |http://www.enst.fr                                                    
+               unizh             |University of Zurich, Institut fur Informatik                                                     |http://www.csg.uzh.ch/                                                
+               moscowstate       |Moscow State University                                                                           |http://www.cs.msu.ru/                                                 
+               msuchem           |Moscow State University, Chemistry                                                                |http://lcc.chem.msu.ru                                                
+               hawh              |HAW Hamburg                                                                                       |http://www.haw-hamburg.de                                             
+               bamberg           |University of Bamberg                                                                             |http://www.uni-bamberg.de/wiai/minf                                   
+               budapest          |Budapest University of Technology and Economics                                                   |http://www.tmit.bme.hu/home!eng                                       
+               upb               |University of Paderborn                                                                           |http://www.uni-paderborn.de                                           
+               tcd               |Trinity College Dublin                                                                            |http://www.cs.tcd.ie                                                  
+               irisa             |IRISA                                                                                             |http://www.irisa.fr                                                   
+               cesnet            |CESNET - Czech Education and Research Network                                                     |http://www.ces.net/about/                                             
+               aston             |Aston University                                                                                  |http://www.aston.ac.uk/~pengx1/DSN-project                            
+               univie            |University of Vienna                                                                              |http://www.cs.univie.ac.at                                            
+               lisbon            |University of Lisbon                                                                              |http://lasige.di.fc.ul.pt                                             
+               konstanz          |University of Konstanz                                                                            |http://www.uni-konstanz.de                                            
+               fokus             |Fraunhofer FOKUS - Research Institute for Open Communication Systems                              |http://www.fokus.fraunhofer.de                                        
+       snummlab          |Seoul National University - MMLAB                                                                 |http://mmlab.snu.ac.kr/                                               
+       qub               |Queen's University Belfast                                                                        |http://www.qub.ac.uk/schools/eeecs/                                   
+       sydney            |University of Technology at Sydney                                                                |http://www.it.uts.edu.au/                                             
+       canterbury        |University of Canterbury, New Zealand                                                             |http://www.cosc.canterbury.ac.nz/                                     
+       fing              |Facultad de Ingenieria - Universidad de la Republica                                              |http://www.fing.edu.uy                                                
+       haifa             |Haifa University                                                                                  |http://www.haifa.ac.il                                                
+       iitr              |Indian Institute of Technology Roorkee                                                            |http://www.iitr.ac.in                                                 
+       tau               |Tel-Aviv University                                                                               |http://www.cs.tau.ac.il                                               
+       canarie           |CANARIE                                                                                           |http://www.canarie.ca                                                 
+       ntu               |National Taiwan University, Department of Information Management                                  |http://www.im.ntu.edu.tw/index_e.htm                                  
+       equinixsi         |Equinix - Singapore                                                                               |                                                                      
+       icavite           |Intel - Cavite                                                                                    |                                                                      
+       ihaifa            |Intel - Haifa                                                                                     |                                                                      
+       ileixlip          |Intel - Leixlip                                                                                   |                                                                      
+       ula               |Centro Nacional de Calculo Cientifico Universidad de Los Andes                                    |http://www.cecalc.ula.ve/                                             
+       canariecalgary    |Canarie - Calgary                                                                                 |http://www.canarie.ca                                                 
+       canarieottawa     |Canarie - Ottawa                                                                                  |http://www.canarie.ca                                                 
+       canariehalifax    |Canarie - Halifax                                                                                 |http://www.canarie.ca                                                 
+       canariemontreal   |Canarie - Montreal                                                                                |http://www.canarie.ca                                                 
+       canarietoronto    |Canarie - Toronto                                                                                 |http://www.canarie.ca                                                 
+       canariewinnipeg   |Canarie - Winnipeg                                                                                |http://www.canarie.ca                                                 
+       unioslo           |University of Oslo                                                                                |http://www.ifi.uio.no/dmms                                            
+       buaa              |BeiHang University                                                                                |http://www.nlsde.buaa.edu.cn                                          
+       cernetxjtu        |CERNET - XiAn Jiao Tong University                                                                |http://www.xjtu.edu.cn/en/                                            
+       cernetsdu         |CERNET - Shandong University                                                                      |http://www.sdu.edu.cn/english/                                        
+       cernetpku         |CERNET - Peiking University                                                                       |http://en.pku.edu.cn/                                                 
+       cernetbuaa        |CERNET - Beihang University                                                                       |http://ev.buaa.edu.cn/                                                
+       cernetzju         |CERNET - Zhejiang University                                                                      |http://www.zju.edu.cn/english/                                        
+       cernetxmu         |CERNET - Xiamen University                                                                        |http://www.xmu.edu.cn/english/index.htm                               
\ No newline at end of file
diff --git a/server/interface_tree_sr_dict b/server/interface_tree_sr_dict
new file mode 100644 (file)
index 0000000..e8b2a03
--- /dev/null
@@ -0,0 +1 @@
+{'info': {'node_data': {'key_info': {'acc_file': 'acc_file', 'id_file': 'planetlab.cert', 'cred_file': 'cred_file', 'id_key_file': 'planetlab.pkey', 'last_update': '', 'folder': 'slice/planetlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'planetlab', 'name': 'planetlab'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jp.cert', 'cred_file': '', 'id_key_file': 'jp.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jp', 'name': 'planetlab.jp'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'naist.cert', 'cred_file': '', 'id_key_file': 'naist.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/naist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$naist_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'naist', 'name': 'planetlab.jp.naist'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'nict.cert', 'cred_file': '', 'id_key_file': 'nict.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/nict'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$nict_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'nict', 'name': 'planetlab.jp.nict'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'osaka.cert', 'cred_file': '', 'id_key_file': 'osaka.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/osaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'osaka', 'name': 'planetlab.jp.osaka'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tokyobranch2.cert', 'cred_file': '', 'id_key_file': 'tokyobranch2.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/osaka/tokyobranch2'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka$tokyobranch2_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tokyologinbg', 'name': 'planetlab.jp.osaka.tokyobranch2'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tokyobranchty.cert', 'cred_file': '', 'id_key_file': 'tokyobranchty.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/osaka/tokyobranchty'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka$tokyobranchty_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'myloginbasejj', 'name': 'planetlab.jp.osaka.tokyobranchty'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'wide.cert', 'cred_file': '', 'id_key_file': 'wide.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/wide'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$wide_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'wide', 'name': 'planetlab.jp.wide'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnsendai.cert', 'cred_file': '', 'id_key_file': 'plcolojgnsendai.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnsendai'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnsendai_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnsendai', 'name': 'planetlab.jp.plcolojgnsendai'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnnagoya.cert', 'cred_file': '', 'id_key_file': 'plcolojgnnagoya.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnnagoya'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnnagoya_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnnagoya', 'name': 'planetlab.jp.plcolojgnnagoya'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnosaka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnosaka.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnosaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnosaka_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnosaka', 'name': 'planetlab.jp.plcolojgnosaka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnokayama.cert', 'cred_file': '', 'id_key_file': 'plcolojgnokayama.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnokayama'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnokayama_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnokayama', 'name': 'planetlab.jp.plcolojgnokayama'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnhiroshima.cert', 'cred_file': '', 'id_key_file': 'plcolojgnhiroshima.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnhiroshima'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnhiroshima_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnhiroshima', 'name': 'planetlab.jp.plcolojgnhiroshima'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnkochi.cert', 'cred_file': '', 'id_key_file': 'plcolojgnkochi.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnkochi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnkochi_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnkochi', 'name': 'planetlab.jp.plcolojgnkochi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnfukuoka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnfukuoka.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnfukuoka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnfukuoka_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnfukuoka', 'name': 'planetlab.jp.plcolojgnfukuoka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppoznan.cert', 'cred_file': '', 'id_key_file': 'plcolotppoznan.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolotppoznan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppoznan_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppoznan', 'name': 'planetlab.jp.plcolotppoznan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppiotrkow.cert', 'cred_file': '', 'id_key_file': 'plcolotppiotrkow.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolotppiotrkow'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppiotrkow_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppiotrkow', 'name': 'planetlab.jp.plcolotppiotrkow'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotpgdansk.cert', 'cred_file': '', 'id_key_file': 'plcolotpgdansk.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolotpgdansk'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotpgdansk_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotpgdansk', 'name': 'planetlab.jp.plcolotpgdansk'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'waseda.cert', 'cred_file': '', 'id_key_file': 'waseda.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/waseda'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$waseda_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'waseda', 'name': 'planetlab.jp.waseda'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'keio.cert', 'cred_file': '', 'id_key_file': 'keio.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/keio'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$keio_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'keio', 'name': 'planetlab.jp.keio'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utokyo.cert', 'cred_file': '', 'id_key_file': 'utokyo.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/utokyo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$utokyo_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utokyo', 'name': 'planetlab.jp.utokyo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jaist.cert', 'cred_file': '', 'id_key_file': 'jaist.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/jaist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$jaist_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jaist', 'name': 'planetlab.jp.jaist'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'us.cert', 'cred_file': '', 'id_key_file': 'us.pkey', 'last_update': '', 'folder': 'slice/planetlab/us'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'us', 'name': 'planetlab.us'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uwaccretivedsl.cert', 'cred_file': '', 'id_key_file': 'uwaccretivedsl.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uwaccretivedsl'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uwaccretivedsl_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uwaccretivedsl', 'name': 'planetlab.us.uwaccretivedsl'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irp.cert', 'cred_file': '', 'id_key_file': 'irp.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/irp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$irp_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irp', 'name': 'planetlab.us.irp'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetneu.cert', 'cred_file': '', 'id_key_file': 'cernetneu.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/cernetneu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$cernetneu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetneu', 'name': 'planetlab.us.cernetneu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utxsa.cert', 'cred_file': '', 'id_key_file': 'utxsa.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/utxsa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utxsa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utxsa', 'name': 'planetlab.us.utxsa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'att.cert', 'cred_file': '', 'id_key_file': 'att.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/att'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$att_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'att', 'name': 'planetlab.us.att'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'vanderbilt.cert', 'cred_file': '', 'id_key_file': 'vanderbilt.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/vanderbilt'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$vanderbilt_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'vanderbilt', 'name': 'planetlab.us.vanderbilt'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uci.cert', 'cred_file': '', 'id_key_file': 'uci.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uci'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uci_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uci', 'name': 'planetlab.us.uci'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uclaee.cert', 'cred_file': '', 'id_key_file': 'uclaee.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uclaee'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uclaee_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uclaee', 'name': 'planetlab.us.uclaee'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucla.cert', 'cred_file': '', 'id_key_file': 'ucla.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/ucla'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucla_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucla', 'name': 'planetlab.us.ucla'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ccny.cert', 'cred_file': '', 'id_key_file': 'ccny.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/ccny'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ccny_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ccny', 'name': 'planetlab.us.ccny'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'michigan.cert', 'cred_file': '', 'id_key_file': 'michigan.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/michigan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$michigan_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'michigan', 'name': 'planetlab.us.michigan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'columbia.cert', 'cred_file': '', 'id_key_file': 'columbia.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/columbia'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$columbia_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'columbia', 'name': 'planetlab.us.columbia'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'northwestern.cert', 'cred_file': '', 'id_key_file': 'northwestern.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/northwestern'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$northwestern_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'northwestern', 'name': 'planetlab.us.northwestern'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rpi.cert', 'cred_file': '', 'id_key_file': 'rpi.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/rpi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rpi_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rpi', 'name': 'planetlab.us.rpi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rice.cert', 'cred_file': '', 'id_key_file': 'rice.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/rice'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rice_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rice', 'name': 'planetlab.us.rice'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'brown.cert', 'cred_file': '', 'id_key_file': 'brown.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/brown'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$brown_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'brown', 'name': 'planetlab.us.brown'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uvic.cert', 'cred_file': '', 'id_key_file': 'uvic.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uvic'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uvic_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uvic', 'name': 'planetlab.us.uvic'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'stevens.cert', 'cred_file': '', 'id_key_file': 'stevens.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/stevens'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$stevens_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'stevens', 'name': 'planetlab.us.stevens'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'colorado.cert', 'cred_file': '', 'id_key_file': 'colorado.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/colorado'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$colorado_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'colorado', 'name': 'planetlab.us.colorado'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'orbit.cert', 'cred_file': '', 'id_key_file': 'orbit.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/orbit'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$orbit_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'orbit', 'name': 'planetlab.us.orbit'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bu.cert', 'cred_file': '', 'id_key_file': 'bu.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/bu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$bu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bu', 'name': 'planetlab.us.bu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aub.cert', 'cred_file': '', 'id_key_file': 'aub.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/aub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$aub_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aub', 'name': 'planetlab.us.aub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jhuis.cert', 'cred_file': '', 'id_key_file': 'jhuis.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/jhuis'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$jhuis_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jhuis', 'name': 'planetlab.us.jhuis'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucd.cert', 'cred_file': '', 'id_key_file': 'ucd.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/ucd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucd_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucd', 'name': 'planetlab.us.ucd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utah.cert', 'cred_file': '', 'id_key_file': 'utah.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/utah'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utah_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utah', 'name': 'planetlab.us.utah'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tky.cert', 'cred_file': '', 'id_key_file': 'tky.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/tky'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$tky_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tky', 'name': 'planetlab.us.tky'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eu.cert', 'cred_file': '', 'id_key_file': 'eu.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eu', 'name': 'planetlab.eu'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eurecom.cert', 'cred_file': '', 'id_key_file': 'eurecom.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/eurecom'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$eurecom_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eurecom', 'name': 'planetlab.eu.eurecom'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'inria.cert', 'cred_file': '', 'id_key_file': 'inria.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/inria'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$inria_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'inria', 'name': 'planetlab.eu.inria'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ethzcs.cert', 'cred_file': '', 'id_key_file': 'ethzcs.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/ethzcs'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$ethzcs_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ethzcs', 'name': 'planetlab.eu.ethzcs'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'basel.cert', 'cred_file': '', 'id_key_file': 'basel.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/basel'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$basel_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'basel', 'name': 'planetlab.eu.basel'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'enst.cert', 'cred_file': '', 'id_key_file': 'enst.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/enst'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$enst_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'enst', 'name': 'planetlab.eu.enst'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unizh.cert', 'cred_file': '', 'id_key_file': 'unizh.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/unizh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$unizh_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unizh', 'name': 'planetlab.eu.unizh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'moscowstate.cert', 'cred_file': '', 'id_key_file': 'moscowstate.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/moscowstate'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$moscowstate_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'moscowstate', 'name': 'planetlab.eu.moscowstate'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'msuchem.cert', 'cred_file': '', 'id_key_file': 'msuchem.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/msuchem'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$msuchem_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'msuchem', 'name': 'planetlab.eu.msuchem'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'hawh.cert', 'cred_file': '', 'id_key_file': 'hawh.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/hawh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$hawh_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'hawh', 'name': 'planetlab.eu.hawh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bamberg.cert', 'cred_file': '', 'id_key_file': 'bamberg.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/bamberg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$bamberg_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bamberg', 'name': 'planetlab.eu.bamberg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'budapest.cert', 'cred_file': '', 'id_key_file': 'budapest.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/budapest'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$budapest_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'budapest', 'name': 'planetlab.eu.budapest'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'upb.cert', 'cred_file': '', 'id_key_file': 'upb.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/upb'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$upb_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'upb', 'name': 'planetlab.eu.upb'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tcd.cert', 'cred_file': '', 'id_key_file': 'tcd.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/tcd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$tcd_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tcd', 'name': 'planetlab.eu.tcd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irisa.cert', 'cred_file': '', 'id_key_file': 'irisa.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/irisa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$irisa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irisa', 'name': 'planetlab.eu.irisa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cesnet.cert', 'cred_file': '', 'id_key_file': 'cesnet.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/cesnet'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$cesnet_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cesnet', 'name': 'planetlab.eu.cesnet'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aston.cert', 'cred_file': '', 'id_key_file': 'aston.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/aston'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$aston_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aston', 'name': 'planetlab.eu.aston'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'univie.cert', 'cred_file': '', 'id_key_file': 'univie.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/univie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$univie_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'univie', 'name': 'planetlab.eu.univie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'lisbon.cert', 'cred_file': '', 'id_key_file': 'lisbon.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/lisbon'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$lisbon_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'lisbon', 'name': 'planetlab.eu.lisbon'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'konstanz.cert', 'cred_file': '', 'id_key_file': 'konstanz.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/konstanz'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$konstanz_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'konstanz', 'name': 'planetlab.eu.konstanz'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fokus.cert', 'cred_file': '', 'id_key_file': 'fokus.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/fokus'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$fokus_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fokus', 'name': 'planetlab.eu.fokus'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'snummlab.cert', 'cred_file': '', 'id_key_file': 'snummlab.pkey', 'last_update': '', 'folder': 'slice/planetlab/snummlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$snummlab_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'snummlab', 'name': 'planetlab.snummlab'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'qub.cert', 'cred_file': '', 'id_key_file': 'qub.pkey', 'last_update': '', 'folder': 'slice/planetlab/qub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$qub_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'qub', 'name': 'planetlab.qub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'sydney.cert', 'cred_file': '', 'id_key_file': 'sydney.pkey', 'last_update': '', 'folder': 'slice/planetlab/sydney'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$sydney_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'sydney', 'name': 'planetlab.sydney'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canterbury.cert', 'cred_file': '', 'id_key_file': 'canterbury.pkey', 'last_update': '', 'folder': 'slice/planetlab/canterbury'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canterbury_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canterbury', 'name': 'planetlab.canterbury'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fing.cert', 'cred_file': '', 'id_key_file': 'fing.pkey', 'last_update': '', 'folder': 'slice/planetlab/fing'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$fing_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fing', 'name': 'planetlab.fing'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'haifa.cert', 'cred_file': '', 'id_key_file': 'haifa.pkey', 'last_update': '', 'folder': 'slice/planetlab/haifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$haifa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'haifa', 'name': 'planetlab.haifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'iitr.cert', 'cred_file': '', 'id_key_file': 'iitr.pkey', 'last_update': '', 'folder': 'slice/planetlab/iitr'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$iitr_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'iitr', 'name': 'planetlab.iitr'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tau.cert', 'cred_file': '', 'id_key_file': 'tau.pkey', 'last_update': '', 'folder': 'slice/planetlab/tau'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$tau_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tau', 'name': 'planetlab.tau'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarie.cert', 'cred_file': '', 'id_key_file': 'canarie.pkey', 'last_update': '', 'folder': 'slice/planetlab/canarie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarie_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarie', 'name': 'planetlab.canarie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ntu.cert', 'cred_file': '', 'id_key_file': 'ntu.pkey', 'last_update': '', 'folder': 'slice/planetlab/ntu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ntu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ntu', 'name': 'planetlab.ntu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'equinixsi.cert', 'cred_file': '', 'id_key_file': 'equinixsi.pkey', 'last_update': '', 'folder': 'slice/planetlab/equinixsi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$equinixsi_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'equinixsi', 'name': 'planetlab.equinixsi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'icavite.cert', 'cred_file': '', 'id_key_file': 'icavite.pkey', 'last_update': '', 'folder': 'slice/planetlab/icavite'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$icavite_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'icavite', 'name': 'planetlab.icavite'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ihaifa.cert', 'cred_file': '', 'id_key_file': 'ihaifa.pkey', 'last_update': '', 'folder': 'slice/planetlab/ihaifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ihaifa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ihaifa', 'name': 'planetlab.ihaifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ileixlip.cert', 'cred_file': '', 'id_key_file': 'ileixlip.pkey', 'last_update': '', 'folder': 'slice/planetlab/ileixlip'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ileixlip_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ileixlip', 'name': 'planetlab.ileixlip'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ula.cert', 'cred_file': '', 'id_key_file': 'ula.pkey', 'last_update': '', 'folder': 'slice/planetlab/ula'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ula_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ula', 'name': 'planetlab.ula'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariecalgary.cert', 'cred_file': '', 'id_key_file': 'canariecalgary.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariecalgary'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariecalgary_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariecalgary', 'name': 'planetlab.canariecalgary'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarieottawa.cert', 'cred_file': '', 'id_key_file': 'canarieottawa.pkey', 'last_update': '', 'folder': 'slice/planetlab/canarieottawa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarieottawa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarieottawa', 'name': 'planetlab.canarieottawa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariehalifax.cert', 'cred_file': '', 'id_key_file': 'canariehalifax.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariehalifax'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariehalifax_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariehalifax', 'name': 'planetlab.canariehalifax'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariemontreal.cert', 'cred_file': '', 'id_key_file': 'canariemontreal.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariemontreal'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariemontreal_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariemontreal', 'name': 'planetlab.canariemontreal'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarietoronto.cert', 'cred_file': '', 'id_key_file': 'canarietoronto.pkey', 'last_update': '', 'folder': 'slice/planetlab/canarietoronto'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarietoronto_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarietoronto', 'name': 'planetlab.canarietoronto'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariewinnipeg.cert', 'cred_file': '', 'id_key_file': 'canariewinnipeg.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariewinnipeg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariewinnipeg_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariewinnipeg', 'name': 'planetlab.canariewinnipeg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unioslo.cert', 'cred_file': '', 'id_key_file': 'unioslo.pkey', 'last_update': '', 'folder': 'slice/planetlab/unioslo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$unioslo_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unioslo', 'name': 'planetlab.unioslo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'buaa.cert', 'cred_file': '', 'id_key_file': 'buaa.pkey', 'last_update': '', 'folder': 'slice/planetlab/buaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$buaa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'buaa', 'name': 'planetlab.buaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxjtu.cert', 'cred_file': '', 'id_key_file': 'cernetxjtu.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetxjtu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxjtu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxjtu', 'name': 'planetlab.cernetxjtu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetsdu.cert', 'cred_file': '', 'id_key_file': 'cernetsdu.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetsdu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetsdu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetsdu', 'name': 'planetlab.cernetsdu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetpku.cert', 'cred_file': '', 'id_key_file': 'cernetpku.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetpku'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetpku_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetpku', 'name': 'planetlab.cernetpku'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetbuaa.cert', 'cred_file': '', 'id_key_file': 'cernetbuaa.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetbuaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetbuaa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetbuaa', 'name': 'planetlab.cernetbuaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetzju.cert', 'cred_file': '', 'id_key_file': 'cernetzju.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetzju'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetzju_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetzju', 'name': 'planetlab.cernetzju'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxmu.cert', 'cred_file': '', 'id_key_file': 'cernetxmu.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetxmu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxmu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxmu', 'name': 'planetlab.cernetxmu'}, 'children': []}]}
\ No newline at end of file
diff --git a/server/jpywork/PathVFS$_PyInner.class b/server/jpywork/PathVFS$_PyInner.class
new file mode 100644 (file)
index 0000000..1820015
Binary files /dev/null and b/server/jpywork/PathVFS$_PyInner.class differ
diff --git a/server/jpywork/PathVFS.class b/server/jpywork/PathVFS.class
new file mode 100644 (file)
index 0000000..87e2788
Binary files /dev/null and b/server/jpywork/PathVFS.class differ
diff --git a/server/jpywork/PathVFS.java b/server/jpywork/PathVFS.java
new file mode 100644 (file)
index 0000000..57d4262
--- /dev/null
@@ -0,0 +1,287 @@
+import org.python.core.*;
+
+public class PathVFS extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject i$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1_open;
+        private static PyCode c$2___repr__;
+        private static PyCode c$3_JarVFS;
+        private static PyCode c$4___init__;
+        private static PyCode c$5_open;
+        private static PyCode c$6___repr__;
+        private static PyCode c$7_DirVFS;
+        private static PyCode c$8_add_vfs;
+        private static PyCode c$9___init__;
+        private static PyCode c$10_open;
+        private static PyCode c$11_PathVFS;
+        private static PyCode c$12_main;
+        private static void initConstants() {
+            s$0 = Py.newString("<jar-vfs '%s'>");
+            s$1 = Py.newString("");
+            s$2 = Py.newString("/");
+            s$3 = Py.newString("<dir-vfs '%s'>");
+            i$4 = Py.newInteger(1);
+            s$5 = Py.newString(".jar");
+            s$6 = Py.newString(".zip");
+            s$7 = Py.newString("python.packages.paths");
+            s$8 = Py.newString("java.class.path");
+            s$9 = Py.newString(",");
+            s$10 = Py.newString("sun.boot.class.path");
+            s$11 = Py.newString("/usr/share/jython/Tools/jythonc/PathVFS.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(2, new String[] {"self", "fname"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_open = Py.newCode(2, new String[] {"self", "id", "ent"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "open", false, false, funcTable, 1, null, null, 0, 1);
+            c$2___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__repr__", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_JarVFS = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "JarVFS", false, false, funcTable, 3, null, null, 0, 0);
+            c$4___init__ = Py.newCode(2, new String[] {"self", "dir"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__init__", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_open = Py.newCode(2, new String[] {"self", "id", "f"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "open", false, false, funcTable, 5, null, null, 0, 1);
+            c$6___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__repr__", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_DirVFS = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "DirVFS", false, false, funcTable, 7, null, null, 0, 0);
+            c$8_add_vfs = Py.newCode(2, new String[] {"self", "fname", "file", "canon"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "add_vfs", false, false, funcTable, 8, null, null, 0, 1);
+            c$9___init__ = Py.newCode(2, new String[] {"self", "registry", "name", "p", "e", "paths", "path"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__init__", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_open = Py.newCode(2, new String[] {"self", "id", "v", "stream"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "open", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_PathVFS = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "PathVFS", false, false, funcTable, 11, null, null, 0, 0);
+            c$12_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "main", false, false, funcTable, 12, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$12_main == null) _PyInner.initConstants();
+            return c$12_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.open$2(frame);
+                case 2:
+                return _PyInner.__repr__$3(frame);
+                case 3:
+                return _PyInner.JarVFS$4(frame);
+                case 4:
+                return _PyInner.__init__$5(frame);
+                case 5:
+                return _PyInner.open$6(frame);
+                case 6:
+                return _PyInner.__repr__$7(frame);
+                case 7:
+                return _PyInner.DirVFS$8(frame);
+                case 8:
+                return _PyInner.add_vfs$9(frame);
+                case 9:
+                return _PyInner.__init__$10(frame);
+                case 10:
+                return _PyInner.open$11(frame);
+                case 11:
+                return _PyInner.PathVFS$12(frame);
+                case 12:
+                return _PyInner.main$13(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            frame.getlocal(0).__setattr__("zipfile", frame.getglobal("zip").__getattr__("ZipFile").__call__(frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject open$2(PyFrame frame) {
+            frame.setlocal(2, frame.getlocal(0).__getattr__("zipfile").invoke("getEntry", frame.getlocal(1)));
+            if (frame.getlocal(2).__nonzero__()) {
+                return frame.getlocal(0).__getattr__("zipfile").invoke("getInputStream", frame.getlocal(2));
+            }
+            else {
+                return frame.getglobal("None");
+            }
+        }
+        
+        private static PyObject __repr__$3(PyFrame frame) {
+            return s$0._mod(frame.getlocal(0).__getattr__("zipfile").__getattr__("name"));
+        }
+        
+        private static PyObject JarVFS$4(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__));
+            frame.setlocal("open", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_open));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$2___repr__));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$5(PyFrame frame) {
+            if (frame.getlocal(1)._eq(s$1).__nonzero__()) {
+                frame.getlocal(0).__setattr__("pfx", frame.getglobal("None"));
+            }
+            else {
+                frame.getlocal(0).__setattr__("pfx", frame.getlocal(1));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject open$6(PyFrame frame) {
+            frame.setlocal(2, frame.getglobal("io").__getattr__("File").__call__(frame.getlocal(0).__getattr__("pfx"), frame.getlocal(1).invoke("replace", s$2, frame.getglobal("io").__getattr__("File").__getattr__("separator"))));
+            if (frame.getlocal(2).__getattr__("file").__nonzero__()) {
+                return frame.getglobal("io").__getattr__("BufferedInputStream").__call__(frame.getglobal("io").__getattr__("FileInputStream").__call__(frame.getlocal(2)));
+            }
+            return frame.getglobal("None");
+        }
+        
+        private static PyObject __repr__$7(PyFrame frame) {
+            return s$3._mod(frame.getlocal(0).__getattr__("pfx"));
+        }
+        
+        private static PyObject DirVFS$8(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$4___init__));
+            frame.setlocal("open", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_open));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$6___repr__));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject add_vfs$9(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getlocal(1)._eq(s$1).__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("once").invoke("has_key", s$1).__not__().__nonzero__()) {
+                    frame.getlocal(0).__getattr__("once").__setitem__(s$1, i$4);
+                    frame.getlocal(0).__getattr__("vfs").invoke("append", frame.getglobal("DirVFS").__call__(s$1));
+                }
+                return Py.None;
+            }
+            frame.setlocal(2, frame.getglobal("io").__getattr__("File").__call__(frame.getlocal(1)));
+            frame.setlocal(3, frame.getlocal(2).__getattr__("canonicalPath"));
+            if (frame.getlocal(0).__getattr__("once").invoke("has_key", frame.getlocal(3)).__not__().__nonzero__()) {
+                frame.getlocal(0).__getattr__("once").__setitem__(frame.getlocal(3), i$4);
+                try {
+                    if (frame.getlocal(2).__getattr__("directory").__nonzero__()) {
+                        frame.getlocal(0).__getattr__("vfs").invoke("append", frame.getglobal("DirVFS").__call__(frame.getlocal(1)));
+                    }
+                    else {
+                        if (((t$0$PyObject = frame.getlocal(2).__getattr__("exists")).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1).invoke("endswith", s$5)).__nonzero__() ? t$1$PyObject : frame.getlocal(1).invoke("endswith", s$6)) : t$0$PyObject).__nonzero__()) {
+                            frame.getlocal(0).__getattr__("vfs").invoke("append", frame.getglobal("JarVFS").__call__(frame.getlocal(1)));
+                        }
+                    }
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    // pass
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __init__$10(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject;
+            
+            // Code
+            frame.getlocal(0).__setattr__("once", new PyDictionary(new PyObject[] {}));
+            frame.getlocal(0).__setattr__("vfs", new PyList(new PyObject[] {}));
+            frame.setlocal(5, frame.getlocal(1).invoke("getProperty", s$7, s$8));
+            frame.setlocal(5, frame.getlocal(5).invoke("split", s$9));
+            if (s$10._in(frame.getlocal(5)).__nonzero__()) {
+                frame.getlocal(5).invoke("remove", s$10);
+            }
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(5);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(3, t$0$PyObject);
+                frame.setlocal(4, frame.getlocal(1).invoke("getProperty", frame.getlocal(3)));
+                if (frame.getlocal(4)._ne(frame.getglobal("None")).__nonzero__()) {
+                    frame.setlocal(6, frame.getlocal(4).invoke("split", frame.getglobal("io").__getattr__("File").__getattr__("pathSeparator")));
+                    t$1$int = 0;
+                    t$3$PyObject = frame.getlocal(6);
+                    while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                        frame.setlocal(2, t$2$PyObject);
+                        frame.getlocal(0).invoke("add_vfs", frame.getlocal(2));
+                    }
+                }
+            }
+            t$2$int = 0;
+            t$5$PyObject = frame.getglobal("sys").__getattr__("path");
+            while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                frame.setlocal(2, t$4$PyObject);
+                frame.getlocal(0).invoke("add_vfs", frame.getlocal(2));
+            }
+            frame.getlocal(0).__delattr__("once");
+            return Py.None;
+        }
+        
+        private static PyObject open$11(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0).__getattr__("vfs");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.setlocal(3, frame.getlocal(2).invoke("open", frame.getlocal(1)));
+                if (frame.getlocal(3).__nonzero__()) {
+                    return frame.getlocal(3);
+                }
+            }
+            return frame.getglobal("None");
+        }
+        
+        private static PyObject PathVFS$12(PyFrame frame) {
+            frame.setlocal("add_vfs", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_add_vfs));
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$9___init__));
+            frame.setlocal("open", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_open));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$13(PyFrame frame) {
+            frame.setglobal("__file__", s$11);
+            
+            PyObject[] imp_accu;
+            // Code
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            imp_accu = org.python.core.imp.importFrom("java", new String[] {"io"}, frame);
+            frame.setlocal("io", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("java.util", new String[] {"zip"}, frame);
+            frame.setlocal("zip", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("JarVFS", Py.makeClass("JarVFS", new PyObject[] {}, c$3_JarVFS, null));
+            frame.setlocal("DirVFS", Py.makeClass("DirVFS", new PyObject[] {}, c$7_DirVFS, null));
+            frame.setlocal("PathVFS", Py.makeClass("PathVFS", new PyObject[] {}, c$11_PathVFS, null));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("PathVFS"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "PathVFS";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(PathVFS._PyInner.class, newargs, PathVFS.jpy$packages, PathVFS.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/SocketServer$_PyInner.class b/server/jpywork/SocketServer$_PyInner.class
new file mode 100644 (file)
index 0000000..ea8d8cf
Binary files /dev/null and b/server/jpywork/SocketServer$_PyInner.class differ
diff --git a/server/jpywork/SocketServer.class b/server/jpywork/SocketServer.class
new file mode 100644 (file)
index 0000000..128e671
Binary files /dev/null and b/server/jpywork/SocketServer.class differ
diff --git a/server/jpywork/SocketServer.java b/server/jpywork/SocketServer.java
new file mode 100644 (file)
index 0000000..8eb0319
--- /dev/null
@@ -0,0 +1,1048 @@
+import org.python.core.*;
+
+public class SocketServer extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject i$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject i$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject i$34;
+        private static PyObject i$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject i$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1_server_activate;
+        private static PyCode c$2_serve_forever;
+        private static PyCode c$3_handle_request;
+        private static PyCode c$4_verify_request;
+        private static PyCode c$5_process_request;
+        private static PyCode c$6_server_close;
+        private static PyCode c$7_finish_request;
+        private static PyCode c$8_close_request;
+        private static PyCode c$9_handle_error;
+        private static PyCode c$10_BaseServer;
+        private static PyCode c$11___init__;
+        private static PyCode c$12_server_bind;
+        private static PyCode c$13_server_activate;
+        private static PyCode c$14_server_close;
+        private static PyCode c$15_fileno;
+        private static PyCode c$16_get_request;
+        private static PyCode c$17_close_request;
+        private static PyCode c$18_TCPServer;
+        private static PyCode c$19_get_request;
+        private static PyCode c$20_server_activate;
+        private static PyCode c$21_close_request;
+        private static PyCode c$22_UDPServer;
+        private static PyCode c$23_collect_children;
+        private static PyCode c$24_process_request;
+        private static PyCode c$25_ForkingMixIn;
+        private static PyCode c$26_process_request;
+        private static PyCode c$27_ThreadingMixIn;
+        private static PyCode c$28_ForkingUDPServer;
+        private static PyCode c$29_ForkingTCPServer;
+        private static PyCode c$30_ThreadingUDPServer;
+        private static PyCode c$31_ThreadingTCPServer;
+        private static PyCode c$32_UnixStreamServer;
+        private static PyCode c$33_UnixDatagramServer;
+        private static PyCode c$34_ThreadingUnixStreamServer;
+        private static PyCode c$35_ThreadingUnixDatagramServer;
+        private static PyCode c$36___init__;
+        private static PyCode c$37_setup;
+        private static PyCode c$38___del__;
+        private static PyCode c$39_handle;
+        private static PyCode c$40_finish;
+        private static PyCode c$41_BaseRequestHandler;
+        private static PyCode c$42_setup;
+        private static PyCode c$43_finish;
+        private static PyCode c$44_StreamRequestHandler;
+        private static PyCode c$45_setup;
+        private static PyCode c$46_finish;
+        private static PyCode c$47_DatagramRequestHandler;
+        private static PyCode c$48_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Generic socket server classes.\012\012This module tries to capture the various aspects of defining a server:\012\012For socket-based servers:\012\012- address family:\012        - AF_INET: IP (Internet Protocol) sockets (default)\012        - AF_UNIX: Unix domain sockets\012        - others, e.g. AF_DECNET are conceivable (see <socket.h>\012- socket type:\012        - SOCK_STREAM (reliable stream, e.g. TCP)\012        - SOCK_DGRAM (datagrams, e.g. UDP)\012\012For request-based servers (including socket-based):\012\012- client address verification before further looking at the request\012        (This is actually a hook for any processing that needs to look\012         at the request before anything else, e.g. logging)\012- how to handle multiple requests:\012        - synchronous (one request is handled at a time)\012        - forking (each request is handled by a new process)\012        - threading (each request is handled by a new thread)\012\012The classes in this module favor the server type that is simplest to\012write: a synchronous TCP/IP server.  This is bad class design, but\012save some typing.  (There's also the issue that a deep class hierarchy\012slows down method lookups.)\012\012There are five classes in an inheritance diagram, four of which represent\012synchronous servers of four types:\012\012        +------------+\012        | BaseServer |\012        +------------+\012              |\012              v\012        +-----------+        +------------------+\012        | TCPServer |------->| UnixStreamServer |\012        +-----------+        +------------------+\012              |\012              v\012        +-----------+        +--------------------+\012        | UDPServer |------->| UnixDatagramServer |\012        +-----------+        +--------------------+\012\012Note that UnixDatagramServer derives from UDPServer, not from\012UnixStreamServer -- the only difference between an IP and a Unix\012stream server is the address family, which is simply repeated in both\012unix server classes.\012\012Forking and threading versions of each type of server can be created\012using the ForkingServer and ThreadingServer mix-in classes.  For\012instance, a threading UDP server class is created as follows:\012\012        class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass\012\012The Mix-in class must come first, since it overrides a method defined\012in UDPServer!\012\012To implement a service, you must derive a class from\012BaseRequestHandler and redefine its handle() method.  You can then run\012various versions of the service by combining one of the server classes\012with your request handler class.\012\012The request handler class must be different for datagram or stream\012services.  This can be hidden by using the mix-in request handler\012classes StreamRequestHandler or DatagramRequestHandler.\012\012Of course, you still have to use your head!\012\012For instance, it makes no sense to use a forking server if the service\012contains state in memory that can be modified by requests (since the\012modifications in the child process would never reach the initial state\012kept in the parent process and passed to each child).  In this case,\012you can use a threading server, but you will probably have to use\012locks to avoid two requests that come in nearly simultaneous to apply\012conflicting changes to the server state.\012\012On the other hand, if you are building e.g. an HTTP server, where all\012data is stored externally (e.g. in the file system), a synchronous\012class will essentially render the service \"deaf\" while one request is\012being handled -- which may be for a very long time if a client is slow\012to reqd all the data it has requested.  Here a threading or forking\012server is appropriate.\012\012In some cases, it may be appropriate to process part of a request\012synchronously, but to finish processing in a forked child depending on\012the request data.  This can be implemented by using a synchronous\012server and doing an explicit fork in the request handler class\012handle() method.\012\012Another approach to handling multiple simultaneous requests in an\012environment that supports neither threads nor fork (or where these are\012too expensive or inappropriate for the service) is to maintain an\012explicit table of partially finished requests and to use select() to\012decide which request to work on next (or whether to handle a new\012incoming request).  This is particularly important for stream services\012where each client can potentially be connected for a long time (if\012threads or subprocesses cannot be used).\012\012Future work:\012- Standard classes for Sun RPC (which uses either UDP or TCP)\012- Standard mix-in classes to implement various authentication\012  and encryption schemes\012- Standard framework for select-based multiplexing\012\012XXX Open problems:\012- What to do with out-of-band data?\012\012BaseServer:\012- split generic \"request\" functionality out into BaseServer class.\012  Copyright (C) 2000  Luke Kenneth Casson Leighton <lkcl@samba.org>\012\012  example: read entries from a SQL database (requires overriding\012  get_request() to return a table entry from the database).\012  entry is processed by a RequestHandlerClass.\012\012");
+            s$1 = Py.newString("0.4");
+            s$2 = Py.newString("TCPServer");
+            s$3 = Py.newString("UDPServer");
+            s$4 = Py.newString("ForkingUDPServer");
+            s$5 = Py.newString("ForkingTCPServer");
+            s$6 = Py.newString("ThreadingUDPServer");
+            s$7 = Py.newString("ThreadingTCPServer");
+            s$8 = Py.newString("BaseRequestHandler");
+            s$9 = Py.newString("StreamRequestHandler");
+            s$10 = Py.newString("DatagramRequestHandler");
+            s$11 = Py.newString("ThreadingMixIn");
+            s$12 = Py.newString("ForkingMixIn");
+            s$13 = Py.newString("AF_UNIX");
+            s$14 = Py.newString("UnixStreamServer");
+            s$15 = Py.newString("UnixDatagramServer");
+            s$16 = Py.newString("ThreadingUnixStreamServer");
+            s$17 = Py.newString("ThreadingUnixDatagramServer");
+            s$18 = Py.newString("Base class for server classes.\012\012    Methods for the caller:\012\012    - __init__(server_address, RequestHandlerClass)\012    - serve_forever()\012    - handle_request()  # if you do not use serve_forever()\012    - fileno() -> int   # for select()\012\012    Methods that may be overridden:\012\012    - server_bind()\012    - server_activate()\012    - get_request() -> request, client_address\012    - verify_request(request, client_address)\012    - server_close()\012    - process_request(request, client_address)\012    - close_request(request)\012    - handle_error()\012\012    Methods for derived classes:\012\012    - finish_request(request, client_address)\012\012    Class variables that may be overridden by derived classes or\012    instances:\012\012    - address_family\012    - socket_type\012    - reuse_address\012\012    Instance variables:\012\012    - RequestHandlerClass\012    - socket\012\012    ");
+            s$19 = Py.newString("Constructor.  May be extended, do not override.");
+            s$20 = Py.newString("Called by constructor to activate the server.\012\012        May be overridden.\012\012        ");
+            s$21 = Py.newString("Handle one request at a time until doomsday.");
+            i$22 = Py.newInteger(1);
+            s$23 = Py.newString("Handle one request, possibly blocking.");
+            s$24 = Py.newString("Verify the request.  May be overridden.\012\012        Return true if we should proceed with this request.\012\012        ");
+            s$25 = Py.newString("Call finish_request.\012\012        Overridden by ForkingMixIn and ThreadingMixIn.\012\012        ");
+            s$26 = Py.newString("Called to clean-up the server.\012\012        May be overridden.\012\012        ");
+            s$27 = Py.newString("Finish one request by instantiating RequestHandlerClass.");
+            s$28 = Py.newString("Called to clean up an individual request.");
+            s$29 = Py.newString("Handle an error gracefully.  May be overridden.\012\012        The default is to print a traceback and continue.\012\012        ");
+            s$30 = Py.newString("-");
+            i$31 = Py.newInteger(40);
+            s$32 = Py.newString("Exception happened during processing of request from");
+            s$33 = Py.newString("Base class for various socket-based server classes.\012\012    Defaults to synchronous IP stream (i.e., TCP).\012\012    Methods for the caller:\012\012    - __init__(server_address, RequestHandlerClass)\012    - serve_forever()\012    - handle_request()  # if you don't use serve_forever()\012    - fileno() -> int   # for select()\012\012    Methods that may be overridden:\012\012    - server_bind()\012    - server_activate()\012    - get_request() -> request, client_address\012    - verify_request(request, client_address)\012    - process_request(request, client_address)\012    - close_request(request)\012    - handle_error()\012\012    Methods for derived classes:\012\012    - finish_request(request, client_address)\012\012    Class variables that may be overridden by derived classes or\012    instances:\012\012    - address_family\012    - socket_type\012    - request_queue_size (only for stream sockets)\012    - reuse_address\012\012    Instance variables:\012\012    - server_address\012    - RequestHandlerClass\012    - socket\012\012    ");
+            i$34 = Py.newInteger(5);
+            i$35 = Py.newInteger(0);
+            s$36 = Py.newString("Called by constructor to bind the socket.\012\012        May be overridden.\012\012        ");
+            s$37 = Py.newString("Return socket file number.\012\012        Interface required by select().\012\012        ");
+            s$38 = Py.newString("Get the request and client address from the socket.\012\012        May be overridden.\012\012        ");
+            s$39 = Py.newString("UDP server class.");
+            i$40 = Py.newInteger(8192);
+            s$41 = Py.newString("Mix-in class to handle each request in a new process.");
+            s$42 = Py.newString("Internal routine to wait for died children.");
+            s$43 = Py.newString("Fork a new subprocess to process the request.");
+            s$44 = Py.newString("Mix-in class to handle each request in a new thread.");
+            s$45 = Py.newString("Start a new thread to process the request.");
+            s$46 = Py.newString("Base class for request handler classes.\012\012    This class is instantiated for each request to be handled.  The\012    constructor sets the instance variables request, client_address\012    and server, and then calls the handle() method.  To implement a\012    specific service, all you need to do is to derive a class which\012    defines a handle() method.\012\012    The handle() method can find the request as self.request, the\012    client address as self.client_address, and the server (in case it\012    needs access to per-server information) as self.server.  Since a\012    separate instance is created for each request, the handle() method\012    can define arbitrary other instance variariables.\012\012    ");
+            s$47 = Py.newString("Define self.rfile and self.wfile for stream sockets.");
+            s$48 = Py.newString("rb");
+            s$49 = Py.newString("wb");
+            s$50 = Py.newString("Define self.rfile and self.wfile for datagram sockets.");
+            s$51 = Py.newString("/usr/share/jython/Lib-cpython/SocketServer.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(3, new String[] {"self", "server_address", "RequestHandlerClass"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_server_activate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_activate", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_serve_forever = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "serve_forever", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_handle_request = Py.newCode(1, new String[] {"self", "client_address", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "handle_request", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_verify_request = Py.newCode(3, new String[] {"self", "request", "client_address"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "verify_request", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_process_request = Py.newCode(3, new String[] {"self", "request", "client_address"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "process_request", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_server_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_close", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_finish_request = Py.newCode(3, new String[] {"self", "request", "client_address"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish_request", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_close_request = Py.newCode(2, new String[] {"self", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "close_request", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_handle_error = Py.newCode(3, new String[] {"self", "request", "client_address", "traceback"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "handle_error", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_BaseServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "BaseServer", false, false, funcTable, 10, null, null, 0, 0);
+            c$11___init__ = Py.newCode(3, new String[] {"self", "server_address", "RequestHandlerClass"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__init__", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_server_bind = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_bind", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_server_activate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_activate", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_server_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_close", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_fileno = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "fileno", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_get_request = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "get_request", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_close_request = Py.newCode(2, new String[] {"self", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "close_request", false, false, funcTable, 17, null, null, 0, 1);
+            c$18_TCPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "TCPServer", false, false, funcTable, 18, null, null, 0, 0);
+            c$19_get_request = Py.newCode(1, new String[] {"self", "client_addr", "data"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "get_request", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_server_activate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_activate", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_close_request = Py.newCode(2, new String[] {"self", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "close_request", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_UDPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "UDPServer", false, false, funcTable, 22, null, null, 0, 0);
+            c$23_collect_children = Py.newCode(1, new String[] {"self", "status", "pid", "options"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "collect_children", false, false, funcTable, 23, null, null, 0, 1);
+            c$24_process_request = Py.newCode(3, new String[] {"self", "request", "client_address", "pid"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "process_request", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_ForkingMixIn = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ForkingMixIn", false, false, funcTable, 25, null, null, 0, 0);
+            c$26_process_request = Py.newCode(3, new String[] {"self", "request", "client_address", "t", "threading"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "process_request", false, false, funcTable, 26, null, null, 0, 1);
+            c$27_ThreadingMixIn = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingMixIn", false, false, funcTable, 27, null, null, 0, 0);
+            c$28_ForkingUDPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ForkingUDPServer", false, false, funcTable, 28, null, null, 0, 0);
+            c$29_ForkingTCPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ForkingTCPServer", false, false, funcTable, 29, null, null, 0, 0);
+            c$30_ThreadingUDPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingUDPServer", false, false, funcTable, 30, null, null, 0, 0);
+            c$31_ThreadingTCPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingTCPServer", false, false, funcTable, 31, null, null, 0, 0);
+            c$32_UnixStreamServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "UnixStreamServer", false, false, funcTable, 32, null, null, 0, 0);
+            c$33_UnixDatagramServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "UnixDatagramServer", false, false, funcTable, 33, null, null, 0, 0);
+            c$34_ThreadingUnixStreamServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingUnixStreamServer", false, false, funcTable, 34, null, null, 0, 0);
+            c$35_ThreadingUnixDatagramServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingUnixDatagramServer", false, false, funcTable, 35, null, null, 0, 0);
+            c$36___init__ = Py.newCode(4, new String[] {"self", "request", "client_address", "server"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__init__", false, false, funcTable, 36, null, null, 0, 1);
+            c$37_setup = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "setup", false, false, funcTable, 37, null, null, 0, 1);
+            c$38___del__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__del__", false, false, funcTable, 38, null, null, 0, 1);
+            c$39_handle = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "handle", false, false, funcTable, 39, null, null, 0, 1);
+            c$40_finish = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish", false, false, funcTable, 40, null, null, 0, 1);
+            c$41_BaseRequestHandler = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "BaseRequestHandler", false, false, funcTable, 41, null, null, 0, 0);
+            c$42_setup = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "setup", false, false, funcTable, 42, null, null, 0, 1);
+            c$43_finish = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish", false, false, funcTable, 43, null, null, 0, 1);
+            c$44_StreamRequestHandler = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "StreamRequestHandler", false, false, funcTable, 44, null, null, 0, 0);
+            c$45_setup = Py.newCode(1, new String[] {"self", "StringIO"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "setup", false, false, funcTable, 45, null, null, 0, 1);
+            c$46_finish = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish", false, false, funcTable, 46, null, null, 0, 1);
+            c$47_DatagramRequestHandler = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "DatagramRequestHandler", false, false, funcTable, 47, null, null, 0, 0);
+            c$48_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "main", false, false, funcTable, 48, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$48_main == null) _PyInner.initConstants();
+            return c$48_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.server_activate$2(frame);
+                case 2:
+                return _PyInner.serve_forever$3(frame);
+                case 3:
+                return _PyInner.handle_request$4(frame);
+                case 4:
+                return _PyInner.verify_request$5(frame);
+                case 5:
+                return _PyInner.process_request$6(frame);
+                case 6:
+                return _PyInner.server_close$7(frame);
+                case 7:
+                return _PyInner.finish_request$8(frame);
+                case 8:
+                return _PyInner.close_request$9(frame);
+                case 9:
+                return _PyInner.handle_error$10(frame);
+                case 10:
+                return _PyInner.BaseServer$11(frame);
+                case 11:
+                return _PyInner.__init__$12(frame);
+                case 12:
+                return _PyInner.server_bind$13(frame);
+                case 13:
+                return _PyInner.server_activate$14(frame);
+                case 14:
+                return _PyInner.server_close$15(frame);
+                case 15:
+                return _PyInner.fileno$16(frame);
+                case 16:
+                return _PyInner.get_request$17(frame);
+                case 17:
+                return _PyInner.close_request$18(frame);
+                case 18:
+                return _PyInner.TCPServer$19(frame);
+                case 19:
+                return _PyInner.get_request$20(frame);
+                case 20:
+                return _PyInner.server_activate$21(frame);
+                case 21:
+                return _PyInner.close_request$22(frame);
+                case 22:
+                return _PyInner.UDPServer$23(frame);
+                case 23:
+                return _PyInner.collect_children$24(frame);
+                case 24:
+                return _PyInner.process_request$25(frame);
+                case 25:
+                return _PyInner.ForkingMixIn$26(frame);
+                case 26:
+                return _PyInner.process_request$27(frame);
+                case 27:
+                return _PyInner.ThreadingMixIn$28(frame);
+                case 28:
+                return _PyInner.ForkingUDPServer$29(frame);
+                case 29:
+                return _PyInner.ForkingTCPServer$30(frame);
+                case 30:
+                return _PyInner.ThreadingUDPServer$31(frame);
+                case 31:
+                return _PyInner.ThreadingTCPServer$32(frame);
+                case 32:
+                return _PyInner.UnixStreamServer$33(frame);
+                case 33:
+                return _PyInner.UnixDatagramServer$34(frame);
+                case 34:
+                return _PyInner.ThreadingUnixStreamServer$35(frame);
+                case 35:
+                return _PyInner.ThreadingUnixDatagramServer$36(frame);
+                case 36:
+                return _PyInner.__init__$37(frame);
+                case 37:
+                return _PyInner.setup$38(frame);
+                case 38:
+                return _PyInner.__del__$39(frame);
+                case 39:
+                return _PyInner.handle$40(frame);
+                case 40:
+                return _PyInner.finish$41(frame);
+                case 41:
+                return _PyInner.BaseRequestHandler$42(frame);
+                case 42:
+                return _PyInner.setup$43(frame);
+                case 43:
+                return _PyInner.finish$44(frame);
+                case 44:
+                return _PyInner.StreamRequestHandler$45(frame);
+                case 45:
+                return _PyInner.setup$46(frame);
+                case 46:
+                return _PyInner.finish$47(frame);
+                case 47:
+                return _PyInner.DatagramRequestHandler$48(frame);
+                case 48:
+                return _PyInner.main$49(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            /* Constructor.  May be extended, do not override. */
+            frame.getlocal(0).__setattr__("server_address", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("RequestHandlerClass", frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject server_activate$2(PyFrame frame) {
+            /* Called by constructor to activate the server.
+            
+                    May be overridden.
+            
+                     */
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject serve_forever$3(PyFrame frame) {
+            /* Handle one request at a time until doomsday. */
+            while (i$22.__nonzero__()) {
+                frame.getlocal(0).invoke("handle_request");
+            }
+            return Py.None;
+        }
+        
+        private static PyObject handle_request$4(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Handle one request, possibly blocking. */
+            try {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).invoke("get_request"), 2);
+                frame.setlocal(2, t$0$PyObject__[0]);
+                frame.setlocal(1, t$0$PyObject__[1]);
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("socket").__getattr__("error"))) {
+                    return Py.None;
+                }
+                else throw t$0$PyException;
+            }
+            if (frame.getlocal(0).invoke("verify_request", frame.getlocal(2), frame.getlocal(1)).__nonzero__()) {
+                try {
+                    frame.getlocal(0).invoke("process_request", frame.getlocal(2), frame.getlocal(1));
+                }
+                catch (Throwable x$1) {
+                    t$0$PyException = Py.setException(x$1, frame);
+                    frame.getlocal(0).invoke("handle_error", frame.getlocal(2), frame.getlocal(1));
+                    frame.getlocal(0).invoke("close_request", frame.getlocal(2));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject verify_request$5(PyFrame frame) {
+            /* Verify the request.  May be overridden.
+            
+                    Return true if we should proceed with this request.
+            
+                     */
+            return i$22;
+        }
+        
+        private static PyObject process_request$6(PyFrame frame) {
+            /* Call finish_request.
+            
+                    Overridden by ForkingMixIn and ThreadingMixIn.
+            
+                     */
+            frame.getlocal(0).invoke("finish_request", frame.getlocal(1), frame.getlocal(2));
+            frame.getlocal(0).invoke("close_request", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject server_close$7(PyFrame frame) {
+            /* Called to clean-up the server.
+            
+                    May be overridden.
+            
+                     */
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject finish_request$8(PyFrame frame) {
+            /* Finish one request by instantiating RequestHandlerClass. */
+            frame.getlocal(0).invoke("RequestHandlerClass", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(0)});
+            return Py.None;
+        }
+        
+        private static PyObject close_request$9(PyFrame frame) {
+            /* Called to clean up an individual request. */
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject handle_error$10(PyFrame frame) {
+            /* Handle an error gracefully.  May be overridden.
+            
+                    The default is to print a traceback and continue.
+            
+                     */
+            Py.println(s$30._mul(i$31));
+            Py.printComma(s$32);
+            Py.println(frame.getlocal(2));
+            frame.setlocal(3, org.python.core.imp.importOne("traceback", frame));
+            frame.getlocal(3).__getattr__("print_exc").__call__();
+            Py.println(s$30._mul(i$31));
+            return Py.None;
+        }
+        
+        private static PyObject BaseServer$11(PyFrame frame) {
+            /* Base class for server classes.
+            
+                Methods for the caller:
+            
+                - __init__(server_address, RequestHandlerClass)
+                - serve_forever()
+                - handle_request()  # if you do not use serve_forever()
+                - fileno() -> int   # for select()
+            
+                Methods that may be overridden:
+            
+                - server_bind()
+                - server_activate()
+                - get_request() -> request, client_address
+                - verify_request(request, client_address)
+                - server_close()
+                - process_request(request, client_address)
+                - close_request(request)
+                - handle_error()
+            
+                Methods for derived classes:
+            
+                - finish_request(request, client_address)
+            
+                Class variables that may be overridden by derived classes or
+                instances:
+            
+                - address_family
+                - socket_type
+                - reuse_address
+            
+                Instance variables:
+            
+                - RequestHandlerClass
+                - socket
+            
+                 */
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__));
+            frame.setlocal("server_activate", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_server_activate));
+            frame.setlocal("serve_forever", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_serve_forever));
+            frame.setlocal("handle_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_handle_request));
+            frame.setlocal("verify_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_verify_request));
+            frame.setlocal("process_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_process_request));
+            frame.setlocal("server_close", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_server_close));
+            frame.setlocal("finish_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_finish_request));
+            frame.setlocal("close_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_close_request));
+            frame.setlocal("handle_error", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_handle_error));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$12(PyFrame frame) {
+            /* Constructor.  May be extended, do not override. */
+            frame.getglobal("BaseServer").invoke("__init__", new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2)});
+            frame.getlocal(0).__setattr__("socket", frame.getglobal("socket").__getattr__("socket").__call__(frame.getlocal(0).__getattr__("address_family"), frame.getlocal(0).__getattr__("socket_type")));
+            frame.getlocal(0).invoke("server_bind");
+            frame.getlocal(0).invoke("server_activate");
+            return Py.None;
+        }
+        
+        private static PyObject server_bind$13(PyFrame frame) {
+            /* Called by constructor to bind the socket.
+            
+                    May be overridden.
+            
+                     */
+            if (frame.getlocal(0).__getattr__("allow_reuse_address").__nonzero__()) {
+                frame.getlocal(0).__getattr__("socket").invoke("setsockopt", new PyObject[] {frame.getglobal("socket").__getattr__("SOL_SOCKET"), frame.getglobal("socket").__getattr__("SO_REUSEADDR"), i$22});
+            }
+            frame.getlocal(0).__getattr__("socket").invoke("bind", frame.getlocal(0).__getattr__("server_address"));
+            return Py.None;
+        }
+        
+        private static PyObject server_activate$14(PyFrame frame) {
+            /* Called by constructor to activate the server.
+            
+                    May be overridden.
+            
+                     */
+            frame.getlocal(0).__getattr__("socket").invoke("listen", frame.getlocal(0).__getattr__("request_queue_size"));
+            return Py.None;
+        }
+        
+        private static PyObject server_close$15(PyFrame frame) {
+            /* Called to clean-up the server.
+            
+                    May be overridden.
+            
+                     */
+            frame.getlocal(0).__getattr__("socket").invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject fileno$16(PyFrame frame) {
+            /* Return socket file number.
+            
+                    Interface required by select().
+            
+                     */
+            return frame.getlocal(0).__getattr__("socket").invoke("fileno");
+        }
+        
+        private static PyObject get_request$17(PyFrame frame) {
+            /* Get the request and client address from the socket.
+            
+                    May be overridden.
+            
+                     */
+            return frame.getlocal(0).__getattr__("socket").invoke("accept");
+        }
+        
+        private static PyObject close_request$18(PyFrame frame) {
+            /* Called to clean up an individual request. */
+            frame.getlocal(1).invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject TCPServer$19(PyFrame frame) {
+            /* Base class for various socket-based server classes.
+            
+                Defaults to synchronous IP stream (i.e., TCP).
+            
+                Methods for the caller:
+            
+                - __init__(server_address, RequestHandlerClass)
+                - serve_forever()
+                - handle_request()  # if you don't use serve_forever()
+                - fileno() -> int   # for select()
+            
+                Methods that may be overridden:
+            
+                - server_bind()
+                - server_activate()
+                - get_request() -> request, client_address
+                - verify_request(request, client_address)
+                - process_request(request, client_address)
+                - close_request(request)
+                - handle_error()
+            
+                Methods for derived classes:
+            
+                - finish_request(request, client_address)
+            
+                Class variables that may be overridden by derived classes or
+                instances:
+            
+                - address_family
+                - socket_type
+                - request_queue_size (only for stream sockets)
+                - reuse_address
+            
+                Instance variables:
+            
+                - server_address
+                - RequestHandlerClass
+                - socket
+            
+                 */
+            frame.setlocal("address_family", frame.getname("socket").__getattr__("AF_INET"));
+            frame.setlocal("socket_type", frame.getname("socket").__getattr__("SOCK_STREAM"));
+            frame.setlocal("request_queue_size", i$34);
+            frame.setlocal("allow_reuse_address", i$35);
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$11___init__));
+            frame.setlocal("server_bind", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_server_bind));
+            frame.setlocal("server_activate", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_server_activate));
+            frame.setlocal("server_close", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_server_close));
+            frame.setlocal("fileno", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_fileno));
+            frame.setlocal("get_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_get_request));
+            frame.setlocal("close_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_close_request));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject get_request$20(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("socket").invoke("recvfrom", frame.getlocal(0).__getattr__("max_packet_size")), 2);
+            frame.setlocal(2, t$0$PyObject__[0]);
+            frame.setlocal(1, t$0$PyObject__[1]);
+            return new PyTuple(new PyObject[] {new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(0).__getattr__("socket")}), frame.getlocal(1)});
+        }
+        
+        private static PyObject server_activate$21(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject close_request$22(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject UDPServer$23(PyFrame frame) {
+            /* UDP server class. */
+            frame.setlocal("allow_reuse_address", i$35);
+            frame.setlocal("socket_type", frame.getname("socket").__getattr__("SOCK_DGRAM"));
+            frame.setlocal("max_packet_size", i$40);
+            frame.setlocal("get_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_get_request));
+            frame.setlocal("server_activate", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_server_activate));
+            frame.setlocal("close_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_close_request));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject collect_children$24(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Internal routine to wait for died children. */
+            while (frame.getlocal(0).__getattr__("active_children").__nonzero__()) {
+                if (frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("active_children"))._lt(frame.getlocal(0).__getattr__("max_children")).__nonzero__()) {
+                    frame.setlocal(3, frame.getglobal("os").__getattr__("WNOHANG"));
+                }
+                else {
+                    frame.setlocal(3, i$35);
+                }
+                try {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("os").__getattr__("waitpid").__call__(i$35, frame.getlocal(3)), 2);
+                    frame.setlocal(2, t$0$PyObject__[0]);
+                    frame.setlocal(1, t$0$PyObject__[1]);
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) {
+                        frame.setlocal(2, frame.getglobal("None"));
+                    }
+                    else throw t$0$PyException;
+                }
+                if (frame.getlocal(2).__not__().__nonzero__()) {
+                    break;
+                }
+                frame.getlocal(0).__getattr__("active_children").invoke("remove", frame.getlocal(2));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject process_request$25(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* Fork a new subprocess to process the request. */
+            frame.getlocal(0).invoke("collect_children");
+            frame.setlocal(3, frame.getglobal("os").__getattr__("fork").__call__());
+            if (frame.getlocal(3).__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("active_children")._is(frame.getglobal("None")).__nonzero__()) {
+                    frame.getlocal(0).__setattr__("active_children", new PyList(new PyObject[] {}));
+                }
+                frame.getlocal(0).__getattr__("active_children").invoke("append", frame.getlocal(3));
+                frame.getlocal(0).invoke("close_request", frame.getlocal(1));
+                return Py.None;
+            }
+            else {
+                try {
+                    frame.getlocal(0).invoke("finish_request", frame.getlocal(1), frame.getlocal(2));
+                    frame.getglobal("os").__getattr__("_exit").__call__(i$35);
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    try {
+                        frame.getlocal(0).invoke("handle_error", frame.getlocal(1), frame.getlocal(2));
+                    }
+                    finally {
+                        frame.getglobal("os").__getattr__("_exit").__call__(i$22);
+                    }
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject ForkingMixIn$26(PyFrame frame) {
+            /* Mix-in class to handle each request in a new process. */
+            frame.setlocal("active_children", frame.getname("None"));
+            frame.setlocal("max_children", i$31);
+            frame.setlocal("collect_children", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_collect_children));
+            frame.setlocal("process_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_process_request));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject process_request$27(PyFrame frame) {
+            /* Start a new thread to process the request. */
+            frame.setlocal(4, org.python.core.imp.importOne("threading", frame));
+            frame.setlocal(3, frame.getlocal(4).__getattr__("Thread").__call__(new PyObject[] {frame.getlocal(0).__getattr__("finish_request"), new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)})}, new String[] {"target", "args"}));
+            frame.getlocal(3).invoke("start");
+            return Py.None;
+        }
+        
+        private static PyObject ThreadingMixIn$28(PyFrame frame) {
+            /* Mix-in class to handle each request in a new thread. */
+            frame.setlocal("process_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_process_request));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject ForkingUDPServer$29(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject ForkingTCPServer$30(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject ThreadingUDPServer$31(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject ThreadingTCPServer$32(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject UnixStreamServer$33(PyFrame frame) {
+            frame.setlocal("address_family", frame.getname("socket").__getattr__("AF_UNIX"));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject UnixDatagramServer$34(PyFrame frame) {
+            frame.setlocal("address_family", frame.getname("socket").__getattr__("AF_UNIX"));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject ThreadingUnixStreamServer$35(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject ThreadingUnixDatagramServer$36(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$37(PyFrame frame) {
+            frame.getlocal(0).__setattr__("request", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("client_address", frame.getlocal(2));
+            frame.getlocal(0).__setattr__("server", frame.getlocal(3));
+            try {
+                frame.getlocal(0).invoke("setup");
+                frame.getlocal(0).invoke("handle");
+                frame.getlocal(0).invoke("finish");
+            }
+            finally {
+                frame.getglobal("sys").__setattr__("exc_traceback", frame.getglobal("None"));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject setup$38(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject __del__$39(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject handle$40(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject finish$41(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject BaseRequestHandler$42(PyFrame frame) {
+            /* Base class for request handler classes.
+            
+                This class is instantiated for each request to be handled.  The
+                constructor sets the instance variables request, client_address
+                and server, and then calls the handle() method.  To implement a
+                specific service, all you need to do is to derive a class which
+                defines a handle() method.
+            
+                The handle() method can find the request as self.request, the
+                client address as self.client_address, and the server (in case it
+                needs access to per-server information) as self.server.  Since a
+                separate instance is created for each request, the handle() method
+                can define arbitrary other instance variariables.
+            
+                 */
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$36___init__));
+            frame.setlocal("setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$37_setup));
+            frame.setlocal("__del__", new PyFunction(frame.f_globals, new PyObject[] {}, c$38___del__));
+            frame.setlocal("handle", new PyFunction(frame.f_globals, new PyObject[] {}, c$39_handle));
+            frame.setlocal("finish", new PyFunction(frame.f_globals, new PyObject[] {}, c$40_finish));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject setup$43(PyFrame frame) {
+            frame.getlocal(0).__setattr__("connection", frame.getlocal(0).__getattr__("request"));
+            frame.getlocal(0).__setattr__("rfile", frame.getlocal(0).__getattr__("connection").invoke("makefile", s$48, frame.getlocal(0).__getattr__("rbufsize")));
+            frame.getlocal(0).__setattr__("wfile", frame.getlocal(0).__getattr__("connection").invoke("makefile", s$49, frame.getlocal(0).__getattr__("wbufsize")));
+            return Py.None;
+        }
+        
+        private static PyObject finish$44(PyFrame frame) {
+            frame.getlocal(0).__getattr__("wfile").invoke("flush");
+            frame.getlocal(0).__getattr__("wfile").invoke("close");
+            frame.getlocal(0).__getattr__("rfile").invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject StreamRequestHandler$45(PyFrame frame) {
+            /* Define self.rfile and self.wfile for stream sockets. */
+            frame.setlocal("rbufsize", i$22.__neg__());
+            frame.setlocal("wbufsize", i$35);
+            frame.setlocal("setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$42_setup));
+            frame.setlocal("finish", new PyFunction(frame.f_globals, new PyObject[] {}, c$43_finish));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject setup$46(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            frame.setlocal(1, org.python.core.imp.importOne("StringIO", frame));
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("request"), 2);
+            frame.getlocal(0).__setattr__("packet", t$0$PyObject__[0]);
+            frame.getlocal(0).__setattr__("socket", t$0$PyObject__[1]);
+            frame.getlocal(0).__setattr__("rfile", frame.getlocal(1).__getattr__("StringIO").__call__(frame.getlocal(0).__getattr__("packet")));
+            frame.getlocal(0).__setattr__("wfile", frame.getlocal(1).__getattr__("StringIO").__call__());
+            return Py.None;
+        }
+        
+        private static PyObject finish$47(PyFrame frame) {
+            frame.getlocal(0).__getattr__("socket").invoke("sendto", frame.getlocal(0).__getattr__("wfile").invoke("getvalue"), frame.getlocal(0).__getattr__("client_address"));
+            return Py.None;
+        }
+        
+        private static PyObject DatagramRequestHandler$48(PyFrame frame) {
+            /* Define self.rfile and self.wfile for datagram sockets. */
+            frame.setlocal("setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$45_setup));
+            frame.setlocal("finish", new PyFunction(frame.f_globals, new PyObject[] {}, c$46_finish));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$49(PyFrame frame) {
+            frame.setglobal("__file__", s$51);
+            
+            /* Generic socket server classes.
+            
+            This module tries to capture the various aspects of defining a server:
+            
+            For socket-based servers:
+            
+            - address family:
+                    - AF_INET: IP (Internet Protocol) sockets (default)
+                    - AF_UNIX: Unix domain sockets
+                    - others, e.g. AF_DECNET are conceivable (see <socket.h>
+            - socket type:
+                    - SOCK_STREAM (reliable stream, e.g. TCP)
+                    - SOCK_DGRAM (datagrams, e.g. UDP)
+            
+            For request-based servers (including socket-based):
+            
+            - client address verification before further looking at the request
+                    (This is actually a hook for any processing that needs to look
+                     at the request before anything else, e.g. logging)
+            - how to handle multiple requests:
+                    - synchronous (one request is handled at a time)
+                    - forking (each request is handled by a new process)
+                    - threading (each request is handled by a new thread)
+            
+            The classes in this module favor the server type that is simplest to
+            write: a synchronous TCP/IP server.  This is bad class design, but
+            save some typing.  (There's also the issue that a deep class hierarchy
+            slows down method lookups.)
+            
+            There are five classes in an inheritance diagram, four of which represent
+            synchronous servers of four types:
+            
+                    +------------+
+                    | BaseServer |
+                    +------------+
+                          |
+                          v
+                    +-----------+        +------------------+
+                    | TCPServer |------->| UnixStreamServer |
+                    +-----------+        +------------------+
+                          |
+                          v
+                    +-----------+        +--------------------+
+                    | UDPServer |------->| UnixDatagramServer |
+                    +-----------+        +--------------------+
+            
+            Note that UnixDatagramServer derives from UDPServer, not from
+            UnixStreamServer -- the only difference between an IP and a Unix
+            stream server is the address family, which is simply repeated in both
+            unix server classes.
+            
+            Forking and threading versions of each type of server can be created
+            using the ForkingServer and ThreadingServer mix-in classes.  For
+            instance, a threading UDP server class is created as follows:
+            
+                    class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass
+            
+            The Mix-in class must come first, since it overrides a method defined
+            in UDPServer!
+            
+            To implement a service, you must derive a class from
+            BaseRequestHandler and redefine its handle() method.  You can then run
+            various versions of the service by combining one of the server classes
+            with your request handler class.
+            
+            The request handler class must be different for datagram or stream
+            services.  This can be hidden by using the mix-in request handler
+            classes StreamRequestHandler or DatagramRequestHandler.
+            
+            Of course, you still have to use your head!
+            
+            For instance, it makes no sense to use a forking server if the service
+            contains state in memory that can be modified by requests (since the
+            modifications in the child process would never reach the initial state
+            kept in the parent process and passed to each child).  In this case,
+            you can use a threading server, but you will probably have to use
+            locks to avoid two requests that come in nearly simultaneous to apply
+            conflicting changes to the server state.
+            
+            On the other hand, if you are building e.g. an HTTP server, where all
+            data is stored externally (e.g. in the file system), a synchronous
+            class will essentially render the service "deaf" while one request is
+            being handled -- which may be for a very long time if a client is slow
+            to reqd all the data it has requested.  Here a threading or forking
+            server is appropriate.
+            
+            In some cases, it may be appropriate to process part of a request
+            synchronously, but to finish processing in a forked child depending on
+            the request data.  This can be implemented by using a synchronous
+            server and doing an explicit fork in the request handler class
+            handle() method.
+            
+            Another approach to handling multiple simultaneous requests in an
+            environment that supports neither threads nor fork (or where these are
+            too expensive or inappropriate for the service) is to maintain an
+            explicit table of partially finished requests and to use select() to
+            decide which request to work on next (or whether to handle a new
+            incoming request).  This is particularly important for stream services
+            where each client can potentially be connected for a long time (if
+            threads or subprocesses cannot be used).
+            
+            Future work:
+            - Standard classes for Sun RPC (which uses either UDP or TCP)
+            - Standard mix-in classes to implement various authentication
+              and encryption schemes
+            - Standard framework for select-based multiplexing
+            
+            XXX Open problems:
+            - What to do with out-of-band data?
+            
+            BaseServer:
+            - split generic "request" functionality out into BaseServer class.
+              Copyright (C) 2000  Luke Kenneth Casson Leighton <lkcl@samba.org>
+            
+              example: read entries from a SQL database (requires overriding
+              get_request() to return a table entry from the database).
+              entry is processed by a RequestHandlerClass.
+            
+             */
+            frame.setlocal("__version__", s$1);
+            frame.setlocal("socket", org.python.core.imp.importOne("socket", frame));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("os", org.python.core.imp.importOne("os", frame));
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12}));
+            if (frame.getname("hasattr").__call__(frame.getname("socket"), s$13).__nonzero__()) {
+                frame.getname("__all__").invoke("extend", new PyList(new PyObject[] {s$14, s$15, s$16, s$17}));
+            }
+            frame.setlocal("BaseServer", Py.makeClass("BaseServer", new PyObject[] {}, c$10_BaseServer, null));
+            frame.setlocal("TCPServer", Py.makeClass("TCPServer", new PyObject[] {frame.getname("BaseServer")}, c$18_TCPServer, null));
+            frame.setlocal("UDPServer", Py.makeClass("UDPServer", new PyObject[] {frame.getname("TCPServer")}, c$22_UDPServer, null));
+            frame.setlocal("ForkingMixIn", Py.makeClass("ForkingMixIn", new PyObject[] {}, c$25_ForkingMixIn, null));
+            frame.setlocal("ThreadingMixIn", Py.makeClass("ThreadingMixIn", new PyObject[] {}, c$27_ThreadingMixIn, null));
+            frame.setlocal("ForkingUDPServer", Py.makeClass("ForkingUDPServer", new PyObject[] {frame.getname("ForkingMixIn"), frame.getname("UDPServer")}, c$28_ForkingUDPServer, null));
+            frame.setlocal("ForkingTCPServer", Py.makeClass("ForkingTCPServer", new PyObject[] {frame.getname("ForkingMixIn"), frame.getname("TCPServer")}, c$29_ForkingTCPServer, null));
+            frame.setlocal("ThreadingUDPServer", Py.makeClass("ThreadingUDPServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("UDPServer")}, c$30_ThreadingUDPServer, null));
+            frame.setlocal("ThreadingTCPServer", Py.makeClass("ThreadingTCPServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("TCPServer")}, c$31_ThreadingTCPServer, null));
+            if (frame.getname("hasattr").__call__(frame.getname("socket"), s$13).__nonzero__()) {
+                frame.setlocal("UnixStreamServer", Py.makeClass("UnixStreamServer", new PyObject[] {frame.getname("TCPServer")}, c$32_UnixStreamServer, null));
+                frame.setlocal("UnixDatagramServer", Py.makeClass("UnixDatagramServer", new PyObject[] {frame.getname("UDPServer")}, c$33_UnixDatagramServer, null));
+                frame.setlocal("ThreadingUnixStreamServer", Py.makeClass("ThreadingUnixStreamServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("UnixStreamServer")}, c$34_ThreadingUnixStreamServer, null));
+                frame.setlocal("ThreadingUnixDatagramServer", Py.makeClass("ThreadingUnixDatagramServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("UnixDatagramServer")}, c$35_ThreadingUnixDatagramServer, null));
+            }
+            frame.setlocal("BaseRequestHandler", Py.makeClass("BaseRequestHandler", new PyObject[] {}, c$41_BaseRequestHandler, null));
+            frame.setlocal("StreamRequestHandler", Py.makeClass("StreamRequestHandler", new PyObject[] {frame.getname("BaseRequestHandler")}, c$44_StreamRequestHandler, null));
+            frame.setlocal("DatagramRequestHandler", Py.makeClass("DatagramRequestHandler", new PyObject[] {frame.getname("BaseRequestHandler")}, c$47_DatagramRequestHandler, null));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("SocketServer"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "SocketServer";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(SocketServer._PyInner.class, newargs, SocketServer.jpy$packages, SocketServer.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/StringIO$_PyInner.class b/server/jpywork/StringIO$_PyInner.class
new file mode 100644 (file)
index 0000000..0acaed0
Binary files /dev/null and b/server/jpywork/StringIO$_PyInner.class differ
diff --git a/server/jpywork/StringIO.class b/server/jpywork/StringIO.class
new file mode 100644 (file)
index 0000000..cb3e9b6
Binary files /dev/null and b/server/jpywork/StringIO.class differ
diff --git a/server/jpywork/StringIO.java b/server/jpywork/StringIO.java
new file mode 100644 (file)
index 0000000..4067b64
--- /dev/null
@@ -0,0 +1,507 @@
+import org.python.core.*;
+
+public class StringIO extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject i$1;
+        private static PyObject s$2;
+        private static PyObject i$3;
+        private static PyObject s$4;
+        private static PyObject i$5;
+        private static PyObject s$6;
+        private static PyObject i$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1_close;
+        private static PyCode c$2_isatty;
+        private static PyCode c$3_seek;
+        private static PyCode c$4_tell;
+        private static PyCode c$5_read;
+        private static PyCode c$6_readline;
+        private static PyCode c$7_readlines;
+        private static PyCode c$8_truncate;
+        private static PyCode c$9_write;
+        private static PyCode c$10_writelines;
+        private static PyCode c$11_flush;
+        private static PyCode c$12_getvalue;
+        private static PyCode c$13_StringIO;
+        private static PyCode c$14_test;
+        private static PyCode c$15_main;
+        private static void initConstants() {
+            s$0 = Py.newString("File-like objects that read from or write to a string buffer.\012\012This implements (nearly) all stdio methods.\012\012f = StringIO()      # ready for writing\012f = StringIO(buf)   # ready for reading\012f.close()           # explicitly release resources held\012flag = f.isatty()   # always false\012pos = f.tell()      # get current position\012f.seek(pos)         # set current position\012f.seek(pos, mode)   # mode 0: absolute; 1: relative; 2: relative to EOF\012buf = f.read()      # read until EOF\012buf = f.read(n)     # read up to n bytes\012buf = f.readline()  # read until end of line ('\012') or EOF\012list = f.readlines()# list of f.readline() results until EOF\012f.truncate([size])  # truncate file at to at most size (default: current pos)\012f.write(buf)        # write at current position\012f.writelines(list)  # for line in list: f.write(line)\012f.getvalue()        # return whole file's contents as a string\012\012Notes:\012- Using a real file is often faster (but less convenient).\012- There's also a much faster implementation in C, called cStringIO, but\012  it's not subclassable.\012- fileno() is left unimplemented so that code which uses it triggers\012  an exception early.\012- Seeking far beyond EOF and then writing will insert real null\012  bytes that occupy space in the buffer.\012- There's a simple test set (see end of this file).\012");
+            i$1 = Py.newInteger(22);
+            s$2 = Py.newString("StringIO");
+            i$3 = Py.newInteger(0);
+            s$4 = Py.newString("");
+            i$5 = Py.newInteger(1);
+            s$6 = Py.newString("I/O operation on closed file");
+            i$7 = Py.newInteger(2);
+            s$8 = Py.newString("\012");
+            s$9 = Py.newString("Negative size not allowed");
+            s$10 = Py.newString("\000");
+            s$11 = Py.newString("/etc/passwd");
+            s$12 = Py.newString("r");
+            s$13 = Py.newString("write failed");
+            s$14 = Py.newString("File length =");
+            s$15 = Py.newString("First line =");
+            s$16 = Py.newString("Second line =");
+            s$17 = Py.newString("bad result after seek back");
+            s$18 = Py.newString("bad result after seek back from EOF");
+            s$19 = Py.newString("Read");
+            s$20 = Py.newString("more lines");
+            s$21 = Py.newString("bad length");
+            s$22 = Py.newString("__main__");
+            s$23 = Py.newString("/usr/share/jython/Lib-cpython/StringIO.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(2, new String[] {"self", "buf"}, "/usr/share/jython/Lib-cpython/StringIO.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "close", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_isatty = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "isatty", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_seek = Py.newCode(3, new String[] {"self", "pos", "mode"}, "/usr/share/jython/Lib-cpython/StringIO.py", "seek", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_tell = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "tell", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_read = Py.newCode(2, new String[] {"self", "n", "r", "newpos"}, "/usr/share/jython/Lib-cpython/StringIO.py", "read", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_readline = Py.newCode(2, new String[] {"self", "length", "i", "r", "newpos"}, "/usr/share/jython/Lib-cpython/StringIO.py", "readline", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_readlines = Py.newCode(2, new String[] {"self", "sizehint", "line", "lines", "total"}, "/usr/share/jython/Lib-cpython/StringIO.py", "readlines", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_truncate = Py.newCode(2, new String[] {"self", "size"}, "/usr/share/jython/Lib-cpython/StringIO.py", "truncate", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_write = Py.newCode(2, new String[] {"self", "s", "newpos"}, "/usr/share/jython/Lib-cpython/StringIO.py", "write", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_writelines = Py.newCode(2, new String[] {"self", "list"}, "/usr/share/jython/Lib-cpython/StringIO.py", "writelines", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_flush = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "flush", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_getvalue = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "getvalue", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_StringIO = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/StringIO.py", "StringIO", false, false, funcTable, 13, null, null, 0, 0);
+            c$14_test = Py.newCode(0, new String[] {"length", "file", "f", "list", "here", "line2", "text", "sys", "lines", "line"}, "/usr/share/jython/Lib-cpython/StringIO.py", "test", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/StringIO.py", "main", false, false, funcTable, 15, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$15_main == null) _PyInner.initConstants();
+            return c$15_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.close$2(frame);
+                case 2:
+                return _PyInner.isatty$3(frame);
+                case 3:
+                return _PyInner.seek$4(frame);
+                case 4:
+                return _PyInner.tell$5(frame);
+                case 5:
+                return _PyInner.read$6(frame);
+                case 6:
+                return _PyInner.readline$7(frame);
+                case 7:
+                return _PyInner.readlines$8(frame);
+                case 8:
+                return _PyInner.truncate$9(frame);
+                case 9:
+                return _PyInner.write$10(frame);
+                case 10:
+                return _PyInner.writelines$11(frame);
+                case 11:
+                return _PyInner.flush$12(frame);
+                case 12:
+                return _PyInner.getvalue$13(frame);
+                case 13:
+                return _PyInner.StringIO$14(frame);
+                case 14:
+                return _PyInner.test$15(frame);
+                case 15:
+                return _PyInner.main$16(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            frame.getlocal(0).__setattr__("buf", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("len", frame.getglobal("len").__call__(frame.getlocal(1)));
+            frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {}));
+            frame.getlocal(0).__setattr__("pos", i$3);
+            frame.getlocal(0).__setattr__("closed", i$3);
+            frame.getlocal(0).__setattr__("softspace", i$3);
+            return Py.None;
+        }
+        
+        private static PyObject close$2(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("closed").__not__().__nonzero__()) {
+                frame.getlocal(0).__setattr__("closed", i$5);
+                frame.getlocal(0).__delattr__("buf");
+                frame.getlocal(0).__delattr__("pos");
+            }
+            return Py.None;
+        }
+        
+        private static PyObject isatty$3(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            return i$3;
+        }
+        
+        private static PyObject seek$4(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) {
+                t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist"));
+                t$1$PyObject = frame.getlocal(0);
+                t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject));
+                frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {}));
+            }
+            if (frame.getlocal(2)._eq(i$5).__nonzero__()) {
+                t$0$PyObject = frame.getlocal(0).__getattr__("pos");
+                frame.setlocal(1, frame.getlocal(1).__iadd__(t$0$PyObject));
+            }
+            else if (frame.getlocal(2)._eq(i$7).__nonzero__()) {
+                t$0$PyObject = frame.getlocal(0).__getattr__("len");
+                frame.setlocal(1, frame.getlocal(1).__iadd__(t$0$PyObject));
+            }
+            frame.getlocal(0).__setattr__("pos", frame.getglobal("max").__call__(i$3, frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject tell$5(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            return frame.getlocal(0).__getattr__("pos");
+        }
+        
+        private static PyObject read$6(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) {
+                t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist"));
+                t$1$PyObject = frame.getlocal(0);
+                t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject));
+                frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {}));
+            }
+            if (frame.getlocal(1)._lt(i$3).__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(0).__getattr__("len"));
+            }
+            else {
+                frame.setlocal(3, frame.getglobal("min").__call__(frame.getlocal(0).__getattr__("pos")._add(frame.getlocal(1)), frame.getlocal(0).__getattr__("len")));
+            }
+            frame.setlocal(2, frame.getlocal(0).__getattr__("buf").__getslice__(frame.getlocal(0).__getattr__("pos"), frame.getlocal(3), null));
+            frame.getlocal(0).__setattr__("pos", frame.getlocal(3));
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject readline$7(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) {
+                t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist"));
+                t$1$PyObject = frame.getlocal(0);
+                t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject));
+                frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {}));
+            }
+            frame.setlocal(2, frame.getlocal(0).__getattr__("buf").invoke("find", s$8, frame.getlocal(0).__getattr__("pos")));
+            if (frame.getlocal(2)._lt(i$3).__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(0).__getattr__("len"));
+            }
+            else {
+                frame.setlocal(4, frame.getlocal(2)._add(i$5));
+            }
+            if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("pos")._add(frame.getlocal(1))._lt(frame.getlocal(4)).__nonzero__()) {
+                    frame.setlocal(4, frame.getlocal(0).__getattr__("pos")._add(frame.getlocal(1)));
+                }
+            }
+            frame.setlocal(3, frame.getlocal(0).__getattr__("buf").__getslice__(frame.getlocal(0).__getattr__("pos"), frame.getlocal(4), null));
+            frame.getlocal(0).__setattr__("pos", frame.getlocal(4));
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject readlines$8(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(4, i$3);
+            frame.setlocal(3, new PyList(new PyObject[] {}));
+            frame.setlocal(2, frame.getlocal(0).invoke("readline"));
+            while (frame.getlocal(2).__nonzero__()) {
+                frame.getlocal(3).invoke("append", frame.getlocal(2));
+                t$0$PyObject = frame.getglobal("len").__call__(frame.getlocal(2));
+                frame.setlocal(4, frame.getlocal(4).__iadd__(t$0$PyObject));
+                if ((i$3._lt(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject._le(frame.getlocal(4)) : Py.Zero).__nonzero__()) {
+                    break;
+                }
+                frame.setlocal(2, frame.getlocal(0).invoke("readline"));
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject truncate$9(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(0).__getattr__("pos"));
+            }
+            else if (frame.getlocal(1)._lt(i$3).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("IOError").__call__(frame.getglobal("EINVAL"), s$9));
+            }
+            else if (frame.getlocal(1)._lt(frame.getlocal(0).__getattr__("pos")).__nonzero__()) {
+                frame.getlocal(0).__setattr__("pos", frame.getlocal(1));
+            }
+            frame.getlocal(0).__setattr__("buf", frame.getlocal(0).invoke("getvalue").__getslice__(null, frame.getlocal(1), null));
+            return Py.None;
+        }
+        
+        private static PyObject write$10(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            if (frame.getlocal(1).__not__().__nonzero__()) {
+                return Py.None;
+            }
+            if (frame.getlocal(0).__getattr__("pos")._gt(frame.getlocal(0).__getattr__("len")).__nonzero__()) {
+                frame.getlocal(0).__getattr__("buflist").invoke("append", s$10._mul(frame.getlocal(0).__getattr__("pos")._sub(frame.getlocal(0).__getattr__("len"))));
+                frame.getlocal(0).__setattr__("len", frame.getlocal(0).__getattr__("pos"));
+            }
+            frame.setlocal(2, frame.getlocal(0).__getattr__("pos")._add(frame.getglobal("len").__call__(frame.getlocal(1))));
+            if (frame.getlocal(0).__getattr__("pos")._lt(frame.getlocal(0).__getattr__("len")).__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) {
+                    t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist"));
+                    t$1$PyObject = frame.getlocal(0);
+                    t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject));
+                    frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {}));
+                }
+                frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {frame.getlocal(0).__getattr__("buf").__getslice__(null, frame.getlocal(0).__getattr__("pos"), null), frame.getlocal(1), frame.getlocal(0).__getattr__("buf").__getslice__(frame.getlocal(2), null, null)}));
+                frame.getlocal(0).__setattr__("buf", s$4);
+                if (frame.getlocal(2)._gt(frame.getlocal(0).__getattr__("len")).__nonzero__()) {
+                    frame.getlocal(0).__setattr__("len", frame.getlocal(2));
+                }
+            }
+            else {
+                frame.getlocal(0).__getattr__("buflist").invoke("append", frame.getlocal(1));
+                frame.getlocal(0).__setattr__("len", frame.getlocal(2));
+            }
+            frame.getlocal(0).__setattr__("pos", frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject writelines$11(PyFrame frame) {
+            frame.getlocal(0).invoke("write", s$4.invoke("join", frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject flush$12(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("closed").__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$6);
+            }
+            return Py.None;
+        }
+        
+        private static PyObject getvalue$13(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) {
+                t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist"));
+                t$1$PyObject = frame.getlocal(0);
+                t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject));
+                frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {}));
+            }
+            return frame.getlocal(0).__getattr__("buf");
+        }
+        
+        private static PyObject StringIO$14(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {s$4}, c$0___init__));
+            frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_close));
+            frame.setlocal("isatty", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_isatty));
+            frame.setlocal("seek", new PyFunction(frame.f_globals, new PyObject[] {i$3}, c$3_seek));
+            frame.setlocal("tell", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_tell));
+            frame.setlocal("read", new PyFunction(frame.f_globals, new PyObject[] {i$5.__neg__()}, c$5_read));
+            frame.setlocal("readline", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$6_readline));
+            frame.setlocal("readlines", new PyFunction(frame.f_globals, new PyObject[] {i$3}, c$7_readlines));
+            frame.setlocal("truncate", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$8_truncate));
+            frame.setlocal("write", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_write));
+            frame.setlocal("writelines", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_writelines));
+            frame.setlocal("flush", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_flush));
+            frame.setlocal("getvalue", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_getvalue));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject test$15(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(7, org.python.core.imp.importOne("sys", frame));
+            if (frame.getlocal(7).__getattr__("argv").__getslice__(i$5, null, null).__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(7).__getattr__("argv").__getitem__(i$5));
+            }
+            else {
+                frame.setlocal(1, s$11);
+            }
+            frame.setlocal(8, frame.getglobal("open").__call__(frame.getlocal(1), s$12).invoke("readlines"));
+            frame.setlocal(6, frame.getglobal("open").__call__(frame.getlocal(1), s$12).invoke("read"));
+            frame.setlocal(2, frame.getglobal("StringIO").__call__());
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(8).__getslice__(null, i$7.__neg__(), null);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(9, t$0$PyObject);
+                frame.getlocal(2).invoke("write", frame.getlocal(9));
+            }
+            frame.getlocal(2).invoke("writelines", frame.getlocal(8).__getslice__(i$7.__neg__(), null, null));
+            if (frame.getlocal(2).invoke("getvalue")._ne(frame.getlocal(6)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("RuntimeError"), s$13);
+            }
+            frame.setlocal(0, frame.getlocal(2).invoke("tell"));
+            Py.printComma(s$14);
+            Py.println(frame.getlocal(0));
+            frame.getlocal(2).invoke("seek", frame.getglobal("len").__call__(frame.getlocal(8).__getitem__(i$3)));
+            frame.getlocal(2).invoke("write", frame.getlocal(8).__getitem__(i$5));
+            frame.getlocal(2).invoke("seek", i$3);
+            Py.printComma(s$15);
+            Py.println(frame.getlocal(2).invoke("readline").__repr__());
+            frame.setlocal(4, frame.getlocal(2).invoke("tell"));
+            frame.setlocal(9, frame.getlocal(2).invoke("readline"));
+            Py.printComma(s$16);
+            Py.println(frame.getlocal(9).__repr__());
+            frame.getlocal(2).invoke("seek", frame.getglobal("len").__call__(frame.getlocal(9)).__neg__(), i$5);
+            frame.setlocal(5, frame.getlocal(2).invoke("read", frame.getglobal("len").__call__(frame.getlocal(9))));
+            if (frame.getlocal(9)._ne(frame.getlocal(5)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("RuntimeError"), s$17);
+            }
+            frame.getlocal(2).invoke("seek", frame.getglobal("len").__call__(frame.getlocal(5)), i$5);
+            frame.setlocal(3, frame.getlocal(2).invoke("readlines"));
+            frame.setlocal(9, frame.getlocal(3).__getitem__(i$5.__neg__()));
+            frame.getlocal(2).invoke("seek", frame.getlocal(2).invoke("tell")._sub(frame.getglobal("len").__call__(frame.getlocal(9))));
+            frame.setlocal(5, frame.getlocal(2).invoke("read"));
+            if (frame.getlocal(9)._ne(frame.getlocal(5)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("RuntimeError"), s$18);
+            }
+            Py.printComma(s$19);
+            Py.printComma(frame.getglobal("len").__call__(frame.getlocal(3)));
+            Py.println(s$20);
+            Py.printComma(s$14);
+            Py.println(frame.getlocal(2).invoke("tell"));
+            if (frame.getlocal(2).invoke("tell")._ne(frame.getlocal(0)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("RuntimeError"), s$21);
+            }
+            frame.getlocal(2).invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject main$16(PyFrame frame) {
+            frame.setglobal("__file__", s$23);
+            
+            PyObject[] imp_accu;
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* File-like objects that read from or write to a string buffer.
+            
+            This implements (nearly) all stdio methods.
+            
+            f = StringIO()      # ready for writing
+            f = StringIO(buf)   # ready for reading
+            f.close()           # explicitly release resources held
+            flag = f.isatty()   # always false
+            pos = f.tell()      # get current position
+            f.seek(pos)         # set current position
+            f.seek(pos, mode)   # mode 0: absolute; 1: relative; 2: relative to EOF
+            buf = f.read()      # read until EOF
+            buf = f.read(n)     # read up to n bytes
+            buf = f.readline()  # read until end of line ('
+            ') or EOF
+            list = f.readlines()# list of f.readline() results until EOF
+            f.truncate([size])  # truncate file at to at most size (default: current pos)
+            f.write(buf)        # write at current position
+            f.writelines(list)  # for line in list: f.write(line)
+            f.getvalue()        # return whole file's contents as a string
+            
+            Notes:
+            - Using a real file is often faster (but less convenient).
+            - There's also a much faster implementation in C, called cStringIO, but
+              it's not subclassable.
+            - fileno() is left unimplemented so that code which uses it triggers
+              an exception early.
+            - Seeking far beyond EOF and then writing will insert real null
+              bytes that occupy space in the buffer.
+            - There's a simple test set (see end of this file).
+             */
+            try {
+                imp_accu = org.python.core.imp.importFrom("errno", new String[] {"EINVAL"}, frame);
+                frame.setlocal("EINVAL", imp_accu[0]);
+                imp_accu = null;
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("ImportError"))) {
+                    frame.setlocal("EINVAL", i$1);
+                }
+                else throw t$0$PyException;
+            }
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$2}));
+            frame.setlocal("StringIO", Py.makeClass("StringIO", new PyObject[] {}, c$13_StringIO, null));
+            frame.setlocal("test", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_test));
+            if (frame.getname("__name__")._eq(s$22).__nonzero__()) {
+                frame.getname("test").__call__();
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("StringIO"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "StringIO";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(StringIO._PyInner.class, newargs, StringIO.jpy$packages, StringIO.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/UserDict$_PyInner.class b/server/jpywork/UserDict$_PyInner.class
new file mode 100644 (file)
index 0000000..2a922b4
Binary files /dev/null and b/server/jpywork/UserDict$_PyInner.class differ
diff --git a/server/jpywork/UserDict.class b/server/jpywork/UserDict.class
new file mode 100644 (file)
index 0000000..79fe166
Binary files /dev/null and b/server/jpywork/UserDict.class differ
diff --git a/server/jpywork/UserDict.java b/server/jpywork/UserDict.java
new file mode 100644 (file)
index 0000000..54648b8
--- /dev/null
@@ -0,0 +1,258 @@
+import org.python.core.*;
+
+public class UserDict extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1___repr__;
+        private static PyCode c$2___cmp__;
+        private static PyCode c$3___len__;
+        private static PyCode c$4___getitem__;
+        private static PyCode c$5___setitem__;
+        private static PyCode c$6___delitem__;
+        private static PyCode c$7_clear;
+        private static PyCode c$8_copy;
+        private static PyCode c$9_keys;
+        private static PyCode c$10_items;
+        private static PyCode c$11_values;
+        private static PyCode c$12_has_key;
+        private static PyCode c$13_update;
+        private static PyCode c$14_get;
+        private static PyCode c$15_setdefault;
+        private static PyCode c$16_popitem;
+        private static PyCode c$17_UserDict;
+        private static PyCode c$18_main;
+        private static void initConstants() {
+            s$0 = Py.newString("A more or less complete user-defined wrapper around dictionary objects.");
+            s$1 = Py.newString("/usr/share/jython/Lib-cpython/UserDict.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__repr__", false, false, funcTable, 1, null, null, 0, 1);
+            c$2___cmp__ = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__cmp__", false, false, funcTable, 2, null, null, 0, 1);
+            c$3___len__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__len__", false, false, funcTable, 3, null, null, 0, 1);
+            c$4___getitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__getitem__", false, false, funcTable, 4, null, null, 0, 1);
+            c$5___setitem__ = Py.newCode(3, new String[] {"self", "key", "item"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__setitem__", false, false, funcTable, 5, null, null, 0, 1);
+            c$6___delitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__delitem__", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_clear = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "clear", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_copy = Py.newCode(1, new String[] {"self", "copy"}, "/usr/share/jython/Lib-cpython/UserDict.py", "copy", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_keys = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "keys", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_items = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "items", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_values = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "values", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_has_key = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib-cpython/UserDict.py", "has_key", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_update = Py.newCode(2, new String[] {"self", "dict", "v", "k"}, "/usr/share/jython/Lib-cpython/UserDict.py", "update", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_get = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib-cpython/UserDict.py", "get", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_setdefault = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib-cpython/UserDict.py", "setdefault", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_popitem = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "popitem", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_UserDict = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/UserDict.py", "UserDict", false, false, funcTable, 17, null, null, 0, 0);
+            c$18_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/UserDict.py", "main", false, false, funcTable, 18, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$18_main == null) _PyInner.initConstants();
+            return c$18_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.__repr__$2(frame);
+                case 2:
+                return _PyInner.__cmp__$3(frame);
+                case 3:
+                return _PyInner.__len__$4(frame);
+                case 4:
+                return _PyInner.__getitem__$5(frame);
+                case 5:
+                return _PyInner.__setitem__$6(frame);
+                case 6:
+                return _PyInner.__delitem__$7(frame);
+                case 7:
+                return _PyInner.clear$8(frame);
+                case 8:
+                return _PyInner.copy$9(frame);
+                case 9:
+                return _PyInner.keys$10(frame);
+                case 10:
+                return _PyInner.items$11(frame);
+                case 11:
+                return _PyInner.values$12(frame);
+                case 12:
+                return _PyInner.has_key$13(frame);
+                case 13:
+                return _PyInner.update$14(frame);
+                case 14:
+                return _PyInner.get$15(frame);
+                case 15:
+                return _PyInner.setdefault$16(frame);
+                case 16:
+                return _PyInner.popitem$17(frame);
+                case 17:
+                return _PyInner.UserDict$18(frame);
+                case 18:
+                return _PyInner.main$19(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            frame.getlocal(0).__setattr__("data", new PyDictionary(new PyObject[] {}));
+            if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) {
+                frame.getlocal(0).invoke("update", frame.getlocal(1));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __repr__$2(PyFrame frame) {
+            return frame.getglobal("repr").__call__(frame.getlocal(0).__getattr__("data"));
+        }
+        
+        private static PyObject __cmp__$3(PyFrame frame) {
+            if (frame.getglobal("isinstance").__call__(frame.getlocal(1), frame.getglobal("UserDict")).__nonzero__()) {
+                return frame.getglobal("cmp").__call__(frame.getlocal(0).__getattr__("data"), frame.getlocal(1).__getattr__("data"));
+            }
+            else {
+                return frame.getglobal("cmp").__call__(frame.getlocal(0).__getattr__("data"), frame.getlocal(1));
+            }
+        }
+        
+        private static PyObject __len__$4(PyFrame frame) {
+            return frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("data"));
+        }
+        
+        private static PyObject __getitem__$5(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").__getitem__(frame.getlocal(1));
+        }
+        
+        private static PyObject __setitem__$6(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(1), frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject __delitem__$7(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").__delitem__(frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject clear$8(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").invoke("clear");
+            return Py.None;
+        }
+        
+        private static PyObject copy$9(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("__class__")._is(frame.getglobal("UserDict")).__nonzero__()) {
+                return frame.getglobal("UserDict").__call__(frame.getlocal(0).__getattr__("data"));
+            }
+            frame.setlocal(1, org.python.core.imp.importOne("copy", frame));
+            return frame.getlocal(1).__getattr__("copy").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject keys$10(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").invoke("keys");
+        }
+        
+        private static PyObject items$11(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").invoke("items");
+        }
+        
+        private static PyObject values$12(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").invoke("values");
+        }
+        
+        private static PyObject has_key$13(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").invoke("has_key", frame.getlocal(1));
+        }
+        
+        private static PyObject update$14(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getglobal("isinstance").__call__(frame.getlocal(1), frame.getglobal("UserDict")).__nonzero__()) {
+                frame.getlocal(0).__getattr__("data").invoke("update", frame.getlocal(1).__getattr__("data"));
+            }
+            else if (frame.getglobal("isinstance").__call__(frame.getlocal(1), frame.getglobal("type").__call__(frame.getlocal(0).__getattr__("data"))).__nonzero__()) {
+                frame.getlocal(0).__getattr__("data").invoke("update", frame.getlocal(1));
+            }
+            else {
+                t$0$int = 0;
+                t$1$PyObject = frame.getlocal(1).invoke("items");
+                while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                    frame.setlocal(3, t$0$PyObject__[0]);
+                    frame.setlocal(2, t$0$PyObject__[1]);
+                    frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(3), frame.getlocal(2));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject get$15(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").invoke("get", frame.getlocal(1), frame.getlocal(2));
+        }
+        
+        private static PyObject setdefault$16(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("data").invoke("has_key", frame.getlocal(1)).__not__().__nonzero__()) {
+                frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(1), frame.getlocal(2));
+            }
+            return frame.getlocal(0).__getattr__("data").__getitem__(frame.getlocal(1));
+        }
+        
+        private static PyObject popitem$17(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").invoke("popitem");
+        }
+        
+        private static PyObject UserDict$18(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$0___init__));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$1___repr__));
+            frame.setlocal("__cmp__", new PyFunction(frame.f_globals, new PyObject[] {}, c$2___cmp__));
+            frame.setlocal("__len__", new PyFunction(frame.f_globals, new PyObject[] {}, c$3___len__));
+            frame.setlocal("__getitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$4___getitem__));
+            frame.setlocal("__setitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$5___setitem__));
+            frame.setlocal("__delitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$6___delitem__));
+            frame.setlocal("clear", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_clear));
+            frame.setlocal("copy", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_copy));
+            frame.setlocal("keys", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_keys));
+            frame.setlocal("items", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_items));
+            frame.setlocal("values", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_values));
+            frame.setlocal("has_key", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_has_key));
+            frame.setlocal("update", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_update));
+            frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$14_get));
+            frame.setlocal("setdefault", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$15_setdefault));
+            frame.setlocal("popitem", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_popitem));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$19(PyFrame frame) {
+            frame.setglobal("__file__", s$1);
+            
+            /* A more or less complete user-defined wrapper around dictionary objects. */
+            frame.setlocal("UserDict", Py.makeClass("UserDict", new PyObject[] {}, c$17_UserDict, null));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("UserDict"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "UserDict";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(UserDict._PyInner.class, newargs, UserDict.jpy$packages, UserDict.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/atexit$_PyInner.class b/server/jpywork/atexit$_PyInner.class
new file mode 100644 (file)
index 0000000..e06407e
Binary files /dev/null and b/server/jpywork/atexit$_PyInner.class differ
diff --git a/server/jpywork/atexit.class b/server/jpywork/atexit.class
new file mode 100644 (file)
index 0000000..f7a629f
Binary files /dev/null and b/server/jpywork/atexit.class differ
diff --git a/server/jpywork/atexit.java b/server/jpywork/atexit.java
new file mode 100644 (file)
index 0000000..eea7b51
--- /dev/null
@@ -0,0 +1,185 @@
+import org.python.core.*;
+
+public class atexit extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject i$8;
+        private static PyObject i$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0__run_exitfuncs;
+        private static PyCode c$1_register;
+        private static PyCode c$2_x1;
+        private static PyCode c$3_x2;
+        private static PyCode c$4_x3;
+        private static PyCode c$5_main;
+        private static void initConstants() {
+            s$0 = Py.newString("\012atexit.py - allow programmer to define multiple exit functions to be executed\012upon normal program termination.\012\012One public function, register, is defined.\012");
+            s$1 = Py.newString("register");
+            s$2 = Py.newString("run any registered exit functions\012\012    _exithandlers is traversed in reverse order so functions are executed\012    last in, first out.\012    ");
+            s$3 = Py.newString("register a function to be executed upon normal program termination\012\012    func - function to be called at exit\012    targs - optional arguments to pass to func\012    kargs - optional keyword arguments to pass to func\012    ");
+            s$4 = Py.newString("__main__");
+            s$5 = Py.newString("running x1");
+            s$6 = Py.newString("running x2(%s)");
+            s$7 = Py.newString("running x3(%s, kwd=%s)");
+            i$8 = Py.newInteger(12);
+            i$9 = Py.newInteger(5);
+            s$10 = Py.newString("bar");
+            s$11 = Py.newString("no kwd args");
+            s$12 = Py.newString("/usr/share/jython/Lib-cpython/atexit.py");
+            funcTable = new _PyInner();
+            c$0__run_exitfuncs = Py.newCode(0, new String[] {"targs", "func", "kargs"}, "/usr/share/jython/Lib-cpython/atexit.py", "_run_exitfuncs", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_register = Py.newCode(3, new String[] {"func", "targs", "kargs"}, "/usr/share/jython/Lib-cpython/atexit.py", "register", true, true, funcTable, 1, null, null, 0, 1);
+            c$2_x1 = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/atexit.py", "x1", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_x2 = Py.newCode(1, new String[] {"n"}, "/usr/share/jython/Lib-cpython/atexit.py", "x2", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_x3 = Py.newCode(2, new String[] {"n", "kwd"}, "/usr/share/jython/Lib-cpython/atexit.py", "x3", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/atexit.py", "main", false, false, funcTable, 5, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$5_main == null) _PyInner.initConstants();
+            return c$5_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner._run_exitfuncs$1(frame);
+                case 1:
+                return _PyInner.register$2(frame);
+                case 2:
+                return _PyInner.x1$3(frame);
+                case 3:
+                return _PyInner.x2$4(frame);
+                case 4:
+                return _PyInner.x3$5(frame);
+                case 5:
+                return _PyInner.main$6(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject _run_exitfuncs$1(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* run any registered exit functions
+            
+                _exithandlers is traversed in reverse order so functions are executed
+                last in, first out.
+                 */
+            while (frame.getglobal("_exithandlers").__nonzero__()) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("_exithandlers").invoke("pop"), 3);
+                frame.setlocal(1, t$0$PyObject__[0]);
+                frame.setlocal(0, t$0$PyObject__[1]);
+                frame.setlocal(2, t$0$PyObject__[2]);
+                frame.getglobal("apply").__call__(frame.getlocal(1), frame.getlocal(0), frame.getlocal(2));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject register$2(PyFrame frame) {
+            /* register a function to be executed upon normal program termination
+            
+                func - function to be called at exit
+                targs - optional arguments to pass to func
+                kargs - optional keyword arguments to pass to func
+                 */
+            frame.getglobal("_exithandlers").invoke("append", new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2)}));
+            return Py.None;
+        }
+        
+        private static PyObject x1$3(PyFrame frame) {
+            Py.println(s$5);
+            return Py.None;
+        }
+        
+        private static PyObject x2$4(PyFrame frame) {
+            Py.println(s$6._mod(frame.getlocal(0).__repr__()));
+            return Py.None;
+        }
+        
+        private static PyObject x3$5(PyFrame frame) {
+            Py.println(s$7._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__repr__(), frame.getlocal(1).__repr__()})));
+            return Py.None;
+        }
+        
+        private static PyObject main$6(PyFrame frame) {
+            frame.setglobal("__file__", s$12);
+            
+            // Temporary Variables
+            boolean t$0$boolean;
+            PyException t$0$PyException;
+            
+            // Code
+            /* 
+            atexit.py - allow programmer to define multiple exit functions to be executed
+            upon normal program termination.
+            
+            One public function, register, is defined.
+             */
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1}));
+            frame.setlocal("_exithandlers", new PyList(new PyObject[] {}));
+            frame.setlocal("_run_exitfuncs", new PyFunction(frame.f_globals, new PyObject[] {}, c$0__run_exitfuncs));
+            frame.setlocal("register", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_register));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            t$0$boolean = true;
+            try {
+                frame.setlocal("x", frame.getname("sys").__getattr__("exitfunc"));
+            }
+            catch (Throwable x$0) {
+                t$0$boolean = false;
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("AttributeError"))) {
+                    frame.getname("sys").__setattr__("exitfunc", frame.getname("_run_exitfuncs"));
+                }
+                else throw t$0$PyException;
+            }
+            if (t$0$boolean) {
+                if (frame.getname("x")._ne(frame.getname("_run_exitfuncs")).__nonzero__()) {
+                    frame.getname("register").__call__(frame.getname("x"));
+                }
+            }
+            frame.dellocal("sys");
+            if (frame.getname("__name__")._eq(s$4).__nonzero__()) {
+                frame.setlocal("x1", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_x1));
+                frame.setlocal("x2", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_x2));
+                frame.setlocal("x3", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$4_x3));
+                frame.getname("register").__call__(frame.getname("x1"));
+                frame.getname("register").__call__(frame.getname("x2"), i$8);
+                frame.getname("register").__call__(frame.getname("x3"), i$9, s$10);
+                frame.getname("register").__call__(frame.getname("x3"), s$11);
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("atexit"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "atexit";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(atexit._PyInner.class, newargs, atexit.jpy$packages, atexit.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/calendar$_PyInner.class b/server/jpywork/calendar$_PyInner.class
new file mode 100644 (file)
index 0000000..d065b44
Binary files /dev/null and b/server/jpywork/calendar$_PyInner.class differ
diff --git a/server/jpywork/calendar.class b/server/jpywork/calendar.class
new file mode 100644 (file)
index 0000000..cff124e
Binary files /dev/null and b/server/jpywork/calendar.class differ
diff --git a/server/jpywork/calendar.java b/server/jpywork/calendar.java
new file mode 100644 (file)
index 0000000..e7320b7
--- /dev/null
@@ -0,0 +1,651 @@
+import org.python.core.*;
+
+public class calendar extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject i$14;
+        private static PyObject i$15;
+        private static PyObject i$16;
+        private static PyObject i$17;
+        private static PyObject i$18;
+        private static PyObject i$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyObject s$52;
+        private static PyObject s$53;
+        private static PyObject s$54;
+        private static PyObject s$55;
+        private static PyObject s$56;
+        private static PyObject s$57;
+        private static PyObject s$58;
+        private static PyObject i$59;
+        private static PyObject s$60;
+        private static PyObject s$61;
+        private static PyObject s$62;
+        private static PyObject i$63;
+        private static PyObject i$64;
+        private static PyObject i$65;
+        private static PyObject s$66;
+        private static PyObject s$67;
+        private static PyObject i$68;
+        private static PyObject s$69;
+        private static PyObject i$70;
+        private static PyObject s$71;
+        private static PyObject s$72;
+        private static PyObject i$73;
+        private static PyObject s$74;
+        private static PyObject s$75;
+        private static PyObject s$76;
+        private static PyObject s$77;
+        private static PyObject s$78;
+        private static PyObject s$79;
+        private static PyObject i$80;
+        private static PyObject s$81;
+        private static PyObject s$82;
+        private static PyObject s$83;
+        private static PyObject i$84;
+        private static PyObject s$85;
+        private static PyObject s$86;
+        private static PyObject s$87;
+        private static PyObject s$88;
+        private static PyObject i$89;
+        private static PyObject s$90;
+        private static PyObject i$91;
+        private static PyObject i$92;
+        private static PyObject i$93;
+        private static PyObject s$94;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_firstweekday;
+        private static PyCode c$1_setfirstweekday;
+        private static PyCode c$2_isleap;
+        private static PyCode c$3_leapdays;
+        private static PyCode c$4_weekday;
+        private static PyCode c$5_monthrange;
+        private static PyCode c$6_monthcalendar;
+        private static PyCode c$7__center;
+        private static PyCode c$8_prweek;
+        private static PyCode c$9_week;
+        private static PyCode c$10_weekheader;
+        private static PyCode c$11_prmonth;
+        private static PyCode c$12_month;
+        private static PyCode c$13_format3c;
+        private static PyCode c$14_format3cstring;
+        private static PyCode c$15_prcal;
+        private static PyCode c$16_calendar;
+        private static PyCode c$17_timegm;
+        private static PyCode c$18_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Calendar printing functions\012\012Note when comparing these calendars to the ones printed by cal(1): By\012default, these calendars have Monday as the first day of the week, and\012Sunday as the last (the European convention). Use setfirstweekday() to\012set the first day of the week (0=Monday, 6=Sunday).");
+            s$1 = Py.newString("error");
+            s$2 = Py.newString("setfirstweekday");
+            s$3 = Py.newString("firstweekday");
+            s$4 = Py.newString("isleap");
+            s$5 = Py.newString("leapdays");
+            s$6 = Py.newString("weekday");
+            s$7 = Py.newString("monthrange");
+            s$8 = Py.newString("monthcalendar");
+            s$9 = Py.newString("prmonth");
+            s$10 = Py.newString("month");
+            s$11 = Py.newString("prcal");
+            s$12 = Py.newString("calendar");
+            s$13 = Py.newString("timegm");
+            i$14 = Py.newInteger(1);
+            i$15 = Py.newInteger(2);
+            i$16 = Py.newInteger(0);
+            i$17 = Py.newInteger(31);
+            i$18 = Py.newInteger(28);
+            i$19 = Py.newInteger(30);
+            s$20 = Py.newString("Monday");
+            s$21 = Py.newString("Tuesday");
+            s$22 = Py.newString("Wednesday");
+            s$23 = Py.newString("Thursday");
+            s$24 = Py.newString("Friday");
+            s$25 = Py.newString("Saturday");
+            s$26 = Py.newString("Sunday");
+            s$27 = Py.newString("Mon");
+            s$28 = Py.newString("Tue");
+            s$29 = Py.newString("Wed");
+            s$30 = Py.newString("Thu");
+            s$31 = Py.newString("Fri");
+            s$32 = Py.newString("Sat");
+            s$33 = Py.newString("Sun");
+            s$34 = Py.newString("");
+            s$35 = Py.newString("January");
+            s$36 = Py.newString("February");
+            s$37 = Py.newString("March");
+            s$38 = Py.newString("April");
+            s$39 = Py.newString("May");
+            s$40 = Py.newString("June");
+            s$41 = Py.newString("July");
+            s$42 = Py.newString("August");
+            s$43 = Py.newString("September");
+            s$44 = Py.newString("October");
+            s$45 = Py.newString("November");
+            s$46 = Py.newString("December");
+            s$47 = Py.newString("   ");
+            s$48 = Py.newString("Jan");
+            s$49 = Py.newString("Feb");
+            s$50 = Py.newString("Mar");
+            s$51 = Py.newString("Apr");
+            s$52 = Py.newString("Jun");
+            s$53 = Py.newString("Jul");
+            s$54 = Py.newString("Aug");
+            s$55 = Py.newString("Sep");
+            s$56 = Py.newString("Oct");
+            s$57 = Py.newString("Nov");
+            s$58 = Py.newString("Dec");
+            i$59 = Py.newInteger(7);
+            s$60 = Py.newString("Set weekday (Monday=0, Sunday=6) to start each week.");
+            s$61 = Py.newString("bad weekday number; must be 0 (Monday) to 6 (Sunday)");
+            s$62 = Py.newString("Return 1 for leap years, 0 for non-leap years.");
+            i$63 = Py.newInteger(4);
+            i$64 = Py.newInteger(100);
+            i$65 = Py.newInteger(400);
+            s$66 = Py.newString("Return number of leap years in range [y1, y2).\012       Assume y1 <= y2.");
+            s$67 = Py.newString("Return weekday (0-6 ~ Mon-Sun) for year (1970-...), month (1-12),\012       day (1-31).");
+            i$68 = Py.newInteger(6);
+            s$69 = Py.newString("Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for\012       year, month.");
+            i$70 = Py.newInteger(12);
+            s$71 = Py.newString("bad month number");
+            s$72 = Py.newString("Return a matrix representing a month's calendar.\012       Each row represents a week; days outside this month are zero.");
+            i$73 = Py.newInteger(5);
+            s$74 = Py.newString("Center a string in a field.");
+            s$75 = Py.newString(" ");
+            s$76 = Py.newString("Print a single week (no newline).");
+            s$77 = Py.newString("Returns a single week in a string (no newline).");
+            s$78 = Py.newString("%2i");
+            s$79 = Py.newString("Return a header for a week.");
+            i$80 = Py.newInteger(9);
+            s$81 = Py.newString("Print a month's calendar.");
+            s$82 = Py.newString("Return a month's calendar string (multi-line).");
+            s$83 = Py.newString("\012");
+            i$84 = Py.newInteger(3);
+            s$85 = Py.newString("Prints 3-column formatting for year calendars");
+            s$86 = Py.newString("Returns a string formatted from 3 strings, centered within 3 columns.");
+            s$87 = Py.newString("Print a year's calendar.");
+            s$88 = Py.newString("Returns a year's calendar as a multi-line string.");
+            i$89 = Py.newInteger(1970);
+            s$90 = Py.newString("Unrelated but handy function to calculate Unix timestamp from GMT.");
+            i$91 = Py.newInteger(365);
+            i$92 = Py.newInteger(24);
+            i$93 = Py.newInteger(60);
+            s$94 = Py.newString("/usr/share/jython/Lib-cpython/calendar.py");
+            funcTable = new _PyInner();
+            c$0_firstweekday = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/calendar.py", "firstweekday", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_setfirstweekday = Py.newCode(1, new String[] {"weekday"}, "/usr/share/jython/Lib-cpython/calendar.py", "setfirstweekday", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_isleap = Py.newCode(1, new String[] {"year"}, "/usr/share/jython/Lib-cpython/calendar.py", "isleap", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_leapdays = Py.newCode(2, new String[] {"y1", "y2"}, "/usr/share/jython/Lib-cpython/calendar.py", "leapdays", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_weekday = Py.newCode(3, new String[] {"year", "month", "day", "tuple", "secs"}, "/usr/share/jython/Lib-cpython/calendar.py", "weekday", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_monthrange = Py.newCode(2, new String[] {"year", "month", "ndays", "day1"}, "/usr/share/jython/Lib-cpython/calendar.py", "monthrange", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_monthcalendar = Py.newCode(2, new String[] {"year", "month", "ndays", "i", "day", "day1", "r7", "row", "rows"}, "/usr/share/jython/Lib-cpython/calendar.py", "monthcalendar", false, false, funcTable, 6, null, null, 0, 1);
+            c$7__center = Py.newCode(2, new String[] {"str", "width", "n"}, "/usr/share/jython/Lib-cpython/calendar.py", "_center", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_prweek = Py.newCode(2, new String[] {"theweek", "width"}, "/usr/share/jython/Lib-cpython/calendar.py", "prweek", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_week = Py.newCode(2, new String[] {"theweek", "width", "day", "s", "days"}, "/usr/share/jython/Lib-cpython/calendar.py", "week", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_weekheader = Py.newCode(1, new String[] {"width", "i", "names", "days"}, "/usr/share/jython/Lib-cpython/calendar.py", "weekheader", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_prmonth = Py.newCode(4, new String[] {"theyear", "themonth", "w", "l"}, "/usr/share/jython/Lib-cpython/calendar.py", "prmonth", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_month = Py.newCode(4, new String[] {"theyear", "themonth", "w", "l", "aweek", "s"}, "/usr/share/jython/Lib-cpython/calendar.py", "month", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_format3c = Py.newCode(5, new String[] {"a", "b", "c", "colwidth", "spacing"}, "/usr/share/jython/Lib-cpython/calendar.py", "format3c", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_format3cstring = Py.newCode(5, new String[] {"a", "b", "c", "colwidth", "spacing"}, "/usr/share/jython/Lib-cpython/calendar.py", "format3cstring", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_prcal = Py.newCode(4, new String[] {"year", "w", "l", "c"}, "/usr/share/jython/Lib-cpython/calendar.py", "prcal", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_calendar = Py.newCode(4, new String[] {"year", "w", "l", "c", "weeks", "cal", "s", "height", "q", "colwidth", "amonth", "i", "header", "data"}, "/usr/share/jython/Lib-cpython/calendar.py", "calendar", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_timegm = Py.newCode(1, new String[] {"tuple", "second", "minute", "minutes", "hour", "i", "month", "year", "day", "hours", "seconds", "days"}, "/usr/share/jython/Lib-cpython/calendar.py", "timegm", false, false, funcTable, 17, null, null, 0, 1);
+            c$18_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/calendar.py", "main", false, false, funcTable, 18, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$18_main == null) _PyInner.initConstants();
+            return c$18_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.firstweekday$1(frame);
+                case 1:
+                return _PyInner.setfirstweekday$2(frame);
+                case 2:
+                return _PyInner.isleap$3(frame);
+                case 3:
+                return _PyInner.leapdays$4(frame);
+                case 4:
+                return _PyInner.weekday$5(frame);
+                case 5:
+                return _PyInner.monthrange$6(frame);
+                case 6:
+                return _PyInner.monthcalendar$7(frame);
+                case 7:
+                return _PyInner._center$8(frame);
+                case 8:
+                return _PyInner.prweek$9(frame);
+                case 9:
+                return _PyInner.week$10(frame);
+                case 10:
+                return _PyInner.weekheader$11(frame);
+                case 11:
+                return _PyInner.prmonth$12(frame);
+                case 12:
+                return _PyInner.month$13(frame);
+                case 13:
+                return _PyInner.format3c$14(frame);
+                case 14:
+                return _PyInner.format3cstring$15(frame);
+                case 15:
+                return _PyInner.prcal$16(frame);
+                case 16:
+                return _PyInner.calendar$17(frame);
+                case 17:
+                return _PyInner.timegm$18(frame);
+                case 18:
+                return _PyInner.main$19(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject firstweekday$1(PyFrame frame) {
+            return frame.getglobal("_firstweekday");
+        }
+        
+        private static PyObject setfirstweekday$2(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* Set weekday (Monday=0, Sunday=6) to start each week. */
+            // global _firstweekday
+            if ((frame.getglobal("MONDAY")._le(t$0$PyObject = frame.getlocal(0)).__nonzero__() ? t$0$PyObject._le(frame.getglobal("SUNDAY")) : Py.Zero).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$61);
+            }
+            frame.setglobal("_firstweekday", frame.getlocal(0));
+            return Py.None;
+        }
+        
+        private static PyObject isleap$3(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Return 1 for leap years, 0 for non-leap years. */
+            return (t$0$PyObject = frame.getlocal(0)._mod(i$63)._eq(i$16)).__nonzero__() ? ((t$1$PyObject = frame.getlocal(0)._mod(i$64)._ne(i$16)).__nonzero__() ? t$1$PyObject : frame.getlocal(0)._mod(i$65)._eq(i$16)) : t$0$PyObject;
+        }
+        
+        private static PyObject leapdays$4(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* Return number of leap years in range [y1, y2).
+                   Assume y1 <= y2. */
+            t$0$PyObject = i$14;
+            frame.setlocal(0, frame.getlocal(0).__isub__(t$0$PyObject));
+            t$0$PyObject = i$14;
+            frame.setlocal(1, frame.getlocal(1).__isub__(t$0$PyObject));
+            return frame.getlocal(1)._div(i$63)._sub(frame.getlocal(0)._div(i$63))._sub(frame.getlocal(1)._div(i$64)._sub(frame.getlocal(0)._div(i$64)))._add(frame.getlocal(1)._div(i$65)._sub(frame.getlocal(0)._div(i$65)));
+        }
+        
+        private static PyObject weekday$5(PyFrame frame) {
+            /* Return weekday (0-6 ~ Mon-Sun) for year (1970-...), month (1-12),
+                   day (1-31). */
+            frame.setlocal(4, frame.getglobal("mktime").__call__(new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), i$16, i$16, i$16, i$16, i$16, i$16})));
+            frame.setlocal(3, frame.getglobal("localtime").__call__(frame.getlocal(4)));
+            return frame.getlocal(3).__getitem__(i$68);
+        }
+        
+        private static PyObject monthrange$6(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for
+                   year, month. */
+            if ((i$14._le(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject._le(i$70) : Py.Zero).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$71);
+            }
+            frame.setlocal(3, frame.getglobal("weekday").__call__(frame.getlocal(0), frame.getlocal(1), i$14));
+            frame.setlocal(2, frame.getglobal("mdays").__getitem__(frame.getlocal(1))._add((t$0$PyObject = frame.getlocal(1)._eq(frame.getglobal("February"))).__nonzero__() ? frame.getglobal("isleap").__call__(frame.getlocal(0)) : t$0$PyObject));
+            return new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(2)});
+        }
+        
+        private static PyObject monthcalendar$7(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            /* Return a matrix representing a month's calendar.
+                   Each row represents a week; days outside this month are zero. */
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("monthrange").__call__(frame.getlocal(0), frame.getlocal(1)), 2);
+            frame.setlocal(5, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            frame.setlocal(8, new PyList(new PyObject[] {}));
+            frame.setlocal(6, frame.getglobal("range").__call__(i$59));
+            frame.setlocal(4, frame.getglobal("_firstweekday")._sub(frame.getlocal(5))._add(i$68)._mod(i$59)._sub(i$73));
+            while (frame.getlocal(4)._le(frame.getlocal(2)).__nonzero__()) {
+                frame.setlocal(7, new PyList(new PyObject[] {i$16, i$16, i$16, i$16, i$16, i$16, i$16}));
+                t$0$int = 0;
+                t$1$PyObject = frame.getlocal(6);
+                while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                    frame.setlocal(3, t$0$PyObject);
+                    if ((i$14._le(t$2$PyObject = frame.getlocal(4)).__nonzero__() ? t$2$PyObject._le(frame.getlocal(2)) : Py.Zero).__nonzero__()) {
+                        frame.getlocal(7).__setitem__(frame.getlocal(3), frame.getlocal(4));
+                    }
+                    frame.setlocal(4, frame.getlocal(4)._add(i$14));
+                }
+                frame.getlocal(8).invoke("append", frame.getlocal(7));
+            }
+            return frame.getlocal(8);
+        }
+        
+        private static PyObject _center$8(PyFrame frame) {
+            /* Center a string in a field. */
+            frame.setlocal(2, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0))));
+            if (frame.getlocal(2)._le(i$16).__nonzero__()) {
+                return frame.getlocal(0);
+            }
+            return s$75._mul(frame.getlocal(2)._add(i$14)._div(i$15))._add(frame.getlocal(0))._add(s$75._mul(frame.getlocal(2)._div(i$15)));
+        }
+        
+        private static PyObject prweek$9(PyFrame frame) {
+            /* Print a single week (no newline). */
+            Py.printComma(frame.getglobal("week").__call__(frame.getlocal(0), frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject week$10(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Returns a single week in a string (no newline). */
+            frame.setlocal(4, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                if (frame.getlocal(2)._eq(i$16).__nonzero__()) {
+                    frame.setlocal(3, s$34);
+                }
+                else {
+                    frame.setlocal(3, s$78._mod(frame.getlocal(2)));
+                }
+                frame.getlocal(4).invoke("append", frame.getglobal("_center").__call__(frame.getlocal(3), frame.getlocal(1)));
+            }
+            return s$75.invoke("join", frame.getlocal(4));
+        }
+        
+        private static PyObject weekheader$11(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Return a header for a week. */
+            if (frame.getlocal(0)._ge(i$80).__nonzero__()) {
+                frame.setlocal(2, frame.getglobal("day_name"));
+            }
+            else {
+                frame.setlocal(2, frame.getglobal("day_abbr"));
+            }
+            frame.setlocal(3, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("_firstweekday"), frame.getglobal("_firstweekday")._add(i$59));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(1, t$0$PyObject);
+                frame.getlocal(3).invoke("append", frame.getglobal("_center").__call__(frame.getlocal(2).__getitem__(frame.getlocal(1)._mod(i$59)).__getslice__(null, frame.getlocal(0), null), frame.getlocal(0)));
+            }
+            return s$75.invoke("join", frame.getlocal(3));
+        }
+        
+        private static PyObject prmonth$12(PyFrame frame) {
+            /* Print a month's calendar. */
+            Py.printComma(frame.getglobal("month").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}));
+            return Py.None;
+        }
+        
+        private static PyObject month$13(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Return a month's calendar string (multi-line). */
+            frame.setlocal(2, frame.getglobal("max").__call__(i$15, frame.getlocal(2)));
+            frame.setlocal(3, frame.getglobal("max").__call__(i$14, frame.getlocal(3)));
+            frame.setlocal(5, frame.getglobal("_center").__call__(frame.getglobal("month_name").__getitem__(frame.getlocal(1))._add(s$75)._add(frame.getlocal(0).__repr__()), i$59._mul(frame.getlocal(2)._add(i$14))._sub(i$14)).invoke("rstrip")._add(s$83._mul(frame.getlocal(3)))._add(frame.getglobal("weekheader").__call__(frame.getlocal(2)).invoke("rstrip"))._add(s$83._mul(frame.getlocal(3))));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("monthcalendar").__call__(frame.getlocal(0), frame.getlocal(1));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(4, t$0$PyObject);
+                frame.setlocal(5, frame.getlocal(5)._add(frame.getglobal("week").__call__(frame.getlocal(4), frame.getlocal(2)).invoke("rstrip"))._add(s$83._mul(frame.getlocal(3))));
+            }
+            return frame.getlocal(5).__getslice__(null, frame.getlocal(3).__neg__(), null)._add(s$83);
+        }
+        
+        private static PyObject format3c$14(PyFrame frame) {
+            /* Prints 3-column formatting for year calendars */
+            Py.println(frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3), frame.getlocal(4)}));
+            return Py.None;
+        }
+        
+        private static PyObject format3cstring$15(PyFrame frame) {
+            /* Returns a string formatted from 3 strings, centered within 3 columns. */
+            return frame.getglobal("_center").__call__(frame.getlocal(0), frame.getlocal(3))._add(s$75._mul(frame.getlocal(4)))._add(frame.getglobal("_center").__call__(frame.getlocal(1), frame.getlocal(3)))._add(s$75._mul(frame.getlocal(4)))._add(frame.getglobal("_center").__call__(frame.getlocal(2), frame.getlocal(3)));
+        }
+        
+        private static PyObject prcal$16(PyFrame frame) {
+            /* Print a year's calendar. */
+            Py.printComma(frame.getglobal("calendar").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}));
+            return Py.None;
+        }
+        
+        private static PyObject calendar$17(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int, t$3$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject;
+            
+            // Code
+            /* Returns a year's calendar as a multi-line string. */
+            frame.setlocal(1, frame.getglobal("max").__call__(i$15, frame.getlocal(1)));
+            frame.setlocal(2, frame.getglobal("max").__call__(i$14, frame.getlocal(2)));
+            frame.setlocal(3, frame.getglobal("max").__call__(i$15, frame.getlocal(3)));
+            frame.setlocal(9, frame.getlocal(1)._add(i$14)._mul(i$59)._sub(i$14));
+            frame.setlocal(6, frame.getglobal("_center").__call__(frame.getlocal(0).__repr__(), frame.getlocal(9)._mul(i$84)._add(frame.getlocal(3)._mul(i$15))).invoke("rstrip")._add(s$83._mul(frame.getlocal(2))));
+            frame.setlocal(12, frame.getglobal("weekheader").__call__(frame.getlocal(1)));
+            frame.setlocal(12, frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getlocal(12), frame.getlocal(12), frame.getlocal(12), frame.getlocal(9), frame.getlocal(3)}).invoke("rstrip"));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("January"), frame.getglobal("January")._add(i$70), i$84);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(8, t$0$PyObject);
+                frame.setlocal(6, frame.getlocal(6)._add(s$83._mul(frame.getlocal(2)))._add(frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getglobal("month_name").__getitem__(frame.getlocal(8)), frame.getglobal("month_name").__getitem__(frame.getlocal(8)._add(i$14)), frame.getglobal("month_name").__getitem__(frame.getlocal(8)._add(i$15)), frame.getlocal(9), frame.getlocal(3)}).invoke("rstrip"))._add(s$83._mul(frame.getlocal(2)))._add(frame.getlocal(12))._add(s$83._mul(frame.getlocal(2))));
+                frame.setlocal(13, new PyList(new PyObject[] {}));
+                frame.setlocal(7, i$16);
+                t$1$int = 0;
+                t$3$PyObject = frame.getglobal("range").__call__(frame.getlocal(8), frame.getlocal(8)._add(i$84));
+                while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                    frame.setlocal(10, t$2$PyObject);
+                    frame.setlocal(5, frame.getglobal("monthcalendar").__call__(frame.getlocal(0), frame.getlocal(10)));
+                    if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(7)).__nonzero__()) {
+                        frame.setlocal(7, frame.getglobal("len").__call__(frame.getlocal(5)));
+                    }
+                    frame.getlocal(13).invoke("append", frame.getlocal(5));
+                }
+                t$2$int = 0;
+                t$5$PyObject = frame.getglobal("range").__call__(frame.getlocal(7));
+                while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                    frame.setlocal(11, t$4$PyObject);
+                    frame.setlocal(4, new PyList(new PyObject[] {}));
+                    t$3$int = 0;
+                    t$7$PyObject = frame.getlocal(13);
+                    while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) {
+                        frame.setlocal(5, t$6$PyObject);
+                        if (frame.getlocal(11)._ge(frame.getglobal("len").__call__(frame.getlocal(5))).__nonzero__()) {
+                            frame.getlocal(4).invoke("append", s$34);
+                        }
+                        else {
+                            frame.getlocal(4).invoke("append", frame.getglobal("week").__call__(frame.getlocal(5).__getitem__(frame.getlocal(11)), frame.getlocal(1)));
+                        }
+                    }
+                    frame.setlocal(6, frame.getlocal(6)._add(frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getlocal(4).__getitem__(i$16), frame.getlocal(4).__getitem__(i$14), frame.getlocal(4).__getitem__(i$15), frame.getlocal(9), frame.getlocal(3)}).invoke("rstrip"))._add(s$83._mul(frame.getlocal(2))));
+                }
+            }
+            return frame.getlocal(6).__getslice__(null, frame.getlocal(2).__neg__(), null)._add(s$83);
+        }
+        
+        private static PyObject timegm$18(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            /* Unrelated but handy function to calculate Unix timestamp from GMT. */
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getslice__(null, i$68, null), 6);
+            frame.setlocal(7, t$0$PyObject__[0]);
+            frame.setlocal(6, t$0$PyObject__[1]);
+            frame.setlocal(8, t$0$PyObject__[2]);
+            frame.setlocal(4, t$0$PyObject__[3]);
+            frame.setlocal(2, t$0$PyObject__[4]);
+            frame.setlocal(1, t$0$PyObject__[5]);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(7)._ge(frame.getglobal("EPOCH")));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(i$14._le(t$0$PyObject = frame.getlocal(6)).__nonzero__() ? t$0$PyObject._le(i$70) : Py.Zero);
+            frame.setlocal(11, i$91._mul(frame.getlocal(7)._sub(frame.getglobal("EPOCH")))._add(frame.getglobal("leapdays").__call__(frame.getglobal("EPOCH"), frame.getlocal(7))));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(i$14, frame.getlocal(6));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(5, t$0$PyObject);
+                frame.setlocal(11, frame.getlocal(11)._add(frame.getglobal("mdays").__getitem__(frame.getlocal(5))));
+            }
+            if (((t$2$PyObject = frame.getlocal(6)._gt(i$15)).__nonzero__() ? frame.getglobal("isleap").__call__(frame.getlocal(7)) : t$2$PyObject).__nonzero__()) {
+                frame.setlocal(11, frame.getlocal(11)._add(i$14));
+            }
+            frame.setlocal(11, frame.getlocal(11)._add(frame.getlocal(8))._sub(i$14));
+            frame.setlocal(9, frame.getlocal(11)._mul(i$92)._add(frame.getlocal(4)));
+            frame.setlocal(3, frame.getlocal(9)._mul(i$93)._add(frame.getlocal(2)));
+            frame.setlocal(10, frame.getlocal(3)._mul(i$93)._add(frame.getlocal(1)));
+            return frame.getlocal(10);
+        }
+        
+        private static PyObject main$19(PyFrame frame) {
+            frame.setglobal("__file__", s$94);
+            
+            PyObject[] imp_accu;
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* Calendar printing functions
+            
+            Note when comparing these calendars to the ones printed by cal(1): By
+            default, these calendars have Monday as the first day of the week, and
+            Sunday as the last (the European convention). Use setfirstweekday() to
+            set the first day of the week (0=Monday, 6=Sunday). */
+            imp_accu = org.python.core.imp.importFrom("time", new String[] {"localtime", "mktime"}, frame);
+            frame.setlocal("localtime", imp_accu[0]);
+            frame.setlocal("mktime", imp_accu[1]);
+            imp_accu = null;
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13}));
+            frame.setlocal("error", frame.getname("ValueError"));
+            frame.setlocal("January", i$14);
+            frame.setlocal("February", i$15);
+            frame.setlocal("mdays", new PyList(new PyObject[] {i$16, i$17, i$18, i$17, i$19, i$17, i$19, i$17, i$17, i$19, i$17, i$19, i$17}));
+            frame.setlocal("day_name", new PyList(new PyObject[] {s$20, s$21, s$22, s$23, s$24, s$25, s$26}));
+            frame.setlocal("day_abbr", new PyList(new PyObject[] {s$27, s$28, s$29, s$30, s$31, s$32, s$33}));
+            frame.setlocal("month_name", new PyList(new PyObject[] {s$34, s$35, s$36, s$37, s$38, s$39, s$40, s$41, s$42, s$43, s$44, s$45, s$46}));
+            frame.setlocal("month_abbr", new PyList(new PyObject[] {s$47, s$48, s$49, s$50, s$51, s$39, s$52, s$53, s$54, s$55, s$56, s$57, s$58}));
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getname("range").__call__(i$59), 7);
+            frame.setlocal("MONDAY", t$0$PyObject__[0]);
+            frame.setlocal("TUESDAY", t$0$PyObject__[1]);
+            frame.setlocal("WEDNESDAY", t$0$PyObject__[2]);
+            frame.setlocal("THURSDAY", t$0$PyObject__[3]);
+            frame.setlocal("FRIDAY", t$0$PyObject__[4]);
+            frame.setlocal("SATURDAY", t$0$PyObject__[5]);
+            frame.setlocal("SUNDAY", t$0$PyObject__[6]);
+            frame.setlocal("_firstweekday", i$16);
+            frame.setlocal("firstweekday", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_firstweekday));
+            frame.setlocal("setfirstweekday", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_setfirstweekday));
+            frame.setlocal("isleap", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_isleap));
+            frame.setlocal("leapdays", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_leapdays));
+            frame.setlocal("weekday", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_weekday));
+            frame.setlocal("monthrange", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_monthrange));
+            frame.setlocal("monthcalendar", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_monthcalendar));
+            frame.setlocal("_center", new PyFunction(frame.f_globals, new PyObject[] {}, c$7__center));
+            frame.setlocal("prweek", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_prweek));
+            frame.setlocal("week", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_week));
+            frame.setlocal("weekheader", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_weekheader));
+            frame.setlocal("prmonth", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16}, c$11_prmonth));
+            frame.setlocal("month", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16}, c$12_month));
+            frame.setlocal("_colwidth", i$59._mul(i$84)._sub(i$14));
+            frame.setlocal("_spacing", i$68);
+            frame.setlocal("format3c", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("_colwidth"), frame.getname("_spacing")}, c$13_format3c));
+            frame.setlocal("format3cstring", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("_colwidth"), frame.getname("_spacing")}, c$14_format3cstring));
+            frame.setlocal("prcal", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16, frame.getname("_spacing")}, c$15_prcal));
+            frame.setlocal("calendar", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16, frame.getname("_spacing")}, c$16_calendar));
+            frame.setlocal("EPOCH", i$89);
+            frame.setlocal("timegm", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_timegm));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("calendar"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "calendar";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(calendar._PyInner.class, newargs, calendar.jpy$packages, calendar.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/copy$_PyInner.class b/server/jpywork/copy$_PyInner.class
new file mode 100644 (file)
index 0000000..f0bb7bf
Binary files /dev/null and b/server/jpywork/copy$_PyInner.class differ
diff --git a/server/jpywork/copy.class b/server/jpywork/copy.class
new file mode 100644 (file)
index 0000000..5dee907
Binary files /dev/null and b/server/jpywork/copy.class differ
diff --git a/server/jpywork/copy.java b/server/jpywork/copy.java
new file mode 100644 (file)
index 0000000..af1fd46
--- /dev/null
@@ -0,0 +1,722 @@
+import org.python.core.*;
+
+public class copy extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject i$16;
+        private static PyObject l$17;
+        private static PyObject f$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject i$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject i$28;
+        private static PyObject s$29;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_Error;
+        private static PyCode c$1_copy;
+        private static PyCode c$2__copy_atomic;
+        private static PyCode c$3__copy_list;
+        private static PyCode c$4__copy_tuple;
+        private static PyCode c$5__copy_dict;
+        private static PyCode c$6__copy_inst;
+        private static PyCode c$7_deepcopy;
+        private static PyCode c$8__deepcopy_atomic;
+        private static PyCode c$9__deepcopy_list;
+        private static PyCode c$10__deepcopy_tuple;
+        private static PyCode c$11__deepcopy_dict;
+        private static PyCode c$12__keep_alive;
+        private static PyCode c$13__deepcopy_inst;
+        private static PyCode c$14__EmptyClass;
+        private static PyCode c$15___del__;
+        private static PyCode c$16__EmptyClassDel;
+        private static PyCode c$17___init__;
+        private static PyCode c$18___getstate__;
+        private static PyCode c$19___setstate__;
+        private static PyCode c$20___deepcopy__;
+        private static PyCode c$21_C;
+        private static PyCode c$22__test;
+        private static PyCode c$23_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Generic (shallow and deep) copying operations.\012\012Interface summary:\012\012        import copy\012\012        x = copy.copy(y)        # make a shallow copy of y\012        x = copy.deepcopy(y)    # make a deep copy of y\012\012For module specific errors, copy.error is raised.\012\012The difference between shallow and deep copying is only relevant for\012compound objects (objects that contain other objects, like lists or\012class instances).\012\012- A shallow copy constructs a new compound object and then (to the\012  extent possible) inserts *the same objects* into in that the\012  original contains.\012\012- A deep copy constructs a new compound object and then, recursively,\012  inserts *copies* into it of the objects found in the original.\012\012Two problems often exist with deep copy operations that don't exist\012with shallow copy operations:\012\012 a) recursive objects (compound objects that, directly or indirectly,\012    contain a reference to themselves) may cause a recursive loop\012\012 b) because deep copy copies *everything* it may copy too much, e.g.\012    administrative data structures that should be shared even between\012    copies\012\012Python's deep copy operation avoids these problems by:\012\012 a) keeping a table of objects already copied during the current\012    copying pass\012\012 b) letting user-defined classes override the copying operation or the\012    set of components copied\012\012This version does not copy types like module, class, function, method,\012nor stack trace, stack frame, nor file, socket, window, nor array, nor\012any similar types.\012\012Classes can use the same interfaces to control copying that they use\012to control pickling: they can define methods called __getinitargs__(),\012__getstate__() and __setstate__().  See the documentation for module\012\"pickle\" for information on these methods.\012");
+            s$1 = Py.newString("Error");
+            s$2 = Py.newString("error");
+            s$3 = Py.newString("copy");
+            s$4 = Py.newString("deepcopy");
+            s$5 = Py.newString("Shallow copy operation on arbitrary Python objects.\012\012    See the module's __doc__ string for more info.\012    ");
+            s$6 = Py.newString("un(shallow)copyable object of type %s");
+            s$7 = Py.newString("__copy__");
+            s$8 = Py.newString("__getinitargs__");
+            s$9 = Py.newString("__del__");
+            s$10 = Py.newString("__getstate__");
+            s$11 = Py.newString("__setstate__");
+            s$12 = Py.newString("Deep copy operation on arbitrary Python objects.\012\012    See the module's __doc__ string for more info.\012    ");
+            s$13 = Py.newString("un-deep-copyable object of type %s");
+            s$14 = Py.newString("Keeps a reference to the object x in the memo.\012\012    Because we remember objects by their id, we have\012    to assure that possibly temporary objects are kept\012    alive by referencing them.\012    We store a reference at the id of the memo, which should\012    normally not be used unless someone tries to deepcopy\012    the memo itself...\012    ");
+            s$15 = Py.newString("__deepcopy__");
+            i$16 = Py.newInteger(1);
+            l$17 = Py.newLong("2");
+            f$18 = Py.newFloat(3.14);
+            s$19 = Py.newString("xyzzy");
+            s$20 = Py.newString("abc");
+            s$21 = Py.newString("ABC");
+            s$22 = Py.newString("__main__");
+            i$23 = Py.newInteger(0);
+            s$24 = Py.newString("a");
+            s$25 = Py.newString("arg");
+            s$26 = Py.newString("argument sketch");
+            s$27 = Py.newString("xyz");
+            i$28 = Py.newInteger(2);
+            s$29 = Py.newString("/usr/share/jython/Lib/copy.py");
+            funcTable = new _PyInner();
+            c$0_Error = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/copy.py", "Error", false, false, funcTable, 0, null, null, 0, 0);
+            c$1_copy = Py.newCode(1, new String[] {"x", "copier", "copierfunction", "y"}, "/usr/share/jython/Lib/copy.py", "copy", false, false, funcTable, 1, null, null, 0, 1);
+            c$2__copy_atomic = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib/copy.py", "_copy_atomic", false, false, funcTable, 2, null, null, 0, 1);
+            c$3__copy_list = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib/copy.py", "_copy_list", false, false, funcTable, 3, null, null, 0, 1);
+            c$4__copy_tuple = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib/copy.py", "_copy_tuple", false, false, funcTable, 4, null, null, 0, 1);
+            c$5__copy_dict = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib/copy.py", "_copy_dict", false, false, funcTable, 5, null, null, 0, 1);
+            c$6__copy_inst = Py.newCode(1, new String[] {"x", "args", "state", "y"}, "/usr/share/jython/Lib/copy.py", "_copy_inst", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_deepcopy = Py.newCode(2, new String[] {"x", "memo", "copier", "copierfunction", "d", "y"}, "/usr/share/jython/Lib/copy.py", "deepcopy", false, false, funcTable, 7, null, null, 0, 1);
+            c$8__deepcopy_atomic = Py.newCode(2, new String[] {"x", "memo"}, "/usr/share/jython/Lib/copy.py", "_deepcopy_atomic", false, false, funcTable, 8, null, null, 0, 1);
+            c$9__deepcopy_list = Py.newCode(2, new String[] {"x", "memo", "a", "y"}, "/usr/share/jython/Lib/copy.py", "_deepcopy_list", false, false, funcTable, 9, null, null, 0, 1);
+            c$10__deepcopy_tuple = Py.newCode(2, new String[] {"x", "memo", "i", "d", "y", "a"}, "/usr/share/jython/Lib/copy.py", "_deepcopy_tuple", false, false, funcTable, 10, null, null, 0, 1);
+            c$11__deepcopy_dict = Py.newCode(2, new String[] {"x", "memo", "key", "y"}, "/usr/share/jython/Lib/copy.py", "_deepcopy_dict", false, false, funcTable, 11, null, null, 0, 1);
+            c$12__keep_alive = Py.newCode(2, new String[] {"x", "memo"}, "/usr/share/jython/Lib/copy.py", "_keep_alive", false, false, funcTable, 12, null, null, 0, 1);
+            c$13__deepcopy_inst = Py.newCode(2, new String[] {"x", "memo", "state", "args", "y"}, "/usr/share/jython/Lib/copy.py", "_deepcopy_inst", false, false, funcTable, 13, null, null, 0, 1);
+            c$14__EmptyClass = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/copy.py", "_EmptyClass", false, false, funcTable, 14, null, null, 0, 0);
+            c$15___del__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/copy.py", "__del__", false, false, funcTable, 15, null, null, 0, 1);
+            c$16__EmptyClassDel = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/copy.py", "_EmptyClassDel", false, false, funcTable, 16, null, null, 0, 0);
+            c$17___init__ = Py.newCode(2, new String[] {"self", "arg", "file", "sys"}, "/usr/share/jython/Lib/copy.py", "__init__", false, false, funcTable, 17, null, null, 0, 1);
+            c$18___getstate__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/copy.py", "__getstate__", false, false, funcTable, 18, null, null, 0, 1);
+            c$19___setstate__ = Py.newCode(2, new String[] {"self", "state", "key"}, "/usr/share/jython/Lib/copy.py", "__setstate__", false, false, funcTable, 19, null, null, 0, 1);
+            c$20___deepcopy__ = Py.newCode(2, new String[] {"self", "memo", "new"}, "/usr/share/jython/Lib/copy.py", "__deepcopy__", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_C = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/copy.py", "C", false, false, funcTable, 21, null, null, 0, 0);
+            c$22__test = Py.newCode(0, new String[] {"C", "l3", "l2", "repr", "l", "l1", "c"}, "/usr/share/jython/Lib/copy.py", "_test", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/copy.py", "main", false, false, funcTable, 23, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$23_main == null) _PyInner.initConstants();
+            return c$23_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.Error$1(frame);
+                case 1:
+                return _PyInner.copy$2(frame);
+                case 2:
+                return _PyInner._copy_atomic$3(frame);
+                case 3:
+                return _PyInner._copy_list$4(frame);
+                case 4:
+                return _PyInner._copy_tuple$5(frame);
+                case 5:
+                return _PyInner._copy_dict$6(frame);
+                case 6:
+                return _PyInner._copy_inst$7(frame);
+                case 7:
+                return _PyInner.deepcopy$8(frame);
+                case 8:
+                return _PyInner._deepcopy_atomic$9(frame);
+                case 9:
+                return _PyInner._deepcopy_list$10(frame);
+                case 10:
+                return _PyInner._deepcopy_tuple$11(frame);
+                case 11:
+                return _PyInner._deepcopy_dict$12(frame);
+                case 12:
+                return _PyInner._keep_alive$13(frame);
+                case 13:
+                return _PyInner._deepcopy_inst$14(frame);
+                case 14:
+                return _PyInner._EmptyClass$15(frame);
+                case 15:
+                return _PyInner.__del__$16(frame);
+                case 16:
+                return _PyInner._EmptyClassDel$17(frame);
+                case 17:
+                return _PyInner.__init__$18(frame);
+                case 18:
+                return _PyInner.__getstate__$19(frame);
+                case 19:
+                return _PyInner.__setstate__$20(frame);
+                case 20:
+                return _PyInner.__deepcopy__$21(frame);
+                case 21:
+                return _PyInner.C$22(frame);
+                case 22:
+                return _PyInner._test$23(frame);
+                case 23:
+                return _PyInner.main$24(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject Error$1(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject copy$2(PyFrame frame) {
+            // Temporary Variables
+            boolean t$0$boolean;
+            PyException t$0$PyException, t$1$PyException;
+            
+            // Code
+            /* Shallow copy operation on arbitrary Python objects.
+            
+                See the module's __doc__ string for more info.
+                 */
+            t$0$boolean = true;
+            try {
+                frame.setlocal(2, frame.getglobal("_copy_dispatch").__getitem__(frame.getglobal("type").__call__(frame.getlocal(0))));
+            }
+            catch (Throwable x$0) {
+                t$0$boolean = false;
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) {
+                    try {
+                        frame.setlocal(1, frame.getlocal(0).__getattr__("__copy__"));
+                    }
+                    catch (Throwable x$1) {
+                        t$1$PyException = Py.setException(x$1, frame);
+                        if (Py.matchException(t$1$PyException, frame.getglobal("AttributeError"))) {
+                            throw Py.makeException(frame.getglobal("error"), s$6._mod(frame.getglobal("type").__call__(frame.getlocal(0))));
+                        }
+                        else throw t$1$PyException;
+                    }
+                    frame.setlocal(3, frame.getlocal(1).__call__());
+                }
+                else throw t$0$PyException;
+            }
+            if (t$0$boolean) {
+                frame.setlocal(3, frame.getlocal(2).__call__(frame.getlocal(0)));
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject _copy_atomic$3(PyFrame frame) {
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject _copy_list$4(PyFrame frame) {
+            return frame.getlocal(0).__getslice__(null, null, null);
+        }
+        
+        private static PyObject _copy_tuple$5(PyFrame frame) {
+            return frame.getlocal(0).__getslice__(null, null, null);
+        }
+        
+        private static PyObject _copy_dict$6(PyFrame frame) {
+            return frame.getlocal(0).invoke("copy");
+        }
+        
+        private static PyObject _copy_inst$7(PyFrame frame) {
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$7).__nonzero__()) {
+                return frame.getlocal(0).invoke("__copy__");
+            }
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$8).__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(0).invoke("__getinitargs__"));
+                frame.setlocal(3, frame.getglobal("apply").__call__(frame.getlocal(0).__getattr__("__class__"), frame.getlocal(1)));
+            }
+            else {
+                if (frame.getglobal("hasattr").__call__(frame.getlocal(0).__getattr__("__class__"), s$9).__nonzero__()) {
+                    frame.setlocal(3, frame.getglobal("_EmptyClassDel").__call__());
+                }
+                else {
+                    frame.setlocal(3, frame.getglobal("_EmptyClass").__call__());
+                }
+                frame.getlocal(3).__setattr__("__class__", frame.getlocal(0).__getattr__("__class__"));
+            }
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$10).__nonzero__()) {
+                frame.setlocal(2, frame.getlocal(0).invoke("__getstate__"));
+            }
+            else {
+                frame.setlocal(2, frame.getlocal(0).__getattr__("__dict__"));
+            }
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(3), s$11).__nonzero__()) {
+                frame.getlocal(3).invoke("__setstate__", frame.getlocal(2));
+            }
+            else {
+                frame.getlocal(3).__getattr__("__dict__").invoke("update", frame.getlocal(2));
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject deepcopy$8(PyFrame frame) {
+            // Temporary Variables
+            boolean t$0$boolean;
+            PyException t$0$PyException, t$1$PyException;
+            
+            // Code
+            /* Deep copy operation on arbitrary Python objects.
+            
+                See the module's __doc__ string for more info.
+                 */
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, new PyDictionary(new PyObject[] {}));
+            }
+            frame.setlocal(4, frame.getglobal("id").__call__(frame.getlocal(0)));
+            if (frame.getlocal(1).invoke("has_key", frame.getlocal(4)).__nonzero__()) {
+                return frame.getlocal(1).__getitem__(frame.getlocal(4));
+            }
+            t$0$boolean = true;
+            try {
+                frame.setlocal(3, frame.getglobal("_deepcopy_dispatch").__getitem__(frame.getglobal("type").__call__(frame.getlocal(0))));
+            }
+            catch (Throwable x$0) {
+                t$0$boolean = false;
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) {
+                    try {
+                        frame.setlocal(2, frame.getlocal(0).__getattr__("__deepcopy__"));
+                    }
+                    catch (Throwable x$1) {
+                        t$1$PyException = Py.setException(x$1, frame);
+                        if (Py.matchException(t$1$PyException, frame.getglobal("AttributeError"))) {
+                            throw Py.makeException(frame.getglobal("error"), s$13._mod(frame.getglobal("type").__call__(frame.getlocal(0))));
+                        }
+                        else throw t$1$PyException;
+                    }
+                    frame.setlocal(5, frame.getlocal(2).__call__(frame.getlocal(1)));
+                }
+                else throw t$0$PyException;
+            }
+            if (t$0$boolean) {
+                frame.setlocal(5, frame.getlocal(3).__call__(frame.getlocal(0), frame.getlocal(1)));
+            }
+            frame.getlocal(1).__setitem__(frame.getlocal(4), frame.getlocal(5));
+            return frame.getlocal(5);
+        }
+        
+        private static PyObject _deepcopy_atomic$9(PyFrame frame) {
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject _deepcopy_list$10(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, new PyList(new PyObject[] {}));
+            frame.getlocal(1).__setitem__(frame.getglobal("id").__call__(frame.getlocal(0)), frame.getlocal(3));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.getlocal(3).invoke("append", frame.getglobal("deepcopy").__call__(frame.getlocal(2), frame.getlocal(1)));
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject _deepcopy_tuple$11(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int;
+            boolean t$0$boolean;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject;
+            
+            // Code
+            frame.setlocal(4, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(5, t$0$PyObject);
+                frame.getlocal(4).invoke("append", frame.getglobal("deepcopy").__call__(frame.getlocal(5), frame.getlocal(1)));
+            }
+            frame.setlocal(3, frame.getglobal("id").__call__(frame.getlocal(0)));
+            try {
+                return frame.getlocal(1).__getitem__(frame.getlocal(3));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            t$1$int = 0;
+            t$3$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(0)));
+            while (t$0$boolean=(t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                frame.setlocal(2, t$2$PyObject);
+                if (frame.getlocal(0).__getitem__(frame.getlocal(2))._isnot(frame.getlocal(4).__getitem__(frame.getlocal(2))).__nonzero__()) {
+                    frame.setlocal(4, frame.getglobal("tuple").__call__(frame.getlocal(4)));
+                    break;
+                }
+            }
+            if (!t$0$boolean) {
+                frame.setlocal(4, frame.getlocal(0));
+            }
+            frame.getlocal(1).__setitem__(frame.getlocal(3), frame.getlocal(4));
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject _deepcopy_dict$12(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, new PyDictionary(new PyObject[] {}));
+            frame.getlocal(1).__setitem__(frame.getglobal("id").__call__(frame.getlocal(0)), frame.getlocal(3));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0).invoke("keys");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.getlocal(3).__setitem__(frame.getglobal("deepcopy").__call__(frame.getlocal(2), frame.getlocal(1)), frame.getglobal("deepcopy").__call__(frame.getlocal(0).__getitem__(frame.getlocal(2)), frame.getlocal(1)));
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject _keep_alive$13(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* Keeps a reference to the object x in the memo.
+            
+                Because we remember objects by their id, we have
+                to assure that possibly temporary objects are kept
+                alive by referencing them.
+                We store a reference at the id of the memo, which should
+                normally not be used unless someone tries to deepcopy
+                the memo itself...
+                 */
+            try {
+                frame.getlocal(1).__getitem__(frame.getglobal("id").__call__(frame.getlocal(1))).invoke("append", frame.getlocal(0));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) {
+                    frame.getlocal(1).__setitem__(frame.getglobal("id").__call__(frame.getlocal(1)), new PyList(new PyObject[] {frame.getlocal(0)}));
+                }
+                else throw t$0$PyException;
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _deepcopy_inst$14(PyFrame frame) {
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$15).__nonzero__()) {
+                return frame.getlocal(0).invoke("__deepcopy__", frame.getlocal(1));
+            }
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$8).__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(0).invoke("__getinitargs__"));
+                frame.getglobal("_keep_alive").__call__(frame.getlocal(3), frame.getlocal(1));
+                frame.setlocal(3, frame.getglobal("deepcopy").__call__(frame.getlocal(3), frame.getlocal(1)));
+                frame.setlocal(4, frame.getglobal("apply").__call__(frame.getlocal(0).__getattr__("__class__"), frame.getlocal(3)));
+            }
+            else {
+                if (frame.getglobal("hasattr").__call__(frame.getlocal(0).__getattr__("__class__"), s$9).__nonzero__()) {
+                    frame.setlocal(4, frame.getglobal("_EmptyClassDel").__call__());
+                }
+                else {
+                    frame.setlocal(4, frame.getglobal("_EmptyClass").__call__());
+                }
+                frame.getlocal(4).__setattr__("__class__", frame.getlocal(0).__getattr__("__class__"));
+            }
+            frame.getlocal(1).__setitem__(frame.getglobal("id").__call__(frame.getlocal(0)), frame.getlocal(4));
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$10).__nonzero__()) {
+                frame.setlocal(2, frame.getlocal(0).invoke("__getstate__"));
+                frame.getglobal("_keep_alive").__call__(frame.getlocal(2), frame.getlocal(1));
+            }
+            else {
+                frame.setlocal(2, frame.getlocal(0).__getattr__("__dict__"));
+            }
+            frame.setlocal(2, frame.getglobal("deepcopy").__call__(frame.getlocal(2), frame.getlocal(1)));
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(4), s$11).__nonzero__()) {
+                frame.getlocal(4).invoke("__setstate__", frame.getlocal(2));
+            }
+            else {
+                frame.getlocal(4).__getattr__("__dict__").invoke("update", frame.getlocal(2));
+            }
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject _EmptyClass$15(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __del__$16(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject _EmptyClassDel$17(PyFrame frame) {
+            frame.setlocal("__del__", new PyFunction(frame.f_globals, new PyObject[] {}, c$15___del__));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$18(PyFrame frame) {
+            frame.getlocal(0).__setattr__("a", i$16);
+            frame.getlocal(0).__setattr__("arg", frame.getlocal(1));
+            if (frame.getglobal("__name__")._eq(s$22).__nonzero__()) {
+                frame.setlocal(3, org.python.core.imp.importOne("sys", frame));
+                frame.setlocal(2, frame.getlocal(3).__getattr__("argv").__getitem__(i$23));
+            }
+            else {
+                frame.setlocal(2, frame.getglobal("__file__"));
+            }
+            frame.getlocal(0).__setattr__("fp", frame.getglobal("open").__call__(frame.getlocal(2)));
+            frame.getlocal(0).__getattr__("fp").invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject __getstate__$19(PyFrame frame) {
+            return new PyDictionary(new PyObject[] {s$24, frame.getlocal(0).__getattr__("a"), s$25, frame.getlocal(0).__getattr__("arg")});
+        }
+        
+        private static PyObject __setstate__$20(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(1).invoke("keys");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.getglobal("setattr").__call__(frame.getlocal(0), frame.getlocal(2), frame.getlocal(1).__getitem__(frame.getlocal(2)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __deepcopy__$21(PyFrame frame) {
+            frame.setlocal(2, frame.getlocal(0).invoke("__class__", frame.getglobal("deepcopy").__call__(frame.getlocal(0).__getattr__("arg"), frame.getlocal(1))));
+            frame.getlocal(2).__setattr__("a", frame.getlocal(0).__getattr__("a"));
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject C$22(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$17___init__));
+            frame.setlocal("__getstate__", new PyFunction(frame.f_globals, new PyObject[] {}, c$18___getstate__));
+            frame.setlocal("__setstate__", new PyFunction(frame.f_globals, new PyObject[] {}, c$19___setstate__));
+            frame.setlocal("__deepcopy__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$20___deepcopy__));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject _test$23(PyFrame frame) {
+            frame.setlocal(4, new PyList(new PyObject[] {frame.getglobal("None"), i$16, l$17, f$18, s$19, new PyTuple(new PyObject[] {i$16, l$17}), new PyList(new PyObject[] {f$18, s$20}), new PyDictionary(new PyObject[] {s$20, s$21}), new PyTuple(new PyObject[] {}), new PyList(new PyObject[] {}), new PyDictionary(new PyObject[] {})}));
+            frame.setlocal(5, frame.getglobal("copy").__call__(frame.getlocal(4)));
+            Py.println(frame.getlocal(5)._eq(frame.getlocal(4)));
+            frame.setlocal(5, frame.getglobal("map").__call__(frame.getglobal("copy"), frame.getlocal(4)));
+            Py.println(frame.getlocal(5)._eq(frame.getlocal(4)));
+            frame.setlocal(5, frame.getglobal("deepcopy").__call__(frame.getlocal(4)));
+            Py.println(frame.getlocal(5)._eq(frame.getlocal(4)));
+            frame.setlocal(0, Py.makeClass("C", new PyObject[] {}, c$21_C, null));
+            frame.setlocal(6, frame.getlocal(0).__call__(s$26));
+            frame.getlocal(4).invoke("append", frame.getlocal(6));
+            frame.setlocal(2, frame.getglobal("copy").__call__(frame.getlocal(4)));
+            Py.println(frame.getlocal(4)._eq(frame.getlocal(2)));
+            Py.println(frame.getlocal(4));
+            Py.println(frame.getlocal(2));
+            frame.setlocal(2, frame.getglobal("deepcopy").__call__(frame.getlocal(4)));
+            Py.println(frame.getlocal(4)._eq(frame.getlocal(2)));
+            Py.println(frame.getlocal(4));
+            Py.println(frame.getlocal(2));
+            frame.getlocal(4).invoke("append", new PyDictionary(new PyObject[] {frame.getlocal(4).__getitem__(i$16), frame.getlocal(4), s$27, frame.getlocal(4).__getitem__(i$28)}));
+            frame.setlocal(1, frame.getglobal("copy").__call__(frame.getlocal(4)));
+            frame.setlocal(3, org.python.core.imp.importOne("repr", frame));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(4)));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(5)));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(2)));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(1)));
+            frame.setlocal(1, frame.getglobal("deepcopy").__call__(frame.getlocal(4)));
+            frame.setlocal(3, org.python.core.imp.importOne("repr", frame));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(4)));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(5)));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(2)));
+            Py.println(frame.getglobal("map").__call__(frame.getlocal(3).__getattr__("repr"), frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject main$24(PyFrame frame) {
+            frame.setglobal("__file__", s$29);
+            
+            PyObject[] imp_accu;
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Generic (shallow and deep) copying operations.
+            
+            Interface summary:
+            
+                    import copy
+            
+                    x = copy.copy(y)        # make a shallow copy of y
+                    x = copy.deepcopy(y)    # make a deep copy of y
+            
+            For module specific errors, copy.error is raised.
+            
+            The difference between shallow and deep copying is only relevant for
+            compound objects (objects that contain other objects, like lists or
+            class instances).
+            
+            - A shallow copy constructs a new compound object and then (to the
+              extent possible) inserts *the same objects* into in that the
+              original contains.
+            
+            - A deep copy constructs a new compound object and then, recursively,
+              inserts *copies* into it of the objects found in the original.
+            
+            Two problems often exist with deep copy operations that don't exist
+            with shallow copy operations:
+            
+             a) recursive objects (compound objects that, directly or indirectly,
+                contain a reference to themselves) may cause a recursive loop
+            
+             b) because deep copy copies *everything* it may copy too much, e.g.
+                administrative data structures that should be shared even between
+                copies
+            
+            Python's deep copy operation avoids these problems by:
+            
+             a) keeping a table of objects already copied during the current
+                copying pass
+            
+             b) letting user-defined classes override the copying operation or the
+                set of components copied
+            
+            This version does not copy types like module, class, function, method,
+            nor stack trace, stack frame, nor file, socket, window, nor array, nor
+            any similar types.
+            
+            Classes can use the same interfaces to control copying that they use
+            to control pickling: they can define methods called __getinitargs__(),
+            __getstate__() and __setstate__().  See the documentation for module
+            "pickle" for information on these methods.
+             */
+            frame.setlocal("types", org.python.core.imp.importOne("types", frame));
+            frame.setlocal("Error", Py.makeClass("Error", new PyObject[] {frame.getname("Exception")}, c$0_Error, null));
+            frame.setlocal("error", frame.getname("Error"));
+            try {
+                imp_accu = org.python.core.imp.importFrom("org.python.core", new String[] {"PyStringMap"}, frame);
+                frame.setlocal("PyStringMap", imp_accu[0]);
+                imp_accu = null;
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("ImportError"))) {
+                    frame.setlocal("PyStringMap", frame.getname("None"));
+                }
+                else throw t$0$PyException;
+            }
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4}));
+            frame.setlocal("copy", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_copy));
+            t$0$PyObject = new PyDictionary(new PyObject[] {});
+            frame.setlocal("_copy_dispatch", t$0$PyObject);
+            frame.setlocal("d", t$0$PyObject);
+            frame.setlocal("_copy_atomic", new PyFunction(frame.f_globals, new PyObject[] {}, c$2__copy_atomic));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("NoneType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("IntType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("LongType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("FloatType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("StringType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("UnicodeType"), frame.getname("_copy_atomic"));
+            try {
+                frame.getname("d").__setitem__(frame.getname("types").__getattr__("CodeType"), frame.getname("_copy_atomic"));
+            }
+            catch (Throwable x$1) {
+                t$0$PyException = Py.setException(x$1, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("AttributeError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("TypeType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("XRangeType"), frame.getname("_copy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("ClassType"), frame.getname("_copy_atomic"));
+            frame.setlocal("_copy_list", new PyFunction(frame.f_globals, new PyObject[] {}, c$3__copy_list));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("ListType"), frame.getname("_copy_list"));
+            frame.setlocal("_copy_tuple", new PyFunction(frame.f_globals, new PyObject[] {}, c$4__copy_tuple));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("TupleType"), frame.getname("_copy_tuple"));
+            frame.setlocal("_copy_dict", new PyFunction(frame.f_globals, new PyObject[] {}, c$5__copy_dict));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("DictionaryType"), frame.getname("_copy_dict"));
+            if (frame.getname("PyStringMap")._isnot(frame.getname("None")).__nonzero__()) {
+                frame.getname("d").__setitem__(frame.getname("PyStringMap"), frame.getname("_copy_dict"));
+            }
+            frame.setlocal("_copy_inst", new PyFunction(frame.f_globals, new PyObject[] {}, c$6__copy_inst));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("InstanceType"), frame.getname("_copy_inst"));
+            frame.dellocal("d");
+            frame.setlocal("deepcopy", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$7_deepcopy));
+            t$0$PyObject = new PyDictionary(new PyObject[] {});
+            frame.setlocal("_deepcopy_dispatch", t$0$PyObject);
+            frame.setlocal("d", t$0$PyObject);
+            frame.setlocal("_deepcopy_atomic", new PyFunction(frame.f_globals, new PyObject[] {}, c$8__deepcopy_atomic));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("NoneType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("IntType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("LongType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("FloatType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("StringType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("UnicodeType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("CodeType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("TypeType"), frame.getname("_deepcopy_atomic"));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("XRangeType"), frame.getname("_deepcopy_atomic"));
+            frame.setlocal("_deepcopy_list", new PyFunction(frame.f_globals, new PyObject[] {}, c$9__deepcopy_list));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("ListType"), frame.getname("_deepcopy_list"));
+            frame.setlocal("_deepcopy_tuple", new PyFunction(frame.f_globals, new PyObject[] {}, c$10__deepcopy_tuple));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("TupleType"), frame.getname("_deepcopy_tuple"));
+            frame.setlocal("_deepcopy_dict", new PyFunction(frame.f_globals, new PyObject[] {}, c$11__deepcopy_dict));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("DictionaryType"), frame.getname("_deepcopy_dict"));
+            if (frame.getname("PyStringMap")._isnot(frame.getname("None")).__nonzero__()) {
+                frame.getname("d").__setitem__(frame.getname("PyStringMap"), frame.getname("_deepcopy_dict"));
+            }
+            frame.setlocal("_keep_alive", new PyFunction(frame.f_globals, new PyObject[] {}, c$12__keep_alive));
+            frame.setlocal("_deepcopy_inst", new PyFunction(frame.f_globals, new PyObject[] {}, c$13__deepcopy_inst));
+            frame.getname("d").__setitem__(frame.getname("types").__getattr__("InstanceType"), frame.getname("_deepcopy_inst"));
+            frame.dellocal("d");
+            frame.dellocal("types");
+            frame.setlocal("_EmptyClass", Py.makeClass("_EmptyClass", new PyObject[] {}, c$14__EmptyClass, null));
+            frame.setlocal("_EmptyClassDel", Py.makeClass("_EmptyClassDel", new PyObject[] {}, c$16__EmptyClassDel, null));
+            frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {}, c$22__test));
+            if (frame.getname("__name__")._eq(s$22).__nonzero__()) {
+                frame.getname("_test").__call__();
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("copy"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "copy";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(copy._PyInner.class, newargs, copy.jpy$packages, copy.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/copy_reg$_PyInner.class b/server/jpywork/copy_reg$_PyInner.class
new file mode 100644 (file)
index 0000000..0754cdd
Binary files /dev/null and b/server/jpywork/copy_reg$_PyInner.class differ
diff --git a/server/jpywork/copy_reg.class b/server/jpywork/copy_reg.class
new file mode 100644 (file)
index 0000000..937827f
Binary files /dev/null and b/server/jpywork/copy_reg.class differ
diff --git a/server/jpywork/copy_reg.java b/server/jpywork/copy_reg.java
new file mode 100644 (file)
index 0000000..cb7caa5
--- /dev/null
@@ -0,0 +1,123 @@
+import org.python.core.*;
+
+public class copy_reg extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject i$6;
+        private static PyObject j$7;
+        private static PyObject s$8;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_pickle;
+        private static PyCode c$1_constructor;
+        private static PyCode c$2_pickle_complex;
+        private static PyCode c$3_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Helper to provide extensibility for pickle/cPickle.\012\012This is only useful to add pickle support for extension types defined in\012C, not for instances of user-defined classes.\012");
+            s$1 = Py.newString("pickle");
+            s$2 = Py.newString("constructor");
+            s$3 = Py.newString("copy_reg is not intended for use with classes");
+            s$4 = Py.newString("reduction functions must be callable");
+            s$5 = Py.newString("constructors must be callable");
+            i$6 = Py.newInteger(1);
+            j$7 = Py.newImaginary(1.0);
+            s$8 = Py.newString("/usr/share/jython/Lib-cpython/copy_reg.py");
+            funcTable = new _PyInner();
+            c$0_pickle = Py.newCode(3, new String[] {"ob_type", "pickle_function", "constructor_ob"}, "/usr/share/jython/Lib-cpython/copy_reg.py", "pickle", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_constructor = Py.newCode(1, new String[] {"object"}, "/usr/share/jython/Lib-cpython/copy_reg.py", "constructor", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_pickle_complex = Py.newCode(1, new String[] {"c"}, "/usr/share/jython/Lib-cpython/copy_reg.py", "pickle_complex", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/copy_reg.py", "main", false, false, funcTable, 3, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$3_main == null) _PyInner.initConstants();
+            return c$3_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.pickle$1(frame);
+                case 1:
+                return _PyInner.constructor$2(frame);
+                case 2:
+                return _PyInner.pickle_complex$3(frame);
+                case 3:
+                return _PyInner.main$4(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject pickle$1(PyFrame frame) {
+            if (frame.getglobal("type").__call__(frame.getlocal(0))._is(frame.getglobal("_ClassType")).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$3));
+            }
+            if (frame.getglobal("callable").__call__(frame.getlocal(1)).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$4));
+            }
+            frame.getglobal("dispatch_table").__setitem__(frame.getlocal(0), frame.getlocal(1));
+            if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) {
+                frame.getglobal("constructor").__call__(frame.getlocal(2));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject constructor$2(PyFrame frame) {
+            if (frame.getglobal("callable").__call__(frame.getlocal(0)).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$5));
+            }
+            frame.getglobal("safe_constructors").__setitem__(frame.getlocal(0), i$6);
+            return Py.None;
+        }
+        
+        private static PyObject pickle_complex$3(PyFrame frame) {
+            return new PyTuple(new PyObject[] {frame.getglobal("complex"), new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("real"), frame.getlocal(0).__getattr__("imag")})});
+        }
+        
+        private static PyObject main$4(PyFrame frame) {
+            frame.setglobal("__file__", s$8);
+            
+            PyObject[] imp_accu;
+            // Code
+            /* Helper to provide extensibility for pickle/cPickle.
+            
+            This is only useful to add pickle support for extension types defined in
+            C, not for instances of user-defined classes.
+             */
+            imp_accu = org.python.core.imp.importFrom("types", new String[] {"ClassType"}, frame);
+            frame.setlocal("_ClassType", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2}));
+            frame.setlocal("dispatch_table", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("safe_constructors", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("pickle", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$0_pickle));
+            frame.setlocal("constructor", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_constructor));
+            frame.setlocal("pickle_complex", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_pickle_complex));
+            frame.getname("pickle").__call__(frame.getname("type").__call__(j$7), frame.getname("pickle_complex"), frame.getname("complex"));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("copy_reg"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "copy_reg";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(copy_reg._PyInner.class, newargs, copy_reg.jpy$packages, copy_reg.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/javaos$_PyInner.class b/server/jpywork/javaos$_PyInner.class
new file mode 100644 (file)
index 0000000..8d9b498
Binary files /dev/null and b/server/jpywork/javaos$_PyInner.class differ
diff --git a/server/jpywork/javaos.class b/server/jpywork/javaos.class
new file mode 100644 (file)
index 0000000..7f0f7ef
Binary files /dev/null and b/server/jpywork/javaos.class differ
diff --git a/server/jpywork/javaos.java b/server/jpywork/javaos.java
new file mode 100644 (file)
index 0000000..5b1394f
--- /dev/null
@@ -0,0 +1,1098 @@
+import org.python.core.*;
+
+public class javaos extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject i$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject f$25;
+        private static PyObject s$26;
+        private static PyObject i$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyObject s$52;
+        private static PyObject s$53;
+        private static PyObject s$54;
+        private static PyObject s$55;
+        private static PyObject s$56;
+        private static PyObject s$57;
+        private static PyObject s$58;
+        private static PyObject s$59;
+        private static PyObject s$60;
+        private static PyObject s$61;
+        private static PyObject s$62;
+        private static PyObject s$63;
+        private static PyObject s$64;
+        private static PyObject s$65;
+        private static PyObject s$66;
+        private static PyObject s$67;
+        private static PyObject s$68;
+        private static PyObject s$69;
+        private static PyObject s$70;
+        private static PyObject s$71;
+        private static PyObject s$72;
+        private static PyObject s$73;
+        private static PyObject s$74;
+        private static PyObject s$75;
+        private static PyObject s$76;
+        private static PyObject s$77;
+        private static PyObject s$78;
+        private static PyObject s$79;
+        private static PyObject s$80;
+        private static PyObject s$81;
+        private static PyObject s$82;
+        private static PyObject s$83;
+        private static PyObject s$84;
+        private static PyObject s$85;
+        private static PyObject s$86;
+        private static PyObject s$87;
+        private static PyObject s$88;
+        private static PyObject s$89;
+        private static PyObject s$90;
+        private static PyObject s$91;
+        private static PyObject s$92;
+        private static PyObject s$93;
+        private static PyObject s$94;
+        private static PyObject s$95;
+        private static PyObject s$96;
+        private static PyObject s$97;
+        private static PyObject s$98;
+        private static PyObject s$99;
+        private static PyObject s$100;
+        private static PyObject s$101;
+        private static PyObject s$102;
+        private static PyObject s$103;
+        private static PyObject s$104;
+        private static PyObject s$105;
+        private static PyObject s$106;
+        private static PyObject s$107;
+        private static PyObject s$108;
+        private static PyObject s$109;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0__exit;
+        private static PyCode c$1_getcwd;
+        private static PyCode c$2_chdir;
+        private static PyCode c$3_listdir;
+        private static PyCode c$4_mkdir;
+        private static PyCode c$5_makedirs;
+        private static PyCode c$6_remove;
+        private static PyCode c$7_rename;
+        private static PyCode c$8_rmdir;
+        private static PyCode c$9_stat;
+        private static PyCode c$10_utime;
+        private static PyCode c$11_lambda;
+        private static PyCode c$12_lambda;
+        private static PyCode c$13___init__;
+        private static PyCode c$14__LazyDict__populate;
+        private static PyCode c$15___repr__;
+        private static PyCode c$16___cmp__;
+        private static PyCode c$17___len__;
+        private static PyCode c$18___getitem__;
+        private static PyCode c$19___setitem__;
+        private static PyCode c$20___delitem__;
+        private static PyCode c$21_clear;
+        private static PyCode c$22_copy;
+        private static PyCode c$23_keys;
+        private static PyCode c$24_items;
+        private static PyCode c$25_values;
+        private static PyCode c$26_has_key;
+        private static PyCode c$27_update;
+        private static PyCode c$28_get;
+        private static PyCode c$29_setdefault;
+        private static PyCode c$30_popitem;
+        private static PyCode c$31_LazyDict;
+        private static PyCode c$32___init__;
+        private static PyCode c$33_println;
+        private static PyCode c$34_printlnStdErr;
+        private static PyCode c$35_system;
+        private static PyCode c$36_execute;
+        private static PyCode c$37__readLines;
+        private static PyCode c$38__formatCmd;
+        private static PyCode c$39__formatEnvironment;
+        private static PyCode c$40__getEnvironment;
+        private static PyCode c$41__ShellEnv;
+        private static PyCode c$42__getOsType;
+        private static PyCode c$43__getShellEnv;
+        private static PyCode c$44__testGetOsType;
+        private static PyCode c$45__testCmds;
+        private static PyCode c$46__testSystem;
+        private static PyCode c$47__testBadShell;
+        private static PyCode c$48__testBadGetEnv;
+        private static PyCode c$49__test;
+        private static PyCode c$50_main;
+        private static void initConstants() {
+            s$0 = Py.newString("OS routines for Java, with some attempts to support DOS, NT, and\012Posix functionality.\012\012This exports:\012  - all functions from posix, nt, dos, os2, mac, or ce, e.g. unlink, stat, etc.\012  - os.path is one of the modules posixpath, ntpath, macpath, or dospath\012  - os.name is 'posix', 'nt', 'dos', 'os2', 'mac', 'ce' or 'riscos'\012  - os.curdir is a string representing the current directory ('.' or ':')\012  - os.pardir is a string representing the parent directory ('..' or '::')\012  - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\\\')\012  - os.altsep is the alternate pathname separator (None or '/')\012  - os.pathsep is the component separator used in $PATH etc\012  - os.linesep is the line separator in text files ('\\r' or '\\n' or '\\r\\n')\012  - os.defpath is the default search path for executables\012\012Programs that import and use 'os' stand a better chance of being\012portable between different platforms.  Of course, they must then\012only use functions that are defined by all platforms (e.g., unlink\012and opendir), and leave all pathname manipulation to os.path\012(e.g., split and join).\012");
+            s$1 = Py.newString("altsep");
+            s$2 = Py.newString("curdir");
+            s$3 = Py.newString("pardir");
+            s$4 = Py.newString("sep");
+            s$5 = Py.newString("pathsep");
+            s$6 = Py.newString("linesep");
+            s$7 = Py.newString("defpath");
+            s$8 = Py.newString("name");
+            s$9 = Py.newString("java");
+            s$10 = Py.newString(".");
+            s$11 = Py.newString("..");
+            s$12 = Py.newString("line.separator");
+            i$13 = Py.newInteger(0);
+            s$14 = Py.newString("foo");
+            s$15 = Py.newString("chdir not supported in Java");
+            s$16 = Py.newString("No such directory");
+            s$17 = Py.newString("couldn't make directory");
+            s$18 = Py.newString("ignored");
+            s$19 = Py.newString("couldn't make directories");
+            s$20 = Py.newString("couldn't delete file");
+            s$21 = Py.newString("couldn't rename file");
+            s$22 = Py.newString("couldn't delete directory");
+            s$23 = Py.newString("The Java stat implementation only returns a small subset of\012    the standard fields");
+            s$24 = Py.newString("No such file or directory");
+            f$25 = Py.newFloat(1000.0);
+            s$26 = Py.newString("setLastModified");
+            i$27 = Py.newInteger(1);
+            s$28 = Py.newString("A lazy-populating User Dictionary.\012    Lazy initialization is not thread-safe.\012    ");
+            s$29 = Py.newString("dict: starting dictionary of values\012        populate: function that returns the populated dictionary\012        keyTransform: function to normalize the keys (e.g., toupper/None)\012        ");
+            s$30 = Py.newString("Provide environment derived by spawning a subshell and parsing its\012    environment.  Also supports system functions and provides empty\012    environment support for platforms with unknown shell\012    functionality.\012    ");
+            s$31 = Py.newString("cmd: list of exec() arguments to run command in subshell, or None\012        getEnv: shell command to list environment variables, or None\012        keyTransform: normalization function for environment keys, or None\012        ");
+            s$32 = Py.newString("Imitate the standard library 'system' call.\012        Execute 'cmd' in a shell, and send output to stdout & stderr.\012        ");
+            s$33 = Py.newString("\012");
+            s$34 = Py.newString("Execute cmd in a shell, and return the process instance");
+            s$35 = Py.newString("Failed to execute command (%s): %s");
+            s$36 = Py.newString("Read lines of stream, and either append them to return\012        array of lines, or call func on each line.\012        ");
+            s$37 = Py.newString("Format a command for execution in a shell.");
+            s$38 = Py.newString("Unable to execute commands in subshell because shell functionality not implemented for OS %s with shell setting %s. Failed command=%s");
+            s$39 = Py.newString("Format enviroment in lines suitable for Runtime.exec");
+            s$40 = Py.newString("%s=%s");
+            s$41 = Py.newString("Get the environment variables by spawning a subshell.\012        This allows multi-line variables as long as subsequent lines do\012        not have '=' signs.\012        ");
+            s$42 = Py.newString("=");
+            s$43 = Py.newString("getEnv command (%s) did not print environment.\012Output=%s");
+            s$44 = Py.newString("%s\012%s");
+            s$45 = Py.newString("Failed to get environment, environ will be empty:");
+            s$46 = Py.newString("Select the OS behavior based on os argument, 'python.os' registry\012    setting and 'os.name' Java property.\012    os: explicitly select desired OS. os=None to autodetect, os='None' to\012    disable \012    ");
+            s$47 = Py.newString("python.os");
+            s$48 = Py.newString("os.name");
+            s$49 = Py.newString("nt");
+            s$50 = Py.newString("(nt)|(Windows NT)|(Windows NT 4.0)|(WindowsNT)|(Windows 2000)|(Windows XP)|(Windows CE)");
+            s$51 = Py.newString("dos");
+            s$52 = Py.newString("(dos)|(Windows 95)|(Windows 98)|(Windows ME)");
+            s$53 = Py.newString("mac");
+            s$54 = Py.newString("(mac)|(MacOS.*)|(Darwin)");
+            s$55 = Py.newString("None");
+            s$56 = Py.newString("(None)");
+            s$57 = Py.newString("posix");
+            s$58 = Py.newString("(.*)");
+            s$59 = Py.newString("Create the desired environment type.\012    envType: 'shell' or None\012    ");
+            s$60 = Py.newString("shell");
+            s$61 = Py.newString("python.environment");
+            s$62 = Py.newString("cmd");
+            s$63 = Py.newString("/c");
+            s$64 = Py.newString("set");
+            s$65 = Py.newString("command.com");
+            s$66 = Py.newString("sh");
+            s$67 = Py.newString("-c");
+            s$68 = Py.newString("env");
+            s$69 = Py.newString(":");
+            s$70 = Py.newString("::");
+            s$71 = Py.newString("Windows NT");
+            s$72 = Py.newString("Windows 95");
+            s$73 = Py.newString("MacOS");
+            s$74 = Py.newString("Solaris");
+            s$75 = Py.newString("Linux");
+            s$76 = Py.newString("_getOsType( '%s' ) should return '%s', not '%s'");
+            s$77 = Py.newString("\012Executing '%s' with %s environment");
+            s$78 = Py.newString("%s failed with %s environment");
+            s$79 = Py.newString("expected match for %s, got %s");
+            s$80 = Py.newString("testKey");
+            s$81 = Py.newString("testValue");
+            s$82 = Py.newString("echo hello there");
+            s$83 = Py.newString("hello there");
+            s$84 = Py.newString("echo PATH=%PATH%");
+            s$85 = Py.newString("(PATH=.*;.*)|(PATH=%PATH%)");
+            s$86 = Py.newString("echo %s=%%%s%%");
+            s$87 = Py.newString("(%s=)");
+            s$88 = Py.newString("echo PATH=$PATH");
+            s$89 = Py.newString("PATH=.*");
+            s$90 = Py.newString("echo %s=$%s");
+            s$91 = Py.newString("(%s=$%s)|(%s=)|(%s=%s)");
+            s$92 = Py.newString("echo \"hello there\"");
+            s$93 = Py.newString("\"?hello there\"?");
+            s$94 = Py.newString("jython -c \"import sys;sys.stdout.write( 'why\\n' )\"");
+            s$95 = Py.newString("why");
+            s$96 = Py.newString("jython -c \"import sys;sys.stderr.write('why\\n');print \" ");
+            s$97 = Py.newString("");
+            s$98 = Py.newString("before population, environ._populated should be false");
+            s$99 = Py.newString("default");
+            s$100 = Py.newString("after population, environ._populated should be true");
+            s$101 = Py.newString("expected stub to have %s set");
+            s$102 = Py.newString("expected real environment to have %s set");
+            s$103 = Py.newString("initialized");
+            s$104 = Py.newString("PATH");
+            s$105 = Py.newString("expected environment to have PATH attribute (this may not apply to all platforms!)");
+            s$106 = Py.newString("badshell");
+            s$107 = Py.newString("environment should be empty");
+            s$108 = Py.newString("echo This command does not print environment");
+            s$109 = Py.newString("/usr/share/jython/Lib/javaos.py");
+            funcTable = new _PyInner();
+            c$0__exit = Py.newCode(1, new String[] {"n"}, "/usr/share/jython/Lib/javaos.py", "_exit", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_getcwd = Py.newCode(0, new String[] {"foo"}, "/usr/share/jython/Lib/javaos.py", "getcwd", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_chdir = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javaos.py", "chdir", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_listdir = Py.newCode(1, new String[] {"path", "l"}, "/usr/share/jython/Lib/javaos.py", "listdir", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_mkdir = Py.newCode(2, new String[] {"path", "mode"}, "/usr/share/jython/Lib/javaos.py", "mkdir", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_makedirs = Py.newCode(2, new String[] {"path", "mode"}, "/usr/share/jython/Lib/javaos.py", "makedirs", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_remove = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javaos.py", "remove", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_rename = Py.newCode(2, new String[] {"path", "newpath"}, "/usr/share/jython/Lib/javaos.py", "rename", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_rmdir = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javaos.py", "rmdir", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_stat = Py.newCode(1, new String[] {"path", "mtime", "size", "f"}, "/usr/share/jython/Lib/javaos.py", "stat", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_utime = Py.newCode(2, new String[] {"path", "times"}, "/usr/share/jython/Lib/javaos.py", "utime", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_lambda = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "<lambda>", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_lambda = Py.newCode(1, new String[] {"key"}, "/usr/share/jython/Lib/javaos.py", "<lambda>", false, false, funcTable, 12, null, null, 0, 1);
+            c$13___init__ = Py.newCode(4, new String[] {"self", "dict", "populate", "keyTransform"}, "/usr/share/jython/Lib/javaos.py", "__init__", false, false, funcTable, 13, null, null, 0, 1);
+            c$14__LazyDict__populate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "_LazyDict__populate", false, false, funcTable, 14, null, null, 0, 1);
+            c$15___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "__repr__", false, false, funcTable, 15, null, null, 0, 1);
+            c$16___cmp__ = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib/javaos.py", "__cmp__", false, false, funcTable, 16, null, null, 0, 1);
+            c$17___len__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "__len__", false, false, funcTable, 17, null, null, 0, 1);
+            c$18___getitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib/javaos.py", "__getitem__", false, false, funcTable, 18, null, null, 0, 1);
+            c$19___setitem__ = Py.newCode(3, new String[] {"self", "key", "item"}, "/usr/share/jython/Lib/javaos.py", "__setitem__", false, false, funcTable, 19, null, null, 0, 1);
+            c$20___delitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib/javaos.py", "__delitem__", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_clear = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "clear", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_copy = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "copy", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_keys = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "keys", false, false, funcTable, 23, null, null, 0, 1);
+            c$24_items = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "items", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_values = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "values", false, false, funcTable, 25, null, null, 0, 1);
+            c$26_has_key = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib/javaos.py", "has_key", false, false, funcTable, 26, null, null, 0, 1);
+            c$27_update = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib/javaos.py", "update", false, false, funcTable, 27, null, null, 0, 1);
+            c$28_get = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib/javaos.py", "get", false, false, funcTable, 28, null, null, 0, 1);
+            c$29_setdefault = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib/javaos.py", "setdefault", false, false, funcTable, 29, null, null, 0, 1);
+            c$30_popitem = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "popitem", false, false, funcTable, 30, null, null, 0, 1);
+            c$31_LazyDict = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "LazyDict", false, false, funcTable, 31, null, null, 0, 0);
+            c$32___init__ = Py.newCode(4, new String[] {"self", "cmd", "getEnv", "keyTransform"}, "/usr/share/jython/Lib/javaos.py", "__init__", false, false, funcTable, 32, null, null, 0, 1);
+            c$33_println = Py.newCode(2, new String[] {"arg", "write"}, "/usr/share/jython/Lib/javaos.py", "println", false, false, funcTable, 33, null, null, 0, 1);
+            c$34_printlnStdErr = Py.newCode(2, new String[] {"arg", "write"}, "/usr/share/jython/Lib/javaos.py", "printlnStdErr", false, false, funcTable, 34, null, null, 0, 1);
+            c$35_system = Py.newCode(2, new String[] {"self", "cmd", "println", "printlnStdErr", "p"}, "/usr/share/jython/Lib/javaos.py", "system", false, false, funcTable, 35, null, null, 0, 1);
+            c$36_execute = Py.newCode(2, new String[] {"self", "cmd", "p", "shellCmd", "env", "ex"}, "/usr/share/jython/Lib/javaos.py", "execute", false, false, funcTable, 36, null, null, 0, 1);
+            c$37__readLines = Py.newCode(3, new String[] {"self", "stream", "func", "bufStream", "lines", "line"}, "/usr/share/jython/Lib/javaos.py", "_readLines", false, false, funcTable, 37, null, null, 0, 1);
+            c$38__formatCmd = Py.newCode(2, new String[] {"self", "cmd", "msgFmt"}, "/usr/share/jython/Lib/javaos.py", "_formatCmd", false, false, funcTable, 38, null, null, 0, 1);
+            c$39__formatEnvironment = Py.newCode(2, new String[] {"self", "env", "lines", "keyValue"}, "/usr/share/jython/Lib/javaos.py", "_formatEnvironment", false, false, funcTable, 39, null, null, 0, 1);
+            c$40__getEnvironment = Py.newCode(1, new String[] {"self", "p", "i", "env", "ex", "value", "key", "lines", "line"}, "/usr/share/jython/Lib/javaos.py", "_getEnvironment", false, false, funcTable, 40, null, null, 0, 1);
+            c$41__ShellEnv = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "_ShellEnv", false, false, funcTable, 41, null, null, 0, 0);
+            c$42__getOsType = Py.newCode(1, new String[] {"os", "osType", "pattern", "_osTypeMap"}, "/usr/share/jython/Lib/javaos.py", "_getOsType", false, false, funcTable, 42, null, null, 0, 1);
+            c$43__getShellEnv = Py.newCode(4, new String[] {"envType", "shellCmd", "envCmd", "envTransform"}, "/usr/share/jython/Lib/javaos.py", "_getShellEnv", false, false, funcTable, 43, null, null, 0, 1);
+            c$44__testGetOsType = Py.newCode(0, new String[] {"got", "key", "testVals", "msgFmt", "val"}, "/usr/share/jython/Lib/javaos.py", "_testGetOsType", false, false, funcTable, 44, null, null, 0, 1);
+            c$45__testCmds = Py.newCode(3, new String[] {"_shellEnv", "testCmds", "whichEnv", "line", "pattern", "cmd"}, "/usr/share/jython/Lib/javaos.py", "_testCmds", false, false, funcTable, 45, null, null, 0, 1);
+            c$46__testSystem = Py.newCode(1, new String[] {"shellEnv", "testCmds", "value", "key", "org"}, "/usr/share/jython/Lib/javaos.py", "_testSystem", false, false, funcTable, 46, null, null, 0, 1);
+            c$47__testBadShell = Py.newCode(0, new String[] {"se2"}, "/usr/share/jython/Lib/javaos.py", "_testBadShell", false, false, funcTable, 47, null, null, 0, 1);
+            c$48__testBadGetEnv = Py.newCode(0, new String[] {"se2"}, "/usr/share/jython/Lib/javaos.py", "_testBadGetEnv", false, false, funcTable, 48, null, null, 0, 1);
+            c$49__test = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "_test", false, false, funcTable, 49, null, null, 0, 1);
+            c$50_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "main", false, false, funcTable, 50, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$50_main == null) _PyInner.initConstants();
+            return c$50_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner._exit$1(frame);
+                case 1:
+                return _PyInner.getcwd$2(frame);
+                case 2:
+                return _PyInner.chdir$3(frame);
+                case 3:
+                return _PyInner.listdir$4(frame);
+                case 4:
+                return _PyInner.mkdir$5(frame);
+                case 5:
+                return _PyInner.makedirs$6(frame);
+                case 6:
+                return _PyInner.remove$7(frame);
+                case 7:
+                return _PyInner.rename$8(frame);
+                case 8:
+                return _PyInner.rmdir$9(frame);
+                case 9:
+                return _PyInner.stat$10(frame);
+                case 10:
+                return _PyInner.utime$11(frame);
+                case 11:
+                return _PyInner.lambda$12(frame);
+                case 12:
+                return _PyInner.lambda$13(frame);
+                case 13:
+                return _PyInner.__init__$14(frame);
+                case 14:
+                return _PyInner._LazyDict__populate$15(frame);
+                case 15:
+                return _PyInner.__repr__$16(frame);
+                case 16:
+                return _PyInner.__cmp__$17(frame);
+                case 17:
+                return _PyInner.__len__$18(frame);
+                case 18:
+                return _PyInner.__getitem__$19(frame);
+                case 19:
+                return _PyInner.__setitem__$20(frame);
+                case 20:
+                return _PyInner.__delitem__$21(frame);
+                case 21:
+                return _PyInner.clear$22(frame);
+                case 22:
+                return _PyInner.copy$23(frame);
+                case 23:
+                return _PyInner.keys$24(frame);
+                case 24:
+                return _PyInner.items$25(frame);
+                case 25:
+                return _PyInner.values$26(frame);
+                case 26:
+                return _PyInner.has_key$27(frame);
+                case 27:
+                return _PyInner.update$28(frame);
+                case 28:
+                return _PyInner.get$29(frame);
+                case 29:
+                return _PyInner.setdefault$30(frame);
+                case 30:
+                return _PyInner.popitem$31(frame);
+                case 31:
+                return _PyInner.LazyDict$32(frame);
+                case 32:
+                return _PyInner.__init__$33(frame);
+                case 33:
+                return _PyInner.println$34(frame);
+                case 34:
+                return _PyInner.printlnStdErr$35(frame);
+                case 35:
+                return _PyInner.system$36(frame);
+                case 36:
+                return _PyInner.execute$37(frame);
+                case 37:
+                return _PyInner._readLines$38(frame);
+                case 38:
+                return _PyInner._formatCmd$39(frame);
+                case 39:
+                return _PyInner._formatEnvironment$40(frame);
+                case 40:
+                return _PyInner._getEnvironment$41(frame);
+                case 41:
+                return _PyInner._ShellEnv$42(frame);
+                case 42:
+                return _PyInner._getOsType$43(frame);
+                case 43:
+                return _PyInner._getShellEnv$44(frame);
+                case 44:
+                return _PyInner._testGetOsType$45(frame);
+                case 45:
+                return _PyInner._testCmds$46(frame);
+                case 46:
+                return _PyInner._testSystem$47(frame);
+                case 47:
+                return _PyInner._testBadShell$48(frame);
+                case 48:
+                return _PyInner._testBadGetEnv$49(frame);
+                case 49:
+                return _PyInner._test$50(frame);
+                case 50:
+                return _PyInner.main$51(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject _exit$1(PyFrame frame) {
+            frame.getglobal("java").__getattr__("lang").__getattr__("System").__getattr__("exit").__call__(frame.getlocal(0));
+            return Py.None;
+        }
+        
+        private static PyObject getcwd$2(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("File").__call__(frame.getglobal("File").__call__(s$14).invoke("getAbsolutePath")));
+            return frame.getlocal(0).invoke("getParent");
+        }
+        
+        private static PyObject chdir$3(PyFrame frame) {
+            throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$15, frame.getlocal(0)));
+        }
+        
+        private static PyObject listdir$4(PyFrame frame) {
+            frame.setlocal(1, frame.getglobal("File").__call__(frame.getlocal(0)).invoke("list"));
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$16, frame.getlocal(0)));
+            }
+            return frame.getglobal("list").__call__(frame.getlocal(1));
+        }
+        
+        private static PyObject mkdir$5(PyFrame frame) {
+            if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("mkdir").__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$17, frame.getlocal(0)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject makedirs$6(PyFrame frame) {
+            if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("mkdirs").__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$19, frame.getlocal(0)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject remove$7(PyFrame frame) {
+            if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("delete").__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$20, frame.getlocal(0)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject rename$8(PyFrame frame) {
+            if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("renameTo", frame.getglobal("File").__call__(frame.getlocal(1))).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$21, frame.getlocal(0)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject rmdir$9(PyFrame frame) {
+            if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("delete").__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$22, frame.getlocal(0)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject stat$10(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* The Java stat implementation only returns a small subset of
+                the standard fields */
+            frame.setlocal(3, frame.getglobal("File").__call__(frame.getlocal(0)));
+            frame.setlocal(2, frame.getlocal(3).invoke("length"));
+            if (((t$0$PyObject = frame.getlocal(2)._eq(i$13)).__nonzero__() ? frame.getlocal(3).invoke("exists").__not__() : t$0$PyObject).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$24, frame.getlocal(0)));
+            }
+            frame.setlocal(1, frame.getlocal(3).invoke("lastModified")._div(f$25));
+            return new PyTuple(new PyObject[] {i$13, i$13, i$13, i$13, i$13, i$13, frame.getlocal(2), frame.getlocal(1), frame.getlocal(1), i$13});
+        }
+        
+        private static PyObject utime$11(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (((t$0$PyObject = frame.getlocal(1)).__nonzero__() ? frame.getglobal("hasattr").__call__(frame.getglobal("File"), s$26) : t$0$PyObject).__nonzero__()) {
+                frame.getglobal("File").__call__(frame.getlocal(0)).invoke("setLastModified", frame.getglobal("long").__call__(frame.getlocal(1).__getitem__(i$27)._mul(f$25)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject lambda$12(PyFrame frame) {
+            return new PyDictionary(new PyObject[] {});
+        }
+        
+        private static PyObject lambda$13(PyFrame frame) {
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject __init__$14(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* dict: starting dictionary of values
+                    populate: function that returns the populated dictionary
+                    keyTransform: function to normalize the keys (e.g., toupper/None)
+                     */
+            frame.getglobal("UserDict").__getattr__("__init__").__call__(frame.getlocal(0), frame.getlocal(1));
+            frame.getlocal(0).__setattr__("_populated", i$13);
+            frame.getlocal(0).__setattr__("_LazyDict__populateFunc", (t$0$PyObject = frame.getlocal(2)).__nonzero__() ? t$0$PyObject : new PyFunction(frame.f_globals, new PyObject[] {}, c$11_lambda));
+            frame.getlocal(0).__setattr__("_keyTransform", (t$0$PyObject = frame.getlocal(3)).__nonzero__() ? t$0$PyObject : new PyFunction(frame.f_globals, new PyObject[] {}, c$12_lambda));
+            return Py.None;
+        }
+        
+        private static PyObject _LazyDict__populate$15(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("_populated").__not__().__nonzero__()) {
+                frame.getlocal(0).__setattr__("data", frame.getlocal(0).invoke("_LazyDict__populateFunc"));
+                frame.getlocal(0).__setattr__("_populated", i$27);
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __repr__$16(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("__repr__").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject __cmp__$17(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("__cmp__").__call__(frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject __len__$18(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("__len__").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject __getitem__$19(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("__getitem__").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)));
+        }
+        
+        private static PyObject __setitem__$20(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            frame.getglobal("UserDict").__getattr__("__setitem__").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)), frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject __delitem__$21(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            frame.getglobal("UserDict").__getattr__("__delitem__").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject clear$22(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            frame.getglobal("UserDict").__getattr__("clear").__call__(frame.getlocal(0));
+            return Py.None;
+        }
+        
+        private static PyObject copy$23(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("copy").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject keys$24(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("keys").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject items$25(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("items").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject values$26(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("values").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject has_key$27(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("has_key").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)));
+        }
+        
+        private static PyObject update$28(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            frame.getglobal("UserDict").__getattr__("update").__call__(frame.getlocal(0), frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject get$29(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("get").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)), frame.getlocal(2));
+        }
+        
+        private static PyObject setdefault$30(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("setdefault").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)), frame.getlocal(2));
+        }
+        
+        private static PyObject popitem$31(PyFrame frame) {
+            frame.getlocal(0).invoke("_LazyDict__populate");
+            return frame.getglobal("UserDict").__getattr__("popitem").__call__(frame.getlocal(0));
+        }
+        
+        private static PyObject LazyDict$32(PyFrame frame) {
+            /* A lazy-populating User Dictionary.
+                Lazy initialization is not thread-safe.
+                 */
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None")}, c$13___init__));
+            frame.setlocal("_LazyDict__populate", new PyFunction(frame.f_globals, new PyObject[] {}, c$14__LazyDict__populate));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$15___repr__));
+            frame.setlocal("__cmp__", new PyFunction(frame.f_globals, new PyObject[] {}, c$16___cmp__));
+            frame.setlocal("__len__", new PyFunction(frame.f_globals, new PyObject[] {}, c$17___len__));
+            frame.setlocal("__getitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$18___getitem__));
+            frame.setlocal("__setitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$19___setitem__));
+            frame.setlocal("__delitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$20___delitem__));
+            frame.setlocal("clear", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_clear));
+            frame.setlocal("copy", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_copy));
+            frame.setlocal("keys", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_keys));
+            frame.setlocal("items", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_items));
+            frame.setlocal("values", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_values));
+            frame.setlocal("has_key", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_has_key));
+            frame.setlocal("update", new PyFunction(frame.f_globals, new PyObject[] {}, c$27_update));
+            frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$28_get));
+            frame.setlocal("setdefault", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$29_setdefault));
+            frame.setlocal("popitem", new PyFunction(frame.f_globals, new PyObject[] {}, c$30_popitem));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$33(PyFrame frame) {
+            /* cmd: list of exec() arguments to run command in subshell, or None
+                    getEnv: shell command to list environment variables, or None
+                    keyTransform: normalization function for environment keys, or None
+                     */
+            frame.getlocal(0).__setattr__("cmd", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("getEnv", frame.getlocal(2));
+            frame.getlocal(0).__setattr__("environment", frame.getglobal("LazyDict").__call__(new PyObject[] {frame.getlocal(0).__getattr__("_getEnvironment"), frame.getlocal(3)}, new String[] {"populate", "keyTransform"}));
+            frame.getlocal(0).__setattr__("_keyTransform", frame.getlocal(0).__getattr__("environment").__getattr__("_keyTransform"));
+            return Py.None;
+        }
+        
+        private static PyObject println$34(PyFrame frame) {
+            frame.getlocal(1).__call__(frame.getlocal(0)._add(s$33));
+            return Py.None;
+        }
+        
+        private static PyObject printlnStdErr$35(PyFrame frame) {
+            frame.getlocal(1).__call__(frame.getlocal(0)._add(s$33));
+            return Py.None;
+        }
+        
+        private static PyObject system$36(PyFrame frame) {
+            /* Imitate the standard library 'system' call.
+                    Execute 'cmd' in a shell, and send output to stdout & stderr.
+                     */
+            frame.setlocal(4, frame.getlocal(0).invoke("execute", frame.getlocal(1)));
+            frame.setlocal(2, new PyFunction(frame.f_globals, new PyObject[] {frame.getglobal("sys").__getattr__("stdout").__getattr__("write")}, c$33_println));
+            frame.setlocal(3, new PyFunction(frame.f_globals, new PyObject[] {frame.getglobal("sys").__getattr__("stderr").__getattr__("write")}, c$34_printlnStdErr));
+            frame.getglobal("thread").__getattr__("start_new_thread").__call__(frame.getlocal(0).__getattr__("_readLines"), new PyTuple(new PyObject[] {frame.getlocal(4).invoke("getErrorStream"), frame.getlocal(3)}));
+            frame.getlocal(0).invoke("_readLines", frame.getlocal(4).invoke("getInputStream"), frame.getlocal(2));
+            return frame.getlocal(4).invoke("waitFor");
+        }
+        
+        private static PyObject execute$37(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* Execute cmd in a shell, and return the process instance */
+            frame.setlocal(3, frame.getlocal(0).invoke("_formatCmd", frame.getlocal(1)));
+            if (frame.getlocal(0).__getattr__("environment").__getattr__("_populated").__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(0).invoke("_formatEnvironment", frame.getlocal(0).__getattr__("environment")));
+            }
+            else {
+                frame.setlocal(4, frame.getglobal("None"));
+            }
+            try {
+                frame.setlocal(2, frame.getglobal("java").__getattr__("lang").__getattr__("Runtime").__getattr__("getRuntime").__call__().invoke("exec", frame.getlocal(3), frame.getlocal(4)));
+                return frame.getlocal(2);
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("IOException"))) {
+                    frame.setlocal(5, t$0$PyException.value);
+                    throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$35._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(5)}))));
+                }
+                else throw t$0$PyException;
+            }
+        }
+        
+        private static PyObject _readLines$38(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* Read lines of stream, and either append them to return
+                    array of lines, or call func on each line.
+                     */
+            frame.setlocal(4, new PyList(new PyObject[] {}));
+            frame.setlocal(2, (t$0$PyObject = frame.getlocal(2)).__nonzero__() ? t$0$PyObject : frame.getlocal(4).__getattr__("append"));
+            frame.setlocal(3, frame.getglobal("BufferedReader").__call__(frame.getglobal("InputStreamReader").__call__(frame.getlocal(1))));
+            while (i$27.__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(3).invoke("readLine"));
+                if (frame.getlocal(5)._is(frame.getglobal("None")).__nonzero__()) {
+                    break;
+                }
+                frame.getlocal(2).__call__(frame.getlocal(5));
+            }
+            return (t$0$PyObject = frame.getlocal(4)).__nonzero__() ? t$0$PyObject : frame.getglobal("None");
+        }
+        
+        private static PyObject _formatCmd$39(PyFrame frame) {
+            /* Format a command for execution in a shell. */
+            if (frame.getlocal(0).__getattr__("cmd")._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(2, s$38);
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$13, frame.getlocal(2)._mod(new PyTuple(new PyObject[] {frame.getglobal("_osType"), frame.getglobal("_envType"), frame.getlocal(1)}))));
+            }
+            return frame.getlocal(0).__getattr__("cmd")._add(new PyList(new PyObject[] {frame.getlocal(1)}));
+        }
+        
+        private static PyObject _formatEnvironment$40(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Format enviroment in lines suitable for Runtime.exec */
+            frame.setlocal(2, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(1).invoke("items");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(3, t$0$PyObject);
+                frame.getlocal(2).invoke("append", s$40._mod(frame.getlocal(3)));
+            }
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject _getEnvironment$41(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Get the environment variables by spawning a subshell.
+                    This allows multi-line variables as long as subsequent lines do
+                    not have '=' signs.
+                     */
+            frame.setlocal(3, new PyDictionary(new PyObject[] {}));
+            if (frame.getlocal(0).__getattr__("getEnv").__nonzero__()) {
+                try {
+                    frame.setlocal(1, frame.getlocal(0).invoke("execute", frame.getlocal(0).__getattr__("getEnv")));
+                    frame.setlocal(7, frame.getlocal(0).invoke("_readLines", frame.getlocal(1).invoke("getInputStream")));
+                    if (s$42._notin(frame.getlocal(7).__getitem__(i$13)).__nonzero__()) {
+                        Py.println(s$43._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("getEnv"), s$33.invoke("join", frame.getlocal(7))})));
+                        return frame.getlocal(3);
+                    }
+                    t$0$int = 0;
+                    t$1$PyObject = frame.getlocal(7);
+                    while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                        frame.setlocal(8, t$0$PyObject);
+                        try {
+                            frame.setlocal(2, frame.getlocal(8).invoke("index", s$42));
+                            frame.setlocal(6, frame.getlocal(0).invoke("_keyTransform", frame.getlocal(8).__getslice__(null, frame.getlocal(2), null)));
+                            frame.setlocal(5, frame.getlocal(8).__getslice__(frame.getlocal(2)._add(i$27), null, null));
+                        }
+                        catch (Throwable x$0) {
+                            t$0$PyException = Py.setException(x$0, frame);
+                            if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                                frame.setlocal(5, s$44._mod(new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(8)})));
+                            }
+                            else throw t$0$PyException;
+                        }
+                        frame.getlocal(3).__setitem__(frame.getlocal(6), frame.getlocal(5));
+                    }
+                }
+                catch (Throwable x$1) {
+                    t$0$PyException = Py.setException(x$1, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("OSError"))) {
+                        frame.setlocal(4, t$0$PyException.value);
+                        Py.printComma(s$45);
+                        Py.println(frame.getlocal(4));
+                    }
+                    else throw t$0$PyException;
+                }
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject _ShellEnv$42(PyFrame frame) {
+            /* Provide environment derived by spawning a subshell and parsing its
+                environment.  Also supports system functions and provides empty
+                environment support for platforms with unknown shell
+                functionality.
+                 */
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None")}, c$32___init__));
+            frame.setlocal("system", new PyFunction(frame.f_globals, new PyObject[] {}, c$35_system));
+            frame.setlocal("execute", new PyFunction(frame.f_globals, new PyObject[] {}, c$36_execute));
+            frame.setlocal("_readLines", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$37__readLines));
+            frame.setlocal("_formatCmd", new PyFunction(frame.f_globals, new PyObject[] {}, c$38__formatCmd));
+            frame.setlocal("_formatEnvironment", new PyFunction(frame.f_globals, new PyObject[] {}, c$39__formatEnvironment));
+            frame.setlocal("_getEnvironment", new PyFunction(frame.f_globals, new PyObject[] {}, c$40__getEnvironment));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject _getOsType$43(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Select the OS behavior based on os argument, 'python.os' registry
+                setting and 'os.name' Java property.
+                os: explicitly select desired OS. os=None to autodetect, os='None' to
+                disable 
+                 */
+            frame.setlocal(0, (t$0$PyObject = ((t$1$PyObject = frame.getlocal(0)).__nonzero__() ? t$1$PyObject : frame.getglobal("sys").__getattr__("registry").__getattr__("getProperty").__call__(s$47))).__nonzero__() ? t$0$PyObject : frame.getglobal("java").__getattr__("lang").__getattr__("System").__getattr__("getProperty").__call__(s$48));
+            frame.setlocal(3, new PyTuple(new PyObject[] {new PyTuple(new PyObject[] {s$49, s$50}), new PyTuple(new PyObject[] {s$51, s$52}), new PyTuple(new PyObject[] {s$53, s$54}), new PyTuple(new PyObject[] {s$55, s$56}), new PyTuple(new PyObject[] {s$57, s$58})}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(3);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(1, t$0$PyObject__[0]);
+                frame.setlocal(2, t$0$PyObject__[1]);
+                if (frame.getglobal("re").__getattr__("match").__call__(frame.getlocal(2), frame.getlocal(0)).__nonzero__()) {
+                    break;
+                }
+            }
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject _getShellEnv$44(PyFrame frame) {
+            /* Create the desired environment type.
+                envType: 'shell' or None
+                 */
+            if (frame.getlocal(0)._eq(s$60).__nonzero__()) {
+                return frame.getglobal("_ShellEnv").__call__(frame.getlocal(1), frame.getlocal(2), frame.getlocal(3));
+            }
+            else {
+                return frame.getglobal("_ShellEnv").__call__();
+            }
+        }
+        
+        private static PyObject _testGetOsType$45(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(2, new PyDictionary(new PyObject[] {s$71, s$49, s$72, s$51, s$73, s$53, s$74, s$57, s$75, s$57, s$55, s$55}));
+            frame.setlocal(3, s$76);
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(2).invoke("items");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(1, t$0$PyObject__[0]);
+                frame.setlocal(4, t$0$PyObject__[1]);
+                frame.setlocal(0, frame.getglobal("_getOsType").__call__(frame.getlocal(1)));
+                if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0)._eq(frame.getlocal(4)), frame.getlocal(3)._mod(new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(4), frame.getlocal(0)})));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _testCmds$46(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(1);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(5, t$0$PyObject__[0]);
+                frame.setlocal(4, t$0$PyObject__[1]);
+                Py.println(s$77._mod(new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(2)})));
+                if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).invoke("system", frame.getlocal(5)).__not__(), s$78._mod(new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(2)})));
+                frame.setlocal(3, frame.getlocal(0).invoke("_readLines", frame.getlocal(0).invoke("execute", frame.getlocal(5)).invoke("getInputStream")).__getitem__(i$13));
+                if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("re").__getattr__("match").__call__(frame.getlocal(4), frame.getlocal(3)), s$79._mod(new PyTuple(new PyObject[] {frame.getlocal(4), frame.getlocal(3)})));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _testSystem$47(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {s$80, s$81}), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            frame.setlocal(4, frame.getglobal("environ"));
+            frame.setlocal(1, new PyList(new PyObject[] {new PyTuple(new PyObject[] {s$82, s$83}), new PyTuple(new PyObject[] {s$84, s$85}), new PyTuple(new PyObject[] {s$86._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(3)})), s$87._mod(new PyTuple(new PyObject[] {frame.getlocal(3)}))}), new PyTuple(new PyObject[] {s$88, s$89}), new PyTuple(new PyObject[] {s$90._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(3)})), s$91._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(3), frame.getlocal(3), frame.getlocal(3), frame.getlocal(2)}))}), new PyTuple(new PyObject[] {s$92, s$93}), new PyTuple(new PyObject[] {s$94, s$95}), new PyTuple(new PyObject[] {s$96, s$97})}));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").__getattr__("_populated").__not__(), s$98);
+            frame.getglobal("_testCmds").__call__(frame.getglobal("_shellEnv"), frame.getlocal(1), s$99);
+            frame.getglobal("environ").__setitem__(frame.getlocal(3), frame.getlocal(2));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").__getattr__("_populated"), s$100);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(4).invoke("get", frame.getlocal(3), frame.getglobal("None"))._eq(frame.getlocal(2)), s$101._mod(frame.getlocal(3)));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").invoke("get", frame.getlocal(3), frame.getglobal("None"))._eq(frame.getlocal(2)), s$102._mod(frame.getlocal(3)));
+            frame.getglobal("_testCmds").__call__(frame.getglobal("_shellEnv"), frame.getlocal(1), s$103);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").invoke("has_key", s$104), s$105);
+            return Py.None;
+        }
+        
+        private static PyObject _testBadShell$48(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("_ShellEnv").__call__(new PyList(new PyObject[] {s$106, s$67}), s$64));
+            frame.getglobal("str").__call__(frame.getlocal(0).__getattr__("environment"));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("environment").invoke("items").__not__(), s$107);
+            return Py.None;
+        }
+        
+        private static PyObject _testBadGetEnv$49(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("_getShellEnv").__call__(new PyObject[] {s$60, frame.getglobal("_shellCmd"), frame.getglobal("_envCmd"), frame.getglobal("_envTransform")}));
+            frame.getlocal(0).__setattr__("getEnv", s$108);
+            frame.getglobal("str").__call__(frame.getlocal(0).__getattr__("environment"));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("environment").invoke("items").__not__(), s$107);
+            return Py.None;
+        }
+        
+        private static PyObject _test$50(PyFrame frame) {
+            frame.getglobal("_testGetOsType").__call__();
+            frame.getglobal("_testBadShell").__call__();
+            frame.getglobal("_testBadGetEnv").__call__();
+            frame.getglobal("_testSystem").__call__();
+            return Py.None;
+        }
+        
+        private static PyObject main$51(PyFrame frame) {
+            frame.setglobal("__file__", s$109);
+            
+            PyObject[] imp_accu;
+            // Code
+            /* OS routines for Java, with some attempts to support DOS, NT, and
+            Posix functionality.
+            
+            This exports:
+              - all functions from posix, nt, dos, os2, mac, or ce, e.g. unlink, stat, etc.
+              - os.path is one of the modules posixpath, ntpath, macpath, or dospath
+              - os.name is 'posix', 'nt', 'dos', 'os2', 'mac', 'ce' or 'riscos'
+              - os.curdir is a string representing the current directory ('.' or ':')
+              - os.pardir is a string representing the parent directory ('..' or '::')
+              - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\')
+              - os.altsep is the alternate pathname separator (None or '/')
+              - os.pathsep is the component separator used in $PATH etc
+              - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
+              - os.defpath is the default search path for executables
+            
+            Programs that import and use 'os' stand a better chance of being
+            portable between different platforms.  Of course, they must then
+            only use functions that are defined by all platforms (e.g., unlink
+            and opendir), and leave all pathname manipulation to os.path
+            (e.g., split and join).
+             */
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8}));
+            frame.setlocal("java", org.python.core.imp.importOne("java", frame));
+            imp_accu = org.python.core.imp.importFrom("java.io", new String[] {"File", "BufferedReader", "InputStreamReader", "IOException"}, frame);
+            frame.setlocal("File", imp_accu[0]);
+            frame.setlocal("BufferedReader", imp_accu[1]);
+            frame.setlocal("InputStreamReader", imp_accu[2]);
+            frame.setlocal("IOException", imp_accu[3]);
+            imp_accu = null;
+            frame.setlocal("path", org.python.core.imp.importOneAs("javapath", frame));
+            imp_accu = org.python.core.imp.importFrom("UserDict", new String[] {"UserDict"}, frame);
+            frame.setlocal("UserDict", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("string", org.python.core.imp.importOne("string", frame));
+            frame.setlocal("exceptions", org.python.core.imp.importOne("exceptions", frame));
+            frame.setlocal("re", org.python.core.imp.importOne("re", frame));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("thread", org.python.core.imp.importOne("thread", frame));
+            frame.setlocal("error", frame.getname("OSError"));
+            frame.setlocal("name", s$9);
+            frame.setlocal("curdir", s$10);
+            frame.setlocal("pardir", s$11);
+            frame.setlocal("sep", frame.getname("java").__getattr__("io").__getattr__("File").__getattr__("separator"));
+            frame.setlocal("altsep", frame.getname("None"));
+            frame.setlocal("pathsep", frame.getname("java").__getattr__("io").__getattr__("File").__getattr__("pathSeparator"));
+            frame.setlocal("defpath", s$10);
+            frame.setlocal("linesep", frame.getname("java").__getattr__("lang").__getattr__("System").__getattr__("getProperty").__call__(s$12));
+            frame.setlocal("_exit", new PyFunction(frame.f_globals, new PyObject[] {i$13}, c$0__exit));
+            frame.setlocal("getcwd", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_getcwd));
+            frame.setlocal("chdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_chdir));
+            frame.setlocal("listdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_listdir));
+            frame.setlocal("mkdir", new PyFunction(frame.f_globals, new PyObject[] {s$18}, c$4_mkdir));
+            frame.setlocal("makedirs", new PyFunction(frame.f_globals, new PyObject[] {s$18}, c$5_makedirs));
+            frame.setlocal("remove", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_remove));
+            frame.setlocal("rename", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_rename));
+            frame.setlocal("rmdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_rmdir));
+            frame.setlocal("unlink", frame.getname("remove"));
+            frame.setlocal("stat", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_stat));
+            frame.setlocal("utime", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_utime));
+            frame.setlocal("LazyDict", Py.makeClass("LazyDict", new PyObject[] {frame.getname("UserDict")}, c$31_LazyDict, null));
+            frame.setlocal("_ShellEnv", Py.makeClass("_ShellEnv", new PyObject[] {}, c$41__ShellEnv, null));
+            frame.setlocal("_getOsType", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$42__getOsType));
+            frame.setlocal("_getShellEnv", new PyFunction(frame.f_globals, new PyObject[] {}, c$43__getShellEnv));
+            frame.setlocal("_osType", frame.getname("_getOsType").__call__());
+            frame.setlocal("_envType", frame.getname("sys").__getattr__("registry").__getattr__("getProperty").__call__(s$61, s$60));
+            frame.setlocal("_shellCmd", frame.getname("None"));
+            frame.setlocal("_envCmd", frame.getname("None"));
+            frame.setlocal("_envTransform", frame.getname("None"));
+            if (frame.getname("_osType")._eq(s$49).__nonzero__()) {
+                frame.setlocal("_shellCmd", new PyList(new PyObject[] {s$62, s$63}));
+                frame.setlocal("_envCmd", s$64);
+                frame.setlocal("_envTransform", frame.getname("string").__getattr__("upper"));
+            }
+            else if (frame.getname("_osType")._eq(s$51).__nonzero__()) {
+                frame.setlocal("_shellCmd", new PyList(new PyObject[] {s$65, s$63}));
+                frame.setlocal("_envCmd", s$64);
+                frame.setlocal("_envTransform", frame.getname("string").__getattr__("upper"));
+            }
+            else if (frame.getname("_osType")._eq(s$57).__nonzero__()) {
+                frame.setlocal("_shellCmd", new PyList(new PyObject[] {s$66, s$67}));
+                frame.setlocal("_envCmd", s$68);
+            }
+            else if (frame.getname("_osType")._eq(s$53).__nonzero__()) {
+                frame.setlocal("curdir", s$69);
+                frame.setlocal("pardir", s$70);
+            }
+            else if (frame.getname("_osType")._eq(s$55).__nonzero__()) {
+                // pass
+            }
+            frame.setlocal("_shellEnv", frame.getname("_getShellEnv").__call__(new PyObject[] {frame.getname("_envType"), frame.getname("_shellCmd"), frame.getname("_envCmd"), frame.getname("_envTransform")}));
+            frame.setlocal("environ", frame.getname("_shellEnv").__getattr__("environment"));
+            frame.setlocal("putenv", frame.getname("environ").__getattr__("__setitem__"));
+            frame.setlocal("getenv", frame.getname("environ").__getattr__("__getitem__"));
+            frame.setlocal("system", frame.getname("_shellEnv").__getattr__("system"));
+            frame.setlocal("_testGetOsType", new PyFunction(frame.f_globals, new PyObject[] {}, c$44__testGetOsType));
+            frame.setlocal("_testCmds", new PyFunction(frame.f_globals, new PyObject[] {}, c$45__testCmds));
+            frame.setlocal("_testSystem", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("_shellEnv")}, c$46__testSystem));
+            frame.setlocal("_testBadShell", new PyFunction(frame.f_globals, new PyObject[] {}, c$47__testBadShell));
+            frame.setlocal("_testBadGetEnv", new PyFunction(frame.f_globals, new PyObject[] {}, c$48__testBadGetEnv));
+            frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {}, c$49__test));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("javaos"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "javaos";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(javaos._PyInner.class, newargs, javaos.jpy$packages, javaos.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/javapath$_PyInner.class b/server/jpywork/javapath$_PyInner.class
new file mode 100644 (file)
index 0000000..70dc640
Binary files /dev/null and b/server/jpywork/javapath$_PyInner.class differ
diff --git a/server/jpywork/javapath.class b/server/jpywork/javapath.class
new file mode 100644 (file)
index 0000000..b841c54
Binary files /dev/null and b/server/jpywork/javapath.class differ
diff --git a/server/jpywork/javapath.java b/server/jpywork/javapath.java
new file mode 100644 (file)
index 0000000..4bc10b7
--- /dev/null
@@ -0,0 +1,719 @@
+import org.python.core.*;
+
+public class javapath extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject i$10;
+        private static PyObject i$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject i$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject f$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0__tostr;
+        private static PyCode c$1_dirname;
+        private static PyCode c$2_basename;
+        private static PyCode c$3_split;
+        private static PyCode c$4_splitext;
+        private static PyCode c$5_splitdrive;
+        private static PyCode c$6_exists;
+        private static PyCode c$7_isabs;
+        private static PyCode c$8_isfile;
+        private static PyCode c$9_isdir;
+        private static PyCode c$10_join;
+        private static PyCode c$11_normcase;
+        private static PyCode c$12_commonprefix;
+        private static PyCode c$13_islink;
+        private static PyCode c$14_samefile;
+        private static PyCode c$15_ismount;
+        private static PyCode c$16_walk;
+        private static PyCode c$17_expanduser;
+        private static PyCode c$18_getuser;
+        private static PyCode c$19_gethome;
+        private static PyCode c$20_normpath;
+        private static PyCode c$21_abspath;
+        private static PyCode c$22_getsize;
+        private static PyCode c$23_getmtime;
+        private static PyCode c$24_getatime;
+        private static PyCode c$25_expandvars;
+        private static PyCode c$26_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Common pathname manipulations, JDK version.\012\012Instead of importing this module directly, import os and refer to this\012module as os.path.\012\012");
+            s$1 = Py.newString("");
+            s$2 = Py.newString("%s() argument must be a string object, not %s");
+            s$3 = Py.newString("Return the directory component of a pathname");
+            s$4 = Py.newString("dirname");
+            s$5 = Py.newString("Return the final component of a pathname");
+            s$6 = Py.newString("basename");
+            s$7 = Py.newString("Split a pathname.\012\012    Return tuple \"(head, tail)\" where \"tail\" is everything after the\012    final slash.  Either part may be empty.\012\012    ");
+            s$8 = Py.newString("split");
+            s$9 = Py.newString("Split the extension from a pathname.\012\012    Extension is everything from the last dot to the end.  Return\012    \"(root, ext)\", either part may be empty.\012\012    ");
+            i$10 = Py.newInteger(0);
+            i$11 = Py.newInteger(1);
+            s$12 = Py.newString(".");
+            s$13 = Py.newString("Split a pathname into drive and path.\012\012    On JDK, drive is always empty.\012    XXX This isn't correct for JDK on DOS/Windows!\012\012    ");
+            s$14 = Py.newString("Test whether a path exists.\012\012    Returns false for broken symbolic links.\012\012    ");
+            s$15 = Py.newString("exists");
+            s$16 = Py.newString("Test whether a path is absolute");
+            s$17 = Py.newString("isabs");
+            s$18 = Py.newString("Test whether a path is a regular file");
+            s$19 = Py.newString("isfile");
+            s$20 = Py.newString("Test whether a path is a directory");
+            s$21 = Py.newString("isdir");
+            s$22 = Py.newString("Join two or more pathname components, inserting os.sep as needed");
+            s$23 = Py.newString("join");
+            s$24 = Py.newString("Normalize case of pathname.\012\012    XXX Not done right under JDK.\012\012    ");
+            s$25 = Py.newString("normcase");
+            s$26 = Py.newString("Given a list of pathnames, return the longest common leading component");
+            s$27 = Py.newString("Test whether a path is a symbolic link.\012\012    XXX This incorrectly always returns false under JDK.\012\012    ");
+            s$28 = Py.newString("Test whether two pathnames reference the same actual file");
+            s$29 = Py.newString("samefile");
+            s$30 = Py.newString("Test whether a path is a mount point.\012\012    XXX This incorrectly always returns false under JDK.\012\012    ");
+            s$31 = Py.newString("Walk a directory tree.\012\012    walk(top,func,args) calls func(arg, d, files) for each directory\012    \"d\" in the tree rooted at \"top\" (including \"top\" itself).  \"files\"\012    is a list of all the files and subdirs in directory \"d\".\012\012    ");
+            s$32 = Py.newString("~");
+            i$33 = Py.newInteger(2);
+            s$34 = Py.newString("user.name");
+            s$35 = Py.newString("user.home");
+            s$36 = Py.newString("Normalize path, eliminating double slashes, etc.");
+            s$37 = Py.newString("\\");
+            s$38 = Py.newString("/");
+            s$39 = Py.newString("abspath");
+            s$40 = Py.newString("getsize");
+            s$41 = Py.newString("No such file or directory");
+            s$42 = Py.newString("getmtime");
+            f$43 = Py.newFloat(1000.0);
+            s$44 = Py.newString("getatime");
+            s$45 = Py.newString("Expand shell variables of form $var and ${var}.\012\012    Unknown variables are left unchanged.");
+            s$46 = Py.newString("$");
+            s$47 = Py.newString("_-");
+            s$48 = Py.newString("'");
+            s$49 = Py.newString("{");
+            s$50 = Py.newString("}");
+            s$51 = Py.newString("/usr/share/jython/Lib/javapath.py");
+            funcTable = new _PyInner();
+            c$0__tostr = Py.newCode(2, new String[] {"s", "method", "org"}, "/usr/share/jython/Lib/javapath.py", "_tostr", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_dirname = Py.newCode(1, new String[] {"path", "result"}, "/usr/share/jython/Lib/javapath.py", "dirname", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_basename = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "basename", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_split = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "split", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_splitext = Py.newCode(1, new String[] {"path", "i", "c", "n"}, "/usr/share/jython/Lib/javapath.py", "splitext", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_splitdrive = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "splitdrive", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_exists = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "exists", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_isabs = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "isabs", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_isfile = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "isfile", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_isdir = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "isdir", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_join = Py.newCode(2, new String[] {"path", "args", "a", "g", "f"}, "/usr/share/jython/Lib/javapath.py", "join", true, false, funcTable, 10, null, null, 0, 1);
+            c$11_normcase = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "normcase", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_commonprefix = Py.newCode(1, new String[] {"m", "i", "item", "prefix"}, "/usr/share/jython/Lib/javapath.py", "commonprefix", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_islink = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "islink", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_samefile = Py.newCode(2, new String[] {"path", "path2", "f", "f2"}, "/usr/share/jython/Lib/javapath.py", "samefile", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_ismount = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "ismount", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_walk = Py.newCode(3, new String[] {"top", "func", "arg", "name", "names"}, "/usr/share/jython/Lib/javapath.py", "walk", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_expanduser = Py.newCode(1, new String[] {"path", "c"}, "/usr/share/jython/Lib/javapath.py", "expanduser", false, false, funcTable, 17, null, null, 0, 1);
+            c$18_getuser = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javapath.py", "getuser", false, false, funcTable, 18, null, null, 0, 1);
+            c$19_gethome = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javapath.py", "gethome", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_normpath = Py.newCode(1, new String[] {"path", "comps", "i", "pardir", "string", "slashes", "curdir", "sep"}, "/usr/share/jython/Lib/javapath.py", "normpath", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_abspath = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javapath.py", "abspath", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_getsize = Py.newCode(1, new String[] {"path", "size", "f"}, "/usr/share/jython/Lib/javapath.py", "getsize", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_getmtime = Py.newCode(1, new String[] {"path", "f"}, "/usr/share/jython/Lib/javapath.py", "getmtime", false, false, funcTable, 23, null, null, 0, 1);
+            c$24_getatime = Py.newCode(1, new String[] {"path", "f"}, "/usr/share/jython/Lib/javapath.py", "getatime", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_expandvars = Py.newCode(1, new String[] {"path", "varchars", "string", "index", "res", "c", "pathlen", "var"}, "/usr/share/jython/Lib/javapath.py", "expandvars", false, false, funcTable, 25, null, null, 0, 1);
+            c$26_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javapath.py", "main", false, false, funcTable, 26, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$26_main == null) _PyInner.initConstants();
+            return c$26_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner._tostr$1(frame);
+                case 1:
+                return _PyInner.dirname$2(frame);
+                case 2:
+                return _PyInner.basename$3(frame);
+                case 3:
+                return _PyInner.split$4(frame);
+                case 4:
+                return _PyInner.splitext$5(frame);
+                case 5:
+                return _PyInner.splitdrive$6(frame);
+                case 6:
+                return _PyInner.exists$7(frame);
+                case 7:
+                return _PyInner.isabs$8(frame);
+                case 8:
+                return _PyInner.isfile$9(frame);
+                case 9:
+                return _PyInner.isdir$10(frame);
+                case 10:
+                return _PyInner.join$11(frame);
+                case 11:
+                return _PyInner.normcase$12(frame);
+                case 12:
+                return _PyInner.commonprefix$13(frame);
+                case 13:
+                return _PyInner.islink$14(frame);
+                case 14:
+                return _PyInner.samefile$15(frame);
+                case 15:
+                return _PyInner.ismount$16(frame);
+                case 16:
+                return _PyInner.walk$17(frame);
+                case 17:
+                return _PyInner.expanduser$18(frame);
+                case 18:
+                return _PyInner.getuser$19(frame);
+                case 19:
+                return _PyInner.gethome$20(frame);
+                case 20:
+                return _PyInner.normpath$21(frame);
+                case 21:
+                return _PyInner.abspath$22(frame);
+                case 22:
+                return _PyInner.getsize$23(frame);
+                case 23:
+                return _PyInner.getmtime$24(frame);
+                case 24:
+                return _PyInner.getatime$25(frame);
+                case 25:
+                return _PyInner.expandvars$26(frame);
+                case 26:
+                return _PyInner.main$27(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject _tostr$1(PyFrame frame) {
+            if (frame.getglobal("isinstance").__call__(frame.getlocal(0), s$1.__getattr__("__class__")).__nonzero__()) {
+                return frame.getlocal(0);
+            }
+            frame.setlocal(2, org.python.core.imp.importOne("org", frame));
+            throw Py.makeException(frame.getglobal("TypeError"), s$2._mod(new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2).__getattr__("python").__getattr__("core").__getattr__("Py").__getattr__("safeRepr").__call__(frame.getlocal(0))})));
+        }
+        
+        private static PyObject dirname$2(PyFrame frame) {
+            /* Return the directory component of a pathname */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$4));
+            frame.setlocal(1, frame.getglobal("File").__call__(frame.getlocal(0)).invoke("getParent"));
+            if (frame.getlocal(1).__not__().__nonzero__()) {
+                if (frame.getglobal("isabs").__call__(frame.getlocal(0)).__nonzero__()) {
+                    frame.setlocal(1, frame.getlocal(0));
+                }
+                else {
+                    frame.setlocal(1, s$1);
+                }
+            }
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject basename$3(PyFrame frame) {
+            /* Return the final component of a pathname */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$6));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("getName");
+        }
+        
+        private static PyObject split$4(PyFrame frame) {
+            /* Split a pathname.
+            
+                Return tuple "(head, tail)" where "tail" is everything after the
+                final slash.  Either part may be empty.
+            
+                 */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$8));
+            return new PyTuple(new PyObject[] {frame.getglobal("dirname").__call__(frame.getlocal(0)), frame.getglobal("basename").__call__(frame.getlocal(0))});
+        }
+        
+        private static PyObject splitext$5(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Split the extension from a pathname.
+            
+                Extension is everything from the last dot to the end.  Return
+                "(root, ext)", either part may be empty.
+            
+                 */
+            frame.setlocal(1, i$10);
+            frame.setlocal(3, i$11.__neg__());
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                if (frame.getlocal(2)._eq(s$12).__nonzero__()) {
+                    frame.setlocal(3, frame.getlocal(1));
+                }
+                frame.setlocal(1, frame.getlocal(1)._add(i$11));
+            }
+            if (frame.getlocal(3)._lt(i$10).__nonzero__()) {
+                return new PyTuple(new PyObject[] {frame.getlocal(0), s$1});
+            }
+            else {
+                return new PyTuple(new PyObject[] {frame.getlocal(0).__getslice__(null, frame.getlocal(3), null), frame.getlocal(0).__getslice__(frame.getlocal(3), null, null)});
+            }
+        }
+        
+        private static PyObject splitdrive$6(PyFrame frame) {
+            /* Split a pathname into drive and path.
+            
+                On JDK, drive is always empty.
+                XXX This isn't correct for JDK on DOS/Windows!
+            
+                 */
+            return new PyTuple(new PyObject[] {s$1, frame.getlocal(0)});
+        }
+        
+        private static PyObject exists$7(PyFrame frame) {
+            /* Test whether a path exists.
+            
+                Returns false for broken symbolic links.
+            
+                 */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$15));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("exists");
+        }
+        
+        private static PyObject isabs$8(PyFrame frame) {
+            /* Test whether a path is absolute */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$17));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("isAbsolute");
+        }
+        
+        private static PyObject isfile$9(PyFrame frame) {
+            /* Test whether a path is a regular file */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$19));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("isFile");
+        }
+        
+        private static PyObject isdir$10(PyFrame frame) {
+            /* Test whether a path is a directory */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$21));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("isDirectory");
+        }
+        
+        private static PyObject join$11(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            /* Join two or more pathname components, inserting os.sep as needed */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$23));
+            frame.setlocal(4, frame.getglobal("File").__call__(frame.getlocal(0)));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(1);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.setlocal(2, frame.getglobal("_tostr").__call__(frame.getlocal(2), s$23));
+                frame.setlocal(3, frame.getglobal("File").__call__(frame.getlocal(2)));
+                if (((t$2$PyObject = frame.getlocal(3).invoke("isAbsolute")).__nonzero__() ? t$2$PyObject : frame.getglobal("len").__call__(frame.getlocal(4).invoke("getPath"))._eq(i$10)).__nonzero__()) {
+                    frame.setlocal(4, frame.getlocal(3));
+                }
+                else {
+                    frame.setlocal(4, frame.getglobal("File").__call__(frame.getlocal(4), frame.getlocal(2)));
+                }
+            }
+            return frame.getlocal(4).invoke("getPath");
+        }
+        
+        private static PyObject normcase$12(PyFrame frame) {
+            /* Normalize case of pathname.
+            
+                XXX Not done right under JDK.
+            
+                 */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$25));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("getPath");
+        }
+        
+        private static PyObject commonprefix$13(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject;
+            
+            // Code
+            /* Given a list of pathnames, return the longest common leading component */
+            if (frame.getlocal(0).__not__().__nonzero__()) {
+                return s$1;
+            }
+            frame.setlocal(3, frame.getlocal(0).__getitem__(i$10));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                t$1$int = 0;
+                t$3$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(3)));
+                while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                    frame.setlocal(1, t$2$PyObject);
+                    if (frame.getlocal(3).__getslice__(null, frame.getlocal(1)._add(i$11), null)._ne(frame.getlocal(2).__getslice__(null, frame.getlocal(1)._add(i$11), null)).__nonzero__()) {
+                        frame.setlocal(3, frame.getlocal(3).__getslice__(null, frame.getlocal(1), null));
+                        if (frame.getlocal(1)._eq(i$10).__nonzero__()) {
+                            return s$1;
+                        }
+                        break;
+                    }
+                }
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject islink$14(PyFrame frame) {
+            /* Test whether a path is a symbolic link.
+            
+                XXX This incorrectly always returns false under JDK.
+            
+                 */
+            return i$10;
+        }
+        
+        private static PyObject samefile$15(PyFrame frame) {
+            /* Test whether two pathnames reference the same actual file */
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$29));
+            frame.setlocal(1, frame.getglobal("_tostr").__call__(frame.getlocal(1), s$29));
+            frame.setlocal(2, frame.getglobal("File").__call__(frame.getlocal(0)));
+            frame.setlocal(3, frame.getglobal("File").__call__(frame.getlocal(1)));
+            return frame.getlocal(2).invoke("getCanonicalPath")._eq(frame.getlocal(3).invoke("getCanonicalPath"));
+        }
+        
+        private static PyObject ismount$16(PyFrame frame) {
+            /* Test whether a path is a mount point.
+            
+                XXX This incorrectly always returns false under JDK.
+            
+                 */
+            return i$10;
+        }
+        
+        private static PyObject walk$17(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Walk a directory tree.
+            
+                walk(top,func,args) calls func(arg, d, files) for each directory
+                "d" in the tree rooted at "top" (including "top" itself).  "files"
+                is a list of all the files and subdirs in directory "d".
+            
+                 */
+            try {
+                frame.setlocal(4, frame.getglobal("os").__getattr__("listdir").__call__(frame.getlocal(0)));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) {
+                    return Py.None;
+                }
+                else throw t$0$PyException;
+            }
+            frame.getlocal(1).__call__(frame.getlocal(2), frame.getlocal(0), frame.getlocal(4));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(4);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(3, t$0$PyObject);
+                frame.setlocal(3, frame.getglobal("join").__call__(frame.getlocal(0), frame.getlocal(3)));
+                if (((t$2$PyObject = frame.getglobal("isdir").__call__(frame.getlocal(3))).__nonzero__() ? frame.getglobal("islink").__call__(frame.getlocal(3)).__not__() : t$2$PyObject).__nonzero__()) {
+                    frame.getglobal("walk").__call__(frame.getlocal(3), frame.getlocal(1), frame.getlocal(2));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject expanduser$18(PyFrame frame) {
+            if (frame.getlocal(0).__getslice__(null, i$11, null)._eq(s$32).__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(0).__getslice__(i$11, i$33, null));
+                if (frame.getlocal(1).__not__().__nonzero__()) {
+                    return frame.getglobal("gethome").__call__();
+                }
+                if (frame.getlocal(1)._eq(frame.getglobal("os").__getattr__("sep")).__nonzero__()) {
+                    return frame.getglobal("File").__call__(frame.getglobal("gethome").__call__(), frame.getlocal(0).__getslice__(i$33, null, null)).invoke("getPath");
+                }
+            }
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject getuser$19(PyFrame frame) {
+            return frame.getglobal("System").__getattr__("getProperty").__call__(s$34);
+        }
+        
+        private static PyObject gethome$20(PyFrame frame) {
+            return frame.getglobal("System").__getattr__("getProperty").__call__(s$35);
+        }
+        
+        private static PyObject normpath$21(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Normalize path, eliminating double slashes, etc. */
+            frame.setlocal(7, frame.getglobal("os").__getattr__("sep"));
+            if (frame.getlocal(7)._eq(s$37).__nonzero__()) {
+                frame.setlocal(0, frame.getlocal(0).invoke("replace", s$38, frame.getlocal(7)));
+            }
+            frame.setlocal(6, frame.getglobal("os").__getattr__("curdir"));
+            frame.setlocal(3, frame.getglobal("os").__getattr__("pardir"));
+            frame.setlocal(4, org.python.core.imp.importOne("string", frame));
+            frame.setlocal(5, s$1);
+            while (frame.getlocal(0).__getslice__(null, i$11, null)._eq(frame.getlocal(7)).__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(5)._add(frame.getlocal(7)));
+                frame.setlocal(0, frame.getlocal(0).__getslice__(i$11, null, null));
+            }
+            frame.setlocal(1, frame.getlocal(4).__getattr__("splitfields").__call__(frame.getlocal(0), frame.getlocal(7)));
+            frame.setlocal(2, i$10);
+            while (frame.getlocal(2)._lt(frame.getglobal("len").__call__(frame.getlocal(1))).__nonzero__()) {
+                if (frame.getlocal(1).__getitem__(frame.getlocal(2))._eq(frame.getlocal(6)).__nonzero__()) {
+                    frame.getlocal(1).__delitem__(frame.getlocal(2));
+                    while (((t$0$PyObject = frame.getlocal(2)._lt(frame.getglobal("len").__call__(frame.getlocal(1)))).__nonzero__() ? frame.getlocal(1).__getitem__(frame.getlocal(2))._eq(s$1) : t$0$PyObject).__nonzero__()) {
+                        frame.getlocal(1).__delitem__(frame.getlocal(2));
+                    }
+                }
+                else if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(1).__getitem__(frame.getlocal(2))._eq(frame.getlocal(3))).__nonzero__() ? frame.getlocal(2)._gt(i$10) : t$1$PyObject)).__nonzero__() ? frame.getlocal(1).__getitem__(frame.getlocal(2)._sub(i$11))._notin(new PyTuple(new PyObject[] {s$1, frame.getlocal(3)})) : t$0$PyObject).__nonzero__()) {
+                    frame.getlocal(1).__delslice__(frame.getlocal(2)._sub(i$11), frame.getlocal(2)._add(i$11), null);
+                    frame.setlocal(2, frame.getlocal(2)._sub(i$11));
+                }
+                else if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(1).__getitem__(frame.getlocal(2))._eq(s$1)).__nonzero__() ? frame.getlocal(2)._gt(i$10) : t$1$PyObject)).__nonzero__() ? frame.getlocal(1).__getitem__(frame.getlocal(2)._sub(i$11))._ne(s$1) : t$0$PyObject).__nonzero__()) {
+                    frame.getlocal(1).__delitem__(frame.getlocal(2));
+                }
+                else {
+                    frame.setlocal(2, frame.getlocal(2)._add(i$11));
+                }
+            }
+            if (((t$0$PyObject = frame.getlocal(1).__not__()).__nonzero__() ? frame.getlocal(5).__not__() : t$0$PyObject).__nonzero__()) {
+                frame.getlocal(1).invoke("append", frame.getlocal(6));
+            }
+            return frame.getlocal(5)._add(frame.getlocal(4).__getattr__("joinfields").__call__(frame.getlocal(1), frame.getlocal(7)));
+        }
+        
+        private static PyObject abspath$22(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$39));
+            return frame.getglobal("File").__call__(frame.getlocal(0)).invoke("getAbsolutePath");
+        }
+        
+        private static PyObject getsize$23(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$40));
+            frame.setlocal(2, frame.getglobal("File").__call__(frame.getlocal(0)));
+            frame.setlocal(1, frame.getlocal(2).invoke("length"));
+            if (((t$0$PyObject = frame.getlocal(1)._eq(i$10)).__nonzero__() ? frame.getlocal(2).invoke("exists").__not__() : t$0$PyObject).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("OSError").__call__(i$10, s$41, frame.getlocal(0)));
+            }
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject getmtime$24(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$42));
+            frame.setlocal(1, frame.getglobal("File").__call__(frame.getlocal(0)));
+            return frame.getlocal(1).invoke("lastModified")._div(f$43);
+        }
+        
+        private static PyObject getatime$25(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("_tostr").__call__(frame.getlocal(0), s$44));
+            frame.setlocal(1, frame.getglobal("File").__call__(frame.getlocal(0)));
+            return frame.getlocal(1).invoke("lastModified")._div(f$43);
+        }
+        
+        private static PyObject expandvars$26(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Expand shell variables of form $var and ${var}.
+            
+                Unknown variables are left unchanged. */
+            if (s$46._notin(frame.getlocal(0)).__nonzero__()) {
+                return frame.getlocal(0);
+            }
+            frame.setlocal(2, org.python.core.imp.importOne("string", frame));
+            frame.setlocal(1, frame.getlocal(2).__getattr__("letters")._add(frame.getlocal(2).__getattr__("digits"))._add(s$47));
+            frame.setlocal(4, s$1);
+            frame.setlocal(3, i$10);
+            frame.setlocal(6, frame.getglobal("len").__call__(frame.getlocal(0)));
+            while (frame.getlocal(3)._lt(frame.getlocal(6)).__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(0).__getitem__(frame.getlocal(3)));
+                if (frame.getlocal(5)._eq(s$48).__nonzero__()) {
+                    frame.setlocal(0, frame.getlocal(0).__getslice__(frame.getlocal(3)._add(i$11), null, null));
+                    frame.setlocal(6, frame.getglobal("len").__call__(frame.getlocal(0)));
+                    try {
+                        frame.setlocal(3, frame.getlocal(0).invoke("index", s$48));
+                        frame.setlocal(4, frame.getlocal(4)._add(s$48)._add(frame.getlocal(0).__getslice__(null, frame.getlocal(3)._add(i$11), null)));
+                    }
+                    catch (Throwable x$0) {
+                        t$0$PyException = Py.setException(x$0, frame);
+                        if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                            frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(0)));
+                            frame.setlocal(3, frame.getlocal(6)._sub(i$11));
+                        }
+                        else throw t$0$PyException;
+                    }
+                }
+                else if (frame.getlocal(5)._eq(s$46).__nonzero__()) {
+                    if (frame.getlocal(0).__getslice__(frame.getlocal(3)._add(i$11), frame.getlocal(3)._add(i$33), null)._eq(s$46).__nonzero__()) {
+                        frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(5)));
+                        frame.setlocal(3, frame.getlocal(3)._add(i$11));
+                    }
+                    else if (frame.getlocal(0).__getslice__(frame.getlocal(3)._add(i$11), frame.getlocal(3)._add(i$33), null)._eq(s$49).__nonzero__()) {
+                        frame.setlocal(0, frame.getlocal(0).__getslice__(frame.getlocal(3)._add(i$33), null, null));
+                        frame.setlocal(6, frame.getglobal("len").__call__(frame.getlocal(0)));
+                        try {
+                            frame.setlocal(3, frame.getlocal(0).invoke("index", s$50));
+                            frame.setlocal(7, frame.getlocal(0).__getslice__(null, frame.getlocal(3), null));
+                            if (frame.getglobal("os").__getattr__("environ").__getattr__("has_key").__call__(frame.getlocal(7)).__nonzero__()) {
+                                frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("os").__getattr__("environ").__getitem__(frame.getlocal(7))));
+                            }
+                        }
+                        catch (Throwable x$1) {
+                            t$0$PyException = Py.setException(x$1, frame);
+                            if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                                frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(0)));
+                                frame.setlocal(3, frame.getlocal(6)._sub(i$11));
+                            }
+                            else throw t$0$PyException;
+                        }
+                    }
+                    else {
+                        frame.setlocal(7, s$1);
+                        frame.setlocal(3, frame.getlocal(3)._add(i$11));
+                        frame.setlocal(5, frame.getlocal(0).__getslice__(frame.getlocal(3), frame.getlocal(3)._add(i$11), null));
+                        while (((t$0$PyObject = frame.getlocal(5)._ne(s$1)).__nonzero__() ? frame.getlocal(5)._in(frame.getlocal(1)) : t$0$PyObject).__nonzero__()) {
+                            frame.setlocal(7, frame.getlocal(7)._add(frame.getlocal(5)));
+                            frame.setlocal(3, frame.getlocal(3)._add(i$11));
+                            frame.setlocal(5, frame.getlocal(0).__getslice__(frame.getlocal(3), frame.getlocal(3)._add(i$11), null));
+                        }
+                        if (frame.getglobal("os").__getattr__("environ").__getattr__("has_key").__call__(frame.getlocal(7)).__nonzero__()) {
+                            frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("os").__getattr__("environ").__getitem__(frame.getlocal(7))));
+                        }
+                        if (frame.getlocal(5)._ne(s$1).__nonzero__()) {
+                            frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(5)));
+                        }
+                    }
+                }
+                else {
+                    frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(5)));
+                }
+                frame.setlocal(3, frame.getlocal(3)._add(i$11));
+            }
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject main$27(PyFrame frame) {
+            frame.setglobal("__file__", s$51);
+            
+            PyObject[] imp_accu;
+            // Code
+            /* Common pathname manipulations, JDK version.
+            
+            Instead of importing this module directly, import os and refer to this
+            module as os.path.
+            
+             */
+            frame.setlocal("java", org.python.core.imp.importOne("java", frame));
+            imp_accu = org.python.core.imp.importFrom("java.io", new String[] {"File"}, frame);
+            frame.setlocal("File", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("java.lang", new String[] {"System"}, frame);
+            frame.setlocal("System", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("os", org.python.core.imp.importOne("os", frame));
+            frame.setlocal("_tostr", new PyFunction(frame.f_globals, new PyObject[] {}, c$0__tostr));
+            frame.setlocal("dirname", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_dirname));
+            frame.setlocal("basename", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_basename));
+            frame.setlocal("split", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_split));
+            frame.setlocal("splitext", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_splitext));
+            frame.setlocal("splitdrive", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_splitdrive));
+            frame.setlocal("exists", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_exists));
+            frame.setlocal("isabs", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_isabs));
+            frame.setlocal("isfile", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_isfile));
+            frame.setlocal("isdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_isdir));
+            frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_join));
+            frame.setlocal("normcase", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_normcase));
+            frame.setlocal("commonprefix", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_commonprefix));
+            frame.setlocal("islink", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_islink));
+            frame.setlocal("samefile", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_samefile));
+            frame.setlocal("ismount", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_ismount));
+            frame.setlocal("walk", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_walk));
+            frame.setlocal("expanduser", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_expanduser));
+            frame.setlocal("getuser", new PyFunction(frame.f_globals, new PyObject[] {}, c$18_getuser));
+            frame.setlocal("gethome", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_gethome));
+            frame.setlocal("normpath", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_normpath));
+            frame.setlocal("abspath", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_abspath));
+            frame.setlocal("getsize", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_getsize));
+            frame.setlocal("getmtime", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_getmtime));
+            frame.setlocal("getatime", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_getatime));
+            frame.setlocal("expandvars", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_expandvars));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("javapath"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "javapath";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(javapath._PyInner.class, newargs, javapath.jpy$packages, javapath.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/linecache$_PyInner.class b/server/jpywork/linecache$_PyInner.class
new file mode 100644 (file)
index 0000000..0795081
Binary files /dev/null and b/server/jpywork/linecache$_PyInner.class differ
diff --git a/server/jpywork/linecache.class b/server/jpywork/linecache.class
new file mode 100644 (file)
index 0000000..900e020
Binary files /dev/null and b/server/jpywork/linecache.class differ
diff --git a/server/jpywork/linecache.java b/server/jpywork/linecache.java
new file mode 100644 (file)
index 0000000..1882142
--- /dev/null
@@ -0,0 +1,255 @@
+import org.python.core.*;
+
+public class linecache extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject i$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject i$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject i$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_getline;
+        private static PyCode c$1_clearcache;
+        private static PyCode c$2_getlines;
+        private static PyCode c$3_checkcache;
+        private static PyCode c$4_updatecache;
+        private static PyCode c$5_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Cache lines from files.\012\012This is intended to read lines from modules imported -- hence if a filename\012is not found, it will look down the module search path for a file by\012that name.\012");
+            s$1 = Py.newString("getline");
+            s$2 = Py.newString("clearcache");
+            s$3 = Py.newString("checkcache");
+            i$4 = Py.newInteger(1);
+            s$5 = Py.newString("");
+            s$6 = Py.newString("Clear the cache entirely.");
+            s$7 = Py.newString("Get the lines for a file from the cache.\012    Update the cache if it doesn't contain an entry for this file already.");
+            i$8 = Py.newInteger(2);
+            s$9 = Py.newString("Discard cache entries that are out of date.\012    (This is not checked upon each call!)");
+            s$10 = Py.newString("Update a cache entry and return its list of lines.\012    If something's wrong, print a message, discard the cache entry,\012    and return an empty list.");
+            i$11 = Py.newInteger(0);
+            s$12 = Py.newString("<>");
+            s$13 = Py.newString("r");
+            s$14 = Py.newString("/usr/share/jython/Lib-cpython/linecache.py");
+            funcTable = new _PyInner();
+            c$0_getline = Py.newCode(2, new String[] {"filename", "lineno", "lines"}, "/usr/share/jython/Lib-cpython/linecache.py", "getline", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_clearcache = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/linecache.py", "clearcache", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_getlines = Py.newCode(1, new String[] {"filename"}, "/usr/share/jython/Lib-cpython/linecache.py", "getlines", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_checkcache = Py.newCode(0, new String[] {"filename", "stat", "mtime", "fullname", "size", "lines"}, "/usr/share/jython/Lib-cpython/linecache.py", "checkcache", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_updatecache = Py.newCode(1, new String[] {"filename", "msg", "stat", "dirname", "fp", "basename", "mtime", "fullname", "size", "lines"}, "/usr/share/jython/Lib-cpython/linecache.py", "updatecache", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/linecache.py", "main", false, false, funcTable, 5, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$5_main == null) _PyInner.initConstants();
+            return c$5_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.getline$1(frame);
+                case 1:
+                return _PyInner.clearcache$2(frame);
+                case 2:
+                return _PyInner.getlines$3(frame);
+                case 3:
+                return _PyInner.checkcache$4(frame);
+                case 4:
+                return _PyInner.updatecache$5(frame);
+                case 5:
+                return _PyInner.main$6(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject getline$1(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(2, frame.getglobal("getlines").__call__(frame.getlocal(0)));
+            if ((i$4._le(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject._le(frame.getglobal("len").__call__(frame.getlocal(2))) : Py.Zero).__nonzero__()) {
+                return frame.getlocal(2).__getitem__(frame.getlocal(1)._sub(i$4));
+            }
+            else {
+                return s$5;
+            }
+        }
+        
+        private static PyObject clearcache$2(PyFrame frame) {
+            /* Clear the cache entirely. */
+            // global cache
+            frame.setglobal("cache", new PyDictionary(new PyObject[] {}));
+            return Py.None;
+        }
+        
+        private static PyObject getlines$3(PyFrame frame) {
+            /* Get the lines for a file from the cache.
+                Update the cache if it doesn't contain an entry for this file already. */
+            if (frame.getglobal("cache").invoke("has_key", frame.getlocal(0)).__nonzero__()) {
+                return frame.getglobal("cache").__getitem__(frame.getlocal(0)).__getitem__(i$8);
+            }
+            else {
+                return frame.getglobal("updatecache").__call__(frame.getlocal(0));
+            }
+        }
+        
+        private static PyObject checkcache$4(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            /* Discard cache entries that are out of date.
+                (This is not checked upon each call!) */
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("cache").invoke("keys");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(0, t$0$PyObject);
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("cache").__getitem__(frame.getlocal(0)), 4);
+                frame.setlocal(4, t$0$PyObject__[0]);
+                frame.setlocal(2, t$0$PyObject__[1]);
+                frame.setlocal(5, t$0$PyObject__[2]);
+                frame.setlocal(3, t$0$PyObject__[3]);
+                try {
+                    frame.setlocal(1, frame.getglobal("os").__getattr__("stat").__call__(frame.getlocal(3)));
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) {
+                        frame.getglobal("cache").__delitem__(frame.getlocal(0));
+                        continue;
+                    }
+                    else throw t$0$PyException;
+                }
+                if (((t$2$PyObject = frame.getlocal(4)._ne(frame.getlocal(1).__getitem__(frame.getglobal("ST_SIZE")))).__nonzero__() ? t$2$PyObject : frame.getlocal(2)._ne(frame.getlocal(1).__getitem__(frame.getglobal("ST_MTIME")))).__nonzero__()) {
+                    frame.getglobal("cache").__delitem__(frame.getlocal(0));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject updatecache$5(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            boolean t$0$boolean;
+            PyException t$0$PyException, t$1$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Update a cache entry and return its list of lines.
+                If something's wrong, print a message, discard the cache entry,
+                and return an empty list. */
+            if (frame.getglobal("cache").invoke("has_key", frame.getlocal(0)).__nonzero__()) {
+                frame.getglobal("cache").__delitem__(frame.getlocal(0));
+            }
+            if (((t$0$PyObject = frame.getlocal(0).__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(0).__getitem__(i$11)._add(frame.getlocal(0).__getitem__(i$4.__neg__()))._eq(s$12)).__nonzero__()) {
+                return new PyList(new PyObject[] {});
+            }
+            frame.setlocal(7, frame.getlocal(0));
+            try {
+                frame.setlocal(2, frame.getglobal("os").__getattr__("stat").__call__(frame.getlocal(7)));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) {
+                    frame.setlocal(1, t$0$PyException.value);
+                    frame.setlocal(5, frame.getglobal("os").__getattr__("path").__getattr__("split").__call__(frame.getlocal(0)).__getitem__(i$4));
+                    t$0$int = 0;
+                    t$1$PyObject = frame.getglobal("sys").__getattr__("path");
+                    while (t$0$boolean=(t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                        frame.setlocal(3, t$0$PyObject);
+                        frame.setlocal(7, frame.getglobal("os").__getattr__("path").__getattr__("join").__call__(frame.getlocal(3), frame.getlocal(5)));
+                        try {
+                            frame.setlocal(2, frame.getglobal("os").__getattr__("stat").__call__(frame.getlocal(7)));
+                            break;
+                        }
+                        catch (Throwable x$1) {
+                            t$1$PyException = Py.setException(x$1, frame);
+                            if (Py.matchException(t$1$PyException, frame.getglobal("os").__getattr__("error"))) {
+                                // pass
+                            }
+                            else throw t$1$PyException;
+                        }
+                    }
+                    if (!t$0$boolean) {
+                        return new PyList(new PyObject[] {});
+                    }
+                }
+                else throw t$0$PyException;
+            }
+            try {
+                frame.setlocal(4, frame.getglobal("open").__call__(frame.getlocal(7), s$13));
+                frame.setlocal(9, frame.getlocal(4).invoke("readlines"));
+                frame.getlocal(4).invoke("close");
+            }
+            catch (Throwable x$2) {
+                t$0$PyException = Py.setException(x$2, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("IOError"))) {
+                    frame.setlocal(1, t$0$PyException.value);
+                    return new PyList(new PyObject[] {});
+                }
+                else throw t$0$PyException;
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {frame.getlocal(2).__getitem__(frame.getglobal("ST_SIZE")), frame.getlocal(2).__getitem__(frame.getglobal("ST_MTIME"))}), 2);
+            frame.setlocal(8, t$0$PyObject__[0]);
+            frame.setlocal(6, t$0$PyObject__[1]);
+            frame.getglobal("cache").__setitem__(frame.getlocal(0), new PyTuple(new PyObject[] {frame.getlocal(8), frame.getlocal(6), frame.getlocal(9), frame.getlocal(7)}));
+            return frame.getlocal(9);
+        }
+        
+        private static PyObject main$6(PyFrame frame) {
+            frame.setglobal("__file__", s$14);
+            
+            /* Cache lines from files.
+            
+            This is intended to read lines from modules imported -- hence if a filename
+            is not found, it will look down the module search path for a file by
+            that name.
+             */
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("os", org.python.core.imp.importOne("os", frame));
+            org.python.core.imp.importAll("stat", frame);
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3}));
+            frame.setlocal("getline", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_getline));
+            frame.setlocal("cache", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("clearcache", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_clearcache));
+            frame.setlocal("getlines", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_getlines));
+            frame.setlocal("checkcache", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_checkcache));
+            frame.setlocal("updatecache", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_updatecache));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("linecache"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "linecache";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(linecache._PyInner.class, newargs, linecache.jpy$packages, linecache.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/random$_PyInner.class b/server/jpywork/random$_PyInner.class
new file mode 100644 (file)
index 0000000..ac059d7
Binary files /dev/null and b/server/jpywork/random$_PyInner.class differ
diff --git a/server/jpywork/random.class b/server/jpywork/random.class
new file mode 100644 (file)
index 0000000..95cd9a1
Binary files /dev/null and b/server/jpywork/random.class differ
diff --git a/server/jpywork/random.java b/server/jpywork/random.java
new file mode 100644 (file)
index 0000000..b67ec89
--- /dev/null
@@ -0,0 +1,1087 @@
+import org.python.core.*;
+
+public class random extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject f$24;
+        private static PyObject s$25;
+        private static PyObject i$26;
+        private static PyObject f$27;
+        private static PyObject f$28;
+        private static PyObject s$29;
+        private static PyObject f$30;
+        private static PyObject s$31;
+        private static PyObject f$32;
+        private static PyObject f$33;
+        private static PyObject s$34;
+        private static PyObject f$35;
+        private static PyObject f$36;
+        private static PyObject f$37;
+        private static PyObject s$38;
+        private static PyObject f$39;
+        private static PyObject i$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject i$43;
+        private static PyObject i$44;
+        private static PyObject l$45;
+        private static PyObject i$46;
+        private static PyObject i$47;
+        private static PyObject i$48;
+        private static PyObject s$49;
+        private static PyObject i$50;
+        private static PyObject i$51;
+        private static PyObject i$52;
+        private static PyObject i$53;
+        private static PyObject i$54;
+        private static PyObject i$55;
+        private static PyObject f$56;
+        private static PyObject f$57;
+        private static PyObject f$58;
+        private static PyObject s$59;
+        private static PyObject s$60;
+        private static PyObject i$61;
+        private static PyObject s$62;
+        private static PyObject s$63;
+        private static PyObject s$64;
+        private static PyObject s$65;
+        private static PyObject s$66;
+        private static PyObject s$67;
+        private static PyObject i$68;
+        private static PyObject i$69;
+        private static PyObject s$70;
+        private static PyObject s$71;
+        private static PyObject s$72;
+        private static PyObject s$73;
+        private static PyObject s$74;
+        private static PyObject s$75;
+        private static PyObject s$76;
+        private static PyObject s$77;
+        private static PyObject s$78;
+        private static PyObject s$79;
+        private static PyObject s$80;
+        private static PyObject f$81;
+        private static PyObject f$82;
+        private static PyObject s$83;
+        private static PyObject s$84;
+        private static PyObject s$85;
+        private static PyObject f$86;
+        private static PyObject s$87;
+        private static PyObject s$88;
+        private static PyObject s$89;
+        private static PyObject s$90;
+        private static PyObject s$91;
+        private static PyObject s$92;
+        private static PyObject s$93;
+        private static PyObject s$94;
+        private static PyObject s$95;
+        private static PyObject s$96;
+        private static PyObject s$97;
+        private static PyObject s$98;
+        private static PyObject s$99;
+        private static PyObject s$100;
+        private static PyObject s$101;
+        private static PyObject s$102;
+        private static PyObject s$103;
+        private static PyObject s$104;
+        private static PyObject s$105;
+        private static PyObject s$106;
+        private static PyObject s$107;
+        private static PyObject s$108;
+        private static PyObject s$109;
+        private static PyObject i$110;
+        private static PyObject s$111;
+        private static PyObject s$112;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0__verify;
+        private static PyCode c$1___init__;
+        private static PyCode c$2_seed;
+        private static PyCode c$3_random;
+        private static PyCode c$4_getstate;
+        private static PyCode c$5_setstate;
+        private static PyCode c$6_jumpahead;
+        private static PyCode c$7__Random__whseed;
+        private static PyCode c$8_whseed;
+        private static PyCode c$9___getstate__;
+        private static PyCode c$10___setstate__;
+        private static PyCode c$11_randrange;
+        private static PyCode c$12_randint;
+        private static PyCode c$13_choice;
+        private static PyCode c$14_shuffle;
+        private static PyCode c$15_uniform;
+        private static PyCode c$16_normalvariate;
+        private static PyCode c$17_lognormvariate;
+        private static PyCode c$18_cunifvariate;
+        private static PyCode c$19_expovariate;
+        private static PyCode c$20_vonmisesvariate;
+        private static PyCode c$21_gammavariate;
+        private static PyCode c$22_stdgamma;
+        private static PyCode c$23_gauss;
+        private static PyCode c$24_betavariate;
+        private static PyCode c$25_paretovariate;
+        private static PyCode c$26_weibullvariate;
+        private static PyCode c$27_Random;
+        private static PyCode c$28__test_generator;
+        private static PyCode c$29__test;
+        private static PyCode c$30_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Random variable generators.\012\012    integers\012    --------\012           uniform within range\012\012    sequences\012    ---------\012           pick random element\012           generate random permutation\012\012    distributions on the real line:\012    ------------------------------\012           uniform\012           normal (Gaussian)\012           lognormal\012           negative exponential\012           gamma\012           beta\012\012    distributions on the circle (angles 0 to 2pi)\012    ---------------------------------------------\012           circular uniform\012           von Mises\012\012Translated from anonymously contributed C/C++ source.\012\012Multi-threading note:  the random number generator used here is not thread-\012safe; it is possible that two calls return the same random value.  However,\012you can instantiate a different instance of Random() in each thread to get\012generators that don't share state, then use .setstate() and .jumpahead() to\012move the generators to disjoint segments of the full period.  For example,\012\012def create_generators(num, delta, firstseed=None):\012    \"\"\"Return list of num distinct generators.\012    Each generator has its own unique segment of delta elements from\012    Random.random()'s full period.\012    Seed the first generator with optional arg firstseed (default is\012    None, to seed from current time).\012    \"\"\"\012\012    from random import Random\012    g = Random(firstseed)\012    result = [g]\012    for i in range(num - 1):\012        laststate = g.getstate()\012        g = Random()\012        g.setstate(laststate)\012        g.jumpahead(delta)\012        result.append(g)\012    return result\012\012gens = create_generators(10, 1000000)\012\012That creates 10 distinct generators, which can be passed out to 10 distinct\012threads.  The generators don't share state so can be called safely in\012parallel.  So long as no thread calls its g.random() more than a million\012times (the second argument to create_generators), the sequences seen by\012each thread will not overlap.\012\012The period of the underlying Wichmann-Hill generator is 6,953,607,871,644,\012and that limits how far this technique can be pushed.\012\012Just for fun, note that since we know the period, .jumpahead() can also be\012used to \"move backward in time\":\012\012>>> g = Random(42)  # arbitrary\012>>> g.random()\0120.25420336316883324\012>>> g.jumpahead(6953607871644L - 1) # move *back* one\012>>> g.random()\0120.25420336316883324\012");
+            s$1 = Py.newString("Random");
+            s$2 = Py.newString("seed");
+            s$3 = Py.newString("random");
+            s$4 = Py.newString("uniform");
+            s$5 = Py.newString("randint");
+            s$6 = Py.newString("choice");
+            s$7 = Py.newString("randrange");
+            s$8 = Py.newString("shuffle");
+            s$9 = Py.newString("normalvariate");
+            s$10 = Py.newString("lognormvariate");
+            s$11 = Py.newString("cunifvariate");
+            s$12 = Py.newString("expovariate");
+            s$13 = Py.newString("vonmisesvariate");
+            s$14 = Py.newString("gammavariate");
+            s$15 = Py.newString("stdgamma");
+            s$16 = Py.newString("gauss");
+            s$17 = Py.newString("betavariate");
+            s$18 = Py.newString("paretovariate");
+            s$19 = Py.newString("weibullvariate");
+            s$20 = Py.newString("getstate");
+            s$21 = Py.newString("setstate");
+            s$22 = Py.newString("jumpahead");
+            s$23 = Py.newString("whseed");
+            f$24 = Py.newFloat(1.0E-7);
+            s$25 = Py.newString("computed value for %s deviates too much (computed %g, expected %g)");
+            i$26 = Py.newInteger(4);
+            f$27 = Py.newFloat(0.5);
+            f$28 = Py.newFloat(2.0);
+            s$29 = Py.newString("NV_MAGICCONST");
+            f$30 = Py.newFloat(1.71552776992141);
+            s$31 = Py.newString("TWOPI");
+            f$32 = Py.newFloat(6.28318530718);
+            f$33 = Py.newFloat(4.0);
+            s$34 = Py.newString("LOG4");
+            f$35 = Py.newFloat(1.38629436111989);
+            f$36 = Py.newFloat(1.0);
+            f$37 = Py.newFloat(4.5);
+            s$38 = Py.newString("SG_MAGICCONST");
+            f$39 = Py.newFloat(2.50407739677627);
+            i$40 = Py.newInteger(1);
+            s$41 = Py.newString("Initialize an instance.\012\012        Optional argument x controls seeding, as for Random.seed().\012        ");
+            s$42 = Py.newString("Initialize internal state from hashable object.\012\012        None or no argument seeds from current time.\012\012        If a is not None or an int or long, hash(a) is used instead.\012\012        If a is an int or long, a is used directly.  Distinct values between\012        0 and 27814431486575L inclusive are guaranteed to yield distinct\012        internal states (this guarantee is specific to the default\012        Wichmann-Hill generator).\012        ");
+            i$43 = Py.newInteger(256);
+            i$44 = Py.newInteger(3);
+            l$45 = Py.newLong("3");
+            i$46 = Py.newInteger(30268);
+            i$47 = Py.newInteger(30306);
+            i$48 = Py.newInteger(30322);
+            s$49 = Py.newString("Get the next random number in the range [0.0, 1.0).");
+            i$50 = Py.newInteger(171);
+            i$51 = Py.newInteger(30269);
+            i$52 = Py.newInteger(172);
+            i$53 = Py.newInteger(30307);
+            i$54 = Py.newInteger(170);
+            i$55 = Py.newInteger(30323);
+            f$56 = Py.newFloat(30269.0);
+            f$57 = Py.newFloat(30307.0);
+            f$58 = Py.newFloat(30323.0);
+            s$59 = Py.newString("Return internal state; can be passed to setstate() later.");
+            s$60 = Py.newString("Restore internal state from object returned by getstate().");
+            i$61 = Py.newInteger(0);
+            s$62 = Py.newString("state with version %s passed to Random.setstate() of version %s");
+            s$63 = Py.newString("Act as if n calls to random() were made, but quickly.\012\012        n is an int, greater than or equal to 0.\012\012        Example use:  If you have 2 threads and know that each will\012        consume no more than a million random numbers, create two Random\012        objects r1 and r2, then do\012            r2.setstate(r1.getstate())\012            r2.jumpahead(1000000)\012        Then r1 and r2 will use guaranteed-disjoint segments of the full\012        period.\012        ");
+            s$64 = Py.newString("n must be >= 0");
+            s$65 = Py.newString("Set the Wichmann-Hill seed from (x, y, z).\012\012        These must be integers in the range [0, 256).\012        ");
+            s$66 = Py.newString("seeds must be integers");
+            s$67 = Py.newString("seeds must be in range(0, 256)");
+            i$68 = Py.newInteger(16777215);
+            i$69 = Py.newInteger(24);
+            s$70 = Py.newString("Seed from hashable object's hash code.\012\012        None or no argument seeds from current time.  It is not guaranteed\012        that objects with distinct hash codes lead to distinct internal\012        states.\012\012        This is obsolete, provided for compatibility with the seed routine\012        used prior to Python 2.1.  Use the .seed() method instead.\012        ");
+            s$71 = Py.newString("Choose a random item from range(start, stop[, step]).\012\012        This fixes the problem with randint() which includes the\012        endpoint; in Python this is usually not what you want.\012        Do not supply the 'int' and 'default' arguments.\012        ");
+            s$72 = Py.newString("non-integer arg 1 for randrange()");
+            s$73 = Py.newString("empty range for randrange()");
+            s$74 = Py.newString("non-integer stop for randrange()");
+            s$75 = Py.newString("non-integer step for randrange()");
+            s$76 = Py.newString("zero step for randrange()");
+            s$77 = Py.newString("Return random integer in range [a, b], including both end points.\012\012        (Deprecated; use randrange(a, b+1).)\012        ");
+            s$78 = Py.newString("Choose a random element from a non-empty sequence.");
+            s$79 = Py.newString("x, random=random.random -> shuffle list x in place; return None.\012\012        Optional arg random is a 0-argument function returning a random\012        float in [0.0, 1.0); by default, the standard random.random.\012\012        Note that for even rather small len(x), the total number of\012        permutations of x is larger than the period of most random number\012        generators; this implies that \"most\" permutations of a long\012        sequence can never be generated.\012        ");
+            s$80 = Py.newString("Get a random number in the range [a, b).");
+            f$81 = Py.newFloat(1.0E-6);
+            f$82 = Py.newFloat(0.0);
+            s$83 = Py.newString("stdgamma: alpha must be > 0.0");
+            s$84 = Py.newString("times");
+            s$85 = Py.newString("eval");
+            f$86 = Py.newFloat(1.0E10);
+            s$87 = Py.newString("sec,");
+            s$88 = Py.newString("avg %g, stddev %g, min %g, max %g");
+            s$89 = Py.newString("TWOPI         =");
+            s$90 = Py.newString("LOG4          =");
+            s$91 = Py.newString("NV_MAGICCONST =");
+            s$92 = Py.newString("SG_MAGICCONST =");
+            s$93 = Py.newString("random()");
+            s$94 = Py.newString("normalvariate(0.0, 1.0)");
+            s$95 = Py.newString("lognormvariate(0.0, 1.0)");
+            s$96 = Py.newString("cunifvariate(0.0, 1.0)");
+            s$97 = Py.newString("expovariate(1.0)");
+            s$98 = Py.newString("vonmisesvariate(0.0, 1.0)");
+            s$99 = Py.newString("gammavariate(0.5, 1.0)");
+            s$100 = Py.newString("gammavariate(0.9, 1.0)");
+            s$101 = Py.newString("gammavariate(1.0, 1.0)");
+            s$102 = Py.newString("gammavariate(2.0, 1.0)");
+            s$103 = Py.newString("gammavariate(20.0, 1.0)");
+            s$104 = Py.newString("gammavariate(200.0, 1.0)");
+            s$105 = Py.newString("gauss(0.0, 1.0)");
+            s$106 = Py.newString("betavariate(3.0, 3.0)");
+            s$107 = Py.newString("paretovariate(1.0)");
+            s$108 = Py.newString("weibullvariate(1.0, 1.0)");
+            s$109 = Py.newString("jumpahead test failed ");
+            i$110 = Py.newInteger(200);
+            s$111 = Py.newString("__main__");
+            s$112 = Py.newString("/usr/share/jython/Lib/random.py");
+            funcTable = new _PyInner();
+            c$0__verify = Py.newCode(3, new String[] {"name", "computed", "expected"}, "/usr/share/jython/Lib/random.py", "_verify", false, false, funcTable, 0, null, null, 0, 1);
+            c$1___init__ = Py.newCode(2, new String[] {"self", "x"}, "/usr/share/jython/Lib/random.py", "__init__", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_seed = Py.newCode(2, new String[] {"self", "a", "time", "z", "y", "x"}, "/usr/share/jython/Lib/random.py", "seed", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_random = Py.newCode(1, new String[] {"self", "x", "z", "y"}, "/usr/share/jython/Lib/random.py", "random", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_getstate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/random.py", "getstate", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_setstate = Py.newCode(2, new String[] {"self", "state", "version"}, "/usr/share/jython/Lib/random.py", "setstate", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_jumpahead = Py.newCode(2, new String[] {"self", "n", "x", "z", "y"}, "/usr/share/jython/Lib/random.py", "jumpahead", false, false, funcTable, 6, null, null, 0, 1);
+            c$7__Random__whseed = Py.newCode(4, new String[] {"self", "x", "y", "z", "time", "t"}, "/usr/share/jython/Lib/random.py", "_Random__whseed", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_whseed = Py.newCode(2, new String[] {"self", "a", "x", "z", "y"}, "/usr/share/jython/Lib/random.py", "whseed", false, false, funcTable, 8, null, null, 0, 1);
+            c$9___getstate__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/random.py", "__getstate__", false, false, funcTable, 9, null, null, 0, 1);
+            c$10___setstate__ = Py.newCode(2, new String[] {"self", "state"}, "/usr/share/jython/Lib/random.py", "__setstate__", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_randrange = Py.newCode(6, new String[] {"self", "start", "stop", "step", "int", "default", "istep", "n", "istart", "istop"}, "/usr/share/jython/Lib/random.py", "randrange", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_randint = Py.newCode(3, new String[] {"self", "a", "b"}, "/usr/share/jython/Lib/random.py", "randint", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_choice = Py.newCode(2, new String[] {"self", "seq"}, "/usr/share/jython/Lib/random.py", "choice", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_shuffle = Py.newCode(4, new String[] {"self", "x", "random", "int", "j", "i"}, "/usr/share/jython/Lib/random.py", "shuffle", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_uniform = Py.newCode(3, new String[] {"self", "a", "b"}, "/usr/share/jython/Lib/random.py", "uniform", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_normalvariate = Py.newCode(3, new String[] {"self", "mu", "sigma", "u2", "u1", "random", "zz", "z"}, "/usr/share/jython/Lib/random.py", "normalvariate", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_lognormvariate = Py.newCode(3, new String[] {"self", "mu", "sigma"}, "/usr/share/jython/Lib/random.py", "lognormvariate", false, false, funcTable, 17, null, null, 0, 1);
+            c$18_cunifvariate = Py.newCode(3, new String[] {"self", "mean", "arc"}, "/usr/share/jython/Lib/random.py", "cunifvariate", false, false, funcTable, 18, null, null, 0, 1);
+            c$19_expovariate = Py.newCode(2, new String[] {"self", "lambd", "u", "random"}, "/usr/share/jython/Lib/random.py", "expovariate", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_vonmisesvariate = Py.newCode(3, new String[] {"self", "mu", "kappa", "random", "theta", "z", "r", "u3", "u2", "u1", "f", "c", "b", "a"}, "/usr/share/jython/Lib/random.py", "vonmisesvariate", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_gammavariate = Py.newCode(3, new String[] {"self", "alpha", "beta", "ainv"}, "/usr/share/jython/Lib/random.py", "gammavariate", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_stdgamma = Py.newCode(5, new String[] {"self", "alpha", "ainv", "bbb", "ccc", "random", "z", "x", "v", "u", "r", "p", "u2", "u1", "b"}, "/usr/share/jython/Lib/random.py", "stdgamma", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_gauss = Py.newCode(3, new String[] {"self", "mu", "sigma", "x2pi", "random", "g2rad", "z"}, "/usr/share/jython/Lib/random.py", "gauss", false, false, funcTable, 23, null, null, 0, 1);
+            c$24_betavariate = Py.newCode(3, new String[] {"self", "alpha", "beta", "y"}, "/usr/share/jython/Lib/random.py", "betavariate", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_paretovariate = Py.newCode(2, new String[] {"self", "alpha", "u"}, "/usr/share/jython/Lib/random.py", "paretovariate", false, false, funcTable, 25, null, null, 0, 1);
+            c$26_weibullvariate = Py.newCode(3, new String[] {"self", "alpha", "beta", "u"}, "/usr/share/jython/Lib/random.py", "weibullvariate", false, false, funcTable, 26, null, null, 0, 1);
+            c$27_Random = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/random.py", "Random", false, false, funcTable, 27, null, null, 0, 0);
+            c$28__test_generator = Py.newCode(2, new String[] {"n", "funccall", "smallest", "code", "sum", "largest", "time", "x", "t1", "t0", "avg", "i", "stddev", "sqsum"}, "/usr/share/jython/Lib/random.py", "_test_generator", false, false, funcTable, 28, null, null, 0, 1);
+            c$29__test = Py.newCode(1, new String[] {"N", "r2", "r1", "i", "s"}, "/usr/share/jython/Lib/random.py", "_test", false, false, funcTable, 29, null, null, 0, 1);
+            c$30_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/random.py", "main", false, false, funcTable, 30, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$30_main == null) _PyInner.initConstants();
+            return c$30_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner._verify$1(frame);
+                case 1:
+                return _PyInner.__init__$2(frame);
+                case 2:
+                return _PyInner.seed$3(frame);
+                case 3:
+                return _PyInner.random$4(frame);
+                case 4:
+                return _PyInner.getstate$5(frame);
+                case 5:
+                return _PyInner.setstate$6(frame);
+                case 6:
+                return _PyInner.jumpahead$7(frame);
+                case 7:
+                return _PyInner._Random__whseed$8(frame);
+                case 8:
+                return _PyInner.whseed$9(frame);
+                case 9:
+                return _PyInner.__getstate__$10(frame);
+                case 10:
+                return _PyInner.__setstate__$11(frame);
+                case 11:
+                return _PyInner.randrange$12(frame);
+                case 12:
+                return _PyInner.randint$13(frame);
+                case 13:
+                return _PyInner.choice$14(frame);
+                case 14:
+                return _PyInner.shuffle$15(frame);
+                case 15:
+                return _PyInner.uniform$16(frame);
+                case 16:
+                return _PyInner.normalvariate$17(frame);
+                case 17:
+                return _PyInner.lognormvariate$18(frame);
+                case 18:
+                return _PyInner.cunifvariate$19(frame);
+                case 19:
+                return _PyInner.expovariate$20(frame);
+                case 20:
+                return _PyInner.vonmisesvariate$21(frame);
+                case 21:
+                return _PyInner.gammavariate$22(frame);
+                case 22:
+                return _PyInner.stdgamma$23(frame);
+                case 23:
+                return _PyInner.gauss$24(frame);
+                case 24:
+                return _PyInner.betavariate$25(frame);
+                case 25:
+                return _PyInner.paretovariate$26(frame);
+                case 26:
+                return _PyInner.weibullvariate$27(frame);
+                case 27:
+                return _PyInner.Random$28(frame);
+                case 28:
+                return _PyInner._test_generator$29(frame);
+                case 29:
+                return _PyInner._test$30(frame);
+                case 30:
+                return _PyInner.main$31(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject _verify$1(PyFrame frame) {
+            if (frame.getglobal("abs").__call__(frame.getlocal(1)._sub(frame.getlocal(2)))._gt(f$24).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError").__call__(s$25._mod(new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2)}))));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __init__$2(PyFrame frame) {
+            /* Initialize an instance.
+            
+                    Optional argument x controls seeding, as for Random.seed().
+                     */
+            frame.getlocal(0).invoke("seed", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("gauss_next", frame.getglobal("None"));
+            return Py.None;
+        }
+        
+        private static PyObject seed$3(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* Initialize internal state from hashable object.
+            
+                    None or no argument seeds from current time.
+            
+                    If a is not None or an int or long, hash(a) is used instead.
+            
+                    If a is an int or long, a is used directly.  Distinct values between
+                    0 and 27814431486575L inclusive are guaranteed to yield distinct
+                    internal states (this guarantee is specific to the default
+                    Wichmann-Hill generator).
+                     */
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(2, org.python.core.imp.importOne("time", frame));
+                frame.setlocal(1, frame.getglobal("long").__call__(frame.getlocal(2).__getattr__("time").__call__()._mul(i$43)));
+            }
+            if (frame.getglobal("type").__call__(frame.getlocal(1))._notin(new PyTuple(new PyObject[] {frame.getglobal("type").__call__(i$44), frame.getglobal("type").__call__(l$45)})).__nonzero__()) {
+                frame.setlocal(1, frame.getglobal("hash").__call__(frame.getlocal(1)));
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$46), 2);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(5, t$0$PyObject__[1]);
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$47), 2);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(4, t$0$PyObject__[1]);
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$48), 2);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(3, t$0$PyObject__[1]);
+            frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {frame.getglobal("int").__call__(frame.getlocal(5))._add(i$40), frame.getglobal("int").__call__(frame.getlocal(4))._add(i$40), frame.getglobal("int").__call__(frame.getlocal(3))._add(i$40)}));
+            return Py.None;
+        }
+        
+        private static PyObject random$4(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* Get the next random number in the range [0.0, 1.0). */
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("_seed"), 3);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(3, t$0$PyObject__[1]);
+            frame.setlocal(2, t$0$PyObject__[2]);
+            frame.setlocal(1, i$50._mul(frame.getlocal(1))._mod(i$51));
+            frame.setlocal(3, i$52._mul(frame.getlocal(3))._mod(i$53));
+            frame.setlocal(2, i$54._mul(frame.getlocal(2))._mod(i$55));
+            frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(3), frame.getlocal(2)}));
+            return frame.getlocal(1)._div(f$56)._add(frame.getlocal(3)._div(f$57))._add(frame.getlocal(2)._div(f$58))._mod(f$36);
+        }
+        
+        private static PyObject getstate$5(PyFrame frame) {
+            /* Return internal state; can be passed to setstate() later. */
+            return new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("VERSION"), frame.getlocal(0).__getattr__("_seed"), frame.getlocal(0).__getattr__("gauss_next")});
+        }
+        
+        private static PyObject setstate$6(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* Restore internal state from object returned by getstate(). */
+            frame.setlocal(2, frame.getlocal(1).__getitem__(i$61));
+            if (frame.getlocal(2)._eq(i$40).__nonzero__()) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 3);
+                frame.setlocal(2, t$0$PyObject__[0]);
+                frame.getlocal(0).__setattr__("_seed", t$0$PyObject__[1]);
+                frame.getlocal(0).__setattr__("gauss_next", t$0$PyObject__[2]);
+            }
+            else {
+                throw Py.makeException(frame.getglobal("ValueError").__call__(s$62._mod(new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(0).__getattr__("VERSION")}))));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject jumpahead$7(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* Act as if n calls to random() were made, but quickly.
+            
+                    n is an int, greater than or equal to 0.
+            
+                    Example use:  If you have 2 threads and know that each will
+                    consume no more than a million random numbers, create two Random
+                    objects r1 and r2, then do
+                        r2.setstate(r1.getstate())
+                        r2.jumpahead(1000000)
+                    Then r1 and r2 will use guaranteed-disjoint segments of the full
+                    period.
+                     */
+            if (frame.getlocal(1)._ge(i$61).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError").__call__(s$64));
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("_seed"), 3);
+            frame.setlocal(2, t$0$PyObject__[0]);
+            frame.setlocal(4, t$0$PyObject__[1]);
+            frame.setlocal(3, t$0$PyObject__[2]);
+            frame.setlocal(2, frame.getglobal("int").__call__(frame.getlocal(2)._mul(frame.getglobal("pow").__call__(i$50, frame.getlocal(1), i$51)))._mod(i$51));
+            frame.setlocal(4, frame.getglobal("int").__call__(frame.getlocal(4)._mul(frame.getglobal("pow").__call__(i$52, frame.getlocal(1), i$53)))._mod(i$53));
+            frame.setlocal(3, frame.getglobal("int").__call__(frame.getlocal(3)._mul(frame.getglobal("pow").__call__(i$54, frame.getlocal(1), i$55)))._mod(i$55));
+            frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3)}));
+            return Py.None;
+        }
+        
+        private static PyObject _Random__whseed$8(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            /* Set the Wichmann-Hill seed from (x, y, z).
+            
+                    These must be integers in the range [0, 256).
+                     */
+            if ((frame.getglobal("type").__call__(frame.getlocal(1))._eq(t$0$PyObject = frame.getglobal("type").__call__(frame.getlocal(2))).__nonzero__() ? (t$0$PyObject._eq(t$1$PyObject = frame.getglobal("type").__call__(frame.getlocal(3))).__nonzero__() ? t$1$PyObject._eq(frame.getglobal("type").__call__(i$61)) : Py.Zero) : Py.Zero).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$66));
+            }
+            if (((t$0$PyObject = ((t$1$PyObject = (i$61._le(t$2$PyObject = frame.getlocal(1)).__nonzero__() ? t$2$PyObject._lt(i$43) : Py.Zero)).__nonzero__() ? (i$61._le(t$2$PyObject = frame.getlocal(2)).__nonzero__() ? t$2$PyObject._lt(i$43) : Py.Zero) : t$1$PyObject)).__nonzero__() ? (i$61._le(t$1$PyObject = frame.getlocal(3)).__nonzero__() ? t$1$PyObject._lt(i$43) : Py.Zero) : t$0$PyObject).__not__().__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError").__call__(s$67));
+            }
+            if ((i$61._eq(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? (t$0$PyObject._eq(t$1$PyObject = frame.getlocal(2)).__nonzero__() ? t$1$PyObject._eq(frame.getlocal(3)) : Py.Zero) : Py.Zero).__nonzero__()) {
+                frame.setlocal(4, org.python.core.imp.importOne("time", frame));
+                frame.setlocal(5, frame.getglobal("long").__call__(frame.getlocal(4).__getattr__("time").__call__()._mul(i$43)));
+                frame.setlocal(5, frame.getglobal("int").__call__(frame.getlocal(5)._and(i$68)._xor(frame.getlocal(5)._rshift(i$69))));
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(5), i$43), 2);
+                frame.setlocal(5, t$0$PyObject__[0]);
+                frame.setlocal(1, t$0$PyObject__[1]);
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(5), i$43), 2);
+                frame.setlocal(5, t$0$PyObject__[0]);
+                frame.setlocal(2, t$0$PyObject__[1]);
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(5), i$43), 2);
+                frame.setlocal(5, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+            }
+            frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject : i$40, (t$0$PyObject = frame.getlocal(2)).__nonzero__() ? t$0$PyObject : i$40, (t$0$PyObject = frame.getlocal(3)).__nonzero__() ? t$0$PyObject : i$40}));
+            return Py.None;
+        }
+        
+        private static PyObject whseed$9(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* Seed from hashable object's hash code.
+            
+                    None or no argument seeds from current time.  It is not guaranteed
+                    that objects with distinct hash codes lead to distinct internal
+                    states.
+            
+                    This is obsolete, provided for compatibility with the seed routine
+                    used prior to Python 2.1.  Use the .seed() method instead.
+                     */
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.getlocal(0).invoke("_Random__whseed");
+                return Py.None;
+            }
+            frame.setlocal(1, frame.getglobal("hash").__call__(frame.getlocal(1)));
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$43), 2);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$43), 2);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(4, t$0$PyObject__[1]);
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$43), 2);
+            frame.setlocal(1, t$0$PyObject__[0]);
+            frame.setlocal(3, t$0$PyObject__[1]);
+            frame.setlocal(2, (t$0$PyObject = frame.getlocal(2)._add(frame.getlocal(1))._mod(i$43)).__nonzero__() ? t$0$PyObject : i$40);
+            frame.setlocal(4, (t$0$PyObject = frame.getlocal(4)._add(frame.getlocal(1))._mod(i$43)).__nonzero__() ? t$0$PyObject : i$40);
+            frame.setlocal(3, (t$0$PyObject = frame.getlocal(3)._add(frame.getlocal(1))._mod(i$43)).__nonzero__() ? t$0$PyObject : i$40);
+            frame.getlocal(0).invoke("_Random__whseed", new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3)});
+            return Py.None;
+        }
+        
+        private static PyObject __getstate__$10(PyFrame frame) {
+            return frame.getlocal(0).invoke("getstate");
+        }
+        
+        private static PyObject __setstate__$11(PyFrame frame) {
+            frame.getlocal(0).invoke("setstate", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject randrange$12(PyFrame frame) {
+            /* Choose a random item from range(start, stop[, step]).
+            
+                    This fixes the problem with randint() which includes the
+                    endpoint; in Python this is usually not what you want.
+                    Do not supply the 'int' and 'default' arguments.
+                     */
+            frame.setlocal(8, frame.getlocal(4).__call__(frame.getlocal(1)));
+            if (frame.getlocal(8)._ne(frame.getlocal(1)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$72);
+            }
+            if (frame.getlocal(2)._is(frame.getlocal(5)).__nonzero__()) {
+                if (frame.getlocal(8)._gt(i$61).__nonzero__()) {
+                    return frame.getlocal(4).__call__(frame.getlocal(0).invoke("random")._mul(frame.getlocal(8)));
+                }
+                throw Py.makeException(frame.getglobal("ValueError"), s$73);
+            }
+            frame.setlocal(9, frame.getlocal(4).__call__(frame.getlocal(2)));
+            if (frame.getlocal(9)._ne(frame.getlocal(2)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$74);
+            }
+            if (frame.getlocal(3)._eq(i$40).__nonzero__()) {
+                if (frame.getlocal(8)._lt(frame.getlocal(9)).__nonzero__()) {
+                    return frame.getlocal(8)._add(frame.getlocal(4).__call__(frame.getlocal(0).invoke("random")._mul(frame.getlocal(9)._sub(frame.getlocal(8)))));
+                }
+                throw Py.makeException(frame.getglobal("ValueError"), s$73);
+            }
+            frame.setlocal(6, frame.getlocal(4).__call__(frame.getlocal(3)));
+            if (frame.getlocal(6)._ne(frame.getlocal(3)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$75);
+            }
+            if (frame.getlocal(6)._gt(i$61).__nonzero__()) {
+                frame.setlocal(7, frame.getlocal(9)._sub(frame.getlocal(8))._add(frame.getlocal(6))._sub(i$40)._div(frame.getlocal(6)));
+            }
+            else if (frame.getlocal(6)._lt(i$61).__nonzero__()) {
+                frame.setlocal(7, frame.getlocal(9)._sub(frame.getlocal(8))._add(frame.getlocal(6))._add(i$40)._div(frame.getlocal(6)));
+            }
+            else {
+                throw Py.makeException(frame.getglobal("ValueError"), s$76);
+            }
+            if (frame.getlocal(7)._le(i$61).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$73);
+            }
+            return frame.getlocal(8)._add(frame.getlocal(6)._mul(frame.getlocal(4).__call__(frame.getlocal(0).invoke("random")._mul(frame.getlocal(7)))));
+        }
+        
+        private static PyObject randint$13(PyFrame frame) {
+            /* Return random integer in range [a, b], including both end points.
+            
+                    (Deprecated; use randrange(a, b+1).)
+                     */
+            return frame.getlocal(0).invoke("randrange", frame.getlocal(1), frame.getlocal(2)._add(i$40));
+        }
+        
+        private static PyObject choice$14(PyFrame frame) {
+            /* Choose a random element from a non-empty sequence. */
+            return frame.getlocal(1).__getitem__(frame.getglobal("int").__call__(frame.getlocal(0).invoke("random")._mul(frame.getglobal("len").__call__(frame.getlocal(1)))));
+        }
+        
+        private static PyObject shuffle$15(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* x, random=random.random -> shuffle list x in place; return None.
+            
+                    Optional arg random is a 0-argument function returning a random
+                    float in [0.0, 1.0); by default, the standard random.random.
+            
+                    Note that for even rather small len(x), the total number of
+                    permutations of x is larger than the period of most random number
+                    generators; this implies that "most" permutations of a long
+                    sequence can never be generated.
+                     */
+            if (frame.getlocal(2)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(2, frame.getlocal(0).__getattr__("random"));
+            }
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("xrange").__call__(frame.getglobal("len").__call__(frame.getlocal(1))._sub(i$40), i$61, i$40.__neg__());
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(5, t$0$PyObject);
+                frame.setlocal(4, frame.getlocal(3).__call__(frame.getlocal(2).__call__()._mul(frame.getlocal(5)._add(i$40))));
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {frame.getlocal(1).__getitem__(frame.getlocal(4)), frame.getlocal(1).__getitem__(frame.getlocal(5))}), 2);
+                frame.getlocal(1).__setitem__(frame.getlocal(5), t$0$PyObject__[0]);
+                frame.getlocal(1).__setitem__(frame.getlocal(4), t$0$PyObject__[1]);
+            }
+            return Py.None;
+        }
+        
+        private static PyObject uniform$16(PyFrame frame) {
+            /* Get a random number in the range [a, b). */
+            return frame.getlocal(1)._add(frame.getlocal(2)._sub(frame.getlocal(1))._mul(frame.getlocal(0).invoke("random")));
+        }
+        
+        private static PyObject normalvariate$17(PyFrame frame) {
+            frame.setlocal(5, frame.getlocal(0).__getattr__("random"));
+            while (i$40.__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(5).__call__());
+                frame.setlocal(3, frame.getlocal(5).__call__());
+                frame.setlocal(7, frame.getglobal("NV_MAGICCONST")._mul(frame.getlocal(4)._sub(f$27))._div(frame.getlocal(3)));
+                frame.setlocal(6, frame.getlocal(7)._mul(frame.getlocal(7))._div(f$33));
+                if (frame.getlocal(6)._le(frame.getglobal("_log").__call__(frame.getlocal(3)).__neg__()).__nonzero__()) {
+                    break;
+                }
+            }
+            return frame.getlocal(1)._add(frame.getlocal(7)._mul(frame.getlocal(2)));
+        }
+        
+        private static PyObject lognormvariate$18(PyFrame frame) {
+            return frame.getglobal("_exp").__call__(frame.getlocal(0).invoke("normalvariate", frame.getlocal(1), frame.getlocal(2)));
+        }
+        
+        private static PyObject cunifvariate$19(PyFrame frame) {
+            return frame.getlocal(1)._add(frame.getlocal(2)._mul(frame.getlocal(0).invoke("random")._sub(f$27)))._mod(frame.getglobal("_pi"));
+        }
+        
+        private static PyObject expovariate$20(PyFrame frame) {
+            frame.setlocal(3, frame.getlocal(0).__getattr__("random"));
+            frame.setlocal(2, frame.getlocal(3).__call__());
+            while (frame.getlocal(2)._le(f$24).__nonzero__()) {
+                frame.setlocal(2, frame.getlocal(3).__call__());
+            }
+            return frame.getglobal("_log").__call__(frame.getlocal(2)).__neg__()._div(frame.getlocal(1));
+        }
+        
+        private static PyObject vonmisesvariate$21(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(3, frame.getlocal(0).__getattr__("random"));
+            if (frame.getlocal(2)._le(f$81).__nonzero__()) {
+                return frame.getglobal("TWOPI")._mul(frame.getlocal(3).__call__());
+            }
+            frame.setlocal(13, f$36._add(frame.getglobal("_sqrt").__call__(f$36._add(f$33._mul(frame.getlocal(2))._mul(frame.getlocal(2))))));
+            frame.setlocal(12, frame.getlocal(13)._sub(frame.getglobal("_sqrt").__call__(f$28._mul(frame.getlocal(13))))._div(f$28._mul(frame.getlocal(2))));
+            frame.setlocal(6, f$36._add(frame.getlocal(12)._mul(frame.getlocal(12)))._div(f$28._mul(frame.getlocal(12))));
+            while (i$40.__nonzero__()) {
+                frame.setlocal(9, frame.getlocal(3).__call__());
+                frame.setlocal(5, frame.getglobal("_cos").__call__(frame.getglobal("_pi")._mul(frame.getlocal(9))));
+                frame.setlocal(10, f$36._add(frame.getlocal(6)._mul(frame.getlocal(5)))._div(frame.getlocal(6)._add(frame.getlocal(5))));
+                frame.setlocal(11, frame.getlocal(2)._mul(frame.getlocal(6)._sub(frame.getlocal(10))));
+                frame.setlocal(8, frame.getlocal(3).__call__());
+                if (((t$0$PyObject = frame.getlocal(8)._ge(frame.getlocal(11)._mul(f$28._sub(frame.getlocal(11))))).__nonzero__() ? frame.getlocal(8)._gt(frame.getlocal(11)._mul(frame.getglobal("_exp").__call__(f$36._sub(frame.getlocal(11))))) : t$0$PyObject).__not__().__nonzero__()) {
+                    break;
+                }
+            }
+            frame.setlocal(7, frame.getlocal(3).__call__());
+            if (frame.getlocal(7)._gt(f$27).__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(1)._mod(frame.getglobal("TWOPI"))._add(frame.getglobal("_acos").__call__(frame.getlocal(10))));
+            }
+            else {
+                frame.setlocal(4, frame.getlocal(1)._mod(frame.getglobal("TWOPI"))._sub(frame.getglobal("_acos").__call__(frame.getlocal(10))));
+            }
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject gammavariate$22(PyFrame frame) {
+            frame.setlocal(3, frame.getglobal("_sqrt").__call__(f$28._mul(frame.getlocal(1))._sub(f$36)));
+            return frame.getlocal(2)._mul(frame.getlocal(0).invoke("stdgamma", new PyObject[] {frame.getlocal(1), frame.getlocal(3), frame.getlocal(1)._sub(frame.getglobal("LOG4")), frame.getlocal(1)._add(frame.getlocal(3))}));
+        }
+        
+        private static PyObject stdgamma$23(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(5, frame.getlocal(0).__getattr__("random"));
+            if (frame.getlocal(1)._le(f$82).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$83);
+            }
+            if (frame.getlocal(1)._gt(f$36).__nonzero__()) {
+                while (i$40.__nonzero__()) {
+                    frame.setlocal(13, frame.getlocal(5).__call__());
+                    frame.setlocal(12, frame.getlocal(5).__call__());
+                    frame.setlocal(8, frame.getglobal("_log").__call__(frame.getlocal(13)._div(f$36._sub(frame.getlocal(13))))._div(frame.getlocal(2)));
+                    frame.setlocal(7, frame.getlocal(1)._mul(frame.getglobal("_exp").__call__(frame.getlocal(8))));
+                    frame.setlocal(6, frame.getlocal(13)._mul(frame.getlocal(13))._mul(frame.getlocal(12)));
+                    frame.setlocal(10, frame.getlocal(3)._add(frame.getlocal(4)._mul(frame.getlocal(8)))._sub(frame.getlocal(7)));
+                    if (((t$0$PyObject = frame.getlocal(10)._add(frame.getglobal("SG_MAGICCONST"))._sub(f$37._mul(frame.getlocal(6)))._ge(f$82)).__nonzero__() ? t$0$PyObject : frame.getlocal(10)._ge(frame.getglobal("_log").__call__(frame.getlocal(6)))).__nonzero__()) {
+                        return frame.getlocal(7);
+                    }
+                }
+            }
+            else if (frame.getlocal(1)._eq(f$36).__nonzero__()) {
+                frame.setlocal(9, frame.getlocal(5).__call__());
+                while (frame.getlocal(9)._le(f$24).__nonzero__()) {
+                    frame.setlocal(9, frame.getlocal(5).__call__());
+                }
+                return frame.getglobal("_log").__call__(frame.getlocal(9)).__neg__();
+            }
+            else {
+                while (i$40.__nonzero__()) {
+                    frame.setlocal(9, frame.getlocal(5).__call__());
+                    frame.setlocal(14, frame.getglobal("_e")._add(frame.getlocal(1))._div(frame.getglobal("_e")));
+                    frame.setlocal(11, frame.getlocal(14)._mul(frame.getlocal(9)));
+                    if (frame.getlocal(11)._le(f$36).__nonzero__()) {
+                        frame.setlocal(7, frame.getglobal("pow").__call__(frame.getlocal(11), f$36._div(frame.getlocal(1))));
+                    }
+                    else {
+                        frame.setlocal(7, frame.getglobal("_log").__call__(frame.getlocal(14)._sub(frame.getlocal(11))._div(frame.getlocal(1))).__neg__());
+                    }
+                    frame.setlocal(13, frame.getlocal(5).__call__());
+                    if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(11)._le(f$36)).__nonzero__() ? frame.getlocal(13)._gt(frame.getglobal("_exp").__call__(frame.getlocal(7).__neg__())) : t$1$PyObject)).__nonzero__() ? t$0$PyObject : ((t$1$PyObject = frame.getlocal(11)._gt(i$40)).__nonzero__() ? frame.getlocal(13)._gt(frame.getglobal("pow").__call__(frame.getlocal(7), frame.getlocal(1)._sub(f$36))) : t$1$PyObject)).__not__().__nonzero__()) {
+                        break;
+                    }
+                }
+                return frame.getlocal(7);
+            }
+            return Py.None;
+        }
+        
+        private static PyObject gauss$24(PyFrame frame) {
+            frame.setlocal(4, frame.getlocal(0).__getattr__("random"));
+            frame.setlocal(6, frame.getlocal(0).__getattr__("gauss_next"));
+            frame.getlocal(0).__setattr__("gauss_next", frame.getglobal("None"));
+            if (frame.getlocal(6)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(4).__call__()._mul(frame.getglobal("TWOPI")));
+                frame.setlocal(5, frame.getglobal("_sqrt").__call__(f$28.__neg__()._mul(frame.getglobal("_log").__call__(f$36._sub(frame.getlocal(4).__call__())))));
+                frame.setlocal(6, frame.getglobal("_cos").__call__(frame.getlocal(3))._mul(frame.getlocal(5)));
+                frame.getlocal(0).__setattr__("gauss_next", frame.getglobal("_sin").__call__(frame.getlocal(3))._mul(frame.getlocal(5)));
+            }
+            return frame.getlocal(1)._add(frame.getlocal(6)._mul(frame.getlocal(2)));
+        }
+        
+        private static PyObject betavariate$25(PyFrame frame) {
+            frame.setlocal(3, frame.getlocal(0).invoke("gammavariate", frame.getlocal(1), f$36));
+            if (frame.getlocal(3)._eq(i$61).__nonzero__()) {
+                return f$82;
+            }
+            else {
+                return frame.getlocal(3)._div(frame.getlocal(3)._add(frame.getlocal(0).invoke("gammavariate", frame.getlocal(2), f$36)));
+            }
+        }
+        
+        private static PyObject paretovariate$26(PyFrame frame) {
+            frame.setlocal(2, frame.getlocal(0).invoke("random"));
+            return f$36._div(frame.getglobal("pow").__call__(frame.getlocal(2), f$36._div(frame.getlocal(1))));
+        }
+        
+        private static PyObject weibullvariate$27(PyFrame frame) {
+            frame.setlocal(3, frame.getlocal(0).invoke("random"));
+            return frame.getlocal(1)._mul(frame.getglobal("pow").__call__(frame.getglobal("_log").__call__(frame.getlocal(3)).__neg__(), f$36._div(frame.getlocal(2))));
+        }
+        
+        private static PyObject Random$28(PyFrame frame) {
+            frame.setlocal("VERSION", i$40);
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1___init__));
+            frame.setlocal("seed", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$2_seed));
+            frame.setlocal("random", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_random));
+            frame.setlocal("getstate", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_getstate));
+            frame.setlocal("setstate", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_setstate));
+            frame.setlocal("jumpahead", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_jumpahead));
+            frame.setlocal("_Random__whseed", new PyFunction(frame.f_globals, new PyObject[] {i$61, i$61, i$61}, c$7__Random__whseed));
+            frame.setlocal("whseed", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$8_whseed));
+            frame.setlocal("__getstate__", new PyFunction(frame.f_globals, new PyObject[] {}, c$9___getstate__));
+            frame.setlocal("__setstate__", new PyFunction(frame.f_globals, new PyObject[] {}, c$10___setstate__));
+            frame.setlocal("randrange", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), i$40, frame.getname("int"), frame.getname("None")}, c$11_randrange));
+            frame.setlocal("randint", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_randint));
+            frame.setlocal("choice", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_choice));
+            frame.setlocal("shuffle", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("int")}, c$14_shuffle));
+            frame.setlocal("uniform", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_uniform));
+            frame.setlocal("normalvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_normalvariate));
+            frame.setlocal("lognormvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_lognormvariate));
+            frame.setlocal("cunifvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$18_cunifvariate));
+            frame.setlocal("expovariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_expovariate));
+            frame.setlocal("vonmisesvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_vonmisesvariate));
+            frame.setlocal("gammavariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_gammavariate));
+            frame.setlocal("stdgamma", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_stdgamma));
+            frame.setlocal("gauss", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_gauss));
+            frame.setlocal("betavariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_betavariate));
+            frame.setlocal("paretovariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_paretovariate));
+            frame.setlocal("weibullvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_weibullvariate));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject _test_generator$29(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(6, org.python.core.imp.importOne("time", frame));
+            Py.printComma(frame.getlocal(0));
+            Py.printComma(s$84);
+            Py.println(frame.getlocal(1));
+            frame.setlocal(3, frame.getglobal("compile").__call__(frame.getlocal(1), frame.getlocal(1), s$85));
+            frame.setlocal(4, f$82);
+            frame.setlocal(13, f$82);
+            frame.setlocal(2, f$86);
+            frame.setlocal(5, f$86.__neg__());
+            frame.setlocal(9, frame.getlocal(6).__getattr__("time").__call__());
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getlocal(0));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(11, t$0$PyObject);
+                frame.setlocal(7, frame.getglobal("eval").__call__(frame.getlocal(3)));
+                frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(7)));
+                frame.setlocal(13, frame.getlocal(13)._add(frame.getlocal(7)._mul(frame.getlocal(7))));
+                frame.setlocal(2, frame.getglobal("min").__call__(frame.getlocal(7), frame.getlocal(2)));
+                frame.setlocal(5, frame.getglobal("max").__call__(frame.getlocal(7), frame.getlocal(5)));
+            }
+            frame.setlocal(8, frame.getlocal(6).__getattr__("time").__call__());
+            Py.printComma(frame.getglobal("round").__call__(frame.getlocal(8)._sub(frame.getlocal(9)), i$44));
+            Py.printComma(s$87);
+            frame.setlocal(10, frame.getlocal(4)._div(frame.getlocal(0)));
+            frame.setlocal(12, frame.getglobal("_sqrt").__call__(frame.getlocal(13)._div(frame.getlocal(0))._sub(frame.getlocal(10)._mul(frame.getlocal(10)))));
+            Py.println(s$88._mod(new PyTuple(new PyObject[] {frame.getlocal(10), frame.getlocal(12), frame.getlocal(2), frame.getlocal(5)})));
+            return Py.None;
+        }
+        
+        private static PyObject _test$30(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            Py.printComma(s$89);
+            Py.println(frame.getglobal("TWOPI"));
+            Py.printComma(s$90);
+            Py.println(frame.getglobal("LOG4"));
+            Py.printComma(s$91);
+            Py.println(frame.getglobal("NV_MAGICCONST"));
+            Py.printComma(s$92);
+            Py.println(frame.getglobal("SG_MAGICCONST"));
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$93);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$94);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$95);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$96);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$97);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$98);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$99);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$100);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$101);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$102);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$103);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$104);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$105);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$106);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$107);
+            frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$108);
+            frame.setlocal(4, frame.getglobal("getstate").__call__());
+            frame.getglobal("jumpahead").__call__(frame.getlocal(0));
+            frame.setlocal(2, frame.getglobal("random").__call__());
+            frame.getglobal("setstate").__call__(frame.getlocal(4));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getlocal(0));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(3, t$0$PyObject);
+                frame.getglobal("random").__call__();
+            }
+            frame.setlocal(1, frame.getglobal("random").__call__());
+            if (frame.getlocal(2)._ne(frame.getlocal(1)).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError").__call__(s$109._add(new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(2), frame.getlocal(1)}).__repr__())));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject main$31(PyFrame frame) {
+            frame.setglobal("__file__", s$112);
+            
+            PyObject[] imp_accu;
+            // Code
+            /* Random variable generators.
+            
+                integers
+                --------
+                       uniform within range
+            
+                sequences
+                ---------
+                       pick random element
+                       generate random permutation
+            
+                distributions on the real line:
+                ------------------------------
+                       uniform
+                       normal (Gaussian)
+                       lognormal
+                       negative exponential
+                       gamma
+                       beta
+            
+                distributions on the circle (angles 0 to 2pi)
+                ---------------------------------------------
+                       circular uniform
+                       von Mises
+            
+            Translated from anonymously contributed C/C++ source.
+            
+            Multi-threading note:  the random number generator used here is not thread-
+            safe; it is possible that two calls return the same random value.  However,
+            you can instantiate a different instance of Random() in each thread to get
+            generators that don't share state, then use .setstate() and .jumpahead() to
+            move the generators to disjoint segments of the full period.  For example,
+            
+            def create_generators(num, delta, firstseed=None):
+                """Return list of num distinct generators.
+                Each generator has its own unique segment of delta elements from
+                Random.random()'s full period.
+                Seed the first generator with optional arg firstseed (default is
+                None, to seed from current time).
+                """
+            
+                from random import Random
+                g = Random(firstseed)
+                result = [g]
+                for i in range(num - 1):
+                    laststate = g.getstate()
+                    g = Random()
+                    g.setstate(laststate)
+                    g.jumpahead(delta)
+                    result.append(g)
+                return result
+            
+            gens = create_generators(10, 1000000)
+            
+            That creates 10 distinct generators, which can be passed out to 10 distinct
+            threads.  The generators don't share state so can be called safely in
+            parallel.  So long as no thread calls its g.random() more than a million
+            times (the second argument to create_generators), the sequences seen by
+            each thread will not overlap.
+            
+            The period of the underlying Wichmann-Hill generator is 6,953,607,871,644,
+            and that limits how far this technique can be pushed.
+            
+            Just for fun, note that since we know the period, .jumpahead() can also be
+            used to "move backward in time":
+            
+            >>> g = Random(42)  # arbitrary
+            >>> g.random()
+            0.25420336316883324
+            >>> g.jumpahead(6953607871644L - 1) # move *back* one
+            >>> g.random()
+            0.25420336316883324
+             */
+            imp_accu = org.python.core.imp.importFrom("math", new String[] {"log", "exp", "pi", "e"}, frame);
+            frame.setlocal("_log", imp_accu[0]);
+            frame.setlocal("_exp", imp_accu[1]);
+            frame.setlocal("_pi", imp_accu[2]);
+            frame.setlocal("_e", imp_accu[3]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("math", new String[] {"sqrt", "acos", "cos", "sin"}, frame);
+            frame.setlocal("_sqrt", imp_accu[0]);
+            frame.setlocal("_acos", imp_accu[1]);
+            frame.setlocal("_cos", imp_accu[2]);
+            frame.setlocal("_sin", imp_accu[3]);
+            imp_accu = null;
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$20, s$21, s$22, s$23}));
+            frame.setlocal("_verify", new PyFunction(frame.f_globals, new PyObject[] {}, c$0__verify));
+            frame.setlocal("NV_MAGICCONST", i$26._mul(frame.getname("_exp").__call__(f$27.__neg__()))._div(frame.getname("_sqrt").__call__(f$28)));
+            frame.getname("_verify").__call__(s$29, frame.getname("NV_MAGICCONST"), f$30);
+            frame.setlocal("TWOPI", f$28._mul(frame.getname("_pi")));
+            frame.getname("_verify").__call__(s$31, frame.getname("TWOPI"), f$32);
+            frame.setlocal("LOG4", frame.getname("_log").__call__(f$33));
+            frame.getname("_verify").__call__(s$34, frame.getname("LOG4"), f$35);
+            frame.setlocal("SG_MAGICCONST", f$36._add(frame.getname("_log").__call__(f$37)));
+            frame.getname("_verify").__call__(s$38, frame.getname("SG_MAGICCONST"), f$39);
+            frame.dellocal("_verify");
+            frame.setlocal("Random", Py.makeClass("Random", new PyObject[] {}, c$27_Random, null));
+            frame.setlocal("_test_generator", new PyFunction(frame.f_globals, new PyObject[] {}, c$28__test_generator));
+            frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {i$110}, c$29__test));
+            frame.setlocal("_inst", frame.getname("Random").__call__());
+            frame.setlocal("seed", frame.getname("_inst").__getattr__("seed"));
+            frame.setlocal("random", frame.getname("_inst").__getattr__("random"));
+            frame.setlocal("uniform", frame.getname("_inst").__getattr__("uniform"));
+            frame.setlocal("randint", frame.getname("_inst").__getattr__("randint"));
+            frame.setlocal("choice", frame.getname("_inst").__getattr__("choice"));
+            frame.setlocal("randrange", frame.getname("_inst").__getattr__("randrange"));
+            frame.setlocal("shuffle", frame.getname("_inst").__getattr__("shuffle"));
+            frame.setlocal("normalvariate", frame.getname("_inst").__getattr__("normalvariate"));
+            frame.setlocal("lognormvariate", frame.getname("_inst").__getattr__("lognormvariate"));
+            frame.setlocal("cunifvariate", frame.getname("_inst").__getattr__("cunifvariate"));
+            frame.setlocal("expovariate", frame.getname("_inst").__getattr__("expovariate"));
+            frame.setlocal("vonmisesvariate", frame.getname("_inst").__getattr__("vonmisesvariate"));
+            frame.setlocal("gammavariate", frame.getname("_inst").__getattr__("gammavariate"));
+            frame.setlocal("stdgamma", frame.getname("_inst").__getattr__("stdgamma"));
+            frame.setlocal("gauss", frame.getname("_inst").__getattr__("gauss"));
+            frame.setlocal("betavariate", frame.getname("_inst").__getattr__("betavariate"));
+            frame.setlocal("paretovariate", frame.getname("_inst").__getattr__("paretovariate"));
+            frame.setlocal("weibullvariate", frame.getname("_inst").__getattr__("weibullvariate"));
+            frame.setlocal("getstate", frame.getname("_inst").__getattr__("getstate"));
+            frame.setlocal("setstate", frame.getname("_inst").__getattr__("setstate"));
+            frame.setlocal("jumpahead", frame.getname("_inst").__getattr__("jumpahead"));
+            frame.setlocal("whseed", frame.getname("_inst").__getattr__("whseed"));
+            if (frame.getname("__name__")._eq(s$111).__nonzero__()) {
+                frame.getname("_test").__call__();
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("random"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "random";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(random._PyInner.class, newargs, random.jpy$packages, random.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/re$_PyInner.class b/server/jpywork/re$_PyInner.class
new file mode 100644 (file)
index 0000000..fc31af3
Binary files /dev/null and b/server/jpywork/re$_PyInner.class differ
diff --git a/server/jpywork/re.class b/server/jpywork/re.class
new file mode 100644 (file)
index 0000000..9706269
Binary files /dev/null and b/server/jpywork/re.class differ
diff --git a/server/jpywork/re.java b/server/jpywork/re.java
new file mode 100644 (file)
index 0000000..f1377fa
--- /dev/null
@@ -0,0 +1,115 @@
+import org.python.core.*;
+
+public class re extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_main;
+        private static void initConstants() {
+            s$0 = Py.newString("match");
+            s$1 = Py.newString("search");
+            s$2 = Py.newString("sub");
+            s$3 = Py.newString("subn");
+            s$4 = Py.newString("split");
+            s$5 = Py.newString("findall");
+            s$6 = Py.newString("compile");
+            s$7 = Py.newString("purge");
+            s$8 = Py.newString("template");
+            s$9 = Py.newString("escape");
+            s$10 = Py.newString("I");
+            s$11 = Py.newString("L");
+            s$12 = Py.newString("M");
+            s$13 = Py.newString("S");
+            s$14 = Py.newString("X");
+            s$15 = Py.newString("U");
+            s$16 = Py.newString("IGNORECASE");
+            s$17 = Py.newString("LOCALE");
+            s$18 = Py.newString("MULTILINE");
+            s$19 = Py.newString("DOTALL");
+            s$20 = Py.newString("VERBOSE");
+            s$21 = Py.newString("UNICODE");
+            s$22 = Py.newString("error");
+            s$23 = Py.newString("re");
+            s$24 = Py.newString("/usr/share/jython/Lib/re.py");
+            funcTable = new _PyInner();
+            c$0_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/re.py", "main", false, false, funcTable, 0, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$0_main == null) _PyInner.initConstants();
+            return c$0_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.main$1(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject main$1(PyFrame frame) {
+            frame.setglobal("__file__", s$24);
+            
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$0, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$20, s$21, s$22}));
+            frame.setlocal("sre", org.python.core.imp.importOne("sre", frame));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("module", frame.getname("sys").__getattr__("modules").__getitem__(s$23));
+            t$0$int = 0;
+            t$1$PyObject = frame.getname("__all__");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal("name", t$0$PyObject);
+                frame.getname("setattr").__call__(frame.getname("module"), frame.getname("name"), frame.getname("getattr").__call__(frame.getname("sre"), frame.getname("name")));
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("re"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "re";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(re._PyInner.class, newargs, re.jpy$packages, re.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/repr$_PyInner.class b/server/jpywork/repr$_PyInner.class
new file mode 100644 (file)
index 0000000..2bfce45
Binary files /dev/null and b/server/jpywork/repr$_PyInner.class differ
diff --git a/server/jpywork/repr.class b/server/jpywork/repr.class
new file mode 100644 (file)
index 0000000..0565ed5
Binary files /dev/null and b/server/jpywork/repr.class differ
diff --git a/server/jpywork/repr.java b/server/jpywork/repr.java
new file mode 100644 (file)
index 0000000..2cfaa1d
--- /dev/null
@@ -0,0 +1,354 @@
+import org.python.core.*;
+
+public class repr extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject i$3;
+        private static PyObject i$4;
+        private static PyObject i$5;
+        private static PyObject i$6;
+        private static PyObject i$7;
+        private static PyObject i$8;
+        private static PyObject i$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject i$13;
+        private static PyObject i$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject i$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1_repr;
+        private static PyCode c$2_repr1;
+        private static PyCode c$3_repr_tuple;
+        private static PyCode c$4_repr_list;
+        private static PyCode c$5_repr_dictionary;
+        private static PyCode c$6_repr_string;
+        private static PyCode c$7_repr_long_int;
+        private static PyCode c$8_repr_instance;
+        private static PyCode c$9_Repr;
+        private static PyCode c$10_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Redo the `...` (representation) but with limits on most sizes.");
+            s$1 = Py.newString("Repr");
+            s$2 = Py.newString("repr");
+            i$3 = Py.newInteger(6);
+            i$4 = Py.newInteger(4);
+            i$5 = Py.newInteger(30);
+            i$6 = Py.newInteger(40);
+            i$7 = Py.newInteger(20);
+            i$8 = Py.newInteger(7);
+            i$9 = Py.newInteger(2);
+            s$10 = Py.newString(" ");
+            s$11 = Py.newString("_");
+            s$12 = Py.newString("repr_");
+            i$13 = Py.newInteger(0);
+            i$14 = Py.newInteger(3);
+            s$15 = Py.newString("...");
+            s$16 = Py.newString("()");
+            s$17 = Py.newString("(...)");
+            s$18 = Py.newString("");
+            s$19 = Py.newString(", ");
+            i$20 = Py.newInteger(1);
+            s$21 = Py.newString(", ...");
+            s$22 = Py.newString(",");
+            s$23 = Py.newString("(");
+            s$24 = Py.newString(")");
+            s$25 = Py.newString("[]");
+            s$26 = Py.newString("[...]");
+            s$27 = Py.newString("[");
+            s$28 = Py.newString("]");
+            s$29 = Py.newString("{}");
+            s$30 = Py.newString("{...}");
+            s$31 = Py.newString(": ");
+            s$32 = Py.newString("{");
+            s$33 = Py.newString("}");
+            s$34 = Py.newString("<");
+            s$35 = Py.newString(" instance at ");
+            s$36 = Py.newString(">");
+            s$37 = Py.newString("/usr/share/jython/Lib-cpython/repr.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/repr.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_repr = Py.newCode(2, new String[] {"self", "x"}, "/usr/share/jython/Lib-cpython/repr.py", "repr", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_repr1 = Py.newCode(3, new String[] {"self", "x", "level", "j", "parts", "i", "typename", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr1", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_repr_tuple = Py.newCode(3, new String[] {"self", "x", "level", "n", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_tuple", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_repr_list = Py.newCode(3, new String[] {"self", "x", "level", "n", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_list", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_repr_dictionary = Py.newCode(3, new String[] {"self", "x", "level", "n", "i", "key", "keys", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_dictionary", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_repr_string = Py.newCode(3, new String[] {"self", "x", "level", "j", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_string", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_repr_long_int = Py.newCode(3, new String[] {"self", "x", "level", "j", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_long_int", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_repr_instance = Py.newCode(3, new String[] {"self", "x", "level", "j", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_instance", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_Repr = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/repr.py", "Repr", false, false, funcTable, 9, null, null, 0, 0);
+            c$10_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/repr.py", "main", false, false, funcTable, 10, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$10_main == null) _PyInner.initConstants();
+            return c$10_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.repr$2(frame);
+                case 2:
+                return _PyInner.repr1$3(frame);
+                case 3:
+                return _PyInner.repr_tuple$4(frame);
+                case 4:
+                return _PyInner.repr_list$5(frame);
+                case 5:
+                return _PyInner.repr_dictionary$6(frame);
+                case 6:
+                return _PyInner.repr_string$7(frame);
+                case 7:
+                return _PyInner.repr_long_int$8(frame);
+                case 8:
+                return _PyInner.repr_instance$9(frame);
+                case 9:
+                return _PyInner.Repr$10(frame);
+                case 10:
+                return _PyInner.main$11(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            frame.getlocal(0).__setattr__("maxlevel", i$3);
+            frame.getlocal(0).__setattr__("maxtuple", i$3);
+            frame.getlocal(0).__setattr__("maxlist", i$3);
+            frame.getlocal(0).__setattr__("maxdict", i$4);
+            frame.getlocal(0).__setattr__("maxstring", i$5);
+            frame.getlocal(0).__setattr__("maxlong", i$6);
+            frame.getlocal(0).__setattr__("maxother", i$7);
+            return Py.None;
+        }
+        
+        private static PyObject repr$2(PyFrame frame) {
+            return frame.getlocal(0).invoke("repr1", frame.getlocal(1), frame.getlocal(0).__getattr__("maxlevel"));
+        }
+        
+        private static PyObject repr1$3(PyFrame frame) {
+            frame.setlocal(6, frame.getglobal("type").__call__(frame.getlocal(1)).__repr__().__getslice__(i$8, i$9.__neg__(), null));
+            if (s$10._in(frame.getlocal(6)).__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(6).invoke("split"));
+                frame.setlocal(6, s$11.invoke("join", frame.getlocal(4)));
+            }
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$12._add(frame.getlocal(6))).__nonzero__()) {
+                return frame.getglobal("getattr").__call__(frame.getlocal(0), s$12._add(frame.getlocal(6))).__call__(frame.getlocal(1), frame.getlocal(2));
+            }
+            else {
+                frame.setlocal(7, frame.getlocal(1).__repr__());
+                if (frame.getglobal("len").__call__(frame.getlocal(7))._gt(frame.getlocal(0).__getattr__("maxother")).__nonzero__()) {
+                    frame.setlocal(5, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxother")._sub(i$14)._div(i$9)));
+                    frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxother")._sub(i$14)._sub(frame.getlocal(5))));
+                    frame.setlocal(7, frame.getlocal(7).__getslice__(null, frame.getlocal(5), null)._add(s$15)._add(frame.getlocal(7).__getslice__(frame.getglobal("len").__call__(frame.getlocal(7))._sub(frame.getlocal(3)), null, null)));
+                }
+                return frame.getlocal(7);
+            }
+        }
+        
+        private static PyObject repr_tuple$4(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, frame.getglobal("len").__call__(frame.getlocal(1)));
+            if (frame.getlocal(3)._eq(i$13).__nonzero__()) {
+                return s$16;
+            }
+            if (frame.getlocal(2)._le(i$13).__nonzero__()) {
+                return s$17;
+            }
+            frame.setlocal(5, s$18);
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("min").__call__(frame.getlocal(3), frame.getlocal(0).__getattr__("maxtuple")));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(4, t$0$PyObject);
+                if (frame.getlocal(5).__nonzero__()) {
+                    frame.setlocal(5, frame.getlocal(5)._add(s$19));
+                }
+                frame.setlocal(5, frame.getlocal(5)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(1).__getitem__(frame.getlocal(4)), frame.getlocal(2)._sub(i$20))));
+            }
+            if (frame.getlocal(3)._gt(frame.getlocal(0).__getattr__("maxtuple")).__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(5)._add(s$21));
+            }
+            else if (frame.getlocal(3)._eq(i$20).__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(5)._add(s$22));
+            }
+            return s$23._add(frame.getlocal(5))._add(s$24);
+        }
+        
+        private static PyObject repr_list$5(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, frame.getglobal("len").__call__(frame.getlocal(1)));
+            if (frame.getlocal(3)._eq(i$13).__nonzero__()) {
+                return s$25;
+            }
+            if (frame.getlocal(2)._le(i$13).__nonzero__()) {
+                return s$26;
+            }
+            frame.setlocal(5, s$18);
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("min").__call__(frame.getlocal(3), frame.getlocal(0).__getattr__("maxlist")));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(4, t$0$PyObject);
+                if (frame.getlocal(5).__nonzero__()) {
+                    frame.setlocal(5, frame.getlocal(5)._add(s$19));
+                }
+                frame.setlocal(5, frame.getlocal(5)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(1).__getitem__(frame.getlocal(4)), frame.getlocal(2)._sub(i$20))));
+            }
+            if (frame.getlocal(3)._gt(frame.getlocal(0).__getattr__("maxlist")).__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(5)._add(s$21));
+            }
+            return s$27._add(frame.getlocal(5))._add(s$28);
+        }
+        
+        private static PyObject repr_dictionary$6(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, frame.getglobal("len").__call__(frame.getlocal(1)));
+            if (frame.getlocal(3)._eq(i$13).__nonzero__()) {
+                return s$29;
+            }
+            if (frame.getlocal(2)._le(i$13).__nonzero__()) {
+                return s$30;
+            }
+            frame.setlocal(7, s$18);
+            frame.setlocal(6, frame.getlocal(1).invoke("keys"));
+            frame.getlocal(6).invoke("sort");
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("min").__call__(frame.getlocal(3), frame.getlocal(0).__getattr__("maxdict")));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(4, t$0$PyObject);
+                if (frame.getlocal(7).__nonzero__()) {
+                    frame.setlocal(7, frame.getlocal(7)._add(s$19));
+                }
+                frame.setlocal(5, frame.getlocal(6).__getitem__(frame.getlocal(4)));
+                frame.setlocal(7, frame.getlocal(7)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(5), frame.getlocal(2)._sub(i$20))));
+                frame.setlocal(7, frame.getlocal(7)._add(s$31)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(1).__getitem__(frame.getlocal(5)), frame.getlocal(2)._sub(i$20))));
+            }
+            if (frame.getlocal(3)._gt(frame.getlocal(0).__getattr__("maxdict")).__nonzero__()) {
+                frame.setlocal(7, frame.getlocal(7)._add(s$21));
+            }
+            return s$32._add(frame.getlocal(7))._add(s$33);
+        }
+        
+        private static PyObject repr_string$7(PyFrame frame) {
+            frame.setlocal(5, frame.getlocal(1).__getslice__(null, frame.getlocal(0).__getattr__("maxstring"), null).__repr__());
+            if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(0).__getattr__("maxstring")).__nonzero__()) {
+                frame.setlocal(4, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._div(i$9)));
+                frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._sub(frame.getlocal(4))));
+                frame.setlocal(5, frame.getlocal(1).__getslice__(null, frame.getlocal(4), null)._add(frame.getlocal(1).__getslice__(frame.getglobal("len").__call__(frame.getlocal(1))._sub(frame.getlocal(3)), null, null)).__repr__());
+                frame.setlocal(5, frame.getlocal(5).__getslice__(null, frame.getlocal(4), null)._add(s$15)._add(frame.getlocal(5).__getslice__(frame.getglobal("len").__call__(frame.getlocal(5))._sub(frame.getlocal(3)), null, null)));
+            }
+            return frame.getlocal(5);
+        }
+        
+        private static PyObject repr_long_int$8(PyFrame frame) {
+            frame.setlocal(5, frame.getlocal(1).__repr__());
+            if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(0).__getattr__("maxlong")).__nonzero__()) {
+                frame.setlocal(4, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxlong")._sub(i$14)._div(i$9)));
+                frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxlong")._sub(i$14)._sub(frame.getlocal(4))));
+                frame.setlocal(5, frame.getlocal(5).__getslice__(null, frame.getlocal(4), null)._add(s$15)._add(frame.getlocal(5).__getslice__(frame.getglobal("len").__call__(frame.getlocal(5))._sub(frame.getlocal(3)), null, null)));
+            }
+            return frame.getlocal(5);
+        }
+        
+        private static PyObject repr_instance$9(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            try {
+                frame.setlocal(5, frame.getlocal(1).__repr__());
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                return s$34._add(frame.getlocal(1).__getattr__("__class__").__getattr__("__name__"))._add(s$35)._add(frame.getglobal("hex").__call__(frame.getglobal("id").__call__(frame.getlocal(1))).__getslice__(i$9, null, null))._add(s$36);
+            }
+            if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(0).__getattr__("maxstring")).__nonzero__()) {
+                frame.setlocal(4, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._div(i$9)));
+                frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._sub(frame.getlocal(4))));
+                frame.setlocal(5, frame.getlocal(5).__getslice__(null, frame.getlocal(4), null)._add(s$15)._add(frame.getlocal(5).__getslice__(frame.getglobal("len").__call__(frame.getlocal(5))._sub(frame.getlocal(3)), null, null)));
+            }
+            return frame.getlocal(5);
+        }
+        
+        private static PyObject Repr$10(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__));
+            frame.setlocal("repr", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_repr));
+            frame.setlocal("repr1", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_repr1));
+            frame.setlocal("repr_tuple", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_repr_tuple));
+            frame.setlocal("repr_list", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_repr_list));
+            frame.setlocal("repr_dictionary", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_repr_dictionary));
+            frame.setlocal("repr_string", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_repr_string));
+            frame.setlocal("repr_long_int", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_repr_long_int));
+            frame.setlocal("repr_instance", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_repr_instance));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$11(PyFrame frame) {
+            frame.setglobal("__file__", s$37);
+            
+            /* Redo the `...` (representation) but with limits on most sizes. */
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2}));
+            frame.setlocal("Repr", Py.makeClass("Repr", new PyObject[] {}, c$9_Repr, null));
+            frame.setlocal("aRepr", frame.getname("Repr").__call__());
+            frame.setlocal("repr", frame.getname("aRepr").__getattr__("repr"));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("repr"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "repr";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(repr._PyInner.class, newargs, repr.jpy$packages, repr.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/server$_PyInner.class b/server/jpywork/server$_PyInner.class
new file mode 100644 (file)
index 0000000..fb59863
Binary files /dev/null and b/server/jpywork/server$_PyInner.class differ
diff --git a/server/jpywork/server.class b/server/jpywork/server.class
new file mode 100644 (file)
index 0000000..457a26a
Binary files /dev/null and b/server/jpywork/server.class differ
diff --git a/server/jpywork/server.java b/server/jpywork/server.java
new file mode 100644 (file)
index 0000000..b871ed6
--- /dev/null
@@ -0,0 +1,1188 @@
+import org.python.core.*;
+
+public class server extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject i$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject i$8;
+        private static PyObject i$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject i$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyObject s$52;
+        private static PyObject s$53;
+        private static PyObject s$54;
+        private static PyObject s$55;
+        private static PyObject s$56;
+        private static PyObject s$57;
+        private static PyObject s$58;
+        private static PyObject s$59;
+        private static PyObject s$60;
+        private static PyObject s$61;
+        private static PyObject s$62;
+        private static PyObject s$63;
+        private static PyObject s$64;
+        private static PyObject s$65;
+        private static PyObject s$66;
+        private static PyObject s$67;
+        private static PyObject s$68;
+        private static PyObject s$69;
+        private static PyObject s$70;
+        private static PyObject s$71;
+        private static PyObject s$72;
+        private static PyObject s$73;
+        private static PyObject s$74;
+        private static PyObject s$75;
+        private static PyObject s$76;
+        private static PyObject s$77;
+        private static PyObject s$78;
+        private static PyObject s$79;
+        private static PyObject s$80;
+        private static PyObject s$81;
+        private static PyObject s$82;
+        private static PyObject s$83;
+        private static PyObject s$84;
+        private static PyObject s$85;
+        private static PyObject s$86;
+        private static PyObject s$87;
+        private static PyObject s$88;
+        private static PyObject s$89;
+        private static PyObject s$90;
+        private static PyObject s$91;
+        private static PyObject s$92;
+        private static PyObject s$93;
+        private static PyObject s$94;
+        private static PyObject s$95;
+        private static PyObject s$96;
+        private static PyObject s$97;
+        private static PyObject s$98;
+        private static PyObject s$99;
+        private static PyObject s$100;
+        private static PyObject s$101;
+        private static PyObject s$102;
+        private static PyObject s$103;
+        private static PyObject s$104;
+        private static PyObject s$105;
+        private static PyObject s$106;
+        private static PyObject s$107;
+        private static PyObject s$108;
+        private static PyObject s$109;
+        private static PyObject i$110;
+        private static PyObject s$111;
+        private static PyObject s$112;
+        private static PyObject i$113;
+        private static PyObject s$114;
+        private static PyObject s$115;
+        private static PyObject s$116;
+        private static PyObject s$117;
+        private static PyObject s$118;
+        private static PyObject s$119;
+        private static PyObject s$120;
+        private static PyObject s$121;
+        private static PyObject s$122;
+        private static PyObject s$123;
+        private static PyObject s$124;
+        private static PyObject s$125;
+        private static PyObject s$126;
+        private static PyObject s$127;
+        private static PyObject s$128;
+        private static PyObject s$129;
+        private static PyObject s$130;
+        private static PyObject s$131;
+        private static PyObject s$132;
+        private static PyObject s$133;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_register;
+        private static PyCode c$1_update;
+        private static PyCode c$2_remove;
+        private static PyCode c$3_lookup;
+        private static PyCode c$4_list;
+        private static PyCode c$5_getCredential;
+        private static PyCode c$6_getAccounting;
+        private static PyCode c$7___init__;
+        private static PyCode c$8_construct_hierarchy;
+        private static PyCode c$9_sec_init;
+        private static PyCode c$10_save_state;
+        private static PyCode c$11_GENIServer;
+        private static PyCode c$12_handle;
+        private static PyCode c$13_handle_connection;
+        private static PyCode c$14_main;
+        private static PyCode c$15_main;
+        private static void initConstants() {
+            s$0 = Py.newString("127.0.0.1");
+            i$1 = Py.newInteger(8002);
+            s$2 = Py.newString("interface_tree_sr");
+            s$3 = Py.newString("interface_tree_cr");
+            s$4 = Py.newString("../");
+            s$5 = Py.newString("../util");
+            s$6 = Py.newString("../util/sec");
+            s$7 = Py.newString("../PLCAPI/trunk");
+            i$8 = Py.newInteger(0);
+            i$9 = Py.newInteger(1);
+            s$10 = Py.newString("type");
+            s$11 = Py.newString("g_params");
+            s$12 = Py.newString("Record ");
+            s$13 = Py.newString("hrn");
+            s$14 = Py.newString(" already exists.\012");
+            s$15 = Py.newString("SA");
+            s$16 = Py.newString("MA");
+            s$17 = Py.newString("local");
+            s$18 = Py.newString("wrapperurl");
+            s$19 = Py.newString("");
+            s$20 = Py.newString("slc");
+            s$21 = Py.newString("comp");
+            s$22 = Py.newString("(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)");
+            s$23 = Py.newString("#0:reg:");
+            s$24 = Py.newString(":");
+            s$25 = Py.newString("#1:reg:");
+            s$26 = Py.newString("rights");
+            s$27 = Py.newString("p_params");
+            s$28 = Py.newString("site_id");
+            s$29 = Py.newString("SELECT site_id FROM sites WHERE login_base = '");
+            s$30 = Py.newString("';");
+            s$31 = Py.newString("login_base");
+            s$32 = Py.newString("SELECT * FROM sites WHERE login_base = '");
+            s$33 = Py.newString("'");
+            s$34 = Py.newString("Site login_base '");
+            s$35 = Py.newString(", already exists in the system. Try another name.\012");
+            i$36 = Py.newInteger(10);
+            s$37 = Py.newString("slice");
+            s$38 = Py.newString("component");
+            s$39 = Py.newString("/");
+            s$40 = Py.newString(".");
+            s$41 = Py.newString("rm -rf ");
+            s$42 = Py.newString(".cert");
+            s$43 = Py.newString("pubkey");
+            s$44 = Py.newString("pointer");
+            s$45 = Py.newString("INSERT");
+            s$46 = Py.newString("DROP TABLE IF EXISTS ");
+            s$47 = Py.newString("CREATE TABLE ");
+            s$48 = Py.newString(" (                 hrn text,                 type text,                 uuid text,                 userlist text,                 rights text,                 description text,                 pubkey text,                 wrapperURL text,                 disabled text,                 pointer integer);");
+            s$49 = Py.newString("db_info");
+            s$50 = Py.newString("key_info");
+            s$51 = Py.newString(".pkey");
+            s$52 = Py.newString("sr");
+            s$53 = Py.newString("cr");
+            s$54 = Py.newString(" ");
+            s$55 = Py.newString(" is successfully added.\012");
+            s$56 = Py.newString("_");
+            s$57 = Py.newString("name");
+            s$58 = Py.newString("UPDATE ");
+            s$59 = Py.newString(" SET hrn = '");
+            s$60 = Py.newString("userlist");
+            s$61 = Py.newString(" userlist = '");
+            s$62 = Py.newString(" rights = '");
+            s$63 = Py.newString(" WHERE pointer = ");
+            s$64 = Py.newString("Slice ");
+            s$65 = Py.newString("user");
+            s$66 = Py.newString("(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)");
+            s$67 = Py.newString("#0:reg:slc:");
+            s$68 = Py.newString("User ");
+            s$69 = Py.newString("node");
+            s$70 = Py.newString("Node ");
+            s$71 = Py.newString("Error in 'register():");
+            s$72 = Py.newString("Error in register:.");
+            s$73 = Py.newString(" does not exist.\012");
+            s$74 = Py.newString("geni");
+            s$75 = Py.newString("INSERT INTO slice_person VALUES(");
+            s$76 = Py.newString(", ");
+            s$77 = Py.newString(");");
+            s$78 = Py.newString("UPDATE");
+            s$79 = Py.newString("The record '");
+            s$80 = Py.newString("' is successfully updated.\012");
+            s$81 = Py.newString("Error in 'update():'");
+            s$82 = Py.newString("Error in update:");
+            s$83 = Py.newString("Error in remove.\012");
+            s$84 = Py.newString("Site removal should be at the leaves.\012");
+            s$85 = Py.newString("DELETE");
+            s$86 = Py.newString("' is successfully removed.\012");
+            s$87 = Py.newString("Error in 'delete()'");
+            s$88 = Py.newString("Error in delete:");
+            s$89 = Py.newString("pl");
+            s$90 = Py.newString("cred_name");
+            s$91 = Py.newString("registry");
+            s$92 = Py.newString("SELECT * FROM ");
+            s$93 = Py.newString(" WHERE hrn = '");
+            s$94 = Py.newString("' ");
+            s$95 = Py.newString("admin");
+            s$96 = Py.newString("roles");
+            s$97 = Py.newString("(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)");
+            s$98 = Py.newString("(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)");
+            s$99 = Py.newString("#1:reg:comp:");
+            s$100 = Py.newString("pi");
+            s$101 = Py.newString("Registry credentials");
+            s$102 = Py.newString("is_deleted");
+            s$103 = Py.newString("expires");
+            s$104 = Py.newString("f");
+            s$105 = Py.newString("SELECT * FROM person_slice WHERE person_id = ");
+            s$106 = Py.newString(" AND slice_id = ");
+            s$107 = Py.newString("(10-0)(11-0)(12-0)(13-0)(14-0)(15-0)(16-0)(17-0)(18-0)(20-0)(21-0)(22-0)(23-0)");
+            s$108 = Py.newString("#0:comp:planetlab.*");
+            s$109 = Py.newString("Credential ");
+            i$110 = Py.newInteger(3);
+            s$111 = Py.newString("account_name");
+            s$112 = Py.newString("uuid");
+            i$113 = Py.newInteger(2);
+            s$114 = Py.newString("register");
+            s$115 = Py.newString("remove");
+            s$116 = Py.newString("update");
+            s$117 = Py.newString("lookup");
+            s$118 = Py.newString("list");
+            s$119 = Py.newString("getCredential");
+            s$120 = Py.newString("getAccounting");
+            s$121 = Py.newString("server");
+            s$122 = Py.newString("accounting");
+            s$123 = Py.newString("credential");
+            s$124 = Py.newString("both");
+            s$125 = Py.newString("opname");
+            s$126 = Py.newString("WRONG INTERFACE");
+            s$127 = Py.newString("NO FUNC");
+            s$128 = Py.newString("AUTHORIZATION FAIL");
+            s$129 = Py.newString("message");
+            s$130 = Py.newString("Requested record does not exist.\012");
+            s$131 = Py.newString("There is an error handling the request. ");
+            s$132 = Py.newString("__main__");
+            s$133 = Py.newString("/home/soners/work/geni/rpc/server/server.py");
+            funcTable = new _PyInner();
+            c$0_register = Py.newCode(3, new String[] {"self", "record", "dbinfo", "other_tree", "parent_key_info", "user_fields", "existing_res", "login_base", "slice_fields", "rights", "reg_type", "querystr", "cnx", "pointer", "tree", "new_table_name", "table", "dirname", "parent_data", "site_fields", "res", "parent_db_info", "db_info", "curdir", "node_fields", "hrn_suffix", "i", "info", "long_hrn", "e", "dir_type", "key_info", "type"}, "/home/soners/work/geni/rpc/server/server.py", "register", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_update = Py.newCode(3, new String[] {"self", "record", "dbinfo", "usr_dbinfo", "type", "user_pointer", "rec", "existing_res", "user_fields", "pl_res", "node_fields", "cnx", "site_fields", "pointer", "querystr", "e", "table", "long_hrn", "slice_fields", "user"}, "/home/soners/work/geni/rpc/server/server.py", "update", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_remove = Py.newCode(3, new String[] {"self", "record", "dbinfo", "type", "existing_res", "tree", "cnx", "pointer", "querystr", "hrn_suffix", "leaf", "e", "table", "long_hrn"}, "/home/soners/work/geni/rpc/server/server.py", "remove", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_lookup = Py.newCode(3, new String[] {"self", "record", "dbinfo", "pointer", "cnx", "type", "existing_res", "pl_res", "table"}, "/home/soners/work/geni/rpc/server/server.py", "lookup", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_list = Py.newCode(3, new String[] {"self", "record", "dbinfo", "x"}, "/home/soners/work/geni/rpc/server/server.py", "list", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_getCredential = Py.newCode(5, new String[] {"self", "record", "dbinfo", "keyinfo", "peerinfo", "openssl_cert", "usr_dbinfo", "cname", "has_slc", "cred_name", "slc_result", "expires", "rights", "querystr", "cnx", "pointer", "table", "usr_slc_res", "user_pointer", "cred_pem", "slc_rec", "rec", "deleted", "pl_res", "timenow", "geni_res", "type"}, "/home/soners/work/geni/rpc/server/server.py", "getCredential", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_getAccounting = Py.newCode(5, new String[] {"self", "record", "dbinfo", "keyinfo", "peer_cert", "uuid", "cnx", "openssl_cert", "rec", "acc", "res", "table"}, "/home/soners/work/geni/rpc/server/server.py", "getAccounting", false, false, funcTable, 6, null, null, 0, 1);
+            c$7___init__ = Py.newCode(3, new String[] {"self", "socket", "handler"}, "/home/soners/work/geni/rpc/server/server.py", "__init__", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_construct_hierarchy = Py.newCode(1, new String[] {"self"}, "/home/soners/work/geni/rpc/server/server.py", "construct_hierarchy", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_sec_init = Py.newCode(1, new String[] {"self", "id_key_file", "acc_file", "id_file", "key_info", "cred_file"}, "/home/soners/work/geni/rpc/server/server.py", "sec_init", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_save_state = Py.newCode(2, new String[] {"self", "type"}, "/home/soners/work/geni/rpc/server/server.py", "save_state", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_GENIServer = Py.newCode(0, new String[] {}, "/home/soners/work/geni/rpc/server/server.py", "GENIServer", false, false, funcTable, 11, null, null, 0, 0);
+            c$12_handle = Py.newCode(1, new String[] {"self", "type", "op", "peerinfo", "target_hrn", "result", "peer", "dbinfo", "tree", "operation_request", "opname", "hrn_of_call", "reg_type", "e", "params", "keyinfo"}, "/home/soners/work/geni/rpc/server/server.py", "handle", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_handle_connection = Py.newCode(0, new String[] {}, "/home/soners/work/geni/rpc/server/server.py", "handle_connection", false, false, funcTable, 13, null, null, 0, 0);
+            c$14_main = Py.newCode(0, new String[] {}, "/home/soners/work/geni/rpc/server/server.py", "main", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_main = Py.newCode(0, new String[] {}, "/home/soners/work/geni/rpc/server/server.py", "main", false, false, funcTable, 15, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$15_main == null) _PyInner.initConstants();
+            return c$15_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.register$1(frame);
+                case 1:
+                return _PyInner.update$2(frame);
+                case 2:
+                return _PyInner.remove$3(frame);
+                case 3:
+                return _PyInner.lookup$4(frame);
+                case 4:
+                return _PyInner.list$5(frame);
+                case 5:
+                return _PyInner.getCredential$6(frame);
+                case 6:
+                return _PyInner.getAccounting$7(frame);
+                case 7:
+                return _PyInner.__init__$8(frame);
+                case 8:
+                return _PyInner.construct_hierarchy$9(frame);
+                case 9:
+                return _PyInner.sec_init$10(frame);
+                case 10:
+                return _PyInner.save_state$11(frame);
+                case 11:
+                return _PyInner.GENIServer$12(frame);
+                case 12:
+                return _PyInner.handle$13(frame);
+                case 13:
+                return _PyInner.handle_connection$14(frame);
+                case 14:
+                return _PyInner.main$15(frame);
+                case 15:
+                return _PyInner.main$16(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject register$1(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            frame.setlocal(12, frame.getlocal(2).__getitem__(i$8));
+            frame.setlocal(16, frame.getlocal(2).__getitem__(i$9));
+            frame.setlocal(32, frame.getlocal(1).__getitem__(s$11).__getitem__(s$10));
+            try {
+                frame.setlocal(6, frame.getglobal("check_exists_geni").__call__(frame.getlocal(1), frame.getlocal(2)));
+                if (frame.getlocal(6).__nonzero__()) {
+                    throw Py.makeException(frame.getglobal("ExistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$14)));
+                }
+                if (((t$0$PyObject = frame.getlocal(32)._eq(s$15)).__nonzero__() ? t$0$PyObject : frame.getlocal(32)._eq(s$16)).__nonzero__()) {
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$18, s$17);
+                    frame.setlocal(10, s$19);
+                    if (frame.getlocal(32)._eq(s$15).__nonzero__()) {
+                        frame.setlocal(10, s$20);
+                    }
+                    else {
+                        frame.setlocal(10, s$21);
+                    }
+                    frame.setlocal(9, s$22);
+                    frame.setlocal(9, frame.getlocal(9)._add(s$23)._add(frame.getlocal(10))._add(s$24)._add(frame.getglobal("obtain_authority").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)))._add(s$25)._add(frame.getlocal(10))._add(s$24)._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$26, frame.getlocal(9));
+                    frame.setlocal(28, frame.getlocal(1).__getitem__(s$11).__getitem__(s$13));
+                    frame.setlocal(25, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                    frame.setlocal(13, i$9.__neg__());
+                    frame.setlocal(7, s$19);
+                    frame.setlocal(19, frame.getlocal(1).__getitem__(s$27));
+                    frame.setlocal(3, frame.getglobal("None"));
+                    if (frame.getlocal(10)._eq(s$20).__nonzero__()) {
+                        frame.setlocal(3, frame.getlocal(0).__getattr__("cr_tree"));
+                    }
+                    else {
+                        frame.setlocal(3, frame.getlocal(0).__getattr__("sr_tree"));
+                    }
+                    frame.setlocal(27, frame.getlocal(3).invoke("tree_lookup", frame.getlocal(28)));
+                    if (frame.getlocal(27).__nonzero__()) {
+                        frame.setlocal(7, frame.getlocal(27).__getattr__("login_base"));
+                        frame.setlocal(13, frame.getlocal(12).invoke("query", s$29._add(frame.getlocal(7))._add(s$30)).invoke("dictresult").__getitem__(i$8).__getitem__(s$28));
+                    }
+                    else {
+                        if (frame.getlocal(19).invoke("has_key", s$31).__nonzero__()) {
+                            frame.setlocal(7, frame.getlocal(19).__getitem__(s$31));
+                            frame.setlocal(11, s$32._add(frame.getlocal(7))._add(s$33));
+                            frame.setlocal(20, frame.getlocal(12).invoke("query", frame.getlocal(11)).invoke("dictresult"));
+                            if (frame.getlocal(20).__nonzero__()) {
+                                return s$34._add(frame.getlocal(7))._add(s$35);
+                            }
+                        }
+                        else {
+                            frame.setlocal(7, frame.getglobal("hrn_to_loginbase").__call__(frame.getlocal(28)));
+                            t$0$int = 0;
+                            t$1$PyObject = frame.getglobal("range").__call__(i$9, i$36);
+                            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                                frame.setlocal(26, t$0$PyObject);
+                                frame.setlocal(11, s$32._add(frame.getlocal(7))._add(s$33));
+                                frame.setlocal(20, frame.getlocal(12).invoke("query", frame.getlocal(11)).invoke("dictresult"));
+                                if (frame.getlocal(20).__not__().__nonzero__()) {
+                                    break;
+                                }
+                                else {
+                                    frame.setlocal(7, frame.getglobal("hrn_to_loginbase").__call__(frame.getlocal(28), frame.getlocal(26)));
+                                }
+                            }
+                            frame.getlocal(19).__setitem__(s$31, frame.getlocal(7));
+                        }
+                        frame.setlocal(13, frame.getglobal("shell").invoke("AddSite", frame.getglobal("pl_auth"), frame.getlocal(19)));
+                    }
+                    frame.setlocal(23, frame.getglobal("os").__getattr__("getcwd").__call__());
+                    if (frame.getlocal(10)._eq(s$20).__nonzero__()) {
+                        frame.setlocal(30, s$37);
+                    }
+                    else {
+                        frame.setlocal(30, s$38);
+                    }
+                    frame.setlocal(17, frame.getlocal(30)._add(s$39)._add(frame.getlocal(28).invoke("replace", s$40, s$39)));
+                    if (frame.getglobal("os").__getattr__("path").__getattr__("exists").__call__(frame.getlocal(17)).__nonzero__()) {
+                        frame.getglobal("os").__getattr__("system").__call__(s$41._add(frame.getlocal(17)));
+                    }
+                    frame.getglobal("os").__getattr__("makedirs").__call__(frame.getlocal(17));
+                    frame.getglobal("os").__getattr__("chdir").__call__(frame.getlocal(17));
+                    frame.getglobal("create_self_cert").__call__(frame.getlocal(25));
+                    frame.getglobal("os").__getattr__("chdir").__call__(frame.getlocal(23));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$13, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$43, frame.getglobal("X509").__getattr__("load_cert").__call__(frame.getlocal(17)._add(s$39)._add(frame.getlocal(25))._add(s$42)).invoke("get_pubkey").__getattr__("as_pem").__call__(new PyObject[] {frame.getglobal("None")}, new String[] {"cipher"}));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$44, frame.getlocal(13));
+                    frame.setlocal(11, frame.getglobal("generate_querystr").__call__(s$45, frame.getlocal(16), frame.getlocal(1).__getitem__(s$11)));
+                    frame.getlocal(12).invoke("query", frame.getlocal(11));
+                    frame.setlocal(15, frame.getglobal("hrn_to_tablename").__call__(frame.getlocal(28), frame.getlocal(10)));
+                    frame.getlocal(12).invoke("query", s$46._add(frame.getlocal(15)));
+                    frame.setlocal(11, s$47._add(frame.getlocal(15))._add(s$48));
+                    frame.getlocal(12).invoke("query", frame.getlocal(11));
+                    frame.setlocal(14, frame.getglobal("None"));
+                    if (frame.getlocal(32)._eq(s$15).__nonzero__()) {
+                        frame.setlocal(14, frame.getlocal(0).__getattr__("sr_tree"));
+                    }
+                    else {
+                        frame.setlocal(14, frame.getlocal(0).__getattr__("cr_tree"));
+                    }
+                    frame.setlocal(18, frame.getlocal(14).invoke("tree_lookup", frame.getglobal("obtain_authority").__call__(frame.getlocal(28))).__getattr__("node_data"));
+                    frame.setlocal(21, frame.getlocal(18).__getitem__(s$49));
+                    frame.setlocal(4, frame.getlocal(18).__getitem__(s$50));
+                    frame.setlocal(27, frame.getglobal("TreeNodeInfo").__call__());
+                    frame.getlocal(27).__setattr__("name", frame.getlocal(28));
+                    frame.getlocal(27).__setattr__("login_base", frame.getlocal(7));
+                    frame.setlocal(22, frame.getglobal("DbInfo").__call__());
+                    frame.setlocal(31, frame.getglobal("KeyInfo").__call__());
+                    frame.getlocal(27).__setattr__("node_data", new PyDictionary(new PyObject[] {s$49, frame.getlocal(22), s$50, frame.getlocal(31)}));
+                    frame.getlocal(22).__setattr__("table_name", frame.getlocal(15));
+                    frame.getlocal(22).__setattr__("db_name", frame.getlocal(21).__getattr__("db_name"));
+                    frame.getlocal(22).__setattr__("address", frame.getlocal(21).__getattr__("address"));
+                    frame.getlocal(22).__setattr__("port", frame.getlocal(21).__getattr__("port"));
+                    frame.getlocal(22).__setattr__("user", frame.getlocal(21).__getattr__("user"));
+                    frame.getlocal(22).__setattr__("password", frame.getlocal(21).__getattr__("password"));
+                    frame.getlocal(31).__setattr__("acc_file", s$19);
+                    frame.getlocal(31).__setattr__("cred_file", s$19);
+                    frame.getlocal(31).__setattr__("folder", frame.getlocal(4).__getattr__("folder")._add(s$39)._add(frame.getlocal(25)));
+                    frame.getlocal(31).__setattr__("id_file", frame.getlocal(25)._add(s$42));
+                    frame.getlocal(31).__setattr__("id_key_file", frame.getlocal(25)._add(s$51));
+                    frame.getlocal(14).invoke("tree_add", frame.getlocal(27));
+                    if (frame.getlocal(32)._eq(s$15).__nonzero__()) {
+                        frame.getlocal(0).invoke("save_state", s$52);
+                    }
+                    else {
+                        frame.getlocal(0).invoke("save_state", s$53);
+                    }
+                    return frame.getlocal(32)._add(s$54)._add(frame.getlocal(28))._add(s$55);
+                }
+                else if (frame.getlocal(32)._eq(s$37).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("get_leaf").__call__(frame.getglobal("obtain_authority").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))));
+                    frame.setlocal(28, frame.getlocal(1).__getitem__(s$11).__getitem__(s$13));
+                    frame.setlocal(25, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                    frame.setlocal(8, frame.getlocal(1).__getitem__(s$27));
+                    frame.getlocal(8).__setitem__(s$57, frame.getlocal(7)._add(s$56)._add(frame.getlocal(25)));
+                    frame.setlocal(13, frame.getglobal("shell").invoke("AddSlice", frame.getglobal("pl_auth"), frame.getlocal(8)));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$44, frame.getlocal(13));
+                    frame.setlocal(11, s$58._add(frame.getlocal(16))._add(s$59)._add(frame.getlocal(25))._add(s$33));
+                    if (frame.getlocal(1).__getitem__(s$11).invoke("has_key", s$60).__nonzero__()) {
+                        frame.setlocal(11, frame.getlocal(11)._add(s$61)._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$60))._add(s$33));
+                    }
+                    if (frame.getlocal(1).__getitem__(s$11).invoke("has_key", s$26).__nonzero__()) {
+                        frame.setlocal(11, frame.getlocal(11)._add(s$62)._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$26))._add(s$33));
+                    }
+                    frame.setlocal(11, frame.getlocal(11)._add(s$63)._add(frame.getglobal("str").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$44))));
+                    frame.getlocal(12).invoke("query", frame.getlocal(11));
+                    return s$64._add(frame.getlocal(28))._add(s$55);
+                }
+                else if (frame.getlocal(32)._eq(s$65).__nonzero__()) {
+                    frame.setlocal(28, frame.getlocal(1).__getitem__(s$11).__getitem__(s$13));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$13, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                    frame.setlocal(9, s$66);
+                    frame.setlocal(9, frame.getlocal(9)._add(s$67)._add(frame.getglobal("obtain_authority").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$26, frame.getlocal(9));
+                    frame.setlocal(5, frame.getlocal(1).__getitem__(s$27));
+                    frame.setlocal(13, frame.getglobal("shell").invoke("AddPerson", frame.getglobal("pl_auth"), frame.getlocal(5)));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$44, frame.getlocal(13));
+                    frame.setlocal(11, frame.getglobal("generate_querystr").__call__(s$45, frame.getlocal(16), frame.getlocal(1).__getitem__(s$11)));
+                    frame.getlocal(12).invoke("query", frame.getlocal(11));
+                    return s$68._add(frame.getlocal(28))._add(s$55);
+                }
+                else if (frame.getlocal(32)._eq(s$69).__nonzero__()) {
+                    frame.setlocal(28, frame.getlocal(1).__getitem__(s$11).__getitem__(s$13));
+                    frame.setlocal(7, frame.getlocal(0).__getattr__("cr_tree").invoke("tree_lookup", frame.getglobal("obtain_authority").__call__(frame.getlocal(28))).__getattr__("login_base"));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$13, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                    frame.setlocal(9, s$19);
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$26, frame.getlocal(9));
+                    frame.setlocal(24, frame.getlocal(1).__getitem__(s$27));
+                    frame.setlocal(13, frame.getglobal("shell").invoke("AddNode", new PyObject[] {frame.getglobal("pl_auth"), frame.getlocal(7), frame.getlocal(24)}));
+                    frame.getlocal(1).__getitem__(s$11).__setitem__(s$44, frame.getlocal(13));
+                    frame.setlocal(11, s$58._add(frame.getlocal(16))._add(s$59)._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$33));
+                    if (((t$2$PyObject = frame.getlocal(1).__getitem__(s$11).invoke("has_key", s$26)).__nonzero__() ? frame.getlocal(1).__getitem__(s$11).__getitem__(s$26)._ne(s$19) : t$2$PyObject).__nonzero__()) {
+                        frame.setlocal(11, frame.getlocal(11)._add(s$62)._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$26))._add(s$33));
+                    }
+                    frame.setlocal(11, frame.getlocal(11)._add(s$63)._add(frame.getglobal("str").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$44))));
+                    frame.getlocal(12).invoke("query", frame.getlocal(11));
+                    return s$70._add(frame.getlocal(28))._add(s$55);
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("Exception"))) {
+                    frame.setlocal(29, t$0$PyException.value);
+                    Py.println(s$71._add(frame.getglobal("str").__call__(frame.getlocal(29))));
+                    return s$72._add(frame.getglobal("str").__call__(frame.getlocal(29)));
+                }
+                else throw t$0$PyException;
+            }
+            return Py.None;
+        }
+        
+        private static PyObject update$2(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(11, frame.getlocal(2).__getitem__(i$8));
+            frame.setlocal(16, frame.getlocal(2).__getitem__(i$9));
+            try {
+                frame.setlocal(7, frame.getglobal("check_exists_geni").__call__(frame.getlocal(1), frame.getlocal(2)));
+                if (frame.getlocal(7).__not__().__nonzero__()) {
+                    throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                }
+                frame.setlocal(4, frame.getlocal(7).__getitem__(s$10));
+                frame.setlocal(13, frame.getlocal(7).__getitem__(s$44));
+                frame.setlocal(17, frame.getlocal(1).__getitem__(s$11).__getitem__(s$13));
+                if (((t$0$PyObject = frame.getlocal(4)._eq(s$15)).__nonzero__() ? frame.getlocal(13)._ne(i$9.__neg__()) : t$0$PyObject).__nonzero__()) {
+                    frame.setlocal(9, frame.getglobal("shell").invoke("GetSites", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(13)})));
+                    if (frame.getlocal(9).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(12, frame.getlocal(1).__getitem__(s$27));
+                    frame.getglobal("shell").invoke("UpdateSite", new PyObject[] {frame.getglobal("pl_auth"), frame.getlocal(13), frame.getlocal(12)});
+                }
+                else if (((t$0$PyObject = frame.getlocal(4)._eq(s$16)).__nonzero__() ? frame.getlocal(13)._ne(i$9.__neg__()) : t$0$PyObject).__nonzero__()) {
+                    frame.setlocal(9, frame.getglobal("shell").invoke("GetSites", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(13)})));
+                    if (frame.getlocal(9).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(12, frame.getlocal(1).__getitem__(s$27));
+                    frame.getglobal("shell").invoke("UpdateSite", new PyObject[] {frame.getglobal("pl_auth"), frame.getlocal(13), frame.getlocal(12)});
+                }
+                else if (frame.getlocal(4)._eq(s$37).__nonzero__()) {
+                    frame.setlocal(9, frame.getglobal("shell").invoke("GetSlices", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(13)})));
+                    if (frame.getlocal(9).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(18, frame.getlocal(1).__getitem__(s$27));
+                    frame.getglobal("shell").invoke("UpdateSlice", new PyObject[] {frame.getglobal("pl_auth"), frame.getlocal(13), frame.getlocal(18)});
+                    t$0$int = 0;
+                    t$1$PyObject = frame.getlocal(1).__getitem__(s$11).__getitem__(s$60);
+                    while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                        frame.setlocal(19, t$0$PyObject);
+                        frame.setlocal(3, frame.getglobal("determine_dbinfo").__call__(frame.getglobal("get_authority").__call__(frame.getlocal(19)), frame.getlocal(0).__getattr__("tree")));
+                        if (frame.getlocal(3).__nonzero__()) {
+                            frame.setlocal(6, new PyDictionary(new PyObject[] {s$11, new PyDictionary(new PyObject[] {s$13, frame.getlocal(19)}), s$27, new PyDictionary(new PyObject[] {})}));
+                            frame.setlocal(5, frame.getlocal(0).invoke("lookup", frame.getlocal(6), frame.getlocal(3)).__getitem__(s$74).__getitem__(s$44));
+                            frame.setlocal(14, s$75._add(frame.getlocal(13))._add(s$76)._add(frame.getlocal(5))._add(s$77));
+                            frame.getlocal(11).invoke("query", frame.getlocal(14));
+                        }
+                    }
+                }
+                else if (frame.getlocal(4)._eq(s$65).__nonzero__()) {
+                    frame.setlocal(9, frame.getglobal("shell").invoke("GetPersons", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(13)})));
+                    if (frame.getlocal(9).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(8, frame.getlocal(1).__getitem__(s$27));
+                    frame.getglobal("shell").invoke("UpdatePerson", new PyObject[] {frame.getglobal("pl_auth"), frame.getlocal(13), frame.getlocal(8)});
+                }
+                else if (frame.getlocal(4)._eq(s$69).__nonzero__()) {
+                    frame.setlocal(9, frame.getglobal("shell").invoke("GetNodes", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(13)})));
+                    if (frame.getlocal(9).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(10, frame.getlocal(1).__getitem__(s$27));
+                    frame.getglobal("shell").invoke("UpdateNode", new PyObject[] {frame.getglobal("pl_auth"), frame.getlocal(13), frame.getlocal(10)});
+                }
+                frame.getlocal(1).__getitem__(s$11).__setitem__(s$13, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                frame.setlocal(14, frame.getglobal("generate_querystr").__call__(s$78, frame.getlocal(16), frame.getlocal(1).__getitem__(s$11)));
+                frame.getlocal(11).invoke("query", frame.getlocal(14));
+                return s$79._add(frame.getlocal(17))._add(s$80);
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("Exception"))) {
+                    frame.setlocal(15, t$0$PyException.value);
+                    Py.println(s$81._add(frame.getglobal("str").__call__(frame.getlocal(15))));
+                    return s$82._add(frame.getglobal("str").__call__(frame.getlocal(15)));
+                }
+                else throw t$0$PyException;
+            }
+        }
+        
+        private static PyObject remove$3(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(6, frame.getlocal(2).__getitem__(i$8));
+            frame.setlocal(12, frame.getlocal(2).__getitem__(i$9));
+            try {
+                frame.setlocal(13, frame.getlocal(1).__getitem__(s$11).__getitem__(s$13));
+                frame.setlocal(9, frame.getglobal("get_leaf").__call__(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13)));
+                frame.setlocal(4, frame.getglobal("check_exists_geni").__call__(frame.getlocal(1), frame.getlocal(2)));
+                if (frame.getlocal(4).__not__().__nonzero__()) {
+                    throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                }
+                frame.setlocal(3, frame.getlocal(4).__getitem__(s$10));
+                frame.setlocal(7, frame.getlocal(4).__getitem__(s$44));
+                if (((t$0$PyObject = frame.getlocal(3)._eq(s$15)).__nonzero__() ? t$0$PyObject : frame.getlocal(3)._eq(s$16)).__nonzero__()) {
+                    frame.setlocal(5, frame.getglobal("None"));
+                    if (frame.getlocal(3)._eq(s$15).__nonzero__()) {
+                        frame.setlocal(5, frame.getlocal(0).__getattr__("sr_tree"));
+                    }
+                    else {
+                        frame.setlocal(5, frame.getlocal(0).__getattr__("cr_tree"));
+                    }
+                    frame.setlocal(10, frame.getlocal(5).invoke("is_leaf", frame.getlocal(13)));
+                    if (frame.getlocal(10)._eq(frame.getglobal("None")).__nonzero__()) {
+                        return s$83;
+                    }
+                    else if (frame.getlocal(10)._eq(frame.getglobal("False")).__nonzero__()) {
+                        return s$84;
+                    }
+                    frame.getlocal(5).invoke("tree_remove", frame.getlocal(13));
+                    if (frame.getlocal(3)._eq(s$15).__nonzero__()) {
+                        frame.getlocal(0).invoke("save_state", s$52);
+                    }
+                    else {
+                        frame.getlocal(0).invoke("save_state", s$53);
+                    }
+                    if (frame.getglobal("site_to_auth").__call__(frame.getlocal(7)).__not__().__nonzero__()) {
+                        try {
+                            frame.getglobal("shell").invoke("DeleteSite", frame.getglobal("pl_auth"), frame.getlocal(7));
+                        }
+                        catch (Throwable x$0) {
+                            t$0$PyException = Py.setException(x$0, frame);
+                            i$9._eq(i$9);
+                        }
+                    }
+                }
+                else if (frame.getlocal(3)._eq(s$65).__nonzero__()) {
+                    frame.getglobal("shell").invoke("DeletePerson", frame.getglobal("pl_auth"), frame.getlocal(7));
+                }
+                else if (frame.getlocal(3)._eq(s$37).__nonzero__()) {
+                    frame.getglobal("shell").invoke("DeleteSlice", frame.getglobal("pl_auth"), frame.getlocal(7));
+                }
+                else if (frame.getlocal(3)._eq(s$69).__nonzero__()) {
+                    frame.getglobal("shell").invoke("DeleteNode", frame.getglobal("pl_auth"), frame.getlocal(7));
+                }
+                frame.setlocal(8, frame.getglobal("generate_querystr").__call__(s$85, frame.getlocal(12), frame.getlocal(1).__getitem__(s$11)));
+                frame.getlocal(6).invoke("query", frame.getlocal(8));
+                return s$79._add(frame.getlocal(13))._add(s$86);
+            }
+            catch (Throwable x$1) {
+                t$0$PyException = Py.setException(x$1, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("Exception"))) {
+                    frame.setlocal(11, t$0$PyException.value);
+                    Py.println(s$87._add(frame.getglobal("str").__call__(frame.getlocal(11))));
+                    return s$88._add(frame.getglobal("str").__call__(frame.getlocal(11)));
+                }
+                else throw t$0$PyException;
+            }
+        }
+        
+        private static PyObject lookup$4(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(4, frame.getlocal(2).__getitem__(i$8));
+            frame.setlocal(8, frame.getlocal(2).__getitem__(i$9));
+            try {
+                frame.setlocal(6, frame.getglobal("check_exists_geni").__call__(frame.getlocal(1), frame.getlocal(2)));
+                if (frame.getlocal(6).__not__().__nonzero__()) {
+                    throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                }
+                frame.setlocal(5, frame.getlocal(6).__getitem__(s$10));
+                frame.setlocal(3, frame.getlocal(6).__getitem__(s$44));
+                frame.setlocal(7, frame.getglobal("None"));
+                if (((t$0$PyObject = frame.getlocal(5)._eq(s$15)).__nonzero__() ? frame.getlocal(3)._ne(i$9.__neg__()) : t$0$PyObject).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("shell").invoke("GetSites", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(3)})));
+                    if (frame.getlocal(7).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(7, frame.getlocal(7).__getitem__(i$8));
+                }
+                else if (((t$0$PyObject = frame.getlocal(5)._eq(s$16)).__nonzero__() ? frame.getlocal(3)._ne(i$9.__neg__()) : t$0$PyObject).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("shell").invoke("GetSites", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(3)})));
+                    if (frame.getlocal(7).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(7, frame.getlocal(7).__getitem__(i$8));
+                }
+                else if (frame.getlocal(5)._eq(s$37).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("shell").invoke("GetSlices", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(3)})));
+                    if (frame.getlocal(7).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(7, frame.getlocal(7).__getitem__(i$8));
+                }
+                else if (frame.getlocal(5)._eq(s$65).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("shell").invoke("GetPersons", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(3)})));
+                    if (frame.getlocal(7).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(7, frame.getlocal(7).__getitem__(i$8));
+                }
+                else if (frame.getlocal(5)._eq(s$69).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("shell").invoke("GetNodes", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(3)})));
+                    if (frame.getlocal(7).__not__().__nonzero__()) {
+                        frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$13))._add(s$73)));
+                    }
+                    frame.setlocal(7, frame.getlocal(7).__getitem__(i$8));
+                }
+                return frame.getglobal("str").__call__(new PyDictionary(new PyObject[] {s$89, frame.getlocal(7), s$74, frame.getlocal(6)}));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                return frame.getglobal("None");
+            }
+        }
+        
+        private static PyObject list$5(PyFrame frame) {
+            frame.setlocal(3, i$9);
+            return Py.None;
+        }
+        
+        private static PyObject getCredential$6(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(14, frame.getlocal(2).__getitem__(i$8));
+            frame.setlocal(16, frame.getlocal(2).__getitem__(i$9));
+            try {
+                frame.setlocal(19, frame.getglobal("None"));
+                if (frame.getlocal(1).__getitem__(s$11).__getitem__(s$90).invoke("split", s$24).__getitem__(i$8)._eq(s$91).__nonzero__()) {
+                    frame.setlocal(25, frame.getlocal(14).invoke("query", s$92._add(frame.getlocal(16))._add(s$93)._add(frame.getglobal("get_leaf").__call__(frame.getlocal(4).__getitem__(i$8)))._add(s$94)).invoke("dictresult"));
+                    if (frame.getlocal(25).__nonzero__()) {
+                        frame.setlocal(25, frame.getlocal(25).__getitem__(i$8));
+                    }
+                    else {
+                        throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(4).__getitem__(i$8))._add(s$73)));
+                    }
+                    frame.setlocal(26, frame.getlocal(25).__getitem__(s$10));
+                    frame.setlocal(15, frame.getlocal(25).__getitem__(s$44));
+                    frame.setlocal(12, frame.getlocal(25).__getitem__(s$26));
+                    frame.setlocal(23, frame.getglobal("None"));
+                    if (((t$0$PyObject = frame.getlocal(26)._eq(s$15)).__nonzero__() ? frame.getlocal(15)._ne(i$9.__neg__()) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(23, frame.getglobal("shell").invoke("GetSites", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(15)})));
+                        if (frame.getlocal(23).__not__().__nonzero__()) {
+                            frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                            throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(4).__getitem__(i$8))._add(s$73)));
+                        }
+                    }
+                    else if (((t$0$PyObject = frame.getlocal(26)._eq(s$16)).__nonzero__() ? frame.getlocal(15)._ne(i$9.__neg__()) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(23, frame.getglobal("shell").invoke("GetSites", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(15)})));
+                        if (frame.getlocal(23).__not__().__nonzero__()) {
+                            frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                            throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(4).__getitem__(i$8))._add(s$73)));
+                        }
+                    }
+                    else if (frame.getlocal(26)._eq(s$65).__nonzero__()) {
+                        frame.setlocal(23, frame.getglobal("shell").invoke("GetPersons", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(15)})));
+                        if (frame.getlocal(23).__not__().__nonzero__()) {
+                            frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                            throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(4).__getitem__(i$8))._add(s$73)));
+                        }
+                        frame.setlocal(23, frame.getglobal("shell").invoke("GetPersons", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(15)})).__getitem__(i$8));
+                        if (((t$0$PyObject = frame.getlocal(12)._eq(s$19)).__nonzero__() ? t$0$PyObject : frame.getlocal(12)._eq(frame.getglobal("None"))).__nonzero__()) {
+                            if (s$95._in(frame.getlocal(23).__getitem__(s$96)).__nonzero__()) {
+                                frame.setlocal(12, s$97._add(s$98));
+                                frame.setlocal(12, frame.getlocal(12)._add(s$67)._add(frame.getglobal("ROOT_AUTH"))._add(s$99)._add(frame.getglobal("ROOT_AUTH")));
+                            }
+                            else if (s$100._in(frame.getlocal(23).__getitem__(s$96)).__nonzero__()) {
+                                frame.setlocal(12, s$97._add(s$98));
+                                frame.setlocal(12, frame.getlocal(12)._add(s$67)._add(frame.getglobal("obtain_authority").__call__(frame.getlocal(4).__getitem__(i$8)))._add(s$99)._add(frame.getglobal("obtain_authority").__call__(frame.getlocal(4).__getitem__(i$8))));
+                            }
+                            else if (s$65._in(frame.getlocal(23).__getitem__(s$96)).__nonzero__()) {
+                                frame.setlocal(12, s$66);
+                                frame.setlocal(12, frame.getlocal(12)._add(s$67)._add(frame.getglobal("obtain_authority").__call__(frame.getlocal(4).__getitem__(i$8))));
+                            }
+                        }
+                    }
+                    else if (frame.getlocal(26)._eq(s$69).__nonzero__()) {
+                        frame.setlocal(23, frame.getglobal("shell").invoke("GetNodes", frame.getglobal("pl_auth"), new PyList(new PyObject[] {frame.getlocal(15)})));
+                        if (frame.getlocal(23).__not__().__nonzero__()) {
+                            frame.getlocal(0).invoke("remove", frame.getlocal(1), frame.getlocal(2));
+                            throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(4).__getitem__(i$8))._add(s$73)));
+                        }
+                    }
+                    frame.setlocal(7, s$101);
+                    frame.setlocal(5, frame.getlocal(4).__getitem__(i$9));
+                    frame.setlocal(19, frame.getglobal("create_cred").__call__(new PyObject[] {frame.getlocal(3).__getitem__(i$8), frame.getlocal(3).__getitem__(i$9), frame.getlocal(5).invoke("get_pubkey"), frame.getlocal(7), frame.getlocal(12)}));
+                }
+                else {
+                    frame.setlocal(9, frame.getlocal(1).__getitem__(s$11).__getitem__(s$90).invoke("split", s$24));
+                    if (frame.getlocal(9).__getitem__(i$8)._eq(s$37).__nonzero__()) {
+                        frame.setlocal(20, new PyDictionary(new PyObject[] {s$11, new PyDictionary(new PyObject[] {s$13, frame.getlocal(9).__getitem__(i$9)}), s$27, new PyDictionary(new PyObject[] {})}));
+                        frame.setlocal(10, frame.getlocal(0).invoke("lookup", frame.getlocal(20), frame.getlocal(2)));
+                        frame.setlocal(8, frame.getglobal("False"));
+                        frame.setlocal(22, frame.getlocal(10).__getitem__(s$27).__getitem__(s$102));
+                        frame.setlocal(11, frame.getglobal("time").__getattr__("strptime").__call__(frame.getlocal(10).__getitem__(s$27).__getitem__(s$103), frame.getglobal("PL_DATETIME_FORMAT")));
+                        frame.setlocal(11, frame.getglobal("datetime").__getattr__("timedelta").__call__(new PyObject[] {frame.getglobal("calendar").__getattr__("timegm").__call__(frame.getlocal(11))}, new String[] {"seconds"}));
+                        if (((t$0$PyObject = frame.getlocal(10)).__nonzero__() ? frame.getlocal(22)._eq(s$104) : t$0$PyObject).__nonzero__()) {
+                            frame.setlocal(6, frame.getglobal("determine_dbinfo").__call__(frame.getglobal("get_authority").__call__(frame.getlocal(4).__getitem__(i$8)), frame.getlocal(0).__getattr__("tree")));
+                            if (frame.getlocal(6).__nonzero__()) {
+                                frame.setlocal(21, new PyDictionary(new PyObject[] {s$11, new PyDictionary(new PyObject[] {s$13, frame.getlocal(4).__getitem__(i$8)}), s$27, new PyDictionary(new PyObject[] {})}));
+                                frame.setlocal(18, frame.getlocal(0).invoke("lookup", frame.getlocal(21), frame.getlocal(6)).__getitem__(s$74).__getitem__(s$44));
+                                frame.setlocal(13, s$105._add(frame.getlocal(18))._add(s$106)._add(frame.getlocal(10).__getitem__(s$74).__getitem__(s$44)));
+                                frame.setlocal(17, frame.getlocal(14).invoke("query", frame.getlocal(13)).invoke("dictresult"));
+                                if (frame.getlocal(17).__nonzero__()) {
+                                    frame.setlocal(8, frame.getglobal("True"));
+                                }
+                            }
+                            if (frame.getlocal(8).__nonzero__()) {
+                                frame.setlocal(12, s$19);
+                                if (((t$0$PyObject = frame.getlocal(10).__getitem__(s$74).__getitem__(s$26)._ne(s$19)).__nonzero__() ? t$0$PyObject : frame.getlocal(10).__getitem__(s$74).__getitem__(s$26)._ne(frame.getglobal("None"))).__nonzero__()) {
+                                    frame.setlocal(12, frame.getlocal(10).__getitem__(s$74).__getitem__(s$26));
+                                }
+                                else {
+                                    frame.setlocal(12, s$107);
+                                    frame.setlocal(12, frame.getlocal(12)._add(s$108));
+                                }
+                                frame.setlocal(7, frame.getlocal(10).__getitem__(s$74).__getitem__(s$13));
+                                frame.setlocal(24, frame.getglobal("datetime").__getattr__("timedelta").__call__(new PyObject[] {frame.getglobal("time").__getattr__("time").__call__()}, new String[] {"seconds"}));
+                                if (frame.getlocal(11)._sub(frame.getlocal(24))._gt(frame.getglobal("CRED_GRANT_TIME")).__nonzero__()) {
+                                    frame.setlocal(5, frame.getglobal("crypto").invoke("load_certificate", frame.getglobal("crypto").__getattr__("FILETYPE_PEM"), frame.getlocal(4).__getitem__(i$9)));
+                                    frame.setlocal(19, frame.getglobal("create_cred").__call__(new PyObject[] {frame.getlocal(3).__getitem__(i$8), frame.getlocal(3).__getitem__(i$9), frame.getlocal(5).invoke("get_pubkey"), frame.getlocal(7), frame.getlocal(12)}));
+                                }
+                            }
+                        }
+                    }
+                    else {
+                        throw Py.makeException(frame.getglobal("NonexistingCredType").__call__(s$109._add(frame.getlocal(9).__getitem__(i$8))._add(s$73)));
+                    }
+                }
+                if (frame.getlocal(19)._eq(frame.getglobal("None")).__nonzero__()) {
+                    return frame.getlocal(19);
+                }
+                else {
+                    return frame.getglobal("crypto").invoke("dump_certificate", frame.getglobal("crypto").__getattr__("FILETYPE_PEM"), frame.getlocal(19))._add(frame.getlocal(3).__getitem__(i$110));
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                return frame.getglobal("None");
+            }
+        }
+        
+        private static PyObject getAccounting$7(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            frame.setlocal(6, frame.getlocal(2).__getitem__(i$8));
+            frame.setlocal(11, frame.getlocal(2).__getitem__(i$9));
+            try {
+                frame.setlocal(9, frame.getglobal("None"));
+                frame.setlocal(8, new PyDictionary(new PyObject[] {s$11, new PyDictionary(new PyObject[] {s$13, frame.getlocal(1).__getitem__(s$11).__getitem__(s$111)}), s$27, new PyDictionary(new PyObject[] {})}));
+                frame.setlocal(10, frame.getglobal("eval").__call__(frame.getlocal(0).invoke("lookup", frame.getlocal(8), frame.getlocal(2))));
+                if (frame.getlocal(10).__not__().__nonzero__()) {
+                    throw Py.makeException(frame.getglobal("NonexistingRecord").__call__(s$12._add(frame.getlocal(1).__getitem__(s$11).__getitem__(s$111))._add(s$73)));
+                }
+                if (frame.getlocal(10).__getitem__(s$74).__getitem__(s$43)._eq(frame.getlocal(4).invoke("get_pubkey").__getattr__("as_pem").__call__(new PyObject[] {frame.getglobal("None")}, new String[] {"cipher"})).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("crypto").invoke("load_certificate", frame.getglobal("crypto").__getattr__("FILETYPE_PEM"), frame.getlocal(4).invoke("as_pem")));
+                    frame.setlocal(5, i$8);
+                    if (frame.getlocal(10).__getitem__(s$89).__not__().__nonzero__()) {
+                        frame.setlocal(5, frame.getlocal(10).__getitem__(s$74).__getitem__(s$112));
+                    }
+                    else {
+                        frame.setlocal(5, frame.getlocal(10).__getitem__(s$89).__getitem__(s$112));
+                    }
+                    frame.setlocal(9, frame.getglobal("create_acc").__call__(new PyObject[] {frame.getlocal(3).__getitem__(i$8), frame.getlocal(3).__getitem__(i$9), frame.getlocal(7).invoke("get_pubkey"), frame.getlocal(1).__getitem__(s$11).__getitem__(s$111), frame.getlocal(5)}));
+                }
+                if (frame.getlocal(9)._eq(frame.getglobal("None")).__nonzero__()) {
+                    return frame.getlocal(9);
+                }
+                else {
+                    return frame.getglobal("crypto").invoke("dump_certificate", frame.getglobal("crypto").__getattr__("FILETYPE_PEM"), frame.getlocal(9))._add(frame.getlocal(3).__getitem__(i$113));
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                return frame.getglobal("None");
+            }
+        }
+        
+        private static PyObject __init__$8(PyFrame frame) {
+            frame.getlocal(0).__setattr__("sr_tree_file", frame.getglobal("SR_FILE"));
+            frame.getlocal(0).__setattr__("cr_tree_file", frame.getglobal("CR_FILE"));
+            frame.getlocal(0).__setattr__("sr_tree", frame.getglobal("None"));
+            frame.getlocal(0).__setattr__("cr_tree", frame.getglobal("None"));
+            frame.getlocal(0).invoke("construct_hierarchy");
+            frame.getglobal("set_tree_globals").__call__(frame.getlocal(0).__getattr__("sr_tree"), frame.getlocal(0).__getattr__("cr_tree"));
+            frame.getlocal(0).__setattr__("sec", frame.getglobal("None"));
+            frame.getlocal(0).invoke("sec_init");
+            frame.getlocal(0).__setattr__("functionList", new PyDictionary(new PyObject[] {s$114, frame.getlocal(0).__getattr__("register"), s$115, frame.getlocal(0).__getattr__("remove"), s$116, frame.getlocal(0).__getattr__("update"), s$117, frame.getlocal(0).__getattr__("lookup"), s$118, frame.getlocal(0).__getattr__("list"), s$119, frame.getlocal(0).__getattr__("getCredential"), s$120, frame.getlocal(0).__getattr__("getAccounting")}));
+            frame.getglobal("SSL").__getattr__("SSLServer").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(0).__getattr__("sec").__getattr__("ctx")});
+            return Py.None;
+        }
+        
+        private static PyObject construct_hierarchy$9(PyFrame frame) {
+            frame.getlocal(0).__setattr__("sr_tree", frame.getglobal("InterfaceTree").__call__(s$37, frame.getlocal(0).__getattr__("sr_tree_file"), new PyTuple(new PyObject[] {frame.getglobal("AUTH_HOST"), frame.getglobal("AUTH_PORT")})));
+            frame.getlocal(0).__setattr__("cr_tree", frame.getglobal("InterfaceTree").__call__(s$38, frame.getlocal(0).__getattr__("cr_tree_file"), new PyTuple(new PyObject[] {frame.getglobal("AUTH_HOST"), frame.getglobal("AUTH_PORT")})));
+            return Py.None;
+        }
+        
+        private static PyObject sec_init$10(PyFrame frame) {
+            frame.setlocal(4, frame.getlocal(0).__getattr__("sr_tree").__getattr__("my_tree").__getattr__("info").__getattr__("node_data").__getitem__(s$50));
+            frame.setlocal(3, frame.getlocal(4).__getattr__("folder")._add(s$39)._add(frame.getlocal(4).__getattr__("id_file")));
+            frame.setlocal(1, frame.getlocal(4).__getattr__("folder")._add(s$39)._add(frame.getlocal(4).__getattr__("id_key_file")));
+            frame.setlocal(2, frame.getlocal(4).__getattr__("folder")._add(s$39)._add(frame.getlocal(4).__getattr__("acc_file")));
+            frame.setlocal(5, frame.getlocal(4).__getattr__("folder")._add(s$39)._add(frame.getlocal(4).__getattr__("cred_file")));
+            frame.getlocal(0).__setattr__("sec", frame.getglobal("Sec").__call__(new PyObject[] {s$121, frame.getlocal(3), frame.getlocal(1), frame.getlocal(2), frame.getlocal(5)}));
+            frame.getglobal("renew_cert").__call__(new PyObject[] {s$122, frame.getlocal(4).__getattr__("folder"), s$37, frame.getlocal(0).__getattr__("sr_tree").__getattr__("my_tree").__getattr__("info").__getattr__("name"), frame.getglobal("None"), frame.getglobal("None"), new PyTuple(new PyObject[] {frame.getglobal("AUTH_HOST"), frame.getglobal("AUTH_PORT")}), frame.getlocal(0).__getattr__("sec")});
+            frame.getglobal("renew_cert").__call__(new PyObject[] {s$123, frame.getlocal(4).__getattr__("folder"), s$37, frame.getlocal(0).__getattr__("sr_tree").__getattr__("my_tree").__getattr__("info").__getattr__("name"), frame.getglobal("None"), frame.getglobal("None"), new PyTuple(new PyObject[] {frame.getglobal("AUTH_HOST"), frame.getglobal("AUTH_PORT")}), frame.getlocal(0).__getattr__("sec")});
+            return Py.None;
+        }
+        
+        private static PyObject save_state$11(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (((t$0$PyObject = frame.getlocal(1)._eq(s$52)).__nonzero__() ? t$0$PyObject : frame.getlocal(1)._eq(s$124)).__nonzero__()) {
+                frame.getlocal(0).__getattr__("sr_tree").invoke("save_tree");
+            }
+            if (((t$0$PyObject = frame.getlocal(1)._eq(s$53)).__nonzero__() ? t$0$PyObject : frame.getlocal(1)._eq(s$124)).__nonzero__()) {
+                frame.getlocal(0).__getattr__("cr_tree").invoke("save_tree");
+            }
+            return Py.None;
+        }
+        
+        private static PyObject GENIServer$12(PyFrame frame) {
+            frame.setlocal("register", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_register));
+            frame.setlocal("update", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_update));
+            frame.setlocal("remove", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_remove));
+            frame.setlocal("lookup", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_lookup));
+            frame.setlocal("list", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_list));
+            frame.setlocal("getCredential", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_getCredential));
+            frame.setlocal("getAccounting", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_getAccounting));
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$7___init__));
+            frame.setlocal("construct_hierarchy", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_construct_hierarchy));
+            frame.setlocal("sec_init", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_sec_init));
+            frame.setlocal("save_state", new PyFunction(frame.f_globals, new PyObject[] {s$124}, c$10_save_state));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject handle$13(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject;
+            
+            // Code
+            try {
+                frame.setlocal(6, frame.getglobal("server").__getattr__("sec").invoke("auth_protocol", frame.getlocal(0).__getattr__("request")));
+                if (frame.getlocal(6).__not__().__nonzero__()) {
+                    return Py.None;
+                }
+                frame.setlocal(9, frame.getglobal("msg_to_params").__call__(frame.getlocal(0).__getattr__("request").invoke("read")));
+                frame.setlocal(11, frame.getlocal(9).__getitem__(s$11).__getitem__(s$13));
+                frame.setlocal(10, frame.getlocal(9).__getitem__(s$125));
+                frame.setlocal(4, s$19);
+                if (((t$0$PyObject = ((t$1$PyObject = ((t$2$PyObject = frame.getlocal(10)._eq(s$114)).__nonzero__() ? t$2$PyObject : frame.getlocal(10)._eq(s$115))).__nonzero__() ? t$1$PyObject : frame.getlocal(10)._eq(s$116))).__nonzero__() ? t$0$PyObject : frame.getlocal(10)._eq(s$117)).__nonzero__()) {
+                    frame.setlocal(4, frame.getglobal("obtain_authority").__call__(frame.getlocal(11)));
+                }
+                else if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(10)._eq(s$118)).__nonzero__() ? t$1$PyObject : frame.getlocal(10)._eq(s$119))).__nonzero__() ? t$0$PyObject : frame.getlocal(10)._eq(s$120)).__nonzero__()) {
+                    frame.setlocal(4, frame.getlocal(11));
+                }
+                frame.setlocal(12, s$19);
+                if (((t$0$PyObject = ((t$1$PyObject = ((t$2$PyObject = ((t$3$PyObject = frame.getlocal(10)._eq(s$114)).__nonzero__() ? t$3$PyObject : frame.getlocal(10)._eq(s$115))).__nonzero__() ? t$2$PyObject : frame.getlocal(10)._eq(s$116))).__nonzero__() ? t$1$PyObject : frame.getlocal(10)._eq(s$117))).__nonzero__() ? t$0$PyObject : frame.getlocal(10)._eq(s$118)).__nonzero__()) {
+                    frame.setlocal(1, frame.getlocal(9).__getitem__(s$11).__getitem__(s$10));
+                    if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(1)._eq(s$37)).__nonzero__() ? t$1$PyObject : frame.getlocal(1)._eq(s$65))).__nonzero__() ? t$0$PyObject : frame.getlocal(1)._eq(s$15)).__nonzero__()) {
+                        frame.setlocal(12, s$37);
+                    }
+                    else {
+                        frame.setlocal(12, s$38);
+                    }
+                }
+                else if (frame.getlocal(10)._eq(s$119).__nonzero__()) {
+                    if (frame.getlocal(9).__getitem__(s$11).__getitem__(s$90).invoke("split", s$24).__getitem__(i$9)._eq(s$20).__nonzero__()) {
+                        frame.setlocal(12, s$37);
+                    }
+                    else {
+                        frame.setlocal(12, s$38);
+                    }
+                }
+                else if (frame.getlocal(10)._eq(s$120).__nonzero__()) {
+                    frame.setlocal(12, frame.getlocal(9).__getitem__(s$11).__getitem__(s$91));
+                }
+                frame.setlocal(8, frame.getglobal("None"));
+                if (frame.getlocal(12)._eq(s$37).__nonzero__()) {
+                    frame.setlocal(8, frame.getglobal("server").__getattr__("sr_tree"));
+                }
+                else {
+                    frame.setlocal(8, frame.getglobal("server").__getattr__("cr_tree"));
+                }
+                frame.setlocal(7, frame.getglobal("determine_dbinfo").__call__(frame.getlocal(4), frame.getlocal(8)));
+                frame.setlocal(15, frame.getglobal("None"));
+                if (frame.getlocal(10)._eq(s$120).__nonzero__()) {
+                    frame.setlocal(15, frame.getlocal(8).invoke("determine_keyinfo", new PyObject[] {frame.getlocal(4), frame.getglobal("server"), s$122}));
+                }
+                else if (frame.getlocal(10)._eq(s$119).__nonzero__()) {
+                    frame.setlocal(15, frame.getlocal(8).invoke("determine_keyinfo", new PyObject[] {frame.getlocal(4), frame.getglobal("server"), s$123}));
+                }
+                if (frame.getlocal(7)._eq(frame.getglobal("None")).__nonzero__()) {
+                    frame.getlocal(0).__getattr__("request").invoke("write", s$126);
+                    return Py.None;
+                }
+                if (frame.getglobal("server").__getattr__("functionList").invoke("has_key", frame.getlocal(9).__getitem__(s$125)).__not__().__nonzero__()) {
+                    frame.getlocal(0).__getattr__("request").invoke("write", s$127);
+                    return Py.None;
+                }
+                if (frame.getglobal("server").__getattr__("sec").invoke("check_authorization", new PyObject[] {frame.getlocal(6).__getattr__("acc"), frame.getlocal(6).__getattr__("cred"), frame.getlocal(9)}).__not__().__nonzero__()) {
+                    frame.getlocal(0).__getattr__("request").invoke("write", s$128);
+                    return Py.None;
+                }
+                frame.setlocal(2, frame.getglobal("server").__getattr__("functionList").__getitem__(frame.getlocal(9).__getitem__(s$125)));
+                frame.setlocal(14, new PyDictionary(new PyObject[] {s$11, frame.getlocal(9).__getitem__(s$11), s$27, frame.getlocal(9).__getitem__(s$27)}));
+                frame.setlocal(5, frame.getglobal("None"));
+                if (frame.getlocal(2)._eq(frame.getglobal("server").__getattr__("getAccounting")).__nonzero__()) {
+                    frame.setlocal(5, frame.getlocal(2).__call__(new PyObject[] {frame.getlocal(14), frame.getlocal(7), frame.getlocal(15), frame.getlocal(6).__getattr__("cert")}));
+                }
+                else if (frame.getlocal(2)._eq(frame.getglobal("server").__getattr__("getCredential")).__nonzero__()) {
+                    frame.setlocal(3, new PyList(new PyObject[] {frame.getlocal(6).__getattr__("acc").invoke("get_hrn"), frame.getglobal("crypto").invoke("load_certificate", frame.getglobal("crypto").__getattr__("FILETYPE_PEM"), frame.getlocal(6).__getattr__("cert").invoke("as_pem"))}));
+                    frame.setlocal(5, frame.getlocal(2).__call__(new PyObject[] {frame.getlocal(14), frame.getlocal(7), frame.getlocal(15), frame.getlocal(3)}));
+                }
+                else if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(2)._eq(frame.getglobal("server").__getattr__("register"))).__nonzero__() ? t$1$PyObject : frame.getlocal(2)._eq(frame.getglobal("server").__getattr__("update")))).__nonzero__() ? t$0$PyObject : frame.getlocal(2)._eq(frame.getglobal("server").__getattr__("remove"))).__nonzero__()) {
+                    frame.setlocal(5, frame.getglobal("str").__call__(new PyDictionary(new PyObject[] {s$129, frame.getlocal(2).__call__(frame.getlocal(14), frame.getlocal(7))})));
+                }
+                else {
+                    frame.setlocal(5, frame.getlocal(2).__call__(frame.getlocal(14), frame.getlocal(7)));
+                    if (frame.getlocal(5).__not__().__nonzero__()) {
+                        frame.getlocal(0).__getattr__("request").invoke("write", frame.getglobal("str").__call__(new PyDictionary(new PyObject[] {s$129, s$130})));
+                    }
+                }
+                frame.getlocal(0).__getattr__("request").invoke("write", frame.getlocal(5));
+                return Py.None;
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("Exception"))) {
+                    frame.setlocal(13, t$0$PyException.value);
+                    Py.println(s$131._add(frame.getglobal("str").__call__(frame.getlocal(13))));
+                    return Py.None;
+                }
+                else throw t$0$PyException;
+            }
+        }
+        
+        private static PyObject handle_connection$14(PyFrame frame) {
+            frame.setlocal("handle", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_handle));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$15(PyFrame frame) {
+            frame.getglobal("server").invoke("save_state");
+            frame.getglobal("server").invoke("serve_forever");
+            return Py.None;
+        }
+        
+        private static PyObject main$16(PyFrame frame) {
+            frame.setglobal("__file__", s$133);
+            
+            PyObject[] imp_accu;
+            // Code
+            frame.setlocal("LISTEN_HOST", s$0);
+            frame.setlocal("LISTEN_PORT", i$1);
+            frame.setlocal("SR_FILE", s$2);
+            frame.setlocal("CR_FILE", s$3);
+            frame.setlocal("AUTH_HOST", s$0);
+            frame.setlocal("AUTH_PORT", i$1);
+            frame.setlocal("SocketServer", org.python.core.imp.importOne("SocketServer", frame));
+            frame.setlocal("socket", org.python.core.imp.importOne("socket", frame));
+            frame.setlocal("os", org.python.core.imp.importOne("os", frame));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            imp_accu = org.python.core.imp.importFrom("M2Crypto", new String[] {"SSL"}, frame);
+            frame.setlocal("SSL", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("M2Crypto.SSL", new String[] {"SSLError"}, frame);
+            frame.setlocal("SSLError", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("M2Crypto", new String[] {"X509"}, frame);
+            frame.setlocal("X509", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("pg", new String[] {"DB"}, frame);
+            frame.setlocal("DB", imp_accu[0]);
+            imp_accu = null;
+            frame.getname("sys").__getattr__("path").__getattr__("append").__call__(s$4);
+            frame.getname("sys").__getattr__("path").__getattr__("append").__call__(s$5);
+            frame.getname("sys").__getattr__("path").__getattr__("append").__call__(s$6);
+            frame.getname("sys").__getattr__("path").__getattr__("append").__call__(s$7);
+            org.python.core.imp.importAll("util", frame);
+            org.python.core.imp.importAll("tree", frame);
+            org.python.core.imp.importAll("excep", frame);
+            org.python.core.imp.importAll("sec", frame);
+            org.python.core.imp.importAll("db", frame);
+            org.python.core.imp.importAll("pl_to_geni", frame);
+            frame.setlocal("time", org.python.core.imp.importOne("time", frame));
+            frame.setlocal("datetime", org.python.core.imp.importOne("datetime", frame));
+            frame.setlocal("calendar", org.python.core.imp.importOne("calendar", frame));
+            imp_accu = org.python.core.imp.importFrom("PLC.Shell", new String[] {"Shell"}, frame);
+            frame.setlocal("Shell", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("shell", frame.getname("Shell").__call__(new PyObject[] {frame.getname("globals").__call__()}, new String[] {"globals"}));
+            frame.setlocal("GENIServer", Py.makeClass("GENIServer", new PyObject[] {frame.getname("SSL").__getattr__("SSLServer")}, c$11_GENIServer, null));
+            frame.setlocal("handle_connection", Py.makeClass("handle_connection", new PyObject[] {frame.getname("SocketServer").__getattr__("BaseRequestHandler")}, c$13_handle_connection, null));
+            frame.setlocal("server", frame.getname("GENIServer").__call__(new PyTuple(new PyObject[] {frame.getname("LISTEN_HOST"), frame.getname("LISTEN_PORT")}), frame.getname("handle_connection")));
+            frame.setlocal("main", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_main));
+            if (frame.getname("__name__")._eq(s$132).__nonzero__()) {
+                frame.getname("main").__call__();
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("server"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "server";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(server._PyInner.class, newargs, server.jpy$packages, server.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/socket$_PyInner.class b/server/jpywork/socket$_PyInner.class
new file mode 100644 (file)
index 0000000..2e2de57
Binary files /dev/null and b/server/jpywork/socket$_PyInner.class differ
diff --git a/server/jpywork/socket.class b/server/jpywork/socket.class
new file mode 100644 (file)
index 0000000..7ac76d4
Binary files /dev/null and b/server/jpywork/socket.class differ
diff --git a/server/jpywork/socket.java b/server/jpywork/socket.java
new file mode 100644 (file)
index 0000000..4e66491
--- /dev/null
@@ -0,0 +1,840 @@
+import org.python.core.*;
+
+public class socket extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject i$14;
+        private static PyObject i$15;
+        private static PyObject i$16;
+        private static PyObject i$17;
+        private static PyObject i$18;
+        private static PyObject i$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject i$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject i$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject i$32;
+        private static PyObject s$33;
+        private static PyObject i$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0__gethostbyaddr;
+        private static PyCode c$1_getfqdn;
+        private static PyCode c$2_gethostname;
+        private static PyCode c$3_gethostbyname;
+        private static PyCode c$4_gethostbyaddr;
+        private static PyCode c$5_socket;
+        private static PyCode c$6_bind;
+        private static PyCode c$7_listen;
+        private static PyCode c$8_accept;
+        private static PyCode c$9_connect;
+        private static PyCode c$10__setup;
+        private static PyCode c$11_recv;
+        private static PyCode c$12_send;
+        private static PyCode c$13_getsockname;
+        private static PyCode c$14_getpeername;
+        private static PyCode c$15_setsockopt;
+        private static PyCode c$16_getsockopt;
+        private static PyCode c$17_makefile;
+        private static PyCode c$18___init__;
+        private static PyCode c$19_close;
+        private static PyCode c$20_FileWrapper;
+        private static PyCode c$21_shutdown;
+        private static PyCode c$22_close;
+        private static PyCode c$23__tcpsocket;
+        private static PyCode c$24___init__;
+        private static PyCode c$25_bind;
+        private static PyCode c$26_connect;
+        private static PyCode c$27_sendto;
+        private static PyCode c$28_send;
+        private static PyCode c$29_recvfrom;
+        private static PyCode c$30_recv;
+        private static PyCode c$31_getsockname;
+        private static PyCode c$32_getpeername;
+        private static PyCode c$33___del__;
+        private static PyCode c$34_close;
+        private static PyCode c$35__udpsocket;
+        private static PyCode c$36_test;
+        private static PyCode c$37_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Preliminary socket module.\012\012XXX Restrictions:\012\012- Only INET sockets\012- No asynchronous behavior\012- No socket options\012- Can't do a very good gethostbyaddr() right...\012\012");
+            s$1 = Py.newString("AF_INET");
+            s$2 = Py.newString("SOCK_DGRAM");
+            s$3 = Py.newString("SOCK_RAW");
+            s$4 = Py.newString("SOCK_RDM");
+            s$5 = Py.newString("SOCK_SEQPACKET");
+            s$6 = Py.newString("SOCK_STREAM");
+            s$7 = Py.newString("SocketType");
+            s$8 = Py.newString("error");
+            s$9 = Py.newString("getfqdn");
+            s$10 = Py.newString("gethostbyaddr");
+            s$11 = Py.newString("gethostbyname");
+            s$12 = Py.newString("gethostname");
+            s$13 = Py.newString("socket");
+            i$14 = Py.newInteger(2);
+            i$15 = Py.newInteger(1);
+            i$16 = Py.newInteger(3);
+            i$17 = Py.newInteger(4);
+            i$18 = Py.newInteger(5);
+            i$19 = Py.newInteger(65535);
+            s$20 = Py.newString("\012    Return a fully qualified domain name for name. If name is omitted or empty\012    it is interpreted as the local host.  To find the fully qualified name,\012    the hostname returned by gethostbyaddr() is checked, then aliases for the\012    host, if available. The first name which includes a period is selected.\012    In case no fully qualified domain name is available, the hostname is retur\012    New in version 2.0.\012    ");
+            s$21 = Py.newString(".");
+            i$22 = Py.newInteger(0);
+            s$23 = Py.newString("This signifies a server socket");
+            s$24 = Py.newString("");
+            s$25 = Py.newString("setReuseAddress");
+            i$26 = Py.newInteger(50);
+            s$27 = Py.newString("This signifies a client socket");
+            s$28 = Py.newString("b");
+            s$29 = Py.newString("<socket>");
+            s$30 = Py.newString("both istream and ostream have been shut down");
+            s$31 = Py.newString("r");
+            i$32 = Py.newInteger(80);
+            s$33 = Py.newString("GET / HTTP/1.0\015\012\015\012");
+            i$34 = Py.newInteger(2000);
+            s$35 = Py.newString("__main__");
+            s$36 = Py.newString("/usr/share/jython/Lib/socket.py");
+            funcTable = new _PyInner();
+            c$0__gethostbyaddr = Py.newCode(1, new String[] {"name", "addrs", "names", "addresses", "addr"}, "/usr/share/jython/Lib/socket.py", "_gethostbyaddr", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_getfqdn = Py.newCode(1, new String[] {"name", "a", "addrs", "names"}, "/usr/share/jython/Lib/socket.py", "getfqdn", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_gethostname = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "gethostname", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_gethostbyname = Py.newCode(1, new String[] {"name"}, "/usr/share/jython/Lib/socket.py", "gethostbyname", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_gethostbyaddr = Py.newCode(1, new String[] {"name", "addrs", "names"}, "/usr/share/jython/Lib/socket.py", "gethostbyaddr", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_socket = Py.newCode(3, new String[] {"family", "type", "flags"}, "/usr/share/jython/Lib/socket.py", "socket", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_bind = Py.newCode(3, new String[] {"self", "addr", "port", "host"}, "/usr/share/jython/Lib/socket.py", "bind", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_listen = Py.newCode(2, new String[] {"self", "backlog", "a", "port", "host"}, "/usr/share/jython/Lib/socket.py", "listen", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_accept = Py.newCode(1, new String[] {"self", "port", "sock", "conn", "host"}, "/usr/share/jython/Lib/socket.py", "accept", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_connect = Py.newCode(3, new String[] {"self", "addr", "port", "host"}, "/usr/share/jython/Lib/socket.py", "connect", false, false, funcTable, 9, null, null, 0, 1);
+            c$10__setup = Py.newCode(2, new String[] {"self", "sock"}, "/usr/share/jython/Lib/socket.py", "_setup", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_recv = Py.newCode(2, new String[] {"self", "n", "m", "data"}, "/usr/share/jython/Lib/socket.py", "recv", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_send = Py.newCode(2, new String[] {"self", "s", "n"}, "/usr/share/jython/Lib/socket.py", "send", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_getsockname = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getsockname", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_getpeername = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getpeername", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_setsockopt = Py.newCode(4, new String[] {"self", "level", "optname", "value"}, "/usr/share/jython/Lib/socket.py", "setsockopt", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_getsockopt = Py.newCode(3, new String[] {"self", "level", "optname"}, "/usr/share/jython/Lib/socket.py", "getsockopt", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_makefile = Py.newCode(3, new String[] {"self", "mode", "bufsize", "file"}, "/usr/share/jython/Lib/socket.py", "makefile", false, false, funcTable, 17, null, null, 0, 1);
+            c$18___init__ = Py.newCode(3, new String[] {"self", "socket", "file"}, "/usr/share/jython/Lib/socket.py", "__init__", false, false, funcTable, 18, null, null, 0, 1);
+            c$19_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/socket.py", "close", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_FileWrapper = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "FileWrapper", false, false, funcTable, 20, null, null, 0, 0);
+            c$21_shutdown = Py.newCode(2, new String[] {"self", "how"}, "/usr/share/jython/Lib/socket.py", "shutdown", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_close = Py.newCode(1, new String[] {"self", "ostream", "sock", "istream"}, "/usr/share/jython/Lib/socket.py", "close", false, false, funcTable, 22, null, null, 0, 1);
+            c$23__tcpsocket = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "_tcpsocket", false, false, funcTable, 23, null, null, 0, 0);
+            c$24___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/socket.py", "__init__", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_bind = Py.newCode(3, new String[] {"self", "addr", "port", "a", "host"}, "/usr/share/jython/Lib/socket.py", "bind", false, false, funcTable, 25, null, null, 0, 1);
+            c$26_connect = Py.newCode(3, new String[] {"self", "addr", "port", "host"}, "/usr/share/jython/Lib/socket.py", "connect", false, false, funcTable, 26, null, null, 0, 1);
+            c$27_sendto = Py.newCode(3, new String[] {"self", "data", "addr", "packet", "n", "port", "a", "host", "bytes"}, "/usr/share/jython/Lib/socket.py", "sendto", false, false, funcTable, 27, null, null, 0, 1);
+            c$28_send = Py.newCode(2, new String[] {"self", "data"}, "/usr/share/jython/Lib/socket.py", "send", false, false, funcTable, 28, null, null, 0, 1);
+            c$29_recvfrom = Py.newCode(2, new String[] {"self", "n", "packet", "port", "m", "host", "bytes"}, "/usr/share/jython/Lib/socket.py", "recvfrom", false, false, funcTable, 29, null, null, 0, 1);
+            c$30_recv = Py.newCode(2, new String[] {"self", "n", "m", "bytes", "packet"}, "/usr/share/jython/Lib/socket.py", "recv", false, false, funcTable, 30, null, null, 0, 1);
+            c$31_getsockname = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getsockname", false, false, funcTable, 31, null, null, 0, 1);
+            c$32_getpeername = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getpeername", false, false, funcTable, 32, null, null, 0, 1);
+            c$33___del__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/socket.py", "__del__", false, false, funcTable, 33, null, null, 0, 1);
+            c$34_close = Py.newCode(1, new String[] {"self", "sock"}, "/usr/share/jython/Lib/socket.py", "close", false, false, funcTable, 34, null, null, 0, 1);
+            c$35__udpsocket = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "_udpsocket", false, false, funcTable, 35, null, null, 0, 0);
+            c$36_test = Py.newCode(0, new String[] {"s", "data"}, "/usr/share/jython/Lib/socket.py", "test", false, false, funcTable, 36, null, null, 0, 1);
+            c$37_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "main", false, false, funcTable, 37, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$37_main == null) _PyInner.initConstants();
+            return c$37_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner._gethostbyaddr$1(frame);
+                case 1:
+                return _PyInner.getfqdn$2(frame);
+                case 2:
+                return _PyInner.gethostname$3(frame);
+                case 3:
+                return _PyInner.gethostbyname$4(frame);
+                case 4:
+                return _PyInner.gethostbyaddr$5(frame);
+                case 5:
+                return _PyInner.socket$6(frame);
+                case 6:
+                return _PyInner.bind$7(frame);
+                case 7:
+                return _PyInner.listen$8(frame);
+                case 8:
+                return _PyInner.accept$9(frame);
+                case 9:
+                return _PyInner.connect$10(frame);
+                case 10:
+                return _PyInner._setup$11(frame);
+                case 11:
+                return _PyInner.recv$12(frame);
+                case 12:
+                return _PyInner.send$13(frame);
+                case 13:
+                return _PyInner.getsockname$14(frame);
+                case 14:
+                return _PyInner.getpeername$15(frame);
+                case 15:
+                return _PyInner.setsockopt$16(frame);
+                case 16:
+                return _PyInner.getsockopt$17(frame);
+                case 17:
+                return _PyInner.makefile$18(frame);
+                case 18:
+                return _PyInner.__init__$19(frame);
+                case 19:
+                return _PyInner.close$20(frame);
+                case 20:
+                return _PyInner.FileWrapper$21(frame);
+                case 21:
+                return _PyInner.shutdown$22(frame);
+                case 22:
+                return _PyInner.close$23(frame);
+                case 23:
+                return _PyInner._tcpsocket$24(frame);
+                case 24:
+                return _PyInner.__init__$25(frame);
+                case 25:
+                return _PyInner.bind$26(frame);
+                case 26:
+                return _PyInner.connect$27(frame);
+                case 27:
+                return _PyInner.sendto$28(frame);
+                case 28:
+                return _PyInner.send$29(frame);
+                case 29:
+                return _PyInner.recvfrom$30(frame);
+                case 30:
+                return _PyInner.recv$31(frame);
+                case 31:
+                return _PyInner.getsockname$32(frame);
+                case 32:
+                return _PyInner.getpeername$33(frame);
+                case 33:
+                return _PyInner.__del__$34(frame);
+                case 34:
+                return _PyInner.close$35(frame);
+                case 35:
+                return _PyInner._udpsocket$36(frame);
+                case 36:
+                return _PyInner.test$37(frame);
+                case 37:
+                return _PyInner.main$38(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject _gethostbyaddr$1(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getAllByName").__call__(frame.getglobal("gethostbyname").__call__(frame.getlocal(0))));
+            frame.setlocal(2, new PyList(new PyObject[] {}));
+            frame.setlocal(1, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(3);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(4, t$0$PyObject);
+                frame.getlocal(2).invoke("append", frame.getlocal(4).invoke("getHostName"));
+                frame.getlocal(1).invoke("append", frame.getlocal(4).invoke("getHostAddress"));
+            }
+            return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject getfqdn$2(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* 
+                Return a fully qualified domain name for name. If name is omitted or empty
+                it is interpreted as the local host.  To find the fully qualified name,
+                the hostname returned by gethostbyaddr() is checked, then aliases for the
+                host, if available. The first name which includes a period is selected.
+                In case no fully qualified domain name is available, the hostname is retur
+                New in version 2.0.
+                 */
+            if (frame.getlocal(0).__not__().__nonzero__()) {
+                frame.setlocal(0, frame.getglobal("gethostname").__call__());
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("_gethostbyaddr").__call__(frame.getlocal(0)), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(3);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(1, t$0$PyObject);
+                if (frame.getlocal(1).invoke("find", s$21)._ge(i$22).__nonzero__()) {
+                    return frame.getlocal(1);
+                }
+            }
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject gethostname$3(PyFrame frame) {
+            return frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getLocalHost").__call__().invoke("getHostName");
+        }
+        
+        private static PyObject gethostbyname$4(PyFrame frame) {
+            return frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(0)).invoke("getHostAddress");
+        }
+        
+        private static PyObject gethostbyaddr$5(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("_gethostbyaddr").__call__(frame.getlocal(0)), 2);
+            frame.setlocal(2, t$0$PyObject__[0]);
+            frame.setlocal(1, t$0$PyObject__[1]);
+            return new PyTuple(new PyObject[] {frame.getlocal(2).__getitem__(i$22), frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject socket$6(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0)._eq(frame.getglobal("AF_INET")));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._in(new PyTuple(new PyObject[] {frame.getglobal("SOCK_DGRAM"), frame.getglobal("SOCK_STREAM")})));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(2)._eq(i$22));
+            if (frame.getlocal(1)._eq(frame.getglobal("SOCK_STREAM")).__nonzero__()) {
+                return frame.getglobal("_tcpsocket").__call__();
+            }
+            else {
+                return frame.getglobal("_udpsocket").__call__();
+            }
+        }
+        
+        private static PyObject bind$7(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)}));
+            }
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__());
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("addr").__not__());
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            frame.getlocal(0).__setattr__("addr", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject listen$8(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* This signifies a server socket */
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__());
+            frame.getlocal(0).__setattr__("server", i$15);
+            if (frame.getlocal(0).__getattr__("addr").__nonzero__()) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("addr"), 2);
+                frame.setlocal(4, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+            }
+            else {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {s$24, i$22}), 2);
+                frame.setlocal(4, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+            }
+            if (frame.getlocal(4).__nonzero__()) {
+                frame.setlocal(2, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(4)));
+                frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("ServerSocket").__call__(frame.getlocal(3), frame.getlocal(1), frame.getlocal(2)));
+            }
+            else {
+                frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("ServerSocket").__call__(frame.getlocal(3), frame.getlocal(1)));
+            }
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0).__getattr__("sock"), s$25).__nonzero__()) {
+                frame.getlocal(0).__getattr__("sock").invoke("setReuseAddress", frame.getlocal(0).__getattr__("reuse_addr"));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject accept$9(PyFrame frame) {
+            /* This signifies a server socket */
+            if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) {
+                frame.getlocal(0).invoke("listen");
+            }
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("server"));
+            frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("accept"));
+            frame.setlocal(4, frame.getlocal(2).invoke("getInetAddress").invoke("getHostName"));
+            frame.setlocal(1, frame.getlocal(2).invoke("getPort"));
+            frame.setlocal(3, frame.getglobal("_tcpsocket").__call__());
+            frame.getlocal(3).invoke("_setup", frame.getlocal(2));
+            return new PyTuple(new PyObject[] {frame.getlocal(3), new PyTuple(new PyObject[] {frame.getlocal(4), frame.getlocal(1)})});
+        }
+        
+        private static PyObject connect$10(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* This signifies a client socket */
+            if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)}));
+            }
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__());
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            if (frame.getlocal(3)._eq(s$24).__nonzero__()) {
+                frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getLocalHost").__call__());
+            }
+            frame.getlocal(0).invoke("_setup", frame.getglobal("java").__getattr__("net").__getattr__("Socket").__call__(frame.getlocal(3), frame.getlocal(2)));
+            return Py.None;
+        }
+        
+        private static PyObject _setup$11(PyFrame frame) {
+            frame.getlocal(0).__setattr__("sock", frame.getlocal(1));
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(0).__getattr__("sock"), s$25).__nonzero__()) {
+                frame.getlocal(0).__getattr__("sock").invoke("setReuseAddress", frame.getlocal(0).__getattr__("reuse_addr"));
+            }
+            frame.getlocal(0).__setattr__("istream", frame.getlocal(1).invoke("getInputStream"));
+            frame.getlocal(0).__setattr__("ostream", frame.getlocal(1).invoke("getOutputStream"));
+            return Py.None;
+        }
+        
+        private static PyObject recv$12(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(3, frame.getglobal("jarray").__getattr__("zeros").__call__(frame.getlocal(1), s$28));
+            frame.setlocal(2, frame.getlocal(0).__getattr__("istream").invoke("read", frame.getlocal(3)));
+            if (frame.getlocal(2)._le(i$22).__nonzero__()) {
+                return s$24;
+            }
+            if (frame.getlocal(2)._lt(frame.getlocal(1)).__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(3).__getslice__(null, frame.getlocal(2), null));
+            }
+            return frame.getlocal(3).invoke("tostring");
+        }
+        
+        private static PyObject send$13(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(2, frame.getglobal("len").__call__(frame.getlocal(1)));
+            frame.getlocal(0).__getattr__("ostream").invoke("write", frame.getlocal(1));
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject getsockname$14(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence((t$0$PyObject = frame.getlocal(0).__getattr__("addr")).__nonzero__() ? t$0$PyObject : new PyTuple(new PyObject[] {s$24, i$22}), 2);
+                frame.setlocal(2, t$0$PyObject__[0]);
+                frame.setlocal(1, t$0$PyObject__[1]);
+                frame.setlocal(2, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(2)).invoke("getHostAddress"));
+            }
+            else {
+                if (frame.getlocal(0).__getattr__("server").__nonzero__()) {
+                    frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getInetAddress").invoke("getHostAddress"));
+                }
+                else {
+                    frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getLocalAddress").invoke("getHostAddress"));
+                }
+                frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getLocalPort"));
+            }
+            return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject getpeername$15(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("server").__not__());
+            frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getInetAddress").invoke("getHostAddress"));
+            frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getPort"));
+            return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject setsockopt$16(PyFrame frame) {
+            if (frame.getlocal(2)._eq(frame.getglobal("SO_REUSEADDR")).__nonzero__()) {
+                frame.getlocal(0).__setattr__("reuse_addr", frame.getlocal(3));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject getsockopt$17(PyFrame frame) {
+            if (frame.getlocal(2)._eq(frame.getglobal("SO_REUSEADDR")).__nonzero__()) {
+                return frame.getlocal(0).__getattr__("reuse_addr");
+            }
+            return Py.None;
+        }
+        
+        private static PyObject makefile$18(PyFrame frame) {
+            frame.setlocal(3, frame.getglobal("None"));
+            if (frame.getlocal(0).__getattr__("istream").__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("ostream").__nonzero__()) {
+                    frame.setlocal(3, frame.getglobal("org").__getattr__("python").__getattr__("core").__getattr__("PyFile").__call__(new PyObject[] {frame.getlocal(0).__getattr__("istream"), frame.getlocal(0).__getattr__("ostream"), s$29, frame.getlocal(1)}));
+                }
+                else {
+                    frame.setlocal(3, frame.getglobal("org").__getattr__("python").__getattr__("core").__getattr__("PyFile").__call__(frame.getlocal(0).__getattr__("istream"), s$29, frame.getlocal(1)));
+                }
+            }
+            else if (frame.getlocal(0).__getattr__("ostream").__nonzero__()) {
+                frame.setlocal(3, frame.getglobal("org").__getattr__("python").__getattr__("core").__getattr__("PyFile").__call__(frame.getlocal(0).__getattr__("ostream"), s$29, frame.getlocal(1)));
+            }
+            else {
+                throw Py.makeException(frame.getglobal("IOError"), s$30);
+            }
+            if (frame.getlocal(3).__nonzero__()) {
+                return frame.getglobal("_tcpsocket").invoke("FileWrapper", frame.getlocal(0), frame.getlocal(3));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __init__$19(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            frame.getlocal(0).__setattr__("socket", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("sock", frame.getlocal(1).__getattr__("sock"));
+            frame.getlocal(0).__setattr__("istream", frame.getlocal(1).__getattr__("istream"));
+            frame.getlocal(0).__setattr__("ostream", frame.getlocal(1).__getattr__("ostream"));
+            frame.getlocal(0).__setattr__("file", frame.getlocal(2));
+            frame.getlocal(0).__setattr__("read", frame.getlocal(2).__getattr__("read"));
+            frame.getlocal(0).__setattr__("readline", frame.getlocal(2).__getattr__("readline"));
+            frame.getlocal(0).__setattr__("readlines", frame.getlocal(2).__getattr__("readlines"));
+            frame.getlocal(0).__setattr__("write", frame.getlocal(2).__getattr__("write"));
+            frame.getlocal(0).__setattr__("writelines", frame.getlocal(2).__getattr__("writelines"));
+            frame.getlocal(0).__setattr__("flush", frame.getlocal(2).__getattr__("flush"));
+            frame.getlocal(0).__setattr__("seek", frame.getlocal(2).__getattr__("seek"));
+            frame.getlocal(0).__setattr__("tell", frame.getlocal(2).__getattr__("tell"));
+            t$0$PyObject = i$15;
+            t$1$PyObject = frame.getlocal(0);
+            t$2$PyObject = t$1$PyObject.__getattr__("socket");
+            t$2$PyObject.__setattr__("file_count", t$2$PyObject.__getattr__("file_count").__iadd__(t$0$PyObject));
+            return Py.None;
+        }
+        
+        private static PyObject close$20(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("file").__getattr__("closed").__nonzero__()) {
+                return Py.None;
+            }
+            t$0$PyObject = i$15;
+            t$1$PyObject = frame.getlocal(0);
+            t$2$PyObject = t$1$PyObject.__getattr__("socket");
+            t$2$PyObject.__setattr__("file_count", t$2$PyObject.__getattr__("file_count").__isub__(t$0$PyObject));
+            frame.getlocal(0).__getattr__("file").invoke("close");
+            if (((t$0$PyObject = frame.getlocal(0).__getattr__("socket").__getattr__("file_count")._eq(i$22)).__nonzero__() ? frame.getlocal(0).__getattr__("socket").__getattr__("sock")._eq(i$22) : t$0$PyObject).__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("sock").__nonzero__()) {
+                    frame.getlocal(0).__getattr__("sock").invoke("close");
+                }
+                if (frame.getlocal(0).__getattr__("istream").__nonzero__()) {
+                    frame.getlocal(0).__getattr__("istream").invoke("close");
+                }
+                if (frame.getlocal(0).__getattr__("ostream").__nonzero__()) {
+                    frame.getlocal(0).__getattr__("ostream").invoke("close");
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject FileWrapper$21(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$18___init__));
+            frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_close));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject shutdown$22(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._in(new PyTuple(new PyObject[] {i$22, i$15, i$14})));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            if (frame.getlocal(1)._in(new PyTuple(new PyObject[] {i$22, i$14})).__nonzero__()) {
+                frame.getlocal(0).__setattr__("istream", frame.getglobal("None"));
+            }
+            if (frame.getlocal(1)._in(new PyTuple(new PyObject[] {i$15, i$14})).__nonzero__()) {
+                frame.getlocal(0).__setattr__("ostream", frame.getglobal("None"));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject close$23(PyFrame frame) {
+            frame.setlocal(2, frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(3, frame.getlocal(0).__getattr__("istream"));
+            frame.setlocal(1, frame.getlocal(0).__getattr__("ostream"));
+            frame.getlocal(0).__setattr__("sock", i$22);
+            frame.getlocal(0).__setattr__("istream", i$22);
+            frame.getlocal(0).__setattr__("ostream", i$22);
+            if (frame.getlocal(0).__getattr__("file_count")._eq(i$22).__nonzero__()) {
+                if (frame.getlocal(3).__nonzero__()) {
+                    frame.getlocal(3).invoke("close");
+                }
+                if (frame.getlocal(1).__nonzero__()) {
+                    frame.getlocal(1).invoke("close");
+                }
+                if (frame.getlocal(2).__nonzero__()) {
+                    frame.getlocal(2).invoke("close");
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _tcpsocket$24(PyFrame frame) {
+            frame.setlocal("sock", frame.getname("None"));
+            frame.setlocal("istream", frame.getname("None"));
+            frame.setlocal("ostream", frame.getname("None"));
+            frame.setlocal("addr", frame.getname("None"));
+            frame.setlocal("server", i$22);
+            frame.setlocal("file_count", i$22);
+            frame.setlocal("reuse_addr", i$22);
+            frame.setlocal("bind", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$6_bind));
+            frame.setlocal("listen", new PyFunction(frame.f_globals, new PyObject[] {i$26}, c$7_listen));
+            frame.setlocal("accept", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_accept));
+            frame.setlocal("connect", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$9_connect));
+            frame.setlocal("_setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$10__setup));
+            frame.setlocal("recv", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_recv));
+            frame.setlocal("send", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_send));
+            frame.setlocal("getsockname", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_getsockname));
+            frame.setlocal("getpeername", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_getpeername));
+            frame.setlocal("setsockopt", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_setsockopt));
+            frame.setlocal("getsockopt", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_getsockopt));
+            frame.setlocal("makefile", new PyFunction(frame.f_globals, new PyObject[] {s$31, i$15.__neg__()}, c$17_makefile));
+            frame.setlocal("FileWrapper", Py.makeClass("FileWrapper", new PyObject[] {}, c$20_FileWrapper, null));
+            frame.setlocal("shutdown", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_shutdown));
+            frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_close));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$25(PyFrame frame) {
+            frame.getlocal(0).__setattr__("sock", frame.getglobal("None"));
+            frame.getlocal(0).__setattr__("addr", frame.getglobal("None"));
+            return Py.None;
+        }
+        
+        private static PyObject bind$26(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)}));
+            }
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__());
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+            frame.setlocal(4, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            if (frame.getlocal(4)._eq(s$24).__nonzero__()) {
+                frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__(frame.getlocal(2)));
+            }
+            else {
+                frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(4)));
+                frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__(frame.getlocal(2), frame.getlocal(3)));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject connect$27(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)}));
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("addr").__not__());
+            if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) {
+                frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__());
+            }
+            frame.getlocal(0).__setattr__("addr", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject sendto$28(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            frame.setlocal(4, frame.getglobal("len").__call__(frame.getlocal(1)));
+            if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) {
+                frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__());
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(2), 2);
+            frame.setlocal(7, t$0$PyObject__[0]);
+            frame.setlocal(5, t$0$PyObject__[1]);
+            frame.setlocal(8, frame.getglobal("jarray").__getattr__("array").__call__(frame.getglobal("map").__call__(frame.getglobal("ord"), frame.getlocal(1)), s$28));
+            frame.setlocal(6, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(7)));
+            frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("DatagramPacket").__call__(new PyObject[] {frame.getlocal(8), frame.getlocal(4), frame.getlocal(6), frame.getlocal(5)}));
+            frame.getlocal(0).__getattr__("sock").invoke("send", frame.getlocal(3));
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject send$29(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("addr"));
+            return frame.getlocal(0).invoke("sendto", frame.getlocal(0).__getattr__("addr"));
+        }
+        
+        private static PyObject recvfrom$30(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(6, frame.getglobal("jarray").__getattr__("zeros").__call__(frame.getlocal(1), s$28));
+            frame.setlocal(2, frame.getglobal("java").__getattr__("net").__getattr__("DatagramPacket").__call__(frame.getlocal(6), frame.getlocal(1)));
+            frame.getlocal(0).__getattr__("sock").invoke("receive", frame.getlocal(2));
+            frame.setlocal(5, frame.getlocal(2).invoke("getAddress").invoke("getHostName"));
+            frame.setlocal(3, frame.getlocal(2).invoke("getPort"));
+            frame.setlocal(4, frame.getlocal(2).invoke("getLength"));
+            if (frame.getlocal(4)._lt(frame.getlocal(1)).__nonzero__()) {
+                frame.setlocal(6, frame.getlocal(6).__getslice__(null, frame.getlocal(4), null));
+            }
+            return new PyTuple(new PyObject[] {frame.getlocal(6).invoke("tostring"), new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(3)})});
+        }
+        
+        private static PyObject recv$31(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(3, frame.getglobal("jarray").__getattr__("zeros").__call__(frame.getlocal(1), s$28));
+            frame.setlocal(4, frame.getglobal("java").__getattr__("net").__getattr__("DatagramPacket").__call__(frame.getlocal(3), frame.getlocal(1)));
+            frame.getlocal(0).__getattr__("sock").invoke("receive", frame.getlocal(4));
+            frame.setlocal(2, frame.getlocal(4).invoke("getLength"));
+            if (frame.getlocal(2)._lt(frame.getlocal(1)).__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(3).__getslice__(null, frame.getlocal(2), null));
+            }
+            return frame.getlocal(3).invoke("tostring");
+        }
+        
+        private static PyObject getsockname$32(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getLocalAddress").invoke("getHostName"));
+            frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getLocalPort"));
+            return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject getpeername$33(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock"));
+            frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getInetAddress").invoke("getHostName"));
+            frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getPort"));
+            return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject __del__$34(PyFrame frame) {
+            frame.getlocal(0).invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject close$35(PyFrame frame) {
+            frame.setlocal(1, frame.getlocal(0).__getattr__("sock"));
+            frame.getlocal(0).__setattr__("sock", i$22);
+            frame.getlocal(1).invoke("close");
+            return Py.None;
+        }
+        
+        private static PyObject _udpsocket$36(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$24___init__));
+            frame.setlocal("bind", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$25_bind));
+            frame.setlocal("connect", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$26_connect));
+            frame.setlocal("sendto", new PyFunction(frame.f_globals, new PyObject[] {}, c$27_sendto));
+            frame.setlocal("send", new PyFunction(frame.f_globals, new PyObject[] {}, c$28_send));
+            frame.setlocal("recvfrom", new PyFunction(frame.f_globals, new PyObject[] {}, c$29_recvfrom));
+            frame.setlocal("recv", new PyFunction(frame.f_globals, new PyObject[] {}, c$30_recv));
+            frame.setlocal("getsockname", new PyFunction(frame.f_globals, new PyObject[] {}, c$31_getsockname));
+            frame.setlocal("getpeername", new PyFunction(frame.f_globals, new PyObject[] {}, c$32_getpeername));
+            frame.setlocal("__del__", new PyFunction(frame.f_globals, new PyObject[] {}, c$33___del__));
+            frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$34_close));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject test$37(PyFrame frame) {
+            frame.setlocal(0, frame.getglobal("socket").__call__(frame.getglobal("AF_INET"), frame.getglobal("SOCK_STREAM")));
+            frame.getlocal(0).invoke("connect", new PyTuple(new PyObject[] {s$24, i$32}));
+            frame.getlocal(0).invoke("send", s$33);
+            while (i$15.__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(0).invoke("recv", i$34));
+                Py.println(frame.getlocal(1));
+                if (frame.getlocal(1).__not__().__nonzero__()) {
+                    break;
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject main$38(PyFrame frame) {
+            frame.setglobal("__file__", s$36);
+            
+            /* Preliminary socket module.
+            
+            XXX Restrictions:
+            
+            - Only INET sockets
+            - No asynchronous behavior
+            - No socket options
+            - Can't do a very good gethostbyaddr() right...
+            
+             */
+            frame.setlocal("java", org.python.core.imp.importOne("java.net", frame));
+            frame.setlocal("org", org.python.core.imp.importOne("org.python.core", frame));
+            frame.setlocal("jarray", org.python.core.imp.importOne("jarray", frame));
+            frame.setlocal("string", org.python.core.imp.importOne("string", frame));
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13}));
+            frame.setlocal("error", frame.getname("IOError"));
+            frame.setlocal("AF_INET", i$14);
+            frame.setlocal("SOCK_DGRAM", i$15);
+            frame.setlocal("SOCK_STREAM", i$14);
+            frame.setlocal("SOCK_RAW", i$16);
+            frame.setlocal("SOCK_RDM", i$17);
+            frame.setlocal("SOCK_SEQPACKET", i$18);
+            frame.setlocal("SOL_SOCKET", i$19);
+            frame.setlocal("SO_REUSEADDR", i$17);
+            frame.setlocal("_gethostbyaddr", new PyFunction(frame.f_globals, new PyObject[] {}, c$0__gethostbyaddr));
+            frame.setlocal("getfqdn", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1_getfqdn));
+            frame.setlocal("gethostname", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_gethostname));
+            frame.setlocal("gethostbyname", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_gethostbyname));
+            frame.setlocal("gethostbyaddr", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_gethostbyaddr));
+            frame.setlocal("socket", new PyFunction(frame.f_globals, new PyObject[] {i$22}, c$5_socket));
+            frame.setlocal("_tcpsocket", Py.makeClass("_tcpsocket", new PyObject[] {}, c$23__tcpsocket, null));
+            frame.setlocal("_udpsocket", Py.makeClass("_udpsocket", new PyObject[] {}, c$35__udpsocket, null));
+            frame.setlocal("SocketType", frame.getname("_tcpsocket"));
+            frame.setlocal("test", new PyFunction(frame.f_globals, new PyObject[] {}, c$36_test));
+            if (frame.getname("__name__")._eq(s$35).__nonzero__()) {
+                frame.getname("test").__call__();
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("socket"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "socket";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(socket._PyInner.class, newargs, socket.jpy$packages, socket.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/sre$_PyInner.class b/server/jpywork/sre$_PyInner.class
new file mode 100644 (file)
index 0000000..daae819
Binary files /dev/null and b/server/jpywork/sre$_PyInner.class differ
diff --git a/server/jpywork/sre.class b/server/jpywork/sre.class
new file mode 100644 (file)
index 0000000..f2def40
Binary files /dev/null and b/server/jpywork/sre.class differ
diff --git a/server/jpywork/sre.java b/server/jpywork/sre.java
new file mode 100644 (file)
index 0000000..02321c0
--- /dev/null
@@ -0,0 +1,602 @@
+import org.python.core.*;
+
+public class sre extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject i$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject i$44;
+        private static PyObject i$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_match;
+        private static PyCode c$1_search;
+        private static PyCode c$2_sub;
+        private static PyCode c$3_subn;
+        private static PyCode c$4_split;
+        private static PyCode c$5_findall;
+        private static PyCode c$6_compile;
+        private static PyCode c$7_purge;
+        private static PyCode c$8_template;
+        private static PyCode c$9_escape;
+        private static PyCode c$10__join;
+        private static PyCode c$11__compile;
+        private static PyCode c$12__compile_repl;
+        private static PyCode c$13__expand;
+        private static PyCode c$14__sub;
+        private static PyCode c$15_filter;
+        private static PyCode c$16__subn;
+        private static PyCode c$17__split;
+        private static PyCode c$18__pickle;
+        private static PyCode c$19___init__;
+        private static PyCode c$20_scan;
+        private static PyCode c$21_Scanner;
+        private static PyCode c$22_main;
+        private static void initConstants() {
+            s$0 = Py.newString("match");
+            s$1 = Py.newString("search");
+            s$2 = Py.newString("sub");
+            s$3 = Py.newString("subn");
+            s$4 = Py.newString("split");
+            s$5 = Py.newString("findall");
+            s$6 = Py.newString("compile");
+            s$7 = Py.newString("purge");
+            s$8 = Py.newString("template");
+            s$9 = Py.newString("escape");
+            s$10 = Py.newString("I");
+            s$11 = Py.newString("L");
+            s$12 = Py.newString("M");
+            s$13 = Py.newString("S");
+            s$14 = Py.newString("X");
+            s$15 = Py.newString("U");
+            s$16 = Py.newString("IGNORECASE");
+            s$17 = Py.newString("LOCALE");
+            s$18 = Py.newString("MULTILINE");
+            s$19 = Py.newString("DOTALL");
+            s$20 = Py.newString("VERBOSE");
+            s$21 = Py.newString("UNICODE");
+            s$22 = Py.newString("error");
+            s$23 = Py.newString("2.1b2");
+            s$24 = Py.newString("Try to apply the pattern at the start of the string, returning\012    a match object, or None if no match was found.");
+            i$25 = Py.newInteger(0);
+            s$26 = Py.newString("Scan through string looking for a match to the pattern, returning\012    a match object, or None if no match was found.");
+            s$27 = Py.newString("Return the string obtained by replacing the leftmost\012    non-overlapping occurrences of the pattern in string by the\012    replacement repl");
+            s$28 = Py.newString("Return a 2-tuple containing (new_string, number).\012    new_string is the string obtained by replacing the leftmost\012    non-overlapping occurrences of the pattern in the source\012    string by the replacement repl.  number is the number of\012    substitutions that were made.");
+            s$29 = Py.newString("Split the source string by the occurrences of the pattern,\012    returning a list containing the resulting substrings.");
+            s$30 = Py.newString("Return a list of all non-overlapping matches in the string.\012\012    If one or more groups are present in the pattern, return a\012    list of groups; this will be a list of tuples if the pattern\012    has more than one group.\012\012    Empty matches are included in the result.");
+            s$31 = Py.newString("Compile a regular expression pattern, returning a pattern object.");
+            s$32 = Py.newString("Clear the regular expression cache");
+            s$33 = Py.newString("Compile a template pattern, returning a pattern object");
+            s$34 = Py.newString("Escape all non-alphanumeric characters in pattern.");
+            s$35 = Py.newString("a");
+            s$36 = Py.newString("z");
+            s$37 = Py.newString("A");
+            s$38 = Py.newString("Z");
+            s$39 = Py.newString("0");
+            s$40 = Py.newString("9");
+            s$41 = Py.newString("\000");
+            s$42 = Py.newString("\\000");
+            s$43 = Py.newString("\\");
+            i$44 = Py.newInteger(100);
+            i$45 = Py.newInteger(1);
+            s$46 = Py.newString("");
+            s$47 = Py.newString("/usr/share/jython/Lib-cpython/sre.py");
+            funcTable = new _PyInner();
+            c$0_match = Py.newCode(3, new String[] {"pattern", "string", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "match", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_search = Py.newCode(3, new String[] {"pattern", "string", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "search", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_sub = Py.newCode(4, new String[] {"pattern", "repl", "string", "count"}, "/usr/share/jython/Lib-cpython/sre.py", "sub", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_subn = Py.newCode(4, new String[] {"pattern", "repl", "string", "count"}, "/usr/share/jython/Lib-cpython/sre.py", "subn", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_split = Py.newCode(3, new String[] {"pattern", "string", "maxsplit"}, "/usr/share/jython/Lib-cpython/sre.py", "split", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_findall = Py.newCode(3, new String[] {"pattern", "string", "maxsplit"}, "/usr/share/jython/Lib-cpython/sre.py", "findall", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_compile = Py.newCode(2, new String[] {"pattern", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "compile", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_purge = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre.py", "purge", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_template = Py.newCode(2, new String[] {"pattern", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "template", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_escape = Py.newCode(1, new String[] {"pattern", "i", "s", "c"}, "/usr/share/jython/Lib-cpython/sre.py", "escape", false, false, funcTable, 9, null, null, 0, 1);
+            c$10__join = Py.newCode(2, new String[] {"seq", "sep"}, "/usr/share/jython/Lib-cpython/sre.py", "_join", false, false, funcTable, 10, null, null, 0, 1);
+            c$11__compile = Py.newCode(1, new String[] {"key", "p", "flags", "pattern", "v"}, "/usr/share/jython/Lib-cpython/sre.py", "_compile", true, false, funcTable, 11, null, null, 0, 1);
+            c$12__compile_repl = Py.newCode(1, new String[] {"key", "p", "repl", "pattern", "v"}, "/usr/share/jython/Lib-cpython/sre.py", "_compile_repl", true, false, funcTable, 12, null, null, 0, 1);
+            c$13__expand = Py.newCode(3, new String[] {"pattern", "match", "template"}, "/usr/share/jython/Lib-cpython/sre.py", "_expand", false, false, funcTable, 13, null, null, 0, 1);
+            c$14__sub = Py.newCode(4, new String[] {"pattern", "template", "string", "count"}, "/usr/share/jython/Lib-cpython/sre.py", "_sub", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_filter = Py.newCode(2, new String[] {"match", "template"}, "/usr/share/jython/Lib-cpython/sre.py", "filter", false, false, funcTable, 15, null, null, 0, 1);
+            c$16__subn = Py.newCode(4, new String[] {"pattern", "template", "string", "count", "filter", "append", "n", "m", "i", "e", "c", "b", "s"}, "/usr/share/jython/Lib-cpython/sre.py", "_subn", false, false, funcTable, 16, null, null, 0, 1);
+            c$17__split = Py.newCode(3, new String[] {"pattern", "string", "maxsplit", "append", "n", "m", "i", "g", "e", "extend", "c", "b", "s"}, "/usr/share/jython/Lib-cpython/sre.py", "_split", false, false, funcTable, 17, null, null, 0, 1);
+            c$18__pickle = Py.newCode(1, new String[] {"p"}, "/usr/share/jython/Lib-cpython/sre.py", "_pickle", false, false, funcTable, 18, null, null, 0, 1);
+            c$19___init__ = Py.newCode(2, new String[] {"self", "lexicon", "p", "SUBPATTERN", "phrase", "action", "BRANCH", "s"}, "/usr/share/jython/Lib-cpython/sre.py", "__init__", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_scan = Py.newCode(2, new String[] {"self", "string", "append", "m", "action", "j", "i", "match", "result"}, "/usr/share/jython/Lib-cpython/sre.py", "scan", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_Scanner = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre.py", "Scanner", false, false, funcTable, 21, null, null, 0, 0);
+            c$22_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre.py", "main", false, false, funcTable, 22, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$22_main == null) _PyInner.initConstants();
+            return c$22_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.match$1(frame);
+                case 1:
+                return _PyInner.search$2(frame);
+                case 2:
+                return _PyInner.sub$3(frame);
+                case 3:
+                return _PyInner.subn$4(frame);
+                case 4:
+                return _PyInner.split$5(frame);
+                case 5:
+                return _PyInner.findall$6(frame);
+                case 6:
+                return _PyInner.compile$7(frame);
+                case 7:
+                return _PyInner.purge$8(frame);
+                case 8:
+                return _PyInner.template$9(frame);
+                case 9:
+                return _PyInner.escape$10(frame);
+                case 10:
+                return _PyInner._join$11(frame);
+                case 11:
+                return _PyInner._compile$12(frame);
+                case 12:
+                return _PyInner._compile_repl$13(frame);
+                case 13:
+                return _PyInner._expand$14(frame);
+                case 14:
+                return _PyInner._sub$15(frame);
+                case 15:
+                return _PyInner.filter$16(frame);
+                case 16:
+                return _PyInner._subn$17(frame);
+                case 17:
+                return _PyInner._split$18(frame);
+                case 18:
+                return _PyInner._pickle$19(frame);
+                case 19:
+                return _PyInner.__init__$20(frame);
+                case 20:
+                return _PyInner.scan$21(frame);
+                case 21:
+                return _PyInner.Scanner$22(frame);
+                case 22:
+                return _PyInner.main$23(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject match$1(PyFrame frame) {
+            /* Try to apply the pattern at the start of the string, returning
+                a match object, or None if no match was found. */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(2)).invoke("match", frame.getlocal(1));
+        }
+        
+        private static PyObject search$2(PyFrame frame) {
+            /* Scan through string looking for a match to the pattern, returning
+                a match object, or None if no match was found. */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(2)).invoke("search", frame.getlocal(1));
+        }
+        
+        private static PyObject sub$3(PyFrame frame) {
+            /* Return the string obtained by replacing the leftmost
+                non-overlapping occurrences of the pattern in string by the
+                replacement repl */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("sub", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)});
+        }
+        
+        private static PyObject subn$4(PyFrame frame) {
+            /* Return a 2-tuple containing (new_string, number).
+                new_string is the string obtained by replacing the leftmost
+                non-overlapping occurrences of the pattern in the source
+                string by the replacement repl.  number is the number of
+                substitutions that were made. */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("subn", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)});
+        }
+        
+        private static PyObject split$5(PyFrame frame) {
+            /* Split the source string by the occurrences of the pattern,
+                returning a list containing the resulting substrings. */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("split", frame.getlocal(1), frame.getlocal(2));
+        }
+        
+        private static PyObject findall$6(PyFrame frame) {
+            /* Return a list of all non-overlapping matches in the string.
+            
+                If one or more groups are present in the pattern, return a
+                list of groups; this will be a list of tuples if the pattern
+                has more than one group.
+            
+                Empty matches are included in the result. */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("findall", frame.getlocal(1), frame.getlocal(2));
+        }
+        
+        private static PyObject compile$7(PyFrame frame) {
+            /* Compile a regular expression pattern, returning a pattern object. */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject purge$8(PyFrame frame) {
+            /* Clear the regular expression cache */
+            frame.getglobal("_cache").invoke("clear");
+            frame.getglobal("_cache_repl").invoke("clear");
+            return Py.None;
+        }
+        
+        private static PyObject template$9(PyFrame frame) {
+            /* Compile a template pattern, returning a pattern object */
+            return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(1)._or(frame.getglobal("T")));
+        }
+        
+        private static PyObject escape$10(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject;
+            
+            // Code
+            /* Escape all non-alphanumeric characters in pattern. */
+            frame.setlocal(2, frame.getglobal("list").__call__(frame.getlocal(0)));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(0)));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(1, t$0$PyObject);
+                frame.setlocal(3, frame.getlocal(0).__getitem__(frame.getlocal(1)));
+                if (((t$2$PyObject = ((t$3$PyObject = (s$35._le(t$4$PyObject = frame.getlocal(3)).__nonzero__() ? t$4$PyObject._le(s$36) : Py.Zero)).__nonzero__() ? t$3$PyObject : (s$37._le(t$4$PyObject = frame.getlocal(3)).__nonzero__() ? t$4$PyObject._le(s$38) : Py.Zero))).__nonzero__() ? t$2$PyObject : (s$39._le(t$3$PyObject = frame.getlocal(3)).__nonzero__() ? t$3$PyObject._le(s$40) : Py.Zero)).__not__().__nonzero__()) {
+                    if (frame.getlocal(3)._eq(s$41).__nonzero__()) {
+                        frame.getlocal(2).__setitem__(frame.getlocal(1), s$42);
+                    }
+                    else {
+                        frame.getlocal(2).__setitem__(frame.getlocal(1), s$43._add(frame.getlocal(3)));
+                    }
+                }
+            }
+            return frame.getglobal("_join").__call__(frame.getlocal(2), frame.getlocal(0));
+        }
+        
+        private static PyObject _join$11(PyFrame frame) {
+            return frame.getglobal("string").__getattr__("join").__call__(frame.getlocal(0), frame.getlocal(1).__getslice__(null, i$25, null));
+        }
+        
+        private static PyObject _compile$12(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            
+            // Code
+            frame.setlocal(1, frame.getglobal("_cache").invoke("get", frame.getlocal(0)));
+            if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) {
+                return frame.getlocal(1);
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            if (frame.getglobal("type").__call__(frame.getlocal(3))._notin(frame.getglobal("sre_compile").__getattr__("STRING_TYPES")).__nonzero__()) {
+                return frame.getlocal(3);
+            }
+            try {
+                frame.setlocal(1, frame.getglobal("sre_compile").__getattr__("compile").__call__(frame.getlocal(3), frame.getlocal(2)));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("error"))) {
+                    frame.setlocal(4, t$0$PyException.value);
+                    throw Py.makeException(frame.getglobal("error"), frame.getlocal(4));
+                }
+                else throw t$0$PyException;
+            }
+            if (frame.getglobal("len").__call__(frame.getglobal("_cache"))._ge(frame.getglobal("_MAXCACHE")).__nonzero__()) {
+                frame.getglobal("_cache").invoke("clear");
+            }
+            frame.getglobal("_cache").__setitem__(frame.getlocal(0), frame.getlocal(1));
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject _compile_repl$13(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            
+            // Code
+            frame.setlocal(1, frame.getglobal("_cache_repl").invoke("get", frame.getlocal(0)));
+            if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) {
+                return frame.getlocal(1);
+            }
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0), 2);
+            frame.setlocal(2, t$0$PyObject__[0]);
+            frame.setlocal(3, t$0$PyObject__[1]);
+            try {
+                frame.setlocal(1, frame.getglobal("sre_parse").__getattr__("parse_template").__call__(frame.getlocal(2), frame.getlocal(3)));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("error"))) {
+                    frame.setlocal(4, t$0$PyException.value);
+                    throw Py.makeException(frame.getglobal("error"), frame.getlocal(4));
+                }
+                else throw t$0$PyException;
+            }
+            if (frame.getglobal("len").__call__(frame.getglobal("_cache_repl"))._ge(frame.getglobal("_MAXCACHE")).__nonzero__()) {
+                frame.getglobal("_cache_repl").invoke("clear");
+            }
+            frame.getglobal("_cache_repl").__setitem__(frame.getlocal(0), frame.getlocal(1));
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject _expand$14(PyFrame frame) {
+            frame.setlocal(2, frame.getglobal("sre_parse").__getattr__("parse_template").__call__(frame.getlocal(2), frame.getlocal(0)));
+            return frame.getglobal("sre_parse").__getattr__("expand_template").__call__(frame.getlocal(2), frame.getlocal(1));
+        }
+        
+        private static PyObject _sub$15(PyFrame frame) {
+            return frame.getglobal("_subn").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}).__getitem__(i$25);
+        }
+        
+        private static PyObject filter$16(PyFrame frame) {
+            return frame.getglobal("sre_parse").__getattr__("expand_template").__call__(frame.getlocal(1), frame.getlocal(0));
+        }
+        
+        private static PyObject _subn$17(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (frame.getglobal("callable").__call__(frame.getlocal(1)).__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(1));
+            }
+            else {
+                frame.setlocal(1, frame.getglobal("_compile_repl").__call__(frame.getlocal(1), frame.getlocal(0)));
+                frame.setlocal(4, new PyFunction(frame.f_globals, new PyObject[] {frame.getlocal(1)}, c$15_filter));
+            }
+            t$0$PyObject = i$25;
+            frame.setlocal(6, t$0$PyObject);
+            frame.setlocal(8, t$0$PyObject);
+            frame.setlocal(12, new PyList(new PyObject[] {}));
+            frame.setlocal(5, frame.getlocal(12).__getattr__("append"));
+            frame.setlocal(10, frame.getlocal(0).invoke("scanner", frame.getlocal(2)));
+            while (((t$0$PyObject = frame.getlocal(3).__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(6)._lt(frame.getlocal(3))).__nonzero__()) {
+                frame.setlocal(7, frame.getlocal(10).invoke("search"));
+                if (frame.getlocal(7).__not__().__nonzero__()) {
+                    break;
+                }
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(7).invoke("span"), 2);
+                frame.setlocal(11, t$0$PyObject__[0]);
+                frame.setlocal(9, t$0$PyObject__[1]);
+                if (frame.getlocal(8)._lt(frame.getlocal(11)).__nonzero__()) {
+                    frame.getlocal(5).__call__(frame.getlocal(2).__getslice__(frame.getlocal(8), frame.getlocal(11), null));
+                }
+                frame.getlocal(5).__call__(frame.getlocal(4).__call__(frame.getlocal(7)));
+                frame.setlocal(8, frame.getlocal(9));
+                frame.setlocal(6, frame.getlocal(6)._add(i$45));
+            }
+            frame.getlocal(5).__call__(frame.getlocal(2).__getslice__(frame.getlocal(8), null, null));
+            return new PyTuple(new PyObject[] {frame.getglobal("_join").__call__(frame.getlocal(12), frame.getlocal(2).__getslice__(null, i$25, null)), frame.getlocal(6)});
+        }
+        
+        private static PyObject _split$18(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject;
+            
+            // Code
+            t$0$PyObject = i$25;
+            frame.setlocal(4, t$0$PyObject);
+            frame.setlocal(6, t$0$PyObject);
+            frame.setlocal(12, new PyList(new PyObject[] {}));
+            frame.setlocal(3, frame.getlocal(12).__getattr__("append"));
+            frame.setlocal(9, frame.getlocal(12).__getattr__("extend"));
+            frame.setlocal(10, frame.getlocal(0).invoke("scanner", frame.getlocal(1)));
+            frame.setlocal(7, frame.getlocal(0).__getattr__("groups"));
+            while (((t$0$PyObject = frame.getlocal(2).__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(4)._lt(frame.getlocal(2))).__nonzero__()) {
+                frame.setlocal(5, frame.getlocal(10).invoke("search"));
+                if (frame.getlocal(5).__not__().__nonzero__()) {
+                    break;
+                }
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(5).invoke("span"), 2);
+                frame.setlocal(11, t$0$PyObject__[0]);
+                frame.setlocal(8, t$0$PyObject__[1]);
+                if (frame.getlocal(11)._eq(frame.getlocal(8)).__nonzero__()) {
+                    if (frame.getlocal(6)._ge(frame.getglobal("len").__call__(frame.getlocal(1))).__nonzero__()) {
+                        break;
+                    }
+                    continue;
+                }
+                frame.getlocal(3).__call__(frame.getlocal(1).__getslice__(frame.getlocal(6), frame.getlocal(11), null));
+                if (((t$0$PyObject = frame.getlocal(7)).__nonzero__() ? frame.getlocal(11)._ne(frame.getlocal(8)) : t$0$PyObject).__nonzero__()) {
+                    frame.getlocal(9).__call__(frame.getglobal("list").__call__(frame.getlocal(5).invoke("groups")));
+                }
+                frame.setlocal(6, frame.getlocal(8));
+                frame.setlocal(4, frame.getlocal(4)._add(i$45));
+            }
+            frame.getlocal(3).__call__(frame.getlocal(1).__getslice__(frame.getlocal(6), null, null));
+            return frame.getlocal(12);
+        }
+        
+        private static PyObject _pickle$19(PyFrame frame) {
+            return new PyTuple(new PyObject[] {frame.getglobal("_compile"), new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("pattern"), frame.getlocal(0).__getattr__("flags")})});
+        }
+        
+        private static PyObject __init__$20(PyFrame frame) {
+            PyObject[] imp_accu;
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            imp_accu = org.python.core.imp.importFrom("sre_constants", new String[] {"BRANCH", "SUBPATTERN"}, frame);
+            frame.setlocal(6, imp_accu[0]);
+            frame.setlocal(3, imp_accu[1]);
+            imp_accu = null;
+            frame.getlocal(0).__setattr__("lexicon", frame.getlocal(1));
+            frame.setlocal(2, new PyList(new PyObject[] {}));
+            frame.setlocal(7, frame.getglobal("sre_parse").__getattr__("Pattern").__call__());
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(1);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(4, t$0$PyObject__[0]);
+                frame.setlocal(5, t$0$PyObject__[1]);
+                frame.getlocal(2).invoke("append", frame.getglobal("sre_parse").__getattr__("SubPattern").__call__(frame.getlocal(7), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getlocal(3), new PyTuple(new PyObject[] {frame.getglobal("len").__call__(frame.getlocal(2)), frame.getglobal("sre_parse").__getattr__("parse").__call__(frame.getlocal(4))})})})));
+            }
+            frame.setlocal(2, frame.getglobal("sre_parse").__getattr__("SubPattern").__call__(frame.getlocal(7), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getlocal(6), new PyTuple(new PyObject[] {frame.getglobal("None"), frame.getlocal(2)})})})));
+            frame.getlocal(7).__setattr__("groups", frame.getglobal("len").__call__(frame.getlocal(2)));
+            frame.getlocal(0).__setattr__("scanner", frame.getglobal("sre_compile").__getattr__("compile").__call__(frame.getlocal(2)));
+            return Py.None;
+        }
+        
+        private static PyObject scan$21(PyFrame frame) {
+            frame.setlocal(8, new PyList(new PyObject[] {}));
+            frame.setlocal(2, frame.getlocal(8).__getattr__("append"));
+            frame.setlocal(7, frame.getlocal(0).__getattr__("scanner").__getattr__("match"));
+            frame.setlocal(6, i$25);
+            while (i$45.__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(7).__call__(frame.getlocal(1), frame.getlocal(6)));
+                if (frame.getlocal(3).__not__().__nonzero__()) {
+                    break;
+                }
+                frame.setlocal(5, frame.getlocal(3).invoke("end"));
+                if (frame.getlocal(6)._eq(frame.getlocal(5)).__nonzero__()) {
+                    break;
+                }
+                frame.setlocal(4, frame.getlocal(0).__getattr__("lexicon").__getitem__(frame.getlocal(3).__getattr__("lastindex")).__getitem__(i$45));
+                if (frame.getglobal("callable").__call__(frame.getlocal(4)).__nonzero__()) {
+                    frame.getlocal(0).__setattr__("match", frame.getlocal(3));
+                    frame.setlocal(4, frame.getlocal(4).__call__(frame.getlocal(0), frame.getlocal(3).invoke("group")));
+                }
+                if (frame.getlocal(4)._isnot(frame.getglobal("None")).__nonzero__()) {
+                    frame.getlocal(2).__call__(frame.getlocal(4));
+                }
+                frame.setlocal(6, frame.getlocal(5));
+            }
+            return new PyTuple(new PyObject[] {frame.getlocal(8), frame.getlocal(1).__getslice__(frame.getlocal(6), null, null)});
+        }
+        
+        private static PyObject Scanner$22(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$19___init__));
+            frame.setlocal("scan", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_scan));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$23(PyFrame frame) {
+            frame.setglobal("__file__", s$47);
+            
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal("sre_compile", org.python.core.imp.importOne("sre_compile", frame));
+            frame.setlocal("sre_parse", org.python.core.imp.importOne("sre_parse", frame));
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$0, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$20, s$21, s$22}));
+            frame.setlocal("__version__", s$23);
+            frame.setlocal("string", org.python.core.imp.importOne("string", frame));
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_IGNORECASE");
+            frame.setlocal("I", t$0$PyObject);
+            frame.setlocal("IGNORECASE", t$0$PyObject);
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_LOCALE");
+            frame.setlocal("L", t$0$PyObject);
+            frame.setlocal("LOCALE", t$0$PyObject);
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_UNICODE");
+            frame.setlocal("U", t$0$PyObject);
+            frame.setlocal("UNICODE", t$0$PyObject);
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_MULTILINE");
+            frame.setlocal("M", t$0$PyObject);
+            frame.setlocal("MULTILINE", t$0$PyObject);
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_DOTALL");
+            frame.setlocal("S", t$0$PyObject);
+            frame.setlocal("DOTALL", t$0$PyObject);
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_VERBOSE");
+            frame.setlocal("X", t$0$PyObject);
+            frame.setlocal("VERBOSE", t$0$PyObject);
+            t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_TEMPLATE");
+            frame.setlocal("T", t$0$PyObject);
+            frame.setlocal("TEMPLATE", t$0$PyObject);
+            frame.setlocal("DEBUG", frame.getname("sre_compile").__getattr__("SRE_FLAG_DEBUG"));
+            frame.setlocal("error", frame.getname("sre_compile").__getattr__("error"));
+            frame.setlocal("match", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$0_match));
+            frame.setlocal("search", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$1_search));
+            frame.setlocal("sub", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$2_sub));
+            frame.setlocal("subn", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$3_subn));
+            frame.setlocal("split", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$4_split));
+            frame.setlocal("findall", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$5_findall));
+            frame.setlocal("compile", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$6_compile));
+            frame.setlocal("purge", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_purge));
+            frame.setlocal("template", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$8_template));
+            frame.setlocal("escape", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_escape));
+            frame.setlocal("_cache", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("_cache_repl", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("_MAXCACHE", i$44);
+            frame.setlocal("_join", new PyFunction(frame.f_globals, new PyObject[] {}, c$10__join));
+            frame.setlocal("_compile", new PyFunction(frame.f_globals, new PyObject[] {}, c$11__compile));
+            frame.setlocal("_compile_repl", new PyFunction(frame.f_globals, new PyObject[] {}, c$12__compile_repl));
+            frame.setlocal("_expand", new PyFunction(frame.f_globals, new PyObject[] {}, c$13__expand));
+            frame.setlocal("_sub", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$14__sub));
+            frame.setlocal("_subn", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$16__subn));
+            frame.setlocal("_split", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$17__split));
+            frame.setlocal("copy_reg", org.python.core.imp.importOne("copy_reg", frame));
+            frame.setlocal("_pickle", new PyFunction(frame.f_globals, new PyObject[] {}, c$18__pickle));
+            frame.getname("copy_reg").__getattr__("pickle").__call__(frame.getname("type").__call__(frame.getname("_compile").__call__(s$46, i$25)), frame.getname("_pickle"), frame.getname("_compile"));
+            frame.setlocal("Scanner", Py.makeClass("Scanner", new PyObject[] {}, c$21_Scanner, null));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("sre"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "sre";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(sre._PyInner.class, newargs, sre.jpy$packages, sre.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/sre_compile$_PyInner.class b/server/jpywork/sre_compile$_PyInner.class
new file mode 100644 (file)
index 0000000..25d8672
Binary files /dev/null and b/server/jpywork/sre_compile$_PyInner.class differ
diff --git a/server/jpywork/sre_compile.class b/server/jpywork/sre_compile.class
new file mode 100644 (file)
index 0000000..17636b7
Binary files /dev/null and b/server/jpywork/sre_compile.class differ
diff --git a/server/jpywork/sre_compile.java b/server/jpywork/sre_compile.java
new file mode 100644 (file)
index 0000000..6ab5235
--- /dev/null
@@ -0,0 +1,710 @@
+import org.python.core.*;
+
+public class sre_compile extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject i$1;
+        private static PyObject i$2;
+        private static PyObject s$3;
+        private static PyObject i$4;
+        private static PyObject i$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject i$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject i$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_fixup;
+        private static PyCode c$1_lambda;
+        private static PyCode c$2__compile;
+        private static PyCode c$3_lambda;
+        private static PyCode c$4__compile_charset;
+        private static PyCode c$5__optimize_charset;
+        private static PyCode c$6__simple;
+        private static PyCode c$7__compile_info;
+        private static PyCode c$8__code;
+        private static PyCode c$9_compile;
+        private static PyCode c$10_main;
+        private static void initConstants() {
+            s$0 = Py.newString("SRE module mismatch");
+            i$1 = Py.newInteger(65535);
+            i$2 = Py.newInteger(0);
+            s$3 = Py.newString("internal: unsupported template operator");
+            i$4 = Py.newInteger(1);
+            i$5 = Py.newInteger(2);
+            s$6 = Py.newString("look-behind requires fixed-width pattern");
+            s$7 = Py.newString("unsupported operand type");
+            s$8 = Py.newString("internal: unsupported set operator");
+            i$9 = Py.newInteger(256);
+            s$10 = Py.newString("nothing to repeat");
+            s$11 = Py.newString("");
+            i$12 = Py.newInteger(100);
+            s$13 = Py.newString("sorry, but this version only supports 100 named groups");
+            s$14 = Py.newString("/usr/share/jython/Lib-cpython/sre_compile.py");
+            funcTable = new _PyInner();
+            c$0_fixup = Py.newCode(2, new String[] {"literal", "flags"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "fixup", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_lambda = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "<lambda>", false, false, funcTable, 1, null, null, 0, 1);
+            c$2__compile = Py.newCode(3, new String[] {"code", "pattern", "flags", "av", "emit", "skip", "lo", "op", "fixup", "hi", "tail"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_compile", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_lambda = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "<lambda>", false, false, funcTable, 3, null, null, 0, 1);
+            c$4__compile_charset = Py.newCode(4, new String[] {"charset", "flags", "code", "fixup", "op", "av", "emit"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_compile_charset", false, false, funcTable, 4, null, null, 0, 1);
+            c$5__optimize_charset = Py.newCode(2, new String[] {"charset", "fixup", "op", "v", "av", "charmap", "p", "n", "m", "runs", "i", "out", "c", "data"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_optimize_charset", false, false, funcTable, 5, null, null, 0, 1);
+            c$6__simple = Py.newCode(1, new String[] {"av", "hi", "lo"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_simple", false, false, funcTable, 6, null, null, 0, 1);
+            c$7__compile_info = Py.newCode(3, new String[] {"code", "pattern", "flags", "hi", "charset", "lo", "op", "av", "emit", "p", "skip", "prefix", "i", "mask", "table", "c", "prefix_skip"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_compile_info", false, false, funcTable, 7, null, null, 0, 1);
+            c$8__code = Py.newCode(2, new String[] {"p", "flags", "code"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_code", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_compile = Py.newCode(2, new String[] {"p", "flags", "groupindex", "code", "indexgroup", "k", "i", "sre_parse", "pattern"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "compile", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_compile.py", "main", false, false, funcTable, 10, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$10_main == null) _PyInner.initConstants();
+            return c$10_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.fixup$1(frame);
+                case 1:
+                return _PyInner.lambda$2(frame);
+                case 2:
+                return _PyInner._compile$3(frame);
+                case 3:
+                return _PyInner.lambda$4(frame);
+                case 4:
+                return _PyInner._compile_charset$5(frame);
+                case 5:
+                return _PyInner._optimize_charset$6(frame);
+                case 6:
+                return _PyInner._simple$7(frame);
+                case 7:
+                return _PyInner._compile_info$8(frame);
+                case 8:
+                return _PyInner._code$9(frame);
+                case 9:
+                return _PyInner.compile$10(frame);
+                case 10:
+                return _PyInner.main$11(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject fixup$1(PyFrame frame) {
+            return frame.getglobal("_sre").__getattr__("getlower").__call__(frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject lambda$2(PyFrame frame) {
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject _compile$3(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject;
+            
+            // Code
+            frame.setlocal(4, frame.getlocal(0).__getattr__("append"));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(1);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(7, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+                if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("NOT_LITERAL")})).__nonzero__()) {
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("OP_IGNORE").__getitem__(frame.getlocal(7))));
+                        frame.getlocal(4).__call__(frame.getglobal("_sre").__getattr__("getlower").__call__(frame.getlocal(3), frame.getlocal(2)));
+                    }
+                    else {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                        frame.getlocal(4).__call__(frame.getlocal(3));
+                    }
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("IN")).__nonzero__()) {
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("OP_IGNORE").__getitem__(frame.getlocal(7))));
+                        frame.setlocal(8, new PyFunction(frame.f_globals, new PyObject[] {frame.getlocal(2)}, c$0_fixup));
+                    }
+                    else {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                        frame.setlocal(8, new PyFunction(frame.f_globals, new PyObject[] {}, c$1_lambda));
+                    }
+                    frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0)));
+                    frame.getlocal(4).__call__(i$2);
+                    frame.getglobal("_compile_charset").__call__(new PyObject[] {frame.getlocal(3), frame.getlocal(2), frame.getlocal(0), frame.getlocal(8)});
+                    frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5)));
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("ANY")).__nonzero__()) {
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_DOTALL")).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("ANY_ALL")));
+                    }
+                    else {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("ANY")));
+                    }
+                }
+                else if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("REPEAT"), frame.getglobal("MIN_REPEAT"), frame.getglobal("MAX_REPEAT")})).__nonzero__()) {
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_TEMPLATE")).__nonzero__()) {
+                        throw Py.makeException(frame.getglobal("error"), s$3);
+                    }
+                    else if (((t$2$PyObject = frame.getglobal("_simple").__call__(frame.getlocal(3))).__nonzero__() ? frame.getlocal(7)._eq(frame.getglobal("MAX_REPEAT")) : t$2$PyObject).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("REPEAT_ONE")));
+                        frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0)));
+                        frame.getlocal(4).__call__(i$2);
+                        frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2));
+                        frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$4));
+                        frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$5), frame.getlocal(2));
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS")));
+                        frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5)));
+                    }
+                    else {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("REPEAT")));
+                        frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0)));
+                        frame.getlocal(4).__call__(i$2);
+                        frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2));
+                        frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$4));
+                        frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$5), frame.getlocal(2));
+                        frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5)));
+                        if (frame.getlocal(7)._eq(frame.getglobal("MAX_REPEAT")).__nonzero__()) {
+                            frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MAX_UNTIL")));
+                        }
+                        else {
+                            frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MIN_UNTIL")));
+                        }
+                    }
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("SUBPATTERN")).__nonzero__()) {
+                    if (frame.getlocal(3).__getitem__(i$2).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MARK")));
+                        frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2)._sub(i$4)._mul(i$5));
+                    }
+                    frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$4), frame.getlocal(2));
+                    if (frame.getlocal(3).__getitem__(i$2).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MARK")));
+                        frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2)._sub(i$4)._mul(i$5)._add(i$4));
+                    }
+                }
+                else if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("SUCCESS"), frame.getglobal("FAILURE")})).__nonzero__()) {
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                }
+                else if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("ASSERT"), frame.getglobal("ASSERT_NOT")})).__nonzero__()) {
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                    frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0)));
+                    frame.getlocal(4).__call__(i$2);
+                    if (frame.getlocal(3).__getitem__(i$2)._ge(i$2).__nonzero__()) {
+                        frame.getlocal(4).__call__(i$2);
+                    }
+                    else {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(3).__getitem__(i$4).invoke("getwidth"), 2);
+                        frame.setlocal(6, t$0$PyObject__[0]);
+                        frame.setlocal(9, t$0$PyObject__[1]);
+                        if (frame.getlocal(6)._ne(frame.getlocal(9)).__nonzero__()) {
+                            throw Py.makeException(frame.getglobal("error"), s$6);
+                        }
+                        frame.getlocal(4).__call__(frame.getlocal(6));
+                    }
+                    frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$4), frame.getlocal(2));
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS")));
+                    frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5)));
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("CALL")).__nonzero__()) {
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                    frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0)));
+                    frame.getlocal(4).__call__(i$2);
+                    frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3), frame.getlocal(2));
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS")));
+                    frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5)));
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("AT")).__nonzero__()) {
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_MULTILINE")).__nonzero__()) {
+                        frame.setlocal(3, frame.getglobal("AT_MULTILINE").invoke("get", frame.getlocal(3), frame.getlocal(3)));
+                    }
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_LOCALE")).__nonzero__()) {
+                        frame.setlocal(3, frame.getglobal("AT_LOCALE").invoke("get", frame.getlocal(3), frame.getlocal(3)));
+                    }
+                    else if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_UNICODE")).__nonzero__()) {
+                        frame.setlocal(3, frame.getglobal("AT_UNICODE").invoke("get", frame.getlocal(3), frame.getlocal(3)));
+                    }
+                    frame.getlocal(4).__call__(frame.getglobal("ATCODES").__getitem__(frame.getlocal(3)));
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("BRANCH")).__nonzero__()) {
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                    frame.setlocal(10, new PyList(new PyObject[] {}));
+                    t$1$int = 0;
+                    t$3$PyObject = frame.getlocal(3).__getitem__(i$4);
+                    while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                        frame.setlocal(3, t$2$PyObject);
+                        frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0)));
+                        frame.getlocal(4).__call__(i$2);
+                        frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3), frame.getlocal(2));
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("JUMP")));
+                        frame.getlocal(10).invoke("append", frame.getglobal("len").__call__(frame.getlocal(0)));
+                        frame.getlocal(4).__call__(i$2);
+                        frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5)));
+                    }
+                    frame.getlocal(4).__call__(i$2);
+                    t$2$int = 0;
+                    t$5$PyObject = frame.getlocal(10);
+                    while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                        frame.setlocal(10, t$4$PyObject);
+                        frame.getlocal(0).__setitem__(frame.getlocal(10), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(10)));
+                    }
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("CATEGORY")).__nonzero__()) {
+                    frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_LOCALE")).__nonzero__()) {
+                        frame.setlocal(3, frame.getglobal("CH_LOCALE").__getitem__(frame.getlocal(3)));
+                    }
+                    else if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_UNICODE")).__nonzero__()) {
+                        frame.setlocal(3, frame.getglobal("CH_UNICODE").__getitem__(frame.getlocal(3)));
+                    }
+                    frame.getlocal(4).__call__(frame.getglobal("CHCODES").__getitem__(frame.getlocal(3)));
+                }
+                else if (frame.getlocal(7)._is(frame.getglobal("GROUPREF")).__nonzero__()) {
+                    if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__nonzero__()) {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("OP_IGNORE").__getitem__(frame.getlocal(7))));
+                    }
+                    else {
+                        frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7)));
+                    }
+                    frame.getlocal(4).__call__(frame.getlocal(3)._sub(i$4));
+                }
+                else {
+                    throw Py.makeException(frame.getglobal("ValueError"), new PyTuple(new PyObject[] {s$7, frame.getlocal(7)}));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject lambda$4(PyFrame frame) {
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject _compile_charset$5(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(6, frame.getlocal(2).__getattr__("append"));
+            if (frame.getlocal(3).__not__().__nonzero__()) {
+                frame.setlocal(3, new PyFunction(frame.f_globals, new PyObject[] {}, c$3_lambda));
+            }
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("_optimize_charset").__call__(frame.getlocal(0), frame.getlocal(3));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(4, t$0$PyObject__[0]);
+                frame.setlocal(5, t$0$PyObject__[1]);
+                frame.getlocal(6).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(4)));
+                if (frame.getlocal(4)._is(frame.getglobal("NEGATE")).__nonzero__()) {
+                    // pass
+                }
+                else if (frame.getlocal(4)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                    frame.getlocal(6).__call__(frame.getlocal(3).__call__(frame.getlocal(5)));
+                }
+                else if (frame.getlocal(4)._is(frame.getglobal("RANGE")).__nonzero__()) {
+                    frame.getlocal(6).__call__(frame.getlocal(3).__call__(frame.getlocal(5).__getitem__(i$2)));
+                    frame.getlocal(6).__call__(frame.getlocal(3).__call__(frame.getlocal(5).__getitem__(i$4)));
+                }
+                else if (frame.getlocal(4)._is(frame.getglobal("CHARSET")).__nonzero__()) {
+                    frame.getlocal(2).invoke("extend", frame.getlocal(5));
+                }
+                else if (frame.getlocal(4)._is(frame.getglobal("CATEGORY")).__nonzero__()) {
+                    if (frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_LOCALE")).__nonzero__()) {
+                        frame.getlocal(6).__call__(frame.getglobal("CHCODES").__getitem__(frame.getglobal("CH_LOCALE").__getitem__(frame.getlocal(5))));
+                    }
+                    else if (frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_UNICODE")).__nonzero__()) {
+                        frame.getlocal(6).__call__(frame.getglobal("CHCODES").__getitem__(frame.getglobal("CH_UNICODE").__getitem__(frame.getlocal(5))));
+                    }
+                    else {
+                        frame.getlocal(6).__call__(frame.getglobal("CHCODES").__getitem__(frame.getlocal(5)));
+                    }
+                }
+                else {
+                    throw Py.makeException(frame.getglobal("error"), s$8);
+                }
+            }
+            frame.getlocal(6).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("FAILURE")));
+            return Py.None;
+        }
+        
+        private static PyObject _optimize_charset$6(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int, t$3$int, t$4$int;
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject, t$8$PyObject, t$9$PyObject;
+            
+            // Code
+            frame.setlocal(11, new PyList(new PyObject[] {}));
+            frame.setlocal(5, new PyList(new PyObject[] {i$2})._mul(i$9));
+            try {
+                t$0$int = 0;
+                t$1$PyObject = frame.getlocal(0);
+                while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                    frame.setlocal(2, t$0$PyObject__[0]);
+                    frame.setlocal(4, t$0$PyObject__[1]);
+                    if (frame.getlocal(2)._is(frame.getglobal("NEGATE")).__nonzero__()) {
+                        frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4)}));
+                    }
+                    else if (frame.getlocal(2)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                        frame.getlocal(5).__setitem__(frame.getlocal(1).__call__(frame.getlocal(4)), i$4);
+                    }
+                    else if (frame.getlocal(2)._is(frame.getglobal("RANGE")).__nonzero__()) {
+                        t$1$int = 0;
+                        t$3$PyObject = frame.getglobal("range").__call__(frame.getlocal(1).__call__(frame.getlocal(4).__getitem__(i$2)), frame.getlocal(1).__call__(frame.getlocal(4).__getitem__(i$4))._add(i$4));
+                        while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                            frame.setlocal(10, t$2$PyObject);
+                            frame.getlocal(5).__setitem__(frame.getlocal(10), i$4);
+                        }
+                    }
+                    else if (frame.getlocal(2)._is(frame.getglobal("CATEGORY")).__nonzero__()) {
+                        return frame.getlocal(0);
+                    }
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) {
+                    return frame.getlocal(0);
+                }
+                else throw t$0$PyException;
+            }
+            t$4$PyObject = i$2;
+            frame.setlocal(10, t$4$PyObject);
+            frame.setlocal(6, t$4$PyObject);
+            frame.setlocal(7, t$4$PyObject);
+            frame.setlocal(9, new PyList(new PyObject[] {}));
+            t$2$int = 0;
+            t$5$PyObject = frame.getlocal(5);
+            while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                frame.setlocal(12, t$4$PyObject);
+                if (frame.getlocal(12).__nonzero__()) {
+                    if (frame.getlocal(7)._eq(i$2).__nonzero__()) {
+                        frame.setlocal(6, frame.getlocal(10));
+                    }
+                    frame.setlocal(7, frame.getlocal(7)._add(i$4));
+                }
+                else if (frame.getlocal(7).__nonzero__()) {
+                    frame.getlocal(9).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)}));
+                    frame.setlocal(7, i$2);
+                }
+                frame.setlocal(10, frame.getlocal(10)._add(i$4));
+            }
+            if (frame.getlocal(7).__nonzero__()) {
+                frame.getlocal(9).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)}));
+            }
+            if (frame.getglobal("len").__call__(frame.getlocal(9))._le(i$5).__nonzero__()) {
+                t$3$int = 0;
+                t$7$PyObject = frame.getlocal(9);
+                while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(t$6$PyObject, 2);
+                    frame.setlocal(6, t$0$PyObject__[0]);
+                    frame.setlocal(7, t$0$PyObject__[1]);
+                    if (frame.getlocal(7)._eq(i$4).__nonzero__()) {
+                        frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(6)}));
+                    }
+                    else {
+                        frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("RANGE"), new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(6)._add(frame.getlocal(7))._sub(i$4)})}));
+                    }
+                }
+                if (frame.getglobal("len").__call__(frame.getlocal(11))._lt(frame.getglobal("len").__call__(frame.getlocal(0))).__nonzero__()) {
+                    return frame.getlocal(11);
+                }
+            }
+            else {
+                frame.setlocal(13, new PyList(new PyObject[] {}));
+                frame.setlocal(8, i$4);
+                frame.setlocal(3, i$2);
+                t$4$int = 0;
+                t$9$PyObject = frame.getlocal(5);
+                while ((t$8$PyObject = t$9$PyObject.__finditem__(t$4$int++)) != null) {
+                    frame.setlocal(12, t$8$PyObject);
+                    if (frame.getlocal(12).__nonzero__()) {
+                        frame.setlocal(3, frame.getlocal(3)._add(frame.getlocal(8)));
+                    }
+                    frame.setlocal(8, frame.getlocal(8)._lshift(i$4));
+                    if (frame.getlocal(8)._gt(frame.getglobal("MAXCODE")).__nonzero__()) {
+                        frame.getlocal(13).invoke("append", frame.getlocal(3));
+                        frame.setlocal(8, i$4);
+                        frame.setlocal(3, i$2);
+                    }
+                }
+                frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("CHARSET"), frame.getlocal(13)}));
+                return frame.getlocal(11);
+            }
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject _simple$7(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getitem__(i$5).invoke("getwidth"), 2);
+            frame.setlocal(2, t$0$PyObject__[0]);
+            frame.setlocal(1, t$0$PyObject__[1]);
+            if (((t$0$PyObject = frame.getlocal(2)._eq(i$2)).__nonzero__() ? frame.getlocal(1)._eq(frame.getglobal("MAXREPEAT")) : t$0$PyObject).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("error"), s$10);
+            }
+            return (t$0$PyObject = (frame.getlocal(2)._eq(t$1$PyObject = frame.getlocal(1)).__nonzero__() ? t$1$PyObject._eq(i$4) : Py.Zero)).__nonzero__() ? frame.getlocal(0).__getitem__(i$5).__getitem__(i$2).__getitem__(i$2)._ne(frame.getglobal("SUBPATTERN")) : t$0$PyObject;
+        }
+        
+        private static PyObject _compile_info$8(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int, t$3$int;
+            boolean t$0$boolean;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject, t$8$PyObject;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1).invoke("getwidth"), 2);
+            frame.setlocal(5, t$0$PyObject__[0]);
+            frame.setlocal(3, t$0$PyObject__[1]);
+            if (frame.getlocal(5)._eq(i$2).__nonzero__()) {
+                return Py.None;
+            }
+            frame.setlocal(11, new PyList(new PyObject[] {}));
+            frame.setlocal(16, i$2);
+            frame.setlocal(4, new PyList(new PyObject[] {}));
+            if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__not__().__nonzero__()) {
+                t$0$int = 0;
+                t$1$PyObject = frame.getlocal(1).__getattr__("data");
+                while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                    frame.setlocal(6, t$0$PyObject__[0]);
+                    frame.setlocal(7, t$0$PyObject__[1]);
+                    if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                        if (frame.getglobal("len").__call__(frame.getlocal(11))._eq(frame.getlocal(16)).__nonzero__()) {
+                            frame.setlocal(16, frame.getlocal(16)._add(i$4));
+                        }
+                        frame.getlocal(11).invoke("append", frame.getlocal(7));
+                    }
+                    else if (((t$2$PyObject = frame.getlocal(6)._is(frame.getglobal("SUBPATTERN"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(7).__getitem__(i$4))._eq(i$4) : t$2$PyObject).__nonzero__()) {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(7).__getitem__(i$4).__getitem__(i$2), 2);
+                        frame.setlocal(6, t$0$PyObject__[0]);
+                        frame.setlocal(7, t$0$PyObject__[1]);
+                        if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                            frame.getlocal(11).invoke("append", frame.getlocal(7));
+                        }
+                        else {
+                            break;
+                        }
+                    }
+                    else {
+                        break;
+                    }
+                }
+                if (((t$2$PyObject = frame.getlocal(11).__not__()).__nonzero__() ? frame.getlocal(1).__getattr__("data") : t$2$PyObject).__nonzero__()) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1).__getattr__("data").__getitem__(i$2), 2);
+                    frame.setlocal(6, t$0$PyObject__[0]);
+                    frame.setlocal(7, t$0$PyObject__[1]);
+                    if (((t$2$PyObject = frame.getlocal(6)._is(frame.getglobal("SUBPATTERN"))).__nonzero__() ? frame.getlocal(7).__getitem__(i$4) : t$2$PyObject).__nonzero__()) {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(7).__getitem__(i$4).__getitem__(i$2), 2);
+                        frame.setlocal(6, t$0$PyObject__[0]);
+                        frame.setlocal(7, t$0$PyObject__[1]);
+                        if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                            frame.getlocal(4).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)}));
+                        }
+                        else if (frame.getlocal(6)._is(frame.getglobal("BRANCH")).__nonzero__()) {
+                            frame.setlocal(15, new PyList(new PyObject[] {}));
+                            t$1$int = 0;
+                            t$3$PyObject = frame.getlocal(7).__getitem__(i$4);
+                            while (t$0$boolean=(t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                                frame.setlocal(9, t$2$PyObject);
+                                if (frame.getlocal(9).__not__().__nonzero__()) {
+                                    break;
+                                }
+                                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(9).__getitem__(i$2), 2);
+                                frame.setlocal(6, t$0$PyObject__[0]);
+                                frame.setlocal(7, t$0$PyObject__[1]);
+                                if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                                    frame.getlocal(15).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)}));
+                                }
+                                else {
+                                    break;
+                                }
+                            }
+                            if (!t$0$boolean) {
+                                frame.setlocal(4, frame.getlocal(15));
+                            }
+                        }
+                    }
+                    else if (frame.getlocal(6)._is(frame.getglobal("BRANCH")).__nonzero__()) {
+                        frame.setlocal(15, new PyList(new PyObject[] {}));
+                        t$2$int = 0;
+                        t$5$PyObject = frame.getlocal(7).__getitem__(i$4);
+                        while (t$0$boolean=(t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                            frame.setlocal(9, t$4$PyObject);
+                            if (frame.getlocal(9).__not__().__nonzero__()) {
+                                break;
+                            }
+                            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(9).__getitem__(i$2), 2);
+                            frame.setlocal(6, t$0$PyObject__[0]);
+                            frame.setlocal(7, t$0$PyObject__[1]);
+                            if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                                frame.getlocal(15).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)}));
+                            }
+                            else {
+                                break;
+                            }
+                        }
+                        if (!t$0$boolean) {
+                            frame.setlocal(4, frame.getlocal(15));
+                        }
+                    }
+                    else if (frame.getlocal(6)._is(frame.getglobal("IN")).__nonzero__()) {
+                        frame.setlocal(4, frame.getlocal(7));
+                    }
+                }
+            }
+            frame.setlocal(8, frame.getlocal(0).__getattr__("append"));
+            frame.getlocal(8).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("INFO")));
+            frame.setlocal(10, frame.getglobal("len").__call__(frame.getlocal(0)));
+            frame.getlocal(8).__call__(i$2);
+            frame.setlocal(13, i$2);
+            if (frame.getlocal(11).__nonzero__()) {
+                frame.setlocal(13, frame.getglobal("SRE_INFO_PREFIX"));
+                if ((frame.getglobal("len").__call__(frame.getlocal(11))._eq(t$6$PyObject = frame.getlocal(16)).__nonzero__() ? t$6$PyObject._eq(frame.getglobal("len").__call__(frame.getlocal(1).__getattr__("data"))) : Py.Zero).__nonzero__()) {
+                    frame.setlocal(13, frame.getlocal(13)._add(frame.getglobal("SRE_INFO_LITERAL")));
+                }
+            }
+            else if (frame.getlocal(4).__nonzero__()) {
+                frame.setlocal(13, frame.getlocal(13)._add(frame.getglobal("SRE_INFO_CHARSET")));
+            }
+            frame.getlocal(8).__call__(frame.getlocal(13));
+            if (frame.getlocal(5)._lt(frame.getglobal("MAXCODE")).__nonzero__()) {
+                frame.getlocal(8).__call__(frame.getlocal(5));
+            }
+            else {
+                frame.getlocal(8).__call__(frame.getglobal("MAXCODE"));
+                frame.setlocal(11, frame.getlocal(11).__getslice__(null, frame.getglobal("MAXCODE"), null));
+            }
+            if (frame.getlocal(3)._lt(frame.getglobal("MAXCODE")).__nonzero__()) {
+                frame.getlocal(8).__call__(frame.getlocal(3));
+            }
+            else {
+                frame.getlocal(8).__call__(i$2);
+            }
+            if (frame.getlocal(11).__nonzero__()) {
+                frame.getlocal(8).__call__(frame.getglobal("len").__call__(frame.getlocal(11)));
+                frame.getlocal(8).__call__(frame.getlocal(16));
+                frame.getlocal(0).invoke("extend", frame.getlocal(11));
+                frame.setlocal(14, new PyList(new PyObject[] {i$4.__neg__()})._add(new PyList(new PyObject[] {i$2})._mul(frame.getglobal("len").__call__(frame.getlocal(11)))));
+                t$3$int = 0;
+                t$7$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(11)));
+                while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) {
+                    frame.setlocal(12, t$6$PyObject);
+                    frame.getlocal(14).__setitem__(frame.getlocal(12)._add(i$4), frame.getlocal(14).__getitem__(frame.getlocal(12))._add(i$4));
+                    while (((t$8$PyObject = frame.getlocal(14).__getitem__(frame.getlocal(12)._add(i$4))._gt(i$2)).__nonzero__() ? frame.getlocal(11).__getitem__(frame.getlocal(12))._ne(frame.getlocal(11).__getitem__(frame.getlocal(14).__getitem__(frame.getlocal(12)._add(i$4))._sub(i$4))) : t$8$PyObject).__nonzero__()) {
+                        frame.getlocal(14).__setitem__(frame.getlocal(12)._add(i$4), frame.getlocal(14).__getitem__(frame.getlocal(14).__getitem__(frame.getlocal(12)._add(i$4))._sub(i$4))._add(i$4));
+                    }
+                }
+                frame.getlocal(0).invoke("extend", frame.getlocal(14).__getslice__(i$4, null, null));
+            }
+            else if (frame.getlocal(4).__nonzero__()) {
+                frame.getglobal("_compile_charset").__call__(frame.getlocal(4), i$2, frame.getlocal(0));
+            }
+            frame.getlocal(0).__setitem__(frame.getlocal(10), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(10)));
+            return Py.None;
+        }
+        
+        private static PyObject _code$9(PyFrame frame) {
+            frame.setlocal(1, frame.getlocal(0).__getattr__("pattern").__getattr__("flags")._or(frame.getlocal(1)));
+            frame.setlocal(2, new PyList(new PyObject[] {}));
+            frame.getglobal("_compile_info").__call__(frame.getlocal(2), frame.getlocal(0), frame.getlocal(1));
+            frame.getglobal("_compile").__call__(frame.getlocal(2), frame.getlocal(0).__getattr__("data"), frame.getlocal(1));
+            frame.getlocal(2).invoke("append", frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS")));
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject compile$10(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            if (frame.getglobal("type").__call__(frame.getlocal(0))._in(frame.getglobal("STRING_TYPES")).__nonzero__()) {
+                frame.setlocal(7, org.python.core.imp.importOne("sre_parse", frame));
+                frame.setlocal(8, frame.getlocal(0));
+                frame.setlocal(0, frame.getlocal(7).__getattr__("parse").__call__(frame.getlocal(0), frame.getlocal(1)));
+            }
+            else {
+                frame.setlocal(8, frame.getglobal("None"));
+            }
+            frame.setlocal(3, frame.getglobal("_code").__call__(frame.getlocal(0), frame.getlocal(1)));
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("pattern").__getattr__("groups")._le(i$12), s$13);
+            frame.setlocal(2, frame.getlocal(0).__getattr__("pattern").__getattr__("groupdict"));
+            frame.setlocal(4, new PyList(new PyObject[] {frame.getglobal("None")})._mul(frame.getlocal(0).__getattr__("pattern").__getattr__("groups")));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(2).invoke("items");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(5, t$0$PyObject__[0]);
+                frame.setlocal(6, t$0$PyObject__[1]);
+                frame.getlocal(4).__setitem__(frame.getlocal(6), frame.getlocal(5));
+            }
+            return frame.getglobal("_sre").__getattr__("compile").__call__(new PyObject[] {frame.getlocal(8), frame.getlocal(1), frame.getlocal(3), frame.getlocal(0).__getattr__("pattern").__getattr__("groups")._sub(i$4), frame.getlocal(2), frame.getlocal(4)});
+        }
+        
+        private static PyObject main$11(PyFrame frame) {
+            frame.setglobal("__file__", s$14);
+            
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            frame.setlocal("_sre", org.python.core.imp.importOne("_sre", frame));
+            org.python.core.imp.importAll("sre_constants", frame);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getname("_sre").__getattr__("MAGIC")._eq(frame.getname("MAGIC")), s$0);
+            frame.setlocal("MAXCODE", i$1);
+            frame.setlocal("_compile", new PyFunction(frame.f_globals, new PyObject[] {}, c$2__compile));
+            frame.setlocal("_compile_charset", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$4__compile_charset));
+            frame.setlocal("_optimize_charset", new PyFunction(frame.f_globals, new PyObject[] {}, c$5__optimize_charset));
+            frame.setlocal("_simple", new PyFunction(frame.f_globals, new PyObject[] {}, c$6__simple));
+            frame.setlocal("_compile_info", new PyFunction(frame.f_globals, new PyObject[] {}, c$7__compile_info));
+            frame.setlocal("STRING_TYPES", new PyList(new PyObject[] {frame.getname("type").__call__(s$11)}));
+            try {
+                frame.getname("STRING_TYPES").invoke("append", frame.getname("type").__call__(frame.getname("unicode").__call__(s$11)));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("NameError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            frame.setlocal("_code", new PyFunction(frame.f_globals, new PyObject[] {}, c$8__code));
+            frame.setlocal("compile", new PyFunction(frame.f_globals, new PyObject[] {i$2}, c$9_compile));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("sre_compile"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "sre_compile";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(sre_compile._PyInner.class, newargs, sre_compile.jpy$packages, sre_compile.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/sre_constants$_PyInner.class b/server/jpywork/sre_constants$_PyInner.class
new file mode 100644 (file)
index 0000000..cce4655
Binary files /dev/null and b/server/jpywork/sre_constants$_PyInner.class differ
diff --git a/server/jpywork/sre_constants.class b/server/jpywork/sre_constants.class
new file mode 100644 (file)
index 0000000..ef574d8
Binary files /dev/null and b/server/jpywork/sre_constants.class differ
diff --git a/server/jpywork/sre_constants.java b/server/jpywork/sre_constants.java
new file mode 100644 (file)
index 0000000..8e993cc
--- /dev/null
@@ -0,0 +1,407 @@
+import org.python.core.*;
+
+public class sre_constants extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject i$0;
+        private static PyObject i$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyObject s$52;
+        private static PyObject s$53;
+        private static PyObject s$54;
+        private static PyObject s$55;
+        private static PyObject s$56;
+        private static PyObject s$57;
+        private static PyObject s$58;
+        private static PyObject s$59;
+        private static PyObject s$60;
+        private static PyObject s$61;
+        private static PyObject s$62;
+        private static PyObject i$63;
+        private static PyObject i$64;
+        private static PyObject i$65;
+        private static PyObject i$66;
+        private static PyObject i$67;
+        private static PyObject i$68;
+        private static PyObject i$69;
+        private static PyObject i$70;
+        private static PyObject i$71;
+        private static PyObject s$72;
+        private static PyObject s$73;
+        private static PyObject s$74;
+        private static PyObject s$75;
+        private static PyObject s$76;
+        private static PyObject s$77;
+        private static PyObject s$78;
+        private static PyObject s$79;
+        private static PyObject s$80;
+        private static PyObject s$81;
+        private static PyObject s$82;
+        private static PyObject s$83;
+        private static PyObject s$84;
+        private static PyObject s$85;
+        private static PyObject s$86;
+        private static PyObject s$87;
+        private static PyObject s$88;
+        private static PyObject s$89;
+        private static PyObject s$90;
+        private static PyObject s$91;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_error;
+        private static PyCode c$1_makedict;
+        private static PyCode c$2_lambda;
+        private static PyCode c$3_dump;
+        private static PyCode c$4_main;
+        private static void initConstants() {
+            i$0 = Py.newInteger(20010320);
+            i$1 = Py.newInteger(65535);
+            s$2 = Py.newString("failure");
+            s$3 = Py.newString("success");
+            s$4 = Py.newString("any");
+            s$5 = Py.newString("any_all");
+            s$6 = Py.newString("assert");
+            s$7 = Py.newString("assert_not");
+            s$8 = Py.newString("at");
+            s$9 = Py.newString("branch");
+            s$10 = Py.newString("call");
+            s$11 = Py.newString("category");
+            s$12 = Py.newString("charset");
+            s$13 = Py.newString("groupref");
+            s$14 = Py.newString("groupref_ignore");
+            s$15 = Py.newString("in");
+            s$16 = Py.newString("in_ignore");
+            s$17 = Py.newString("info");
+            s$18 = Py.newString("jump");
+            s$19 = Py.newString("literal");
+            s$20 = Py.newString("literal_ignore");
+            s$21 = Py.newString("mark");
+            s$22 = Py.newString("max_repeat");
+            s$23 = Py.newString("max_until");
+            s$24 = Py.newString("min_repeat");
+            s$25 = Py.newString("min_until");
+            s$26 = Py.newString("negate");
+            s$27 = Py.newString("not_literal");
+            s$28 = Py.newString("not_literal_ignore");
+            s$29 = Py.newString("range");
+            s$30 = Py.newString("repeat");
+            s$31 = Py.newString("repeat_one");
+            s$32 = Py.newString("subpattern");
+            s$33 = Py.newString("at_beginning");
+            s$34 = Py.newString("at_beginning_line");
+            s$35 = Py.newString("at_beginning_string");
+            s$36 = Py.newString("at_boundary");
+            s$37 = Py.newString("at_non_boundary");
+            s$38 = Py.newString("at_end");
+            s$39 = Py.newString("at_end_line");
+            s$40 = Py.newString("at_end_string");
+            s$41 = Py.newString("at_loc_boundary");
+            s$42 = Py.newString("at_loc_non_boundary");
+            s$43 = Py.newString("at_uni_boundary");
+            s$44 = Py.newString("at_uni_non_boundary");
+            s$45 = Py.newString("category_digit");
+            s$46 = Py.newString("category_not_digit");
+            s$47 = Py.newString("category_space");
+            s$48 = Py.newString("category_not_space");
+            s$49 = Py.newString("category_word");
+            s$50 = Py.newString("category_not_word");
+            s$51 = Py.newString("category_linebreak");
+            s$52 = Py.newString("category_not_linebreak");
+            s$53 = Py.newString("category_loc_word");
+            s$54 = Py.newString("category_loc_not_word");
+            s$55 = Py.newString("category_uni_digit");
+            s$56 = Py.newString("category_uni_not_digit");
+            s$57 = Py.newString("category_uni_space");
+            s$58 = Py.newString("category_uni_not_space");
+            s$59 = Py.newString("category_uni_word");
+            s$60 = Py.newString("category_uni_not_word");
+            s$61 = Py.newString("category_uni_linebreak");
+            s$62 = Py.newString("category_uni_not_linebreak");
+            i$63 = Py.newInteger(0);
+            i$64 = Py.newInteger(1);
+            i$65 = Py.newInteger(2);
+            i$66 = Py.newInteger(4);
+            i$67 = Py.newInteger(8);
+            i$68 = Py.newInteger(16);
+            i$69 = Py.newInteger(32);
+            i$70 = Py.newInteger(64);
+            i$71 = Py.newInteger(128);
+            s$72 = Py.newString("__main__");
+            s$73 = Py.newString("#define %s_%s %s\012");
+            s$74 = Py.newString("sre_constants.h");
+            s$75 = Py.newString("w");
+            s$76 = Py.newString("/*\012 * Secret Labs' Regular Expression Engine\012 *\012 * regular expression matching engine\012 *\012 * NOTE: This file is generated by sre_constants.py.  If you need\012 * to change anything in here, edit sre_constants.py and run it.\012 *\012 * Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.\012 *\012 * See the _sre.c file for information on usage and redistribution.\012 */\012\012");
+            s$77 = Py.newString("#define SRE_MAGIC %d\012");
+            s$78 = Py.newString("SRE_OP");
+            s$79 = Py.newString("SRE");
+            s$80 = Py.newString("#define SRE_FLAG_TEMPLATE %d\012");
+            s$81 = Py.newString("#define SRE_FLAG_IGNORECASE %d\012");
+            s$82 = Py.newString("#define SRE_FLAG_LOCALE %d\012");
+            s$83 = Py.newString("#define SRE_FLAG_MULTILINE %d\012");
+            s$84 = Py.newString("#define SRE_FLAG_DOTALL %d\012");
+            s$85 = Py.newString("#define SRE_FLAG_UNICODE %d\012");
+            s$86 = Py.newString("#define SRE_FLAG_VERBOSE %d\012");
+            s$87 = Py.newString("#define SRE_INFO_PREFIX %d\012");
+            s$88 = Py.newString("#define SRE_INFO_LITERAL %d\012");
+            s$89 = Py.newString("#define SRE_INFO_CHARSET %d\012");
+            s$90 = Py.newString("done");
+            s$91 = Py.newString("/usr/share/jython/Lib-cpython/sre_constants.py");
+            funcTable = new _PyInner();
+            c$0_error = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_constants.py", "error", false, false, funcTable, 0, null, null, 0, 0);
+            c$1_makedict = Py.newCode(1, new String[] {"list", "i", "item", "d"}, "/usr/share/jython/Lib-cpython/sre_constants.py", "makedict", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_lambda = Py.newCode(2, new String[] {"a", "b"}, "/usr/share/jython/Lib-cpython/sre_constants.py", "<lambda>", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_dump = Py.newCode(3, new String[] {"f", "d", "prefix", "v", "k", "items"}, "/usr/share/jython/Lib-cpython/sre_constants.py", "dump", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_constants.py", "main", false, false, funcTable, 4, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$4_main == null) _PyInner.initConstants();
+            return c$4_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.error$1(frame);
+                case 1:
+                return _PyInner.makedict$2(frame);
+                case 2:
+                return _PyInner.lambda$3(frame);
+                case 3:
+                return _PyInner.dump$4(frame);
+                case 4:
+                return _PyInner.main$5(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject error$1(PyFrame frame) {
+            // pass
+            return frame.getf_locals();
+        }
+        
+        private static PyObject makedict$2(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(3, new PyDictionary(new PyObject[] {}));
+            frame.setlocal(1, i$63);
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.getlocal(3).__setitem__(frame.getlocal(2), frame.getlocal(1));
+                frame.setlocal(1, frame.getlocal(1)._add(i$64));
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject lambda$3(PyFrame frame) {
+            return frame.getglobal("cmp").__call__(frame.getlocal(0).__getitem__(i$64), frame.getlocal(1).__getitem__(i$64));
+        }
+        
+        private static PyObject dump$4(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(5, frame.getlocal(1).invoke("items"));
+            frame.getlocal(5).invoke("sort", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_lambda));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(5);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(4, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+                frame.getlocal(0).invoke("write", s$73._mod(new PyTuple(new PyObject[] {frame.getlocal(2), frame.getglobal("string").__getattr__("upper").__call__(frame.getlocal(4)), frame.getlocal(3)})));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject main$5(PyFrame frame) {
+            frame.setglobal("__file__", s$91);
+            
+            frame.setlocal("MAGIC", i$0);
+            frame.setlocal("MAXREPEAT", i$1);
+            frame.setlocal("error", Py.makeClass("error", new PyObject[] {frame.getname("Exception")}, c$0_error, null));
+            frame.setlocal("FAILURE", s$2);
+            frame.setlocal("SUCCESS", s$3);
+            frame.setlocal("ANY", s$4);
+            frame.setlocal("ANY_ALL", s$5);
+            frame.setlocal("ASSERT", s$6);
+            frame.setlocal("ASSERT_NOT", s$7);
+            frame.setlocal("AT", s$8);
+            frame.setlocal("BRANCH", s$9);
+            frame.setlocal("CALL", s$10);
+            frame.setlocal("CATEGORY", s$11);
+            frame.setlocal("CHARSET", s$12);
+            frame.setlocal("GROUPREF", s$13);
+            frame.setlocal("GROUPREF_IGNORE", s$14);
+            frame.setlocal("IN", s$15);
+            frame.setlocal("IN_IGNORE", s$16);
+            frame.setlocal("INFO", s$17);
+            frame.setlocal("JUMP", s$18);
+            frame.setlocal("LITERAL", s$19);
+            frame.setlocal("LITERAL_IGNORE", s$20);
+            frame.setlocal("MARK", s$21);
+            frame.setlocal("MAX_REPEAT", s$22);
+            frame.setlocal("MAX_UNTIL", s$23);
+            frame.setlocal("MIN_REPEAT", s$24);
+            frame.setlocal("MIN_UNTIL", s$25);
+            frame.setlocal("NEGATE", s$26);
+            frame.setlocal("NOT_LITERAL", s$27);
+            frame.setlocal("NOT_LITERAL_IGNORE", s$28);
+            frame.setlocal("RANGE", s$29);
+            frame.setlocal("REPEAT", s$30);
+            frame.setlocal("REPEAT_ONE", s$31);
+            frame.setlocal("SUBPATTERN", s$32);
+            frame.setlocal("AT_BEGINNING", s$33);
+            frame.setlocal("AT_BEGINNING_LINE", s$34);
+            frame.setlocal("AT_BEGINNING_STRING", s$35);
+            frame.setlocal("AT_BOUNDARY", s$36);
+            frame.setlocal("AT_NON_BOUNDARY", s$37);
+            frame.setlocal("AT_END", s$38);
+            frame.setlocal("AT_END_LINE", s$39);
+            frame.setlocal("AT_END_STRING", s$40);
+            frame.setlocal("AT_LOC_BOUNDARY", s$41);
+            frame.setlocal("AT_LOC_NON_BOUNDARY", s$42);
+            frame.setlocal("AT_UNI_BOUNDARY", s$43);
+            frame.setlocal("AT_UNI_NON_BOUNDARY", s$44);
+            frame.setlocal("CATEGORY_DIGIT", s$45);
+            frame.setlocal("CATEGORY_NOT_DIGIT", s$46);
+            frame.setlocal("CATEGORY_SPACE", s$47);
+            frame.setlocal("CATEGORY_NOT_SPACE", s$48);
+            frame.setlocal("CATEGORY_WORD", s$49);
+            frame.setlocal("CATEGORY_NOT_WORD", s$50);
+            frame.setlocal("CATEGORY_LINEBREAK", s$51);
+            frame.setlocal("CATEGORY_NOT_LINEBREAK", s$52);
+            frame.setlocal("CATEGORY_LOC_WORD", s$53);
+            frame.setlocal("CATEGORY_LOC_NOT_WORD", s$54);
+            frame.setlocal("CATEGORY_UNI_DIGIT", s$55);
+            frame.setlocal("CATEGORY_UNI_NOT_DIGIT", s$56);
+            frame.setlocal("CATEGORY_UNI_SPACE", s$57);
+            frame.setlocal("CATEGORY_UNI_NOT_SPACE", s$58);
+            frame.setlocal("CATEGORY_UNI_WORD", s$59);
+            frame.setlocal("CATEGORY_UNI_NOT_WORD", s$60);
+            frame.setlocal("CATEGORY_UNI_LINEBREAK", s$61);
+            frame.setlocal("CATEGORY_UNI_NOT_LINEBREAK", s$62);
+            frame.setlocal("OPCODES", new PyList(new PyObject[] {frame.getname("FAILURE"), frame.getname("SUCCESS"), frame.getname("ANY"), frame.getname("ANY_ALL"), frame.getname("ASSERT"), frame.getname("ASSERT_NOT"), frame.getname("AT"), frame.getname("BRANCH"), frame.getname("CALL"), frame.getname("CATEGORY"), frame.getname("CHARSET"), frame.getname("GROUPREF"), frame.getname("GROUPREF_IGNORE"), frame.getname("IN"), frame.getname("IN_IGNORE"), frame.getname("INFO"), frame.getname("JUMP"), frame.getname("LITERAL"), frame.getname("LITERAL_IGNORE"), frame.getname("MARK"), frame.getname("MAX_UNTIL"), frame.getname("MIN_UNTIL"), frame.getname("NOT_LITERAL"), frame.getname("NOT_LITERAL_IGNORE"), frame.getname("NEGATE"), frame.getname("RANGE"), frame.getname("REPEAT"), frame.getname("REPEAT_ONE"), frame.getname("SUBPATTERN")}));
+            frame.setlocal("ATCODES", new PyList(new PyObject[] {frame.getname("AT_BEGINNING"), frame.getname("AT_BEGINNING_LINE"), frame.getname("AT_BEGINNING_STRING"), frame.getname("AT_BOUNDARY"), frame.getname("AT_NON_BOUNDARY"), frame.getname("AT_END"), frame.getname("AT_END_LINE"), frame.getname("AT_END_STRING"), frame.getname("AT_LOC_BOUNDARY"), frame.getname("AT_LOC_NON_BOUNDARY"), frame.getname("AT_UNI_BOUNDARY"), frame.getname("AT_UNI_NON_BOUNDARY")}));
+            frame.setlocal("CHCODES", new PyList(new PyObject[] {frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_WORD"), frame.getname("CATEGORY_NOT_WORD"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK"), frame.getname("CATEGORY_LOC_WORD"), frame.getname("CATEGORY_LOC_NOT_WORD"), frame.getname("CATEGORY_UNI_DIGIT"), frame.getname("CATEGORY_UNI_NOT_DIGIT"), frame.getname("CATEGORY_UNI_SPACE"), frame.getname("CATEGORY_UNI_NOT_SPACE"), frame.getname("CATEGORY_UNI_WORD"), frame.getname("CATEGORY_UNI_NOT_WORD"), frame.getname("CATEGORY_UNI_LINEBREAK"), frame.getname("CATEGORY_UNI_NOT_LINEBREAK")}));
+            frame.setlocal("makedict", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_makedict));
+            frame.setlocal("OPCODES", frame.getname("makedict").__call__(frame.getname("OPCODES")));
+            frame.setlocal("ATCODES", frame.getname("makedict").__call__(frame.getname("ATCODES")));
+            frame.setlocal("CHCODES", frame.getname("makedict").__call__(frame.getname("CHCODES")));
+            frame.setlocal("OP_IGNORE", new PyDictionary(new PyObject[] {frame.getname("GROUPREF"), frame.getname("GROUPREF_IGNORE"), frame.getname("IN"), frame.getname("IN_IGNORE"), frame.getname("LITERAL"), frame.getname("LITERAL_IGNORE"), frame.getname("NOT_LITERAL"), frame.getname("NOT_LITERAL_IGNORE")}));
+            frame.setlocal("AT_MULTILINE", new PyDictionary(new PyObject[] {frame.getname("AT_BEGINNING"), frame.getname("AT_BEGINNING_LINE"), frame.getname("AT_END"), frame.getname("AT_END_LINE")}));
+            frame.setlocal("AT_LOCALE", new PyDictionary(new PyObject[] {frame.getname("AT_BOUNDARY"), frame.getname("AT_LOC_BOUNDARY"), frame.getname("AT_NON_BOUNDARY"), frame.getname("AT_LOC_NON_BOUNDARY")}));
+            frame.setlocal("AT_UNICODE", new PyDictionary(new PyObject[] {frame.getname("AT_BOUNDARY"), frame.getname("AT_UNI_BOUNDARY"), frame.getname("AT_NON_BOUNDARY"), frame.getname("AT_UNI_NON_BOUNDARY")}));
+            frame.setlocal("CH_LOCALE", new PyDictionary(new PyObject[] {frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_WORD"), frame.getname("CATEGORY_LOC_WORD"), frame.getname("CATEGORY_NOT_WORD"), frame.getname("CATEGORY_LOC_NOT_WORD"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK")}));
+            frame.setlocal("CH_UNICODE", new PyDictionary(new PyObject[] {frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_UNI_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_UNI_NOT_DIGIT"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_UNI_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_UNI_NOT_SPACE"), frame.getname("CATEGORY_WORD"), frame.getname("CATEGORY_UNI_WORD"), frame.getname("CATEGORY_NOT_WORD"), frame.getname("CATEGORY_UNI_NOT_WORD"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_UNI_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK"), frame.getname("CATEGORY_UNI_NOT_LINEBREAK")}));
+            frame.setlocal("SRE_FLAG_TEMPLATE", i$64);
+            frame.setlocal("SRE_FLAG_IGNORECASE", i$65);
+            frame.setlocal("SRE_FLAG_LOCALE", i$66);
+            frame.setlocal("SRE_FLAG_MULTILINE", i$67);
+            frame.setlocal("SRE_FLAG_DOTALL", i$68);
+            frame.setlocal("SRE_FLAG_UNICODE", i$69);
+            frame.setlocal("SRE_FLAG_VERBOSE", i$70);
+            frame.setlocal("SRE_FLAG_DEBUG", i$71);
+            frame.setlocal("SRE_INFO_PREFIX", i$64);
+            frame.setlocal("SRE_INFO_LITERAL", i$65);
+            frame.setlocal("SRE_INFO_CHARSET", i$66);
+            if (frame.getname("__name__")._eq(s$72).__nonzero__()) {
+                frame.setlocal("string", org.python.core.imp.importOne("string", frame));
+                frame.setlocal("dump", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_dump));
+                frame.setlocal("f", frame.getname("open").__call__(s$74, s$75));
+                frame.getname("f").invoke("write", s$76);
+                frame.getname("f").invoke("write", s$77._mod(frame.getname("MAGIC")));
+                frame.getname("dump").__call__(frame.getname("f"), frame.getname("OPCODES"), s$78);
+                frame.getname("dump").__call__(frame.getname("f"), frame.getname("ATCODES"), s$79);
+                frame.getname("dump").__call__(frame.getname("f"), frame.getname("CHCODES"), s$79);
+                frame.getname("f").invoke("write", s$80._mod(frame.getname("SRE_FLAG_TEMPLATE")));
+                frame.getname("f").invoke("write", s$81._mod(frame.getname("SRE_FLAG_IGNORECASE")));
+                frame.getname("f").invoke("write", s$82._mod(frame.getname("SRE_FLAG_LOCALE")));
+                frame.getname("f").invoke("write", s$83._mod(frame.getname("SRE_FLAG_MULTILINE")));
+                frame.getname("f").invoke("write", s$84._mod(frame.getname("SRE_FLAG_DOTALL")));
+                frame.getname("f").invoke("write", s$85._mod(frame.getname("SRE_FLAG_UNICODE")));
+                frame.getname("f").invoke("write", s$86._mod(frame.getname("SRE_FLAG_VERBOSE")));
+                frame.getname("f").invoke("write", s$87._mod(frame.getname("SRE_INFO_PREFIX")));
+                frame.getname("f").invoke("write", s$88._mod(frame.getname("SRE_INFO_LITERAL")));
+                frame.getname("f").invoke("write", s$89._mod(frame.getname("SRE_INFO_CHARSET")));
+                frame.getname("f").invoke("close");
+                Py.println(s$90);
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("sre_constants"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "sre_constants";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(sre_constants._PyInner.class, newargs, sre_constants.jpy$packages, sre_constants.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/sre_parse$_PyInner.class b/server/jpywork/sre_parse$_PyInner.class
new file mode 100644 (file)
index 0000000..e4ff921
Binary files /dev/null and b/server/jpywork/sre_parse$_PyInner.class differ
diff --git a/server/jpywork/sre_parse.class b/server/jpywork/sre_parse.class
new file mode 100644 (file)
index 0000000..8e20fe0
Binary files /dev/null and b/server/jpywork/sre_parse.class differ
diff --git a/server/jpywork/sre_parse.java b/server/jpywork/sre_parse.java
new file mode 100644 (file)
index 0000000..6b42f36
--- /dev/null
@@ -0,0 +1,1544 @@
+import org.python.core.*;
+
+public class sre_parse extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject i$39;
+        private static PyObject i$40;
+        private static PyObject i$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject l$46;
+        private static PyObject i$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyObject s$52;
+        private static PyObject s$53;
+        private static PyObject s$54;
+        private static PyObject s$55;
+        private static PyObject i$56;
+        private static PyObject s$57;
+        private static PyObject i$58;
+        private static PyObject i$59;
+        private static PyObject i$60;
+        private static PyObject s$61;
+        private static PyObject s$62;
+        private static PyObject s$63;
+        private static PyObject s$64;
+        private static PyObject s$65;
+        private static PyObject s$66;
+        private static PyObject s$67;
+        private static PyObject s$68;
+        private static PyObject s$69;
+        private static PyObject s$70;
+        private static PyObject s$71;
+        private static PyObject s$72;
+        private static PyObject s$73;
+        private static PyObject s$74;
+        private static PyObject s$75;
+        private static PyObject s$76;
+        private static PyObject s$77;
+        private static PyObject s$78;
+        private static PyObject s$79;
+        private static PyObject s$80;
+        private static PyObject s$81;
+        private static PyObject s$82;
+        private static PyObject s$83;
+        private static PyObject s$84;
+        private static PyObject s$85;
+        private static PyObject s$86;
+        private static PyObject s$87;
+        private static PyObject s$88;
+        private static PyObject s$89;
+        private static PyObject s$90;
+        private static PyObject s$91;
+        private static PyObject s$92;
+        private static PyObject s$93;
+        private static PyObject s$94;
+        private static PyObject s$95;
+        private static PyObject s$96;
+        private static PyObject s$97;
+        private static PyObject s$98;
+        private static PyObject s$99;
+        private static PyObject s$100;
+        private static PyObject s$101;
+        private static PyObject s$102;
+        private static PyObject s$103;
+        private static PyObject s$104;
+        private static PyObject i$105;
+        private static PyObject s$106;
+        private static PyObject s$107;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1_opengroup;
+        private static PyCode c$2_closegroup;
+        private static PyCode c$3_checkgroup;
+        private static PyCode c$4_Pattern;
+        private static PyCode c$5___init__;
+        private static PyCode c$6_dump;
+        private static PyCode c$7___repr__;
+        private static PyCode c$8___len__;
+        private static PyCode c$9___delitem__;
+        private static PyCode c$10___getitem__;
+        private static PyCode c$11___setitem__;
+        private static PyCode c$12___getslice__;
+        private static PyCode c$13_insert;
+        private static PyCode c$14_append;
+        private static PyCode c$15_getwidth;
+        private static PyCode c$16_SubPattern;
+        private static PyCode c$17___init__;
+        private static PyCode c$18__Tokenizer__next;
+        private static PyCode c$19_match;
+        private static PyCode c$20_get;
+        private static PyCode c$21_tell;
+        private static PyCode c$22_seek;
+        private static PyCode c$23_Tokenizer;
+        private static PyCode c$24_isident;
+        private static PyCode c$25_isdigit;
+        private static PyCode c$26_isname;
+        private static PyCode c$27__group;
+        private static PyCode c$28__class_escape;
+        private static PyCode c$29__escape;
+        private static PyCode c$30__parse_sub;
+        private static PyCode c$31__parse;
+        private static PyCode c$32_parse;
+        private static PyCode c$33_literal;
+        private static PyCode c$34_parse_template;
+        private static PyCode c$35_expand_template;
+        private static PyCode c$36_main;
+        private static void initConstants() {
+            s$0 = Py.newString(".\\[{()*+?^$|");
+            s$1 = Py.newString("*+?{");
+            s$2 = Py.newString("0123456789");
+            s$3 = Py.newString("01234567");
+            s$4 = Py.newString("0123456789abcdefABCDEF");
+            s$5 = Py.newString(" \011\012\015\013\014");
+            s$6 = Py.newString("\\a");
+            s$7 = Py.newString("\007");
+            s$8 = Py.newString("\\b");
+            s$9 = Py.newString("\010");
+            s$10 = Py.newString("\\f");
+            s$11 = Py.newString("\014");
+            s$12 = Py.newString("\\n");
+            s$13 = Py.newString("\012");
+            s$14 = Py.newString("\\r");
+            s$15 = Py.newString("\015");
+            s$16 = Py.newString("\\t");
+            s$17 = Py.newString("\011");
+            s$18 = Py.newString("\\v");
+            s$19 = Py.newString("\013");
+            s$20 = Py.newString("\\\\");
+            s$21 = Py.newString("\\");
+            s$22 = Py.newString("\\A");
+            s$23 = Py.newString("\\B");
+            s$24 = Py.newString("\\d");
+            s$25 = Py.newString("\\D");
+            s$26 = Py.newString("\\s");
+            s$27 = Py.newString("\\S");
+            s$28 = Py.newString("\\w");
+            s$29 = Py.newString("\\W");
+            s$30 = Py.newString("\\Z");
+            s$31 = Py.newString("i");
+            s$32 = Py.newString("L");
+            s$33 = Py.newString("m");
+            s$34 = Py.newString("s");
+            s$35 = Py.newString("x");
+            s$36 = Py.newString("t");
+            s$37 = Py.newString("u");
+            s$38 = Py.newString("10");
+            i$39 = Py.newInteger(8);
+            i$40 = Py.newInteger(0);
+            i$41 = Py.newInteger(1);
+            s$42 = Py.newString("  ");
+            s$43 = Py.newString("in");
+            s$44 = Py.newString("branch");
+            s$45 = Py.newString("or");
+            l$46 = Py.newLong("0");
+            i$47 = Py.newInteger(2);
+            s$48 = Py.newString("bogus escape");
+            s$49 = Py.newString("a");
+            s$50 = Py.newString("z");
+            s$51 = Py.newString("A");
+            s$52 = Py.newString("Z");
+            s$53 = Py.newString("_");
+            s$54 = Py.newString("0");
+            s$55 = Py.newString("9");
+            i$56 = Py.newInteger(4);
+            s$57 = Py.newString("bogus escape: %s");
+            i$58 = Py.newInteger(16);
+            i$59 = Py.newInteger(255);
+            i$60 = Py.newInteger(5);
+            s$61 = Py.newString("cannot refer to open group");
+            s$62 = Py.newString("|");
+            s$63 = Py.newString(")");
+            s$64 = Py.newString("pattern not properly closed");
+            s$65 = Py.newString("#");
+            s$66 = Py.newString("[");
+            s$67 = Py.newString("^");
+            s$68 = Py.newString("]");
+            s$69 = Py.newString("unexpected end of regular expression");
+            s$70 = Py.newString("-");
+            s$71 = Py.newString("bad character range");
+            s$72 = Py.newString("?");
+            s$73 = Py.newString("*");
+            s$74 = Py.newString("+");
+            s$75 = Py.newString("{");
+            s$76 = Py.newString("");
+            s$77 = Py.newString(",");
+            s$78 = Py.newString("}");
+            s$79 = Py.newString("bad repeat interval");
+            s$80 = Py.newString("not supported");
+            s$81 = Py.newString("nothing to repeat");
+            s$82 = Py.newString("multiple repeat");
+            s$83 = Py.newString(".");
+            s$84 = Py.newString("(");
+            s$85 = Py.newString("P");
+            s$86 = Py.newString("<");
+            s$87 = Py.newString("unterminated name");
+            s$88 = Py.newString(">");
+            s$89 = Py.newString("bad character in group name");
+            s$90 = Py.newString("=");
+            s$91 = Py.newString("unknown group name");
+            s$92 = Py.newString("unexpected end of pattern");
+            s$93 = Py.newString("unknown specifier: ?P%s");
+            s$94 = Py.newString(":");
+            s$95 = Py.newString("unbalanced parenthesis");
+            s$96 = Py.newString("!");
+            s$97 = Py.newString("syntax error");
+            s$98 = Py.newString("unknown extension");
+            s$99 = Py.newString("$");
+            s$100 = Py.newString("parser error");
+            s$101 = Py.newString("bogus characters at end of regular expression");
+            s$102 = Py.newString("\\g");
+            s$103 = Py.newString("unterminated group name");
+            s$104 = Py.newString("bad group name");
+            i$105 = Py.newInteger(6);
+            s$106 = Py.newString("empty group");
+            s$107 = Py.newString("/usr/share/jython/Lib-cpython/sre_parse.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_opengroup = Py.newCode(2, new String[] {"self", "name", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "opengroup", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_closegroup = Py.newCode(2, new String[] {"self", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "closegroup", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_checkgroup = Py.newCode(2, new String[] {"self", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "checkgroup", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_Pattern = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "Pattern", false, false, funcTable, 4, null, null, 0, 0);
+            c$5___init__ = Py.newCode(3, new String[] {"self", "pattern", "data"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__init__", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_dump = Py.newCode(2, new String[] {"self", "level", "nl", "av", "i", "op", "a"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "dump", false, false, funcTable, 6, null, null, 0, 1);
+            c$7___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__repr__", false, false, funcTable, 7, null, null, 0, 1);
+            c$8___len__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__len__", false, false, funcTable, 8, null, null, 0, 1);
+            c$9___delitem__ = Py.newCode(2, new String[] {"self", "index"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__delitem__", false, false, funcTable, 9, null, null, 0, 1);
+            c$10___getitem__ = Py.newCode(2, new String[] {"self", "index"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__getitem__", false, false, funcTable, 10, null, null, 0, 1);
+            c$11___setitem__ = Py.newCode(3, new String[] {"self", "index", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__setitem__", false, false, funcTable, 11, null, null, 0, 1);
+            c$12___getslice__ = Py.newCode(3, new String[] {"self", "start", "stop"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__getslice__", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_insert = Py.newCode(3, new String[] {"self", "index", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "insert", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_append = Py.newCode(2, new String[] {"self", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "append", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_getwidth = Py.newCode(1, new String[] {"self", "hi", "lo", "op", "av", "l", "j", "i", "h"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "getwidth", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_SubPattern = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "SubPattern", false, false, funcTable, 16, null, null, 0, 0);
+            c$17___init__ = Py.newCode(2, new String[] {"self", "string"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__init__", false, false, funcTable, 17, null, null, 0, 1);
+            c$18__Tokenizer__next = Py.newCode(1, new String[] {"self", "char", "c"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_Tokenizer__next", false, false, funcTable, 18, null, null, 0, 1);
+            c$19_match = Py.newCode(3, new String[] {"self", "char", "skip"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "match", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_get = Py.newCode(1, new String[] {"self", "this"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "get", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_tell = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "tell", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_seek = Py.newCode(2, new String[] {"self", "index"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "seek", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_Tokenizer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "Tokenizer", false, false, funcTable, 23, null, null, 0, 0);
+            c$24_isident = Py.newCode(1, new String[] {"char"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "isident", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_isdigit = Py.newCode(1, new String[] {"char"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "isdigit", false, false, funcTable, 25, null, null, 0, 1);
+            c$26_isname = Py.newCode(1, new String[] {"name", "char"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "isname", false, false, funcTable, 26, null, null, 0, 1);
+            c$27__group = Py.newCode(2, new String[] {"escape", "groups", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_group", false, false, funcTable, 27, null, null, 0, 1);
+            c$28__class_escape = Py.newCode(2, new String[] {"source", "escape", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_class_escape", false, false, funcTable, 28, null, null, 0, 1);
+            c$29__escape = Py.newCode(3, new String[] {"source", "escape", "state", "here", "code", "group"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_escape", false, false, funcTable, 29, null, null, 0, 1);
+            c$30__parse_sub = Py.newCode(3, new String[] {"source", "state", "nested", "subpattern", "prefix", "items", "set", "item"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_parse_sub", false, false, funcTable, 30, null, null, 0, 1);
+            c$31__parse = Py.newCode(2, new String[] {"source", "state", "code", "this", "name", "group", "code2", "code1", "max", "start", "set", "item", "subpattern", "lo", "here", "char", "gid", "p", "dir", "min", "hi"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_parse", false, false, funcTable, 31, null, null, 0, 1);
+            c$32_parse = Py.newCode(3, new String[] {"str", "flags", "pattern", "source", "p", "tail"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "parse", false, false, funcTable, 32, null, null, 0, 1);
+            c$33_literal = Py.newCode(2, new String[] {"literal", "p"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "literal", false, false, funcTable, 33, null, null, 0, 1);
+            c$34_parse_template = Py.newCode(2, new String[] {"source", "pattern", "code", "this", "literals", "index", "group", "s", "sep", "p", "i", "literal", "groups", "char", "c", "a", "name"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "parse_template", false, false, funcTable, 34, null, null, 0, 1);
+            c$35_expand_template = Py.newCode(2, new String[] {"template", "match", "literals", "groups", "g", "index", "group", "s", "sep"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "expand_template", false, false, funcTable, 35, null, null, 0, 1);
+            c$36_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "main", false, false, funcTable, 36, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$36_main == null) _PyInner.initConstants();
+            return c$36_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.opengroup$2(frame);
+                case 2:
+                return _PyInner.closegroup$3(frame);
+                case 3:
+                return _PyInner.checkgroup$4(frame);
+                case 4:
+                return _PyInner.Pattern$5(frame);
+                case 5:
+                return _PyInner.__init__$6(frame);
+                case 6:
+                return _PyInner.dump$7(frame);
+                case 7:
+                return _PyInner.__repr__$8(frame);
+                case 8:
+                return _PyInner.__len__$9(frame);
+                case 9:
+                return _PyInner.__delitem__$10(frame);
+                case 10:
+                return _PyInner.__getitem__$11(frame);
+                case 11:
+                return _PyInner.__setitem__$12(frame);
+                case 12:
+                return _PyInner.__getslice__$13(frame);
+                case 13:
+                return _PyInner.insert$14(frame);
+                case 14:
+                return _PyInner.append$15(frame);
+                case 15:
+                return _PyInner.getwidth$16(frame);
+                case 16:
+                return _PyInner.SubPattern$17(frame);
+                case 17:
+                return _PyInner.__init__$18(frame);
+                case 18:
+                return _PyInner._Tokenizer__next$19(frame);
+                case 19:
+                return _PyInner.match$20(frame);
+                case 20:
+                return _PyInner.get$21(frame);
+                case 21:
+                return _PyInner.tell$22(frame);
+                case 22:
+                return _PyInner.seek$23(frame);
+                case 23:
+                return _PyInner.Tokenizer$24(frame);
+                case 24:
+                return _PyInner.isident$25(frame);
+                case 25:
+                return _PyInner.isdigit$26(frame);
+                case 26:
+                return _PyInner.isname$27(frame);
+                case 27:
+                return _PyInner._group$28(frame);
+                case 28:
+                return _PyInner._class_escape$29(frame);
+                case 29:
+                return _PyInner._escape$30(frame);
+                case 30:
+                return _PyInner._parse_sub$31(frame);
+                case 31:
+                return _PyInner._parse$32(frame);
+                case 32:
+                return _PyInner.parse$33(frame);
+                case 33:
+                return _PyInner.literal$34(frame);
+                case 34:
+                return _PyInner.parse_template$35(frame);
+                case 35:
+                return _PyInner.expand_template$36(frame);
+                case 36:
+                return _PyInner.main$37(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            frame.getlocal(0).__setattr__("flags", i$40);
+            frame.getlocal(0).__setattr__("open", new PyList(new PyObject[] {}));
+            frame.getlocal(0).__setattr__("groups", i$41);
+            frame.getlocal(0).__setattr__("groupdict", new PyDictionary(new PyObject[] {}));
+            return Py.None;
+        }
+        
+        private static PyObject opengroup$2(PyFrame frame) {
+            frame.setlocal(2, frame.getlocal(0).__getattr__("groups"));
+            frame.getlocal(0).__setattr__("groups", frame.getlocal(2)._add(i$41));
+            if (frame.getlocal(1).__nonzero__()) {
+                frame.getlocal(0).__getattr__("groupdict").__setitem__(frame.getlocal(1), frame.getlocal(2));
+            }
+            frame.getlocal(0).__getattr__("open").invoke("append", frame.getlocal(2));
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject closegroup$3(PyFrame frame) {
+            frame.getlocal(0).__getattr__("open").invoke("remove", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject checkgroup$4(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            return (t$0$PyObject = frame.getlocal(1)._lt(frame.getlocal(0).__getattr__("groups"))).__nonzero__() ? frame.getlocal(1)._notin(frame.getlocal(0).__getattr__("open")) : t$0$PyObject;
+        }
+        
+        private static PyObject Pattern$5(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__));
+            frame.setlocal("opengroup", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1_opengroup));
+            frame.setlocal("closegroup", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_closegroup));
+            frame.setlocal("checkgroup", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_checkgroup));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$6(PyFrame frame) {
+            frame.getlocal(0).__setattr__("pattern", frame.getlocal(1));
+            if (frame.getlocal(2).__not__().__nonzero__()) {
+                frame.setlocal(2, new PyList(new PyObject[] {}));
+            }
+            frame.getlocal(0).__setattr__("data", frame.getlocal(2));
+            frame.getlocal(0).__setattr__("width", frame.getglobal("None"));
+            return Py.None;
+        }
+        
+        private static PyObject dump$7(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int, t$3$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject;
+            
+            // Code
+            frame.setlocal(2, i$41);
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0).__getattr__("data");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(5, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+                Py.printComma(frame.getlocal(1)._mul(s$42)._add(frame.getlocal(5)));
+                frame.setlocal(2, i$40);
+                if (frame.getlocal(5)._eq(s$43).__nonzero__()) {
+                    Py.println();
+                    frame.setlocal(2, i$41);
+                    t$1$int = 0;
+                    t$3$PyObject = frame.getlocal(3);
+                    while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(t$2$PyObject, 2);
+                        frame.setlocal(5, t$0$PyObject__[0]);
+                        frame.setlocal(6, t$0$PyObject__[1]);
+                        Py.printComma(frame.getlocal(1)._add(i$41)._mul(s$42)._add(frame.getlocal(5)));
+                        Py.println(frame.getlocal(6));
+                    }
+                }
+                else if (frame.getlocal(5)._eq(s$44).__nonzero__()) {
+                    Py.println();
+                    frame.setlocal(2, i$41);
+                    frame.setlocal(4, i$40);
+                    t$2$int = 0;
+                    t$5$PyObject = frame.getlocal(3).__getitem__(i$41);
+                    while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                        frame.setlocal(6, t$4$PyObject);
+                        if (frame.getlocal(4)._gt(i$40).__nonzero__()) {
+                            Py.println(frame.getlocal(1)._mul(s$42)._add(s$45));
+                        }
+                        frame.getlocal(6).invoke("dump", frame.getlocal(1)._add(i$41));
+                        frame.setlocal(2, i$41);
+                        frame.setlocal(4, frame.getlocal(4)._add(i$41));
+                    }
+                }
+                else if (frame.getglobal("type").__call__(frame.getlocal(3))._in(new PyTuple(new PyObject[] {frame.getglobal("type").__call__(new PyTuple(new PyObject[] {})), frame.getglobal("type").__call__(new PyList(new PyObject[] {}))})).__nonzero__()) {
+                    t$3$int = 0;
+                    t$7$PyObject = frame.getlocal(3);
+                    while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) {
+                        frame.setlocal(6, t$6$PyObject);
+                        if (frame.getglobal("isinstance").__call__(frame.getlocal(6), frame.getglobal("SubPattern")).__nonzero__()) {
+                            if (frame.getlocal(2).__not__().__nonzero__()) {
+                                Py.println();
+                            }
+                            frame.getlocal(6).invoke("dump", frame.getlocal(1)._add(i$41));
+                            frame.setlocal(2, i$41);
+                        }
+                        else {
+                            Py.printComma(frame.getlocal(6));
+                            frame.setlocal(2, i$40);
+                        }
+                    }
+                }
+                else {
+                    Py.printComma(frame.getlocal(3));
+                    frame.setlocal(2, i$40);
+                }
+                if (frame.getlocal(2).__not__().__nonzero__()) {
+                    Py.println();
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject __repr__$8(PyFrame frame) {
+            return frame.getglobal("repr").__call__(frame.getlocal(0).__getattr__("data"));
+        }
+        
+        private static PyObject __len__$9(PyFrame frame) {
+            return frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("data"));
+        }
+        
+        private static PyObject __delitem__$10(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").__delitem__(frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject __getitem__$11(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("data").__getitem__(frame.getlocal(1));
+        }
+        
+        private static PyObject __setitem__$12(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(1), frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject __getslice__$13(PyFrame frame) {
+            return frame.getglobal("SubPattern").__call__(frame.getlocal(0).__getattr__("pattern"), frame.getlocal(0).__getattr__("data").__getslice__(frame.getlocal(1), frame.getlocal(2), null));
+        }
+        
+        private static PyObject insert$14(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").invoke("insert", frame.getlocal(1), frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject append$15(PyFrame frame) {
+            frame.getlocal(0).__getattr__("data").invoke("append", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject getwidth$16(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("width").__nonzero__()) {
+                return frame.getlocal(0).__getattr__("width");
+            }
+            t$0$PyObject = l$46;
+            frame.setlocal(2, t$0$PyObject);
+            frame.setlocal(1, t$0$PyObject);
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0).__getattr__("data");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(3, t$0$PyObject__[0]);
+                frame.setlocal(4, t$0$PyObject__[1]);
+                if (frame.getlocal(3)._is(frame.getglobal("BRANCH")).__nonzero__()) {
+                    frame.setlocal(7, frame.getglobal("sys").__getattr__("maxint"));
+                    frame.setlocal(6, i$40);
+                    t$1$int = 0;
+                    t$3$PyObject = frame.getlocal(4).__getitem__(i$41);
+                    while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                        frame.setlocal(4, t$2$PyObject);
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).invoke("getwidth"), 2);
+                        frame.setlocal(5, t$0$PyObject__[0]);
+                        frame.setlocal(8, t$0$PyObject__[1]);
+                        frame.setlocal(7, frame.getglobal("min").__call__(frame.getlocal(7), frame.getlocal(5)));
+                        frame.setlocal(6, frame.getglobal("max").__call__(frame.getlocal(6), frame.getlocal(8)));
+                    }
+                    frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(7)));
+                    frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(6)));
+                }
+                else if (frame.getlocal(3)._is(frame.getglobal("CALL")).__nonzero__()) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).invoke("getwidth"), 2);
+                    frame.setlocal(7, t$0$PyObject__[0]);
+                    frame.setlocal(6, t$0$PyObject__[1]);
+                    frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(7)));
+                    frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(6)));
+                }
+                else if (frame.getlocal(3)._is(frame.getglobal("SUBPATTERN")).__nonzero__()) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).__getitem__(i$41).invoke("getwidth"), 2);
+                    frame.setlocal(7, t$0$PyObject__[0]);
+                    frame.setlocal(6, t$0$PyObject__[1]);
+                    frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(7)));
+                    frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(6)));
+                }
+                else if (frame.getlocal(3)._in(new PyTuple(new PyObject[] {frame.getglobal("MIN_REPEAT"), frame.getglobal("MAX_REPEAT")})).__nonzero__()) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).__getitem__(i$47).invoke("getwidth"), 2);
+                    frame.setlocal(7, t$0$PyObject__[0]);
+                    frame.setlocal(6, t$0$PyObject__[1]);
+                    frame.setlocal(2, frame.getlocal(2)._add(frame.getglobal("long").__call__(frame.getlocal(7))._mul(frame.getlocal(4).__getitem__(i$40))));
+                    frame.setlocal(1, frame.getlocal(1)._add(frame.getglobal("long").__call__(frame.getlocal(6))._mul(frame.getlocal(4).__getitem__(i$41))));
+                }
+                else if (frame.getlocal(3)._in(new PyTuple(new PyObject[] {frame.getglobal("ANY"), frame.getglobal("RANGE"), frame.getglobal("IN"), frame.getglobal("LITERAL"), frame.getglobal("NOT_LITERAL"), frame.getglobal("CATEGORY")})).__nonzero__()) {
+                    frame.setlocal(2, frame.getlocal(2)._add(i$41));
+                    frame.setlocal(1, frame.getlocal(1)._add(i$41));
+                }
+                else if (frame.getlocal(3)._eq(frame.getglobal("SUCCESS")).__nonzero__()) {
+                    break;
+                }
+            }
+            frame.getlocal(0).__setattr__("width", new PyTuple(new PyObject[] {frame.getglobal("int").__call__(frame.getglobal("min").__call__(frame.getlocal(2), frame.getglobal("sys").__getattr__("maxint"))), frame.getglobal("int").__call__(frame.getglobal("min").__call__(frame.getlocal(1), frame.getglobal("sys").__getattr__("maxint")))}));
+            return frame.getlocal(0).__getattr__("width");
+        }
+        
+        private static PyObject SubPattern$17(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$5___init__));
+            frame.setlocal("dump", new PyFunction(frame.f_globals, new PyObject[] {i$40}, c$6_dump));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$7___repr__));
+            frame.setlocal("__len__", new PyFunction(frame.f_globals, new PyObject[] {}, c$8___len__));
+            frame.setlocal("__delitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$9___delitem__));
+            frame.setlocal("__getitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$10___getitem__));
+            frame.setlocal("__setitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$11___setitem__));
+            frame.setlocal("__getslice__", new PyFunction(frame.f_globals, new PyObject[] {}, c$12___getslice__));
+            frame.setlocal("insert", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_insert));
+            frame.setlocal("append", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_append));
+            frame.setlocal("getwidth", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_getwidth));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$18(PyFrame frame) {
+            frame.getlocal(0).__setattr__("string", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("index", i$40);
+            frame.getlocal(0).invoke("_Tokenizer__next");
+            return Py.None;
+        }
+        
+        private static PyObject _Tokenizer__next$19(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            if (frame.getlocal(0).__getattr__("index")._ge(frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("string"))).__nonzero__()) {
+                frame.getlocal(0).__setattr__("next", frame.getglobal("None"));
+                return Py.None;
+            }
+            frame.setlocal(1, frame.getlocal(0).__getattr__("string").__getitem__(frame.getlocal(0).__getattr__("index")));
+            if (frame.getlocal(1).__getitem__(i$40)._eq(s$21).__nonzero__()) {
+                try {
+                    frame.setlocal(2, frame.getlocal(0).__getattr__("string").__getitem__(frame.getlocal(0).__getattr__("index")._add(i$41)));
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) {
+                        throw Py.makeException(frame.getglobal("error"), s$48);
+                    }
+                    else throw t$0$PyException;
+                }
+                frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(2)));
+            }
+            frame.getlocal(0).__setattr__("index", frame.getlocal(0).__getattr__("index")._add(frame.getglobal("len").__call__(frame.getlocal(1))));
+            frame.getlocal(0).__setattr__("next", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject match$20(PyFrame frame) {
+            if (frame.getlocal(1)._eq(frame.getlocal(0).__getattr__("next")).__nonzero__()) {
+                if (frame.getlocal(2).__nonzero__()) {
+                    frame.getlocal(0).invoke("_Tokenizer__next");
+                }
+                return i$41;
+            }
+            return i$40;
+        }
+        
+        private static PyObject get$21(PyFrame frame) {
+            frame.setlocal(1, frame.getlocal(0).__getattr__("next"));
+            frame.getlocal(0).invoke("_Tokenizer__next");
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject tell$22(PyFrame frame) {
+            return new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("index"), frame.getlocal(0).__getattr__("next")});
+        }
+        
+        private static PyObject seek$23(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+            frame.getlocal(0).__setattr__("index", t$0$PyObject__[0]);
+            frame.getlocal(0).__setattr__("next", t$0$PyObject__[1]);
+            return Py.None;
+        }
+        
+        private static PyObject Tokenizer$24(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$17___init__));
+            frame.setlocal("_Tokenizer__next", new PyFunction(frame.f_globals, new PyObject[] {}, c$18__Tokenizer__next));
+            frame.setlocal("match", new PyFunction(frame.f_globals, new PyObject[] {i$41}, c$19_match));
+            frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_get));
+            frame.setlocal("tell", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_tell));
+            frame.setlocal("seek", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_seek));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject isident$25(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            return (t$0$PyObject = ((t$1$PyObject = (s$49._le(t$2$PyObject = frame.getlocal(0)).__nonzero__() ? t$2$PyObject._le(s$50) : Py.Zero)).__nonzero__() ? t$1$PyObject : (s$51._le(t$2$PyObject = frame.getlocal(0)).__nonzero__() ? t$2$PyObject._le(s$52) : Py.Zero))).__nonzero__() ? t$0$PyObject : frame.getlocal(0)._eq(s$53);
+        }
+        
+        private static PyObject isdigit$26(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            return s$54._le(t$0$PyObject = frame.getlocal(0)).__nonzero__() ? t$0$PyObject._le(s$55) : Py.Zero;
+        }
+        
+        private static PyObject isname$27(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            if (frame.getglobal("isident").__call__(frame.getlocal(0).__getitem__(i$40)).__not__().__nonzero__()) {
+                return i$40;
+            }
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(1, t$0$PyObject);
+                if (((t$2$PyObject = frame.getglobal("isident").__call__(frame.getlocal(1)).__not__()).__nonzero__() ? frame.getglobal("isdigit").__call__(frame.getlocal(1)).__not__() : t$2$PyObject).__nonzero__()) {
+                    return i$40;
+                }
+            }
+            return i$41;
+        }
+        
+        private static PyObject _group$28(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject;
+            
+            // Code
+            try {
+                frame.setlocal(2, frame.getglobal("atoi").__call__(frame.getlocal(0).__getslice__(i$41, null, null)));
+                if (((t$0$PyObject = frame.getlocal(2)).__nonzero__() ? frame.getlocal(2)._lt(frame.getlocal(1)) : t$0$PyObject).__nonzero__()) {
+                    return frame.getlocal(2);
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            return frame.getglobal("None");
+        }
+        
+        private static PyObject _class_escape$29(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(2, frame.getglobal("ESCAPES").invoke("get", frame.getlocal(1)));
+            if (frame.getlocal(2).__nonzero__()) {
+                return frame.getlocal(2);
+            }
+            frame.setlocal(2, frame.getglobal("CATEGORIES").invoke("get", frame.getlocal(1)));
+            if (frame.getlocal(2).__nonzero__()) {
+                return frame.getlocal(2);
+            }
+            try {
+                if (frame.getlocal(1).__getslice__(i$41, i$47, null)._eq(s$35).__nonzero__()) {
+                    while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("HEXDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$56) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get")));
+                    }
+                    frame.setlocal(1, frame.getlocal(1).__getslice__(i$47, null, null));
+                    if (frame.getglobal("len").__call__(frame.getlocal(1))._ne(i$47).__nonzero__()) {
+                        throw Py.makeException(frame.getglobal("error"), s$57._mod(frame.getglobal("repr").__call__(s$21._add(frame.getlocal(1)))));
+                    }
+                    return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1), i$58)._and(i$59)});
+                }
+                else if (frame.getglobal("str").__call__(frame.getlocal(1).__getslice__(i$41, i$47, null))._in(frame.getglobal("OCTDIGITS")).__nonzero__()) {
+                    while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("OCTDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$60) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get")));
+                    }
+                    frame.setlocal(1, frame.getlocal(1).__getslice__(i$41, null, null));
+                    return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1), i$39)._and(i$59)});
+                }
+                if (frame.getglobal("len").__call__(frame.getlocal(1))._eq(i$47).__nonzero__()) {
+                    return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(i$41))});
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            throw Py.makeException(frame.getglobal("error"), s$57._mod(frame.getglobal("repr").__call__(frame.getlocal(1))));
+        }
+        
+        private static PyObject _escape$30(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(4, frame.getglobal("CATEGORIES").invoke("get", frame.getlocal(1)));
+            if (frame.getlocal(4).__nonzero__()) {
+                return frame.getlocal(4);
+            }
+            frame.setlocal(4, frame.getglobal("ESCAPES").invoke("get", frame.getlocal(1)));
+            if (frame.getlocal(4).__nonzero__()) {
+                return frame.getlocal(4);
+            }
+            try {
+                if (frame.getlocal(1).__getslice__(i$41, i$47, null)._eq(s$35).__nonzero__()) {
+                    while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("HEXDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$56) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get")));
+                    }
+                    if (frame.getglobal("len").__call__(frame.getlocal(1))._ne(i$56).__nonzero__()) {
+                        throw Py.makeException(frame.getglobal("ValueError"));
+                    }
+                    return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1).__getslice__(i$47, null, null), i$58)._and(i$59)});
+                }
+                else if (frame.getlocal(1).__getslice__(i$41, i$47, null)._eq(s$54).__nonzero__()) {
+                    while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("OCTDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$56) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get")));
+                    }
+                    return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1).__getslice__(i$41, null, null), i$39)._and(i$59)});
+                }
+                else if (frame.getlocal(1).__getslice__(i$41, i$47, null)._in(frame.getglobal("DIGITS")).__nonzero__()) {
+                    frame.setlocal(3, frame.getlocal(0).invoke("tell"));
+                    if (frame.getlocal(0).__getattr__("next")._in(frame.getglobal("DIGITS")).__nonzero__()) {
+                        frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get")));
+                        if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(1).__getitem__(i$41)._in(frame.getglobal("OCTDIGITS"))).__nonzero__() ? frame.getlocal(1).__getitem__(i$47)._in(frame.getglobal("OCTDIGITS")) : t$1$PyObject)).__nonzero__() ? frame.getlocal(0).__getattr__("next")._in(frame.getglobal("OCTDIGITS")) : t$0$PyObject).__nonzero__()) {
+                            frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get")));
+                            return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1).__getslice__(i$41, null, null), i$39)._and(i$59)});
+                        }
+                    }
+                    frame.setlocal(5, frame.getglobal("_group").__call__(frame.getlocal(1), frame.getlocal(2).__getattr__("groups")));
+                    if (frame.getlocal(5).__nonzero__()) {
+                        if (frame.getlocal(2).invoke("checkgroup", frame.getlocal(5)).__not__().__nonzero__()) {
+                            throw Py.makeException(frame.getglobal("error"), s$61);
+                        }
+                        return new PyTuple(new PyObject[] {frame.getglobal("GROUPREF"), frame.getlocal(5)});
+                    }
+                    throw Py.makeException(frame.getglobal("ValueError"));
+                }
+                if (frame.getglobal("len").__call__(frame.getlocal(1))._eq(i$47).__nonzero__()) {
+                    return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(i$41))});
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            throw Py.makeException(frame.getglobal("error"), s$57._mod(frame.getglobal("repr").__call__(frame.getlocal(1))));
+        }
+        
+        private static PyObject _parse_sub$31(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int, t$3$int;
+            boolean t$0$boolean;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject;
+            
+            // Code
+            frame.setlocal(5, new PyList(new PyObject[] {}));
+            while (i$41.__nonzero__()) {
+                frame.getlocal(5).invoke("append", frame.getglobal("_parse").__call__(frame.getlocal(0), frame.getlocal(1)));
+                if (frame.getlocal(0).invoke("match", s$62).__nonzero__()) {
+                    continue;
+                }
+                if (frame.getlocal(2).__not__().__nonzero__()) {
+                    break;
+                }
+                if (((t$0$PyObject = frame.getlocal(0).__getattr__("next").__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(0).invoke("match", s$63, i$40)).__nonzero__()) {
+                    break;
+                }
+                else {
+                    throw Py.makeException(frame.getglobal("error"), s$64);
+                }
+            }
+            if (frame.getglobal("len").__call__(frame.getlocal(5))._eq(i$41).__nonzero__()) {
+                return frame.getlocal(5).__getitem__(i$40);
+            }
+            frame.setlocal(3, frame.getglobal("SubPattern").__call__(frame.getlocal(1)));
+            while (i$41.__nonzero__()) {
+                frame.setlocal(4, frame.getglobal("None"));
+                t$0$int = 0;
+                t$1$PyObject = frame.getlocal(5);
+                while (t$0$boolean=(t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                    frame.setlocal(7, t$0$PyObject);
+                    if (frame.getlocal(7).__not__().__nonzero__()) {
+                        break;
+                    }
+                    if (frame.getlocal(4)._is(frame.getglobal("None")).__nonzero__()) {
+                        frame.setlocal(4, frame.getlocal(7).__getitem__(i$40));
+                    }
+                    else if (frame.getlocal(7).__getitem__(i$40)._ne(frame.getlocal(4)).__nonzero__()) {
+                        break;
+                    }
+                }
+                if (!t$0$boolean) {
+                    t$1$int = 0;
+                    t$3$PyObject = frame.getlocal(5);
+                    while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                        frame.setlocal(7, t$2$PyObject);
+                        frame.getlocal(7).__delitem__(i$40);
+                    }
+                    frame.getlocal(3).invoke("append", frame.getlocal(4));
+                    continue;
+                }
+                break;
+            }
+            t$2$int = 0;
+            t$5$PyObject = frame.getlocal(5);
+            while (t$0$boolean=(t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                frame.setlocal(7, t$4$PyObject);
+                if (((t$6$PyObject = frame.getglobal("len").__call__(frame.getlocal(7))._ne(i$41)).__nonzero__() ? t$6$PyObject : frame.getlocal(7).__getitem__(i$40).__getitem__(i$40)._ne(frame.getglobal("LITERAL"))).__nonzero__()) {
+                    break;
+                }
+            }
+            if (!t$0$boolean) {
+                frame.setlocal(6, new PyList(new PyObject[] {}));
+                t$3$int = 0;
+                t$7$PyObject = frame.getlocal(5);
+                while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) {
+                    frame.setlocal(7, t$6$PyObject);
+                    frame.getlocal(6).invoke("append", frame.getlocal(7).__getitem__(i$40));
+                }
+                frame.getlocal(3).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("IN"), frame.getlocal(6)}));
+                return frame.getlocal(3);
+            }
+            frame.getlocal(3).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("BRANCH"), new PyTuple(new PyObject[] {frame.getglobal("None"), frame.getlocal(5)})}));
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject _parse$32(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(12, frame.getglobal("SubPattern").__call__(frame.getlocal(1)));
+            while (i$41.__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("next")._in(new PyTuple(new PyObject[] {s$62, s$63})).__nonzero__()) {
+                    break;
+                }
+                frame.setlocal(3, frame.getlocal(0).invoke("get"));
+                if (frame.getlocal(3)._is(frame.getglobal("None")).__nonzero__()) {
+                    break;
+                }
+                if (frame.getlocal(1).__getattr__("flags")._and(frame.getglobal("SRE_FLAG_VERBOSE")).__nonzero__()) {
+                    if (frame.getlocal(3)._in(frame.getglobal("WHITESPACE")).__nonzero__()) {
+                        continue;
+                    }
+                    if (frame.getlocal(3)._eq(s$65).__nonzero__()) {
+                        while (i$41.__nonzero__()) {
+                            frame.setlocal(3, frame.getlocal(0).invoke("get"));
+                            if (frame.getlocal(3)._in(new PyTuple(new PyObject[] {frame.getglobal("None"), s$13})).__nonzero__()) {
+                                break;
+                            }
+                        }
+                        continue;
+                    }
+                }
+                if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._notin(frame.getglobal("SPECIAL_CHARS")) : t$0$PyObject).__nonzero__()) {
+                    frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))}));
+                }
+                else if (frame.getlocal(3)._eq(s$66).__nonzero__()) {
+                    frame.setlocal(10, new PyList(new PyObject[] {}));
+                    if (frame.getlocal(0).invoke("match", s$67).__nonzero__()) {
+                        frame.getlocal(10).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("NEGATE"), frame.getglobal("None")}));
+                    }
+                    frame.setlocal(9, frame.getlocal(10).__getslice__(null, null, null));
+                    while (i$41.__nonzero__()) {
+                        frame.setlocal(3, frame.getlocal(0).invoke("get"));
+                        if (((t$0$PyObject = frame.getlocal(3)._eq(s$68)).__nonzero__() ? frame.getlocal(10)._ne(frame.getlocal(9)) : t$0$PyObject).__nonzero__()) {
+                            break;
+                        }
+                        else if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._eq(s$21) : t$0$PyObject).__nonzero__()) {
+                            frame.setlocal(7, frame.getglobal("_class_escape").__call__(frame.getlocal(0), frame.getlocal(3)));
+                        }
+                        else if (frame.getlocal(3).__nonzero__()) {
+                            frame.setlocal(7, new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))}));
+                        }
+                        else {
+                            throw Py.makeException(frame.getglobal("error"), s$69);
+                        }
+                        if (frame.getlocal(0).invoke("match", s$70).__nonzero__()) {
+                            frame.setlocal(3, frame.getlocal(0).invoke("get"));
+                            if (frame.getlocal(3)._eq(s$68).__nonzero__()) {
+                                if (frame.getlocal(7).__getitem__(i$40)._is(frame.getglobal("IN")).__nonzero__()) {
+                                    frame.setlocal(7, frame.getlocal(7).__getitem__(i$41).__getitem__(i$40));
+                                }
+                                frame.getlocal(10).invoke("append", frame.getlocal(7));
+                                frame.getlocal(10).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(s$70)}));
+                                break;
+                            }
+                            else {
+                                if (frame.getlocal(3).__getitem__(i$40)._eq(s$21).__nonzero__()) {
+                                    frame.setlocal(6, frame.getglobal("_class_escape").__call__(frame.getlocal(0), frame.getlocal(3)));
+                                }
+                                else {
+                                    frame.setlocal(6, new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))}));
+                                }
+                                if (((t$0$PyObject = frame.getlocal(7).__getitem__(i$40)._ne(frame.getglobal("LITERAL"))).__nonzero__() ? t$0$PyObject : frame.getlocal(6).__getitem__(i$40)._ne(frame.getglobal("LITERAL"))).__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$71);
+                                }
+                                frame.setlocal(13, frame.getlocal(7).__getitem__(i$41));
+                                frame.setlocal(20, frame.getlocal(6).__getitem__(i$41));
+                                if (frame.getlocal(20)._lt(frame.getlocal(13)).__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$71);
+                                }
+                                frame.getlocal(10).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("RANGE"), new PyTuple(new PyObject[] {frame.getlocal(13), frame.getlocal(20)})}));
+                            }
+                        }
+                        else {
+                            if (frame.getlocal(7).__getitem__(i$40)._is(frame.getglobal("IN")).__nonzero__()) {
+                                frame.setlocal(7, frame.getlocal(7).__getitem__(i$41).__getitem__(i$40));
+                            }
+                            frame.getlocal(10).invoke("append", frame.getlocal(7));
+                        }
+                    }
+                    if (((t$0$PyObject = frame.getglobal("len").__call__(frame.getlocal(10))._eq(i$41)).__nonzero__() ? frame.getlocal(10).__getitem__(i$40).__getitem__(i$40)._is(frame.getglobal("LITERAL")) : t$0$PyObject).__nonzero__()) {
+                        frame.getlocal(12).invoke("append", frame.getlocal(10).__getitem__(i$40));
+                    }
+                    else if (((t$0$PyObject = ((t$1$PyObject = frame.getglobal("len").__call__(frame.getlocal(10))._eq(i$47)).__nonzero__() ? frame.getlocal(10).__getitem__(i$40).__getitem__(i$40)._is(frame.getglobal("NEGATE")) : t$1$PyObject)).__nonzero__() ? frame.getlocal(10).__getitem__(i$41).__getitem__(i$40)._is(frame.getglobal("LITERAL")) : t$0$PyObject).__nonzero__()) {
+                        frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("NOT_LITERAL"), frame.getlocal(10).__getitem__(i$41).__getitem__(i$41)}));
+                    }
+                    else {
+                        frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("IN"), frame.getlocal(10)}));
+                    }
+                }
+                else if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._in(frame.getglobal("REPEAT_CHARS")) : t$0$PyObject).__nonzero__()) {
+                    if (frame.getlocal(3)._eq(s$72).__nonzero__()) {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$40, i$41}), 2);
+                        frame.setlocal(19, t$0$PyObject__[0]);
+                        frame.setlocal(8, t$0$PyObject__[1]);
+                    }
+                    else if (frame.getlocal(3)._eq(s$73).__nonzero__()) {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$40, frame.getglobal("MAXREPEAT")}), 2);
+                        frame.setlocal(19, t$0$PyObject__[0]);
+                        frame.setlocal(8, t$0$PyObject__[1]);
+                    }
+                    else if (frame.getlocal(3)._eq(s$74).__nonzero__()) {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$41, frame.getglobal("MAXREPEAT")}), 2);
+                        frame.setlocal(19, t$0$PyObject__[0]);
+                        frame.setlocal(8, t$0$PyObject__[1]);
+                    }
+                    else if (frame.getlocal(3)._eq(s$75).__nonzero__()) {
+                        frame.setlocal(14, frame.getlocal(0).invoke("tell"));
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$40, frame.getglobal("MAXREPEAT")}), 2);
+                        frame.setlocal(19, t$0$PyObject__[0]);
+                        frame.setlocal(8, t$0$PyObject__[1]);
+                        t$0$PyObject = s$76;
+                        frame.setlocal(13, t$0$PyObject);
+                        frame.setlocal(20, t$0$PyObject);
+                        while (frame.getlocal(0).__getattr__("next")._in(frame.getglobal("DIGITS")).__nonzero__()) {
+                            frame.setlocal(13, frame.getlocal(13)._add(frame.getlocal(0).invoke("get")));
+                        }
+                        if (frame.getlocal(0).invoke("match", s$77).__nonzero__()) {
+                            while (frame.getlocal(0).__getattr__("next")._in(frame.getglobal("DIGITS")).__nonzero__()) {
+                                frame.setlocal(20, frame.getlocal(20)._add(frame.getlocal(0).invoke("get")));
+                            }
+                        }
+                        else {
+                            frame.setlocal(20, frame.getlocal(13));
+                        }
+                        if (frame.getlocal(0).invoke("match", s$78).__not__().__nonzero__()) {
+                            frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))}));
+                            frame.getlocal(0).invoke("seek", frame.getlocal(14));
+                            continue;
+                        }
+                        if (frame.getlocal(13).__nonzero__()) {
+                            frame.setlocal(19, frame.getglobal("atoi").__call__(frame.getlocal(13)));
+                        }
+                        if (frame.getlocal(20).__nonzero__()) {
+                            frame.setlocal(8, frame.getglobal("atoi").__call__(frame.getlocal(20)));
+                        }
+                        if (frame.getlocal(8)._lt(frame.getlocal(19)).__nonzero__()) {
+                            throw Py.makeException(frame.getglobal("error"), s$79);
+                        }
+                    }
+                    else {
+                        throw Py.makeException(frame.getglobal("error"), s$80);
+                    }
+                    if (frame.getlocal(12).__nonzero__()) {
+                        frame.setlocal(11, frame.getlocal(12).__getslice__(i$41.__neg__(), null, null));
+                    }
+                    else {
+                        frame.setlocal(11, frame.getglobal("None"));
+                    }
+                    if (((t$0$PyObject = frame.getlocal(11).__not__()).__nonzero__() ? t$0$PyObject : ((t$1$PyObject = frame.getglobal("len").__call__(frame.getlocal(11))._eq(i$41)).__nonzero__() ? frame.getlocal(11).__getitem__(i$40).__getitem__(i$40)._eq(frame.getglobal("AT")) : t$1$PyObject)).__nonzero__()) {
+                        throw Py.makeException(frame.getglobal("error"), s$81);
+                    }
+                    if (frame.getlocal(11).__getitem__(i$40).__getitem__(i$40)._in(new PyTuple(new PyObject[] {frame.getglobal("MIN_REPEAT"), frame.getglobal("MAX_REPEAT")})).__nonzero__()) {
+                        throw Py.makeException(frame.getglobal("error"), s$82);
+                    }
+                    if (frame.getlocal(0).invoke("match", s$72).__nonzero__()) {
+                        frame.getlocal(12).__setitem__(i$41.__neg__(), new PyTuple(new PyObject[] {frame.getglobal("MIN_REPEAT"), new PyTuple(new PyObject[] {frame.getlocal(19), frame.getlocal(8), frame.getlocal(11)})}));
+                    }
+                    else {
+                        frame.getlocal(12).__setitem__(i$41.__neg__(), new PyTuple(new PyObject[] {frame.getglobal("MAX_REPEAT"), new PyTuple(new PyObject[] {frame.getlocal(19), frame.getlocal(8), frame.getlocal(11)})}));
+                    }
+                }
+                else if (frame.getlocal(3)._eq(s$83).__nonzero__()) {
+                    frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("ANY"), frame.getglobal("None")}));
+                }
+                else if (frame.getlocal(3)._eq(s$84).__nonzero__()) {
+                    frame.setlocal(5, i$41);
+                    frame.setlocal(4, frame.getglobal("None"));
+                    if (frame.getlocal(0).invoke("match", s$72).__nonzero__()) {
+                        frame.setlocal(5, i$40);
+                        if (frame.getlocal(0).invoke("match", s$85).__nonzero__()) {
+                            if (frame.getlocal(0).invoke("match", s$86).__nonzero__()) {
+                                frame.setlocal(4, s$76);
+                                while (i$41.__nonzero__()) {
+                                    frame.setlocal(15, frame.getlocal(0).invoke("get"));
+                                    if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) {
+                                        throw Py.makeException(frame.getglobal("error"), s$87);
+                                    }
+                                    if (frame.getlocal(15)._eq(s$88).__nonzero__()) {
+                                        break;
+                                    }
+                                    frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(15)));
+                                }
+                                frame.setlocal(5, i$41);
+                                if (frame.getglobal("isname").__call__(frame.getlocal(4)).__not__().__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$89);
+                                }
+                            }
+                            else if (frame.getlocal(0).invoke("match", s$90).__nonzero__()) {
+                                frame.setlocal(4, s$76);
+                                while (i$41.__nonzero__()) {
+                                    frame.setlocal(15, frame.getlocal(0).invoke("get"));
+                                    if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) {
+                                        throw Py.makeException(frame.getglobal("error"), s$87);
+                                    }
+                                    if (frame.getlocal(15)._eq(s$63).__nonzero__()) {
+                                        break;
+                                    }
+                                    frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(15)));
+                                }
+                                if (frame.getglobal("isname").__call__(frame.getlocal(4)).__not__().__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$89);
+                                }
+                                frame.setlocal(16, frame.getlocal(1).__getattr__("groupdict").invoke("get", frame.getlocal(4)));
+                                if (frame.getlocal(16)._is(frame.getglobal("None")).__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$91);
+                                }
+                                frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("GROUPREF"), frame.getlocal(16)}));
+                                continue;
+                            }
+                            else {
+                                frame.setlocal(15, frame.getlocal(0).invoke("get"));
+                                if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$92);
+                                }
+                                throw Py.makeException(frame.getglobal("error"), s$93._mod(frame.getlocal(15)));
+                            }
+                        }
+                        else if (frame.getlocal(0).invoke("match", s$94).__nonzero__()) {
+                            frame.setlocal(5, i$47);
+                        }
+                        else if (frame.getlocal(0).invoke("match", s$65).__nonzero__()) {
+                            while (i$41.__nonzero__()) {
+                                if (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._is(frame.getglobal("None"))).__nonzero__() ? t$0$PyObject : frame.getlocal(0).__getattr__("next")._eq(s$63)).__nonzero__()) {
+                                    break;
+                                }
+                                frame.getlocal(0).invoke("get");
+                            }
+                            if (frame.getlocal(0).invoke("match", s$63).__not__().__nonzero__()) {
+                                throw Py.makeException(frame.getglobal("error"), s$95);
+                            }
+                            continue;
+                        }
+                        else if (frame.getlocal(0).__getattr__("next")._in(new PyTuple(new PyObject[] {s$90, s$96, s$86})).__nonzero__()) {
+                            frame.setlocal(15, frame.getlocal(0).invoke("get"));
+                            frame.setlocal(18, i$41);
+                            if (frame.getlocal(15)._eq(s$86).__nonzero__()) {
+                                if (frame.getlocal(0).__getattr__("next")._notin(new PyTuple(new PyObject[] {s$90, s$96})).__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$97);
+                                }
+                                frame.setlocal(18, i$41.__neg__());
+                                frame.setlocal(15, frame.getlocal(0).invoke("get"));
+                            }
+                            frame.setlocal(17, frame.getglobal("_parse_sub").__call__(frame.getlocal(0), frame.getlocal(1)));
+                            if (frame.getlocal(0).invoke("match", s$63).__not__().__nonzero__()) {
+                                throw Py.makeException(frame.getglobal("error"), s$95);
+                            }
+                            if (frame.getlocal(15)._eq(s$90).__nonzero__()) {
+                                frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("ASSERT"), new PyTuple(new PyObject[] {frame.getlocal(18), frame.getlocal(17)})}));
+                            }
+                            else {
+                                frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("ASSERT_NOT"), new PyTuple(new PyObject[] {frame.getlocal(18), frame.getlocal(17)})}));
+                            }
+                            continue;
+                        }
+                        else {
+                            if (frame.getglobal("FLAGS").invoke("has_key", frame.getlocal(0).__getattr__("next")).__not__().__nonzero__()) {
+                                throw Py.makeException(frame.getglobal("error"), s$92);
+                            }
+                            while (frame.getglobal("FLAGS").invoke("has_key", frame.getlocal(0).__getattr__("next")).__nonzero__()) {
+                                frame.getlocal(1).__setattr__("flags", frame.getlocal(1).__getattr__("flags")._or(frame.getglobal("FLAGS").__getitem__(frame.getlocal(0).invoke("get"))));
+                            }
+                        }
+                    }
+                    if (frame.getlocal(5).__nonzero__()) {
+                        if (frame.getlocal(5)._eq(i$47).__nonzero__()) {
+                            frame.setlocal(5, frame.getglobal("None"));
+                        }
+                        else {
+                            frame.setlocal(5, frame.getlocal(1).invoke("opengroup", frame.getlocal(4)));
+                        }
+                        frame.setlocal(17, frame.getglobal("_parse_sub").__call__(frame.getlocal(0), frame.getlocal(1)));
+                        if (frame.getlocal(0).invoke("match", s$63).__not__().__nonzero__()) {
+                            throw Py.makeException(frame.getglobal("error"), s$95);
+                        }
+                        if (frame.getlocal(5)._isnot(frame.getglobal("None")).__nonzero__()) {
+                            frame.getlocal(1).invoke("closegroup", frame.getlocal(5));
+                        }
+                        frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("SUBPATTERN"), new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(17)})}));
+                    }
+                    else {
+                        while (i$41.__nonzero__()) {
+                            frame.setlocal(15, frame.getlocal(0).invoke("get"));
+                            if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) {
+                                throw Py.makeException(frame.getglobal("error"), s$92);
+                            }
+                            if (frame.getlocal(15)._eq(s$63).__nonzero__()) {
+                                break;
+                            }
+                            throw Py.makeException(frame.getglobal("error"), s$98);
+                        }
+                    }
+                }
+                else if (frame.getlocal(3)._eq(s$67).__nonzero__()) {
+                    frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("AT"), frame.getglobal("AT_BEGINNING")}));
+                }
+                else if (frame.getlocal(3)._eq(s$99).__nonzero__()) {
+                    frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("AT"), frame.getglobal("AT_END")}));
+                }
+                else if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._eq(s$21) : t$0$PyObject).__nonzero__()) {
+                    frame.setlocal(2, frame.getglobal("_escape").__call__(frame.getlocal(0), frame.getlocal(3), frame.getlocal(1)));
+                    frame.getlocal(12).invoke("append", frame.getlocal(2));
+                }
+                else {
+                    throw Py.makeException(frame.getglobal("error"), s$100);
+                }
+            }
+            return frame.getlocal(12);
+        }
+        
+        private static PyObject parse$33(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(3, frame.getglobal("Tokenizer").__call__(frame.getlocal(0)));
+            if (frame.getlocal(2)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(2, frame.getglobal("Pattern").__call__());
+            }
+            frame.getlocal(2).__setattr__("flags", frame.getlocal(1));
+            frame.getlocal(2).__setattr__("str", frame.getlocal(0));
+            frame.setlocal(4, frame.getglobal("_parse_sub").__call__(frame.getlocal(3), frame.getlocal(2), i$40));
+            frame.setlocal(5, frame.getlocal(3).invoke("get"));
+            if (frame.getlocal(5)._eq(s$63).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("error"), s$95);
+            }
+            else if (frame.getlocal(5).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("error"), s$101);
+            }
+            if (frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_DEBUG")).__nonzero__()) {
+                frame.getlocal(4).invoke("dump");
+            }
+            if (((t$0$PyObject = frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_VERBOSE")).__not__()).__nonzero__() ? frame.getlocal(4).__getattr__("pattern").__getattr__("flags")._and(frame.getglobal("SRE_FLAG_VERBOSE")) : t$0$PyObject).__nonzero__()) {
+                return frame.getglobal("parse").__call__(frame.getlocal(0), frame.getlocal(4).__getattr__("pattern").__getattr__("flags"));
+            }
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject literal$34(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (((t$0$PyObject = frame.getlocal(1)).__nonzero__() ? frame.getlocal(1).__getitem__(i$41.__neg__()).__getitem__(i$40)._is(frame.getglobal("LITERAL")) : t$0$PyObject).__nonzero__()) {
+                frame.getlocal(1).__setitem__(i$41.__neg__(), new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(1).__getitem__(i$41.__neg__()).__getitem__(i$41)._add(frame.getlocal(0))}));
+            }
+            else {
+                frame.getlocal(1).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(0)}));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject parse_template$35(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException, t$1$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(7, frame.getglobal("Tokenizer").__call__(frame.getlocal(0)));
+            frame.setlocal(9, new PyList(new PyObject[] {}));
+            frame.setlocal(15, frame.getlocal(9).__getattr__("append"));
+            frame.setlocal(11, new PyFunction(frame.f_globals, new PyObject[] {frame.getlocal(9)}, c$33_literal));
+            frame.setlocal(8, frame.getlocal(0).__getslice__(null, i$40, null));
+            if (frame.getglobal("type").__call__(frame.getlocal(8))._is(frame.getglobal("type").__call__(s$76)).__nonzero__()) {
+                frame.setlocal(13, frame.getglobal("chr"));
+            }
+            else {
+                frame.setlocal(13, frame.getglobal("unichr"));
+            }
+            while (i$41.__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(7).invoke("get"));
+                if (frame.getlocal(3)._is(frame.getglobal("None")).__nonzero__()) {
+                    break;
+                }
+                if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._eq(s$21) : t$0$PyObject).__nonzero__()) {
+                    if (frame.getlocal(3)._eq(s$102).__nonzero__()) {
+                        frame.setlocal(16, s$76);
+                        if (frame.getlocal(7).invoke("match", s$86).__nonzero__()) {
+                            while (i$41.__nonzero__()) {
+                                frame.setlocal(13, frame.getlocal(7).invoke("get"));
+                                if (frame.getlocal(13)._is(frame.getglobal("None")).__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$103);
+                                }
+                                if (frame.getlocal(13)._eq(s$88).__nonzero__()) {
+                                    break;
+                                }
+                                frame.setlocal(16, frame.getlocal(16)._add(frame.getlocal(13)));
+                            }
+                        }
+                        if (frame.getlocal(16).__not__().__nonzero__()) {
+                            throw Py.makeException(frame.getglobal("error"), s$104);
+                        }
+                        try {
+                            frame.setlocal(5, frame.getglobal("atoi").__call__(frame.getlocal(16)));
+                        }
+                        catch (Throwable x$0) {
+                            t$0$PyException = Py.setException(x$0, frame);
+                            if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                                if (frame.getglobal("isname").__call__(frame.getlocal(16)).__not__().__nonzero__()) {
+                                    throw Py.makeException(frame.getglobal("error"), s$89);
+                                }
+                                try {
+                                    frame.setlocal(5, frame.getlocal(1).__getattr__("groupindex").__getitem__(frame.getlocal(16)));
+                                }
+                                catch (Throwable x$1) {
+                                    t$1$PyException = Py.setException(x$1, frame);
+                                    if (Py.matchException(t$1$PyException, frame.getglobal("KeyError"))) {
+                                        throw Py.makeException(frame.getglobal("IndexError"), s$91);
+                                    }
+                                    else throw t$1$PyException;
+                                }
+                            }
+                            else throw t$0$PyException;
+                        }
+                        frame.getlocal(15).__call__(new PyTuple(new PyObject[] {frame.getglobal("MARK"), frame.getlocal(5)}));
+                    }
+                    else if (((t$0$PyObject = frame.getglobal("len").__call__(frame.getlocal(3))._gt(i$41)).__nonzero__() ? frame.getlocal(3).__getitem__(i$41)._in(frame.getglobal("DIGITS")) : t$0$PyObject).__nonzero__()) {
+                        frame.setlocal(2, frame.getglobal("None"));
+                        while (i$41.__nonzero__()) {
+                            frame.setlocal(6, frame.getglobal("_group").__call__(frame.getlocal(3), frame.getlocal(1).__getattr__("groups")._add(i$41)));
+                            if (frame.getlocal(6).__nonzero__()) {
+                                if (((t$0$PyObject = frame.getlocal(7).__getattr__("next")._notin(frame.getglobal("DIGITS"))).__nonzero__() ? t$0$PyObject : frame.getglobal("_group").__call__(frame.getlocal(3)._add(frame.getlocal(7).__getattr__("next")), frame.getlocal(1).__getattr__("groups")._add(i$41)).__not__()).__nonzero__()) {
+                                    frame.setlocal(2, new PyTuple(new PyObject[] {frame.getglobal("MARK"), frame.getlocal(6)}));
+                                    break;
+                                }
+                            }
+                            else if (frame.getlocal(7).__getattr__("next")._in(frame.getglobal("OCTDIGITS")).__nonzero__()) {
+                                frame.setlocal(3, frame.getlocal(3)._add(frame.getlocal(7).invoke("get")));
+                            }
+                            else {
+                                break;
+                            }
+                        }
+                        if (frame.getlocal(2).__not__().__nonzero__()) {
+                            frame.setlocal(3, frame.getlocal(3).__getslice__(i$41, null, null));
+                            frame.setlocal(2, new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(13).__call__(frame.getglobal("atoi").__call__(frame.getlocal(3).__getslice__(i$105.__neg__(), null, null), i$39)._and(i$59))}));
+                        }
+                        if (frame.getlocal(2).__getitem__(i$40)._is(frame.getglobal("LITERAL")).__nonzero__()) {
+                            frame.getlocal(11).__call__(frame.getlocal(2).__getitem__(i$41));
+                        }
+                        else {
+                            frame.getlocal(15).__call__(frame.getlocal(2));
+                        }
+                    }
+                    else {
+                        try {
+                            frame.setlocal(3, frame.getlocal(13).__call__(frame.getglobal("ESCAPES").__getitem__(frame.getlocal(3)).__getitem__(i$41)));
+                        }
+                        catch (Throwable x$2) {
+                            t$0$PyException = Py.setException(x$2, frame);
+                            if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) {
+                                // pass
+                            }
+                            else throw t$0$PyException;
+                        }
+                        frame.getlocal(11).__call__(frame.getlocal(3));
+                    }
+                }
+                else {
+                    frame.getlocal(11).__call__(frame.getlocal(3));
+                }
+            }
+            frame.setlocal(10, i$40);
+            frame.setlocal(12, new PyList(new PyObject[] {}));
+            frame.setlocal(4, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(9);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                frame.setlocal(14, t$0$PyObject__[0]);
+                frame.setlocal(7, t$0$PyObject__[1]);
+                if (frame.getlocal(14)._is(frame.getglobal("MARK")).__nonzero__()) {
+                    frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(10), frame.getlocal(7)}));
+                    frame.getlocal(4).invoke("append", frame.getglobal("None"));
+                }
+                else {
+                    frame.getlocal(4).invoke("append", frame.getlocal(7));
+                }
+                frame.setlocal(10, frame.getlocal(10)._add(i$41));
+            }
+            return new PyTuple(new PyObject[] {frame.getlocal(12), frame.getlocal(4)});
+        }
+        
+        private static PyObject expand_template$36(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            frame.setlocal(4, frame.getlocal(1).__getattr__("group"));
+            frame.setlocal(8, frame.getlocal(1).__getattr__("string").__getslice__(null, i$40, null));
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            frame.setlocal(2, frame.getlocal(2).__getslice__(null, null, null));
+            try {
+                t$0$int = 0;
+                t$1$PyObject = frame.getlocal(3);
+                while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                    t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2);
+                    frame.setlocal(5, t$0$PyObject__[0]);
+                    frame.setlocal(6, t$0$PyObject__[1]);
+                    t$2$PyObject = frame.getlocal(4).__call__(frame.getlocal(6));
+                    frame.getlocal(2).__setitem__(frame.getlocal(5), t$2$PyObject);
+                    frame.setlocal(7, t$2$PyObject);
+                    if (frame.getlocal(7)._is(frame.getglobal("None")).__nonzero__()) {
+                        throw Py.makeException(frame.getglobal("IndexError"));
+                    }
+                }
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) {
+                    throw Py.makeException(frame.getglobal("error"), s$106);
+                }
+                else throw t$0$PyException;
+            }
+            return frame.getglobal("string").__getattr__("join").__call__(frame.getlocal(2), frame.getlocal(8));
+        }
+        
+        private static PyObject main$37(PyFrame frame) {
+            frame.setglobal("__file__", s$107);
+            
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            frame.setlocal("string", org.python.core.imp.importOne("string", frame));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            org.python.core.imp.importAll("sre_constants", frame);
+            frame.setlocal("SPECIAL_CHARS", s$0);
+            frame.setlocal("REPEAT_CHARS", s$1);
+            frame.setlocal("DIGITS", frame.getname("tuple").__call__(s$2));
+            frame.setlocal("OCTDIGITS", frame.getname("tuple").__call__(s$3));
+            frame.setlocal("HEXDIGITS", frame.getname("tuple").__call__(s$4));
+            frame.setlocal("WHITESPACE", frame.getname("tuple").__call__(s$5));
+            frame.setlocal("ESCAPES", new PyDictionary(new PyObject[] {s$6, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$7)}), s$8, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$9)}), s$10, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$11)}), s$12, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$13)}), s$14, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$15)}), s$16, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$17)}), s$18, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$19)}), s$20, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$21)})}));
+            frame.setlocal("CATEGORIES", new PyDictionary(new PyObject[] {s$22, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_BEGINNING_STRING")}), s$8, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_BOUNDARY")}), s$23, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_NON_BOUNDARY")}), s$24, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_DIGIT")})})}), s$25, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_NOT_DIGIT")})})}), s$26, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_SPACE")})})}), s$27, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_NOT_SPACE")})})}), s$28, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_WORD")})})}), s$29, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_NOT_WORD")})})}), s$30, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_END_STRING")})}));
+            frame.setlocal("FLAGS", new PyDictionary(new PyObject[] {s$31, frame.getname("SRE_FLAG_IGNORECASE"), s$32, frame.getname("SRE_FLAG_LOCALE"), s$33, frame.getname("SRE_FLAG_MULTILINE"), s$34, frame.getname("SRE_FLAG_DOTALL"), s$35, frame.getname("SRE_FLAG_VERBOSE"), s$36, frame.getname("SRE_FLAG_TEMPLATE"), s$37, frame.getname("SRE_FLAG_UNICODE")}));
+            try {
+                frame.getname("int").__call__(s$38, i$39);
+                frame.setlocal("atoi", frame.getname("int"));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("TypeError"))) {
+                    frame.setlocal("atoi", frame.getname("string").__getattr__("atoi"));
+                }
+                else throw t$0$PyException;
+            }
+            frame.setlocal("Pattern", Py.makeClass("Pattern", new PyObject[] {}, c$4_Pattern, null));
+            frame.setlocal("SubPattern", Py.makeClass("SubPattern", new PyObject[] {}, c$16_SubPattern, null));
+            frame.setlocal("Tokenizer", Py.makeClass("Tokenizer", new PyObject[] {}, c$23_Tokenizer, null));
+            frame.setlocal("isident", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_isident));
+            frame.setlocal("isdigit", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_isdigit));
+            frame.setlocal("isname", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_isname));
+            frame.setlocal("_group", new PyFunction(frame.f_globals, new PyObject[] {}, c$27__group));
+            frame.setlocal("_class_escape", new PyFunction(frame.f_globals, new PyObject[] {}, c$28__class_escape));
+            frame.setlocal("_escape", new PyFunction(frame.f_globals, new PyObject[] {}, c$29__escape));
+            frame.setlocal("_parse_sub", new PyFunction(frame.f_globals, new PyObject[] {i$41}, c$30__parse_sub));
+            frame.setlocal("_parse", new PyFunction(frame.f_globals, new PyObject[] {}, c$31__parse));
+            frame.setlocal("parse", new PyFunction(frame.f_globals, new PyObject[] {i$40, frame.getname("None")}, c$32_parse));
+            frame.setlocal("parse_template", new PyFunction(frame.f_globals, new PyObject[] {}, c$34_parse_template));
+            frame.setlocal("expand_template", new PyFunction(frame.f_globals, new PyObject[] {}, c$35_expand_template));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("sre_parse"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "sre_parse";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(sre_parse._PyInner.class, newargs, sre_parse.jpy$packages, sre_parse.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/stat$_PyInner.class b/server/jpywork/stat$_PyInner.class
new file mode 100644 (file)
index 0000000..2ac0d53
Binary files /dev/null and b/server/jpywork/stat$_PyInner.class differ
diff --git a/server/jpywork/stat.class b/server/jpywork/stat.class
new file mode 100644 (file)
index 0000000..8cfdab8
Binary files /dev/null and b/server/jpywork/stat.class differ
diff --git a/server/jpywork/stat.java b/server/jpywork/stat.java
new file mode 100644 (file)
index 0000000..2bcf81a
--- /dev/null
@@ -0,0 +1,233 @@
+import org.python.core.*;
+
+public class stat extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject i$1;
+        private static PyObject i$2;
+        private static PyObject i$3;
+        private static PyObject i$4;
+        private static PyObject i$5;
+        private static PyObject i$6;
+        private static PyObject i$7;
+        private static PyObject i$8;
+        private static PyObject i$9;
+        private static PyObject i$10;
+        private static PyObject i$11;
+        private static PyObject i$12;
+        private static PyObject i$13;
+        private static PyObject i$14;
+        private static PyObject i$15;
+        private static PyObject i$16;
+        private static PyObject i$17;
+        private static PyObject i$18;
+        private static PyObject i$19;
+        private static PyObject i$20;
+        private static PyObject i$21;
+        private static PyObject i$22;
+        private static PyObject i$23;
+        private static PyObject i$24;
+        private static PyObject i$25;
+        private static PyObject i$26;
+        private static PyObject i$27;
+        private static PyObject i$28;
+        private static PyObject i$29;
+        private static PyObject s$30;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_S_IMODE;
+        private static PyCode c$1_S_IFMT;
+        private static PyCode c$2_S_ISDIR;
+        private static PyCode c$3_S_ISCHR;
+        private static PyCode c$4_S_ISBLK;
+        private static PyCode c$5_S_ISREG;
+        private static PyCode c$6_S_ISFIFO;
+        private static PyCode c$7_S_ISLNK;
+        private static PyCode c$8_S_ISSOCK;
+        private static PyCode c$9_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Constants/functions for interpreting results of os.stat() and os.lstat().\012\012Suggested usage: from stat import *\012");
+            i$1 = Py.newInteger(0);
+            i$2 = Py.newInteger(1);
+            i$3 = Py.newInteger(2);
+            i$4 = Py.newInteger(3);
+            i$5 = Py.newInteger(4);
+            i$6 = Py.newInteger(5);
+            i$7 = Py.newInteger(6);
+            i$8 = Py.newInteger(7);
+            i$9 = Py.newInteger(8);
+            i$10 = Py.newInteger(9);
+            i$11 = Py.newInteger(4095);
+            i$12 = Py.newInteger(61440);
+            i$13 = Py.newInteger(16384);
+            i$14 = Py.newInteger(8192);
+            i$15 = Py.newInteger(24576);
+            i$16 = Py.newInteger(32768);
+            i$17 = Py.newInteger(4096);
+            i$18 = Py.newInteger(40960);
+            i$19 = Py.newInteger(49152);
+            i$20 = Py.newInteger(2048);
+            i$21 = Py.newInteger(1024);
+            i$22 = Py.newInteger(512);
+            i$23 = Py.newInteger(256);
+            i$24 = Py.newInteger(128);
+            i$25 = Py.newInteger(64);
+            i$26 = Py.newInteger(448);
+            i$27 = Py.newInteger(56);
+            i$28 = Py.newInteger(32);
+            i$29 = Py.newInteger(16);
+            s$30 = Py.newString("/usr/share/jython/Lib-cpython/stat.py");
+            funcTable = new _PyInner();
+            c$0_S_IMODE = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_IMODE", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_S_IFMT = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_IFMT", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_S_ISDIR = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISDIR", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_S_ISCHR = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISCHR", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_S_ISBLK = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISBLK", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_S_ISREG = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISREG", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_S_ISFIFO = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISFIFO", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_S_ISLNK = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISLNK", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_S_ISSOCK = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISSOCK", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/stat.py", "main", false, false, funcTable, 9, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$9_main == null) _PyInner.initConstants();
+            return c$9_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.S_IMODE$1(frame);
+                case 1:
+                return _PyInner.S_IFMT$2(frame);
+                case 2:
+                return _PyInner.S_ISDIR$3(frame);
+                case 3:
+                return _PyInner.S_ISCHR$4(frame);
+                case 4:
+                return _PyInner.S_ISBLK$5(frame);
+                case 5:
+                return _PyInner.S_ISREG$6(frame);
+                case 6:
+                return _PyInner.S_ISFIFO$7(frame);
+                case 7:
+                return _PyInner.S_ISLNK$8(frame);
+                case 8:
+                return _PyInner.S_ISSOCK$9(frame);
+                case 9:
+                return _PyInner.main$10(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject S_IMODE$1(PyFrame frame) {
+            return frame.getlocal(0)._and(i$11);
+        }
+        
+        private static PyObject S_IFMT$2(PyFrame frame) {
+            return frame.getlocal(0)._and(i$12);
+        }
+        
+        private static PyObject S_ISDIR$3(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFDIR"));
+        }
+        
+        private static PyObject S_ISCHR$4(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFCHR"));
+        }
+        
+        private static PyObject S_ISBLK$5(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFBLK"));
+        }
+        
+        private static PyObject S_ISREG$6(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFREG"));
+        }
+        
+        private static PyObject S_ISFIFO$7(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFIFO"));
+        }
+        
+        private static PyObject S_ISLNK$8(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFLNK"));
+        }
+        
+        private static PyObject S_ISSOCK$9(PyFrame frame) {
+            return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFSOCK"));
+        }
+        
+        private static PyObject main$10(PyFrame frame) {
+            frame.setglobal("__file__", s$30);
+            
+            /* Constants/functions for interpreting results of os.stat() and os.lstat().
+            
+            Suggested usage: from stat import *
+             */
+            frame.setlocal("ST_MODE", i$1);
+            frame.setlocal("ST_INO", i$2);
+            frame.setlocal("ST_DEV", i$3);
+            frame.setlocal("ST_NLINK", i$4);
+            frame.setlocal("ST_UID", i$5);
+            frame.setlocal("ST_GID", i$6);
+            frame.setlocal("ST_SIZE", i$7);
+            frame.setlocal("ST_ATIME", i$8);
+            frame.setlocal("ST_MTIME", i$9);
+            frame.setlocal("ST_CTIME", i$10);
+            frame.setlocal("S_IMODE", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_S_IMODE));
+            frame.setlocal("S_IFMT", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_S_IFMT));
+            frame.setlocal("S_IFDIR", i$13);
+            frame.setlocal("S_IFCHR", i$14);
+            frame.setlocal("S_IFBLK", i$15);
+            frame.setlocal("S_IFREG", i$16);
+            frame.setlocal("S_IFIFO", i$17);
+            frame.setlocal("S_IFLNK", i$18);
+            frame.setlocal("S_IFSOCK", i$19);
+            frame.setlocal("S_ISDIR", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_S_ISDIR));
+            frame.setlocal("S_ISCHR", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_S_ISCHR));
+            frame.setlocal("S_ISBLK", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_S_ISBLK));
+            frame.setlocal("S_ISREG", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_S_ISREG));
+            frame.setlocal("S_ISFIFO", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_S_ISFIFO));
+            frame.setlocal("S_ISLNK", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_S_ISLNK));
+            frame.setlocal("S_ISSOCK", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_S_ISSOCK));
+            frame.setlocal("S_ISUID", i$20);
+            frame.setlocal("S_ISGID", i$21);
+            frame.setlocal("S_ENFMT", frame.getname("S_ISGID"));
+            frame.setlocal("S_ISVTX", i$22);
+            frame.setlocal("S_IREAD", i$23);
+            frame.setlocal("S_IWRITE", i$24);
+            frame.setlocal("S_IEXEC", i$25);
+            frame.setlocal("S_IRWXU", i$26);
+            frame.setlocal("S_IRUSR", i$23);
+            frame.setlocal("S_IWUSR", i$24);
+            frame.setlocal("S_IXUSR", i$25);
+            frame.setlocal("S_IRWXG", i$27);
+            frame.setlocal("S_IRGRP", i$28);
+            frame.setlocal("S_IWGRP", i$29);
+            frame.setlocal("S_IXGRP", i$9);
+            frame.setlocal("S_IRWXO", i$8);
+            frame.setlocal("S_IROTH", i$5);
+            frame.setlocal("S_IWOTH", i$3);
+            frame.setlocal("S_IXOTH", i$2);
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("stat"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "stat";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(stat._PyInner.class, newargs, stat.jpy$packages, stat.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/string$_PyInner.class b/server/jpywork/string$_PyInner.class
new file mode 100644 (file)
index 0000000..87ee37b
Binary files /dev/null and b/server/jpywork/string$_PyInner.class differ
diff --git a/server/jpywork/string.class b/server/jpywork/string.class
new file mode 100644 (file)
index 0000000..ad49016
Binary files /dev/null and b/server/jpywork/string.class differ
diff --git a/server/jpywork/string.java b/server/jpywork/string.java
new file mode 100644 (file)
index 0000000..32b2150
--- /dev/null
@@ -0,0 +1,758 @@
+import org.python.core.*;
+
+public class string extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject i$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject i$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject i$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject i$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject i$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_lower;
+        private static PyCode c$1_upper;
+        private static PyCode c$2_swapcase;
+        private static PyCode c$3_strip;
+        private static PyCode c$4_lstrip;
+        private static PyCode c$5_rstrip;
+        private static PyCode c$6_split;
+        private static PyCode c$7_join;
+        private static PyCode c$8_index;
+        private static PyCode c$9_rindex;
+        private static PyCode c$10_count;
+        private static PyCode c$11_find;
+        private static PyCode c$12_rfind;
+        private static PyCode c$13_atof;
+        private static PyCode c$14_atoi;
+        private static PyCode c$15_atol;
+        private static PyCode c$16_ljust;
+        private static PyCode c$17_rjust;
+        private static PyCode c$18_center;
+        private static PyCode c$19_zfill;
+        private static PyCode c$20_expandtabs;
+        private static PyCode c$21_translate;
+        private static PyCode c$22_capitalize;
+        private static PyCode c$23_capwords;
+        private static PyCode c$24_maketrans;
+        private static PyCode c$25_replace;
+        private static PyCode c$26_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Common string manipulations.\012\012Public module variables:\012\012whitespace -- a string containing all characters considered whitespace\012lowercase -- a string containing all characters considered lowercase letters\012uppercase -- a string containing all characters considered uppercase letters\012letters -- a string containing all characters considered letters\012digits -- a string containing all characters considered decimal digits\012hexdigits -- a string containing all characters considered hexadecimal digits\012octdigits -- a string containing all characters considered octal digits\012\012");
+            s$1 = Py.newString(" \011\012\015\013\014");
+            s$2 = Py.newString("abcdefghijklmnopqrstuvwxyz");
+            s$3 = Py.newString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+            s$4 = Py.newString("0123456789");
+            s$5 = Py.newString("abcdef");
+            s$6 = Py.newString("ABCDEF");
+            s$7 = Py.newString("01234567");
+            s$8 = Py.newString("");
+            i$9 = Py.newInteger(256);
+            s$10 = Py.newString("lower(s) -> string\012\012    Return a copy of the string s converted to lowercase.\012\012    ");
+            s$11 = Py.newString("upper(s) -> string\012\012    Return a copy of the string s converted to uppercase.\012\012    ");
+            s$12 = Py.newString("swapcase(s) -> string\012\012    Return a copy of the string s with upper case characters\012    converted to lowercase and vice versa.\012\012    ");
+            s$13 = Py.newString("strip(s) -> string\012\012    Return a copy of the string s with leading and trailing\012    whitespace removed.\012\012    ");
+            s$14 = Py.newString("lstrip(s) -> string\012\012    Return a copy of the string s with leading whitespace removed.\012\012    ");
+            s$15 = Py.newString("rstrip(s) -> string\012\012    Return a copy of the string s with trailing whitespace\012    removed.\012\012    ");
+            s$16 = Py.newString("split(str [,sep [,maxsplit]]) -> list of strings\012\012    Return a list of the words in the string s, using sep as the\012    delimiter string.  If maxsplit is nonzero, splits into at most\012    maxsplit words If sep is not specified, any whitespace string\012    is a separator.  Maxsplit defaults to -1.\012\012    (split and splitfields are synonymous)\012\012    ");
+            i$17 = Py.newInteger(1);
+            s$18 = Py.newString("join(list [,sep]) -> string\012\012    Return a string composed of the words in list, with\012    intervening occurences of sep.  The default separator is a\012    single space.\012\012    (joinfields and join are synonymous)\012\012    ");
+            s$19 = Py.newString(" ");
+            s$20 = Py.newString("index(s, sub [,start [,end]]) -> int\012\012    Like find but raises ValueError when the substring is not found.\012\012    ");
+            s$21 = Py.newString("rindex(s, sub [,start [,end]]) -> int\012\012    Like rfind but raises ValueError when the substring is not found.\012\012    ");
+            s$22 = Py.newString("count(s, sub[, start[,end]]) -> int\012\012    Return the number of occurrences of substring sub in string\012    s[start:end].  Optional arguments start and end are\012    interpreted as in slice notation.\012\012    ");
+            s$23 = Py.newString("find(s, sub [,start [,end]]) -> in\012\012    Return the lowest index in s where substring sub is found,\012    such that sub is contained within s[start,end].  Optional\012    arguments start and end are interpreted as in slice notation.\012\012    Return -1 on failure.\012\012    ");
+            s$24 = Py.newString("rfind(s, sub [,start [,end]]) -> int\012\012    Return the highest index in s where substring sub is found,\012    such that sub is contained within s[start,end].  Optional\012    arguments start and end are interpreted as in slice notation.\012\012    Return -1 on failure.\012\012    ");
+            s$25 = Py.newString("atof(s) -> float\012\012    Return the floating point number represented by the string s.\012\012    ");
+            s$26 = Py.newString("argument 1: expected string, %s found");
+            s$27 = Py.newString("atoi(s [,base]) -> int\012\012    Return the integer represented by the string s in the given\012    base, which defaults to 10.  The string s must consist of one\012    or more digits, possibly preceded by a sign.  If base is 0, it\012    is chosen from the leading characters of s, 0 for octal, 0x or\012    0X for hexadecimal.  If base is 16, a preceding 0x or 0X is\012    accepted.\012\012    ");
+            i$28 = Py.newInteger(0);
+            s$29 = Py.newString("function requires at least 1 argument: %d given");
+            s$30 = Py.newString("atol(s [,base]) -> long\012\012    Return the long integer represented by the string s in the\012    given base, which defaults to 10.  The string s must consist\012    of one or more digits, possibly preceded by a sign.  If base\012    is 0, it is chosen from the leading characters of s, 0 for\012    octal, 0x or 0X for hexadecimal.  If base is 16, a preceding\012    0x or 0X is accepted.  A trailing L or l is not accepted,\012    unless base is 0.\012\012    ");
+            s$31 = Py.newString("ljust(s, width) -> string\012\012    Return a left-justified version of s, in a field of the\012    specified width, padded with spaces as needed.  The string is\012    never truncated.\012\012    ");
+            s$32 = Py.newString("rjust(s, width) -> string\012\012    Return a right-justified version of s, in a field of the\012    specified width, padded with spaces as needed.  The string is\012    never truncated.\012\012    ");
+            s$33 = Py.newString("center(s, width) -> string\012\012    Return a center version of s, in a field of the specified\012    width. padded with spaces as needed.  The string is never\012    truncated.\012\012    ");
+            i$34 = Py.newInteger(2);
+            s$35 = Py.newString("zfill(x, width) -> string\012\012    Pad a numeric string x with zeros on the left, to fill a field\012    of the specified width.  The string x is never truncated.\012\012    ");
+            s$36 = Py.newString("-");
+            s$37 = Py.newString("+");
+            s$38 = Py.newString("0");
+            s$39 = Py.newString("expandtabs(s [,tabsize]) -> string\012\012    Return a copy of the string s with all tab characters replaced\012    by the appropriate number of spaces, depending on the current\012    column, and the tabsize (default 8).\012\012    ");
+            s$40 = Py.newString("\011");
+            s$41 = Py.newString("\012");
+            i$42 = Py.newInteger(8);
+            s$43 = Py.newString("translate(s,table [,deletechars]) -> string\012\012    Return a copy of the string s, where all characters occurring\012    in the optional argument deletechars are removed, and the\012    remaining characters have been mapped through the given\012    translation table, which must be a string of length 256.\012\012    ");
+            s$44 = Py.newString("capitalize(s) -> string\012\012    Return a copy of the string s with only its first character\012    capitalized.\012\012    ");
+            s$45 = Py.newString("capwords(s, [sep]) -> string\012\012    Split the argument into words using split, capitalize each\012    word using capitalize, and join the capitalized words using\012    join. Note that this replaces runs of whitespace characters by\012    a single space.\012\012    ");
+            s$46 = Py.newString("maketrans(frm, to) -> string\012\012    Return a translation table (a string of 256 bytes long)\012    suitable for use in string.translate.  The strings frm and to\012    must be of the same length.\012\012    ");
+            s$47 = Py.newString("maketrans arguments must have same length");
+            s$48 = Py.newString("replace (str, old, new[, maxsplit]) -> string\012\012    Return a copy of string str with all occurrences of substring\012    old replaced by new. If the optional argument maxsplit is\012    given, only the first maxsplit occurrences are replaced.\012\012    ");
+            s$49 = Py.newString("/usr/share/jython/Lib/string.py");
+            funcTable = new _PyInner();
+            c$0_lower = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "lower", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_upper = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "upper", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_swapcase = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "swapcase", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_strip = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "strip", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_lstrip = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "lstrip", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_rstrip = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "rstrip", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_split = Py.newCode(3, new String[] {"s", "sep", "maxsplit"}, "/usr/share/jython/Lib/string.py", "split", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_join = Py.newCode(2, new String[] {"words", "sep"}, "/usr/share/jython/Lib/string.py", "join", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_index = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "index", true, false, funcTable, 8, null, null, 0, 1);
+            c$9_rindex = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "rindex", true, false, funcTable, 9, null, null, 0, 1);
+            c$10_count = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "count", true, false, funcTable, 10, null, null, 0, 1);
+            c$11_find = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "find", true, false, funcTable, 11, null, null, 0, 1);
+            c$12_rfind = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "rfind", true, false, funcTable, 12, null, null, 0, 1);
+            c$13_atof = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "atof", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_atoi = Py.newCode(1, new String[] {"args", "s"}, "/usr/share/jython/Lib/string.py", "atoi", true, false, funcTable, 14, null, null, 0, 1);
+            c$15_atol = Py.newCode(1, new String[] {"args", "s"}, "/usr/share/jython/Lib/string.py", "atol", true, false, funcTable, 15, null, null, 0, 1);
+            c$16_ljust = Py.newCode(2, new String[] {"s", "width", "n"}, "/usr/share/jython/Lib/string.py", "ljust", false, false, funcTable, 16, null, null, 0, 1);
+            c$17_rjust = Py.newCode(2, new String[] {"s", "width", "n"}, "/usr/share/jython/Lib/string.py", "rjust", false, false, funcTable, 17, null, null, 0, 1);
+            c$18_center = Py.newCode(2, new String[] {"s", "width", "half", "n"}, "/usr/share/jython/Lib/string.py", "center", false, false, funcTable, 18, null, null, 0, 1);
+            c$19_zfill = Py.newCode(2, new String[] {"x", "width", "sign", "s", "n"}, "/usr/share/jython/Lib/string.py", "zfill", false, false, funcTable, 19, null, null, 0, 1);
+            c$20_expandtabs = Py.newCode(2, new String[] {"s", "tabsize", "line", "res", "c"}, "/usr/share/jython/Lib/string.py", "expandtabs", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_translate = Py.newCode(3, new String[] {"s", "table", "deletions"}, "/usr/share/jython/Lib/string.py", "translate", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_capitalize = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "capitalize", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_capwords = Py.newCode(2, new String[] {"s", "sep"}, "/usr/share/jython/Lib/string.py", "capwords", false, false, funcTable, 23, null, null, 0, 1);
+            c$24_maketrans = Py.newCode(2, new String[] {"fromstr", "tostr", "i", "L"}, "/usr/share/jython/Lib/string.py", "maketrans", false, false, funcTable, 24, null, null, 0, 1);
+            c$25_replace = Py.newCode(4, new String[] {"s", "old", "new", "maxsplit"}, "/usr/share/jython/Lib/string.py", "replace", false, false, funcTable, 25, null, null, 0, 1);
+            c$26_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/string.py", "main", false, false, funcTable, 26, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$26_main == null) _PyInner.initConstants();
+            return c$26_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.lower$1(frame);
+                case 1:
+                return _PyInner.upper$2(frame);
+                case 2:
+                return _PyInner.swapcase$3(frame);
+                case 3:
+                return _PyInner.strip$4(frame);
+                case 4:
+                return _PyInner.lstrip$5(frame);
+                case 5:
+                return _PyInner.rstrip$6(frame);
+                case 6:
+                return _PyInner.split$7(frame);
+                case 7:
+                return _PyInner.join$8(frame);
+                case 8:
+                return _PyInner.index$9(frame);
+                case 9:
+                return _PyInner.rindex$10(frame);
+                case 10:
+                return _PyInner.count$11(frame);
+                case 11:
+                return _PyInner.find$12(frame);
+                case 12:
+                return _PyInner.rfind$13(frame);
+                case 13:
+                return _PyInner.atof$14(frame);
+                case 14:
+                return _PyInner.atoi$15(frame);
+                case 15:
+                return _PyInner.atol$16(frame);
+                case 16:
+                return _PyInner.ljust$17(frame);
+                case 17:
+                return _PyInner.rjust$18(frame);
+                case 18:
+                return _PyInner.center$19(frame);
+                case 19:
+                return _PyInner.zfill$20(frame);
+                case 20:
+                return _PyInner.expandtabs$21(frame);
+                case 21:
+                return _PyInner.translate$22(frame);
+                case 22:
+                return _PyInner.capitalize$23(frame);
+                case 23:
+                return _PyInner.capwords$24(frame);
+                case 24:
+                return _PyInner.maketrans$25(frame);
+                case 25:
+                return _PyInner.replace$26(frame);
+                case 26:
+                return _PyInner.main$27(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject lower$1(PyFrame frame) {
+            /* lower(s) -> string
+            
+                Return a copy of the string s converted to lowercase.
+            
+                 */
+            return frame.getlocal(0).invoke("lower");
+        }
+        
+        private static PyObject upper$2(PyFrame frame) {
+            /* upper(s) -> string
+            
+                Return a copy of the string s converted to uppercase.
+            
+                 */
+            return frame.getlocal(0).invoke("upper");
+        }
+        
+        private static PyObject swapcase$3(PyFrame frame) {
+            /* swapcase(s) -> string
+            
+                Return a copy of the string s with upper case characters
+                converted to lowercase and vice versa.
+            
+                 */
+            return frame.getlocal(0).invoke("swapcase");
+        }
+        
+        private static PyObject strip$4(PyFrame frame) {
+            /* strip(s) -> string
+            
+                Return a copy of the string s with leading and trailing
+                whitespace removed.
+            
+                 */
+            return frame.getlocal(0).invoke("strip");
+        }
+        
+        private static PyObject lstrip$5(PyFrame frame) {
+            /* lstrip(s) -> string
+            
+                Return a copy of the string s with leading whitespace removed.
+            
+                 */
+            return frame.getlocal(0).invoke("lstrip");
+        }
+        
+        private static PyObject rstrip$6(PyFrame frame) {
+            /* rstrip(s) -> string
+            
+                Return a copy of the string s with trailing whitespace
+                removed.
+            
+                 */
+            return frame.getlocal(0).invoke("rstrip");
+        }
+        
+        private static PyObject split$7(PyFrame frame) {
+            /* split(str [,sep [,maxsplit]]) -> list of strings
+            
+                Return a list of the words in the string s, using sep as the
+                delimiter string.  If maxsplit is nonzero, splits into at most
+                maxsplit words If sep is not specified, any whitespace string
+                is a separator.  Maxsplit defaults to -1.
+            
+                (split and splitfields are synonymous)
+            
+                 */
+            return frame.getlocal(0).invoke("split", frame.getlocal(1), frame.getlocal(2));
+        }
+        
+        private static PyObject join$8(PyFrame frame) {
+            /* join(list [,sep]) -> string
+            
+                Return a string composed of the words in list, with
+                intervening occurences of sep.  The default separator is a
+                single space.
+            
+                (joinfields and join are synonymous)
+            
+                 */
+            return frame.getlocal(1).invoke("join", frame.getlocal(0));
+        }
+        
+        private static PyObject index$9(PyFrame frame) {
+            /* index(s, sub [,start [,end]]) -> int
+            
+                Like find but raises ValueError when the substring is not found.
+            
+                 */
+            return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("index"), frame.getlocal(1));
+        }
+        
+        private static PyObject rindex$10(PyFrame frame) {
+            /* rindex(s, sub [,start [,end]]) -> int
+            
+                Like rfind but raises ValueError when the substring is not found.
+            
+                 */
+            return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("rindex"), frame.getlocal(1));
+        }
+        
+        private static PyObject count$11(PyFrame frame) {
+            /* count(s, sub[, start[,end]]) -> int
+            
+                Return the number of occurrences of substring sub in string
+                s[start:end].  Optional arguments start and end are
+                interpreted as in slice notation.
+            
+                 */
+            return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("count"), frame.getlocal(1));
+        }
+        
+        private static PyObject find$12(PyFrame frame) {
+            /* find(s, sub [,start [,end]]) -> in
+            
+                Return the lowest index in s where substring sub is found,
+                such that sub is contained within s[start,end].  Optional
+                arguments start and end are interpreted as in slice notation.
+            
+                Return -1 on failure.
+            
+                 */
+            return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("find"), frame.getlocal(1));
+        }
+        
+        private static PyObject rfind$13(PyFrame frame) {
+            /* rfind(s, sub [,start [,end]]) -> int
+            
+                Return the highest index in s where substring sub is found,
+                such that sub is contained within s[start,end].  Optional
+                arguments start and end are interpreted as in slice notation.
+            
+                Return -1 on failure.
+            
+                 */
+            return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("rfind"), frame.getlocal(1));
+        }
+        
+        private static PyObject atof$14(PyFrame frame) {
+            /* atof(s) -> float
+            
+                Return the floating point number represented by the string s.
+            
+                 */
+            if (frame.getglobal("type").__call__(frame.getlocal(0))._eq(frame.getglobal("_StringType")).__nonzero__()) {
+                return frame.getglobal("_float").__call__(frame.getlocal(0));
+            }
+            else {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$26._mod(frame.getglobal("type").__call__(frame.getlocal(0)).__getattr__("__name__"))));
+            }
+        }
+        
+        private static PyObject atoi$15(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* atoi(s [,base]) -> int
+            
+                Return the integer represented by the string s in the given
+                base, which defaults to 10.  The string s must consist of one
+                or more digits, possibly preceded by a sign.  If base is 0, it
+                is chosen from the leading characters of s, 0 for octal, 0x or
+                0X for hexadecimal.  If base is 16, a preceding 0x or 0X is
+                accepted.
+            
+                 */
+            try {
+                frame.setlocal(1, frame.getlocal(0).__getitem__(i$28));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) {
+                    throw Py.makeException(frame.getglobal("TypeError").__call__(s$29._mod(frame.getglobal("len").__call__(frame.getlocal(0)))));
+                }
+                else throw t$0$PyException;
+            }
+            if (frame.getglobal("type").__call__(frame.getlocal(1))._eq(frame.getglobal("_StringType")).__nonzero__()) {
+                return frame.getglobal("_apply").__call__(frame.getglobal("_int"), frame.getlocal(0));
+            }
+            else {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$26._mod(frame.getglobal("type").__call__(frame.getlocal(1)).__getattr__("__name__"))));
+            }
+        }
+        
+        private static PyObject atol$16(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* atol(s [,base]) -> long
+            
+                Return the long integer represented by the string s in the
+                given base, which defaults to 10.  The string s must consist
+                of one or more digits, possibly preceded by a sign.  If base
+                is 0, it is chosen from the leading characters of s, 0 for
+                octal, 0x or 0X for hexadecimal.  If base is 16, a preceding
+                0x or 0X is accepted.  A trailing L or l is not accepted,
+                unless base is 0.
+            
+                 */
+            try {
+                frame.setlocal(1, frame.getlocal(0).__getitem__(i$28));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) {
+                    throw Py.makeException(frame.getglobal("TypeError").__call__(s$29._mod(frame.getglobal("len").__call__(frame.getlocal(0)))));
+                }
+                else throw t$0$PyException;
+            }
+            if (frame.getglobal("type").__call__(frame.getlocal(1))._eq(frame.getglobal("_StringType")).__nonzero__()) {
+                return frame.getglobal("_apply").__call__(frame.getglobal("_long"), frame.getlocal(0));
+            }
+            else {
+                throw Py.makeException(frame.getglobal("TypeError").__call__(s$26._mod(frame.getglobal("type").__call__(frame.getlocal(1)).__getattr__("__name__"))));
+            }
+        }
+        
+        private static PyObject ljust$17(PyFrame frame) {
+            /* ljust(s, width) -> string
+            
+                Return a left-justified version of s, in a field of the
+                specified width, padded with spaces as needed.  The string is
+                never truncated.
+            
+                 */
+            frame.setlocal(2, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0))));
+            if (frame.getlocal(2)._le(i$28).__nonzero__()) {
+                return frame.getlocal(0);
+            }
+            return frame.getlocal(0)._add(s$19._mul(frame.getlocal(2)));
+        }
+        
+        private static PyObject rjust$18(PyFrame frame) {
+            /* rjust(s, width) -> string
+            
+                Return a right-justified version of s, in a field of the
+                specified width, padded with spaces as needed.  The string is
+                never truncated.
+            
+                 */
+            frame.setlocal(2, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0))));
+            if (frame.getlocal(2)._le(i$28).__nonzero__()) {
+                return frame.getlocal(0);
+            }
+            return s$19._mul(frame.getlocal(2))._add(frame.getlocal(0));
+        }
+        
+        private static PyObject center$19(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* center(s, width) -> string
+            
+                Return a center version of s, in a field of the specified
+                width. padded with spaces as needed.  The string is never
+                truncated.
+            
+                 */
+            frame.setlocal(3, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0))));
+            if (frame.getlocal(3)._le(i$28).__nonzero__()) {
+                return frame.getlocal(0);
+            }
+            frame.setlocal(2, frame.getlocal(3)._div(i$34));
+            if (((t$0$PyObject = frame.getlocal(3)._mod(i$34)).__nonzero__() ? frame.getlocal(1)._mod(i$34) : t$0$PyObject).__nonzero__()) {
+                frame.setlocal(2, frame.getlocal(2)._add(i$17));
+            }
+            return s$19._mul(frame.getlocal(2))._add(frame.getlocal(0))._add(s$19._mul(frame.getlocal(3)._sub(frame.getlocal(2))));
+        }
+        
+        private static PyObject zfill$20(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            /* zfill(x, width) -> string
+            
+                Pad a numeric string x with zeros on the left, to fill a field
+                of the specified width.  The string x is never truncated.
+            
+                 */
+            if (frame.getglobal("type").__call__(frame.getlocal(0))._eq(frame.getglobal("type").__call__(s$8)).__nonzero__()) {
+                frame.setlocal(3, frame.getlocal(0));
+            }
+            else {
+                frame.setlocal(3, frame.getlocal(0).__repr__());
+            }
+            frame.setlocal(4, frame.getglobal("len").__call__(frame.getlocal(3)));
+            if (frame.getlocal(4)._ge(frame.getlocal(1)).__nonzero__()) {
+                return frame.getlocal(3);
+            }
+            frame.setlocal(2, s$8);
+            if (frame.getlocal(3).__getitem__(i$28)._in(new PyTuple(new PyObject[] {s$36, s$37})).__nonzero__()) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {frame.getlocal(3).__getitem__(i$28), frame.getlocal(3).__getslice__(i$17, null, null)}), 2);
+                frame.setlocal(2, t$0$PyObject__[0]);
+                frame.setlocal(3, t$0$PyObject__[1]);
+            }
+            return frame.getlocal(2)._add(s$38._mul(frame.getlocal(1)._sub(frame.getlocal(4))))._add(frame.getlocal(3));
+        }
+        
+        private static PyObject expandtabs$21(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* expandtabs(s [,tabsize]) -> string
+            
+                Return a copy of the string s with all tab characters replaced
+                by the appropriate number of spaces, depending on the current
+                column, and the tabsize (default 8).
+            
+                 */
+            t$0$PyObject = s$8;
+            frame.setlocal(3, t$0$PyObject);
+            frame.setlocal(2, t$0$PyObject);
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(4, t$0$PyObject);
+                if (frame.getlocal(4)._eq(s$40).__nonzero__()) {
+                    frame.setlocal(4, s$19._mul(frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(2))._mod(frame.getlocal(1)))));
+                }
+                frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(4)));
+                if (frame.getlocal(4)._eq(s$41).__nonzero__()) {
+                    frame.setlocal(3, frame.getlocal(3)._add(frame.getlocal(2)));
+                    frame.setlocal(2, s$8);
+                }
+            }
+            return frame.getlocal(3)._add(frame.getlocal(2));
+        }
+        
+        private static PyObject translate$22(PyFrame frame) {
+            /* translate(s,table [,deletechars]) -> string
+            
+                Return a copy of the string s, where all characters occurring
+                in the optional argument deletechars are removed, and the
+                remaining characters have been mapped through the given
+                translation table, which must be a string of length 256.
+            
+                 */
+            return frame.getlocal(0).invoke("translate", frame.getlocal(1), frame.getlocal(2));
+        }
+        
+        private static PyObject capitalize$23(PyFrame frame) {
+            /* capitalize(s) -> string
+            
+                Return a copy of the string s with only its first character
+                capitalized.
+            
+                 */
+            return frame.getlocal(0).invoke("capitalize");
+        }
+        
+        private static PyObject capwords$24(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* capwords(s, [sep]) -> string
+            
+                Split the argument into words using split, capitalize each
+                word using capitalize, and join the capitalized words using
+                join. Note that this replaces runs of whitespace characters by
+                a single space.
+            
+                 */
+            return frame.getglobal("join").__call__(frame.getglobal("map").__call__(frame.getglobal("capitalize"), frame.getlocal(0).invoke("split", frame.getlocal(1))), (t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject : s$19);
+        }
+        
+        private static PyObject maketrans$25(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* maketrans(frm, to) -> string
+            
+                Return a translation table (a string of 256 bytes long)
+                suitable for use in string.translate.  The strings frm and to
+                must be of the same length.
+            
+                 */
+            if (frame.getglobal("len").__call__(frame.getlocal(0))._ne(frame.getglobal("len").__call__(frame.getlocal(1))).__nonzero__()) {
+                throw Py.makeException(frame.getglobal("ValueError"), s$47);
+            }
+            // global _idmapL
+            if (frame.getglobal("_idmapL").__not__().__nonzero__()) {
+                frame.setglobal("_idmapL", frame.getglobal("map").__call__(frame.getglobal("None"), frame.getglobal("_idmap")));
+            }
+            frame.setlocal(3, frame.getglobal("_idmapL").__getslice__(null, null, null));
+            frame.setlocal(0, frame.getglobal("map").__call__(frame.getglobal("ord"), frame.getlocal(0)));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(0)));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.getlocal(3).__setitem__(frame.getlocal(0).__getitem__(frame.getlocal(2)), frame.getlocal(1).__getitem__(frame.getlocal(2)));
+            }
+            return frame.getglobal("joinfields").__call__(frame.getlocal(3), s$8);
+        }
+        
+        private static PyObject replace$26(PyFrame frame) {
+            /* replace (str, old, new[, maxsplit]) -> string
+            
+                Return a copy of string str with all occurrences of substring
+                old replaced by new. If the optional argument maxsplit is
+                given, only the first maxsplit occurrences are replaced.
+            
+                 */
+            return frame.getlocal(0).invoke("replace", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)});
+        }
+        
+        private static PyObject main$27(PyFrame frame) {
+            frame.setglobal("__file__", s$49);
+            
+            PyObject[] imp_accu;
+            // Temporary Variables
+            int t$0$int;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Common string manipulations.
+            
+            Public module variables:
+            
+            whitespace -- a string containing all characters considered whitespace
+            lowercase -- a string containing all characters considered lowercase letters
+            uppercase -- a string containing all characters considered uppercase letters
+            letters -- a string containing all characters considered letters
+            digits -- a string containing all characters considered decimal digits
+            hexdigits -- a string containing all characters considered hexadecimal digits
+            octdigits -- a string containing all characters considered octal digits
+            
+             */
+            frame.setlocal("whitespace", s$1);
+            frame.setlocal("lowercase", s$2);
+            frame.setlocal("uppercase", s$3);
+            frame.setlocal("letters", frame.getname("lowercase")._add(frame.getname("uppercase")));
+            frame.setlocal("digits", s$4);
+            frame.setlocal("hexdigits", frame.getname("digits")._add(s$5)._add(s$6));
+            frame.setlocal("octdigits", s$7);
+            frame.setlocal("_idmap", s$8);
+            t$0$int = 0;
+            t$1$PyObject = frame.getname("range").__call__(i$9);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal("i", t$0$PyObject);
+                frame.setlocal("_idmap", frame.getname("_idmap")._add(frame.getname("chr").__call__(frame.getname("i"))));
+            }
+            frame.dellocal("i");
+            frame.setlocal("index_error", frame.getname("ValueError"));
+            frame.setlocal("atoi_error", frame.getname("ValueError"));
+            frame.setlocal("atof_error", frame.getname("ValueError"));
+            frame.setlocal("atol_error", frame.getname("ValueError"));
+            frame.setlocal("lower", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_lower));
+            frame.setlocal("upper", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_upper));
+            frame.setlocal("swapcase", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_swapcase));
+            frame.setlocal("strip", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_strip));
+            frame.setlocal("lstrip", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_lstrip));
+            frame.setlocal("rstrip", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_rstrip));
+            frame.setlocal("split", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), i$17.__neg__()}, c$6_split));
+            frame.setlocal("splitfields", frame.getname("split"));
+            frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {s$19}, c$7_join));
+            frame.setlocal("joinfields", frame.getname("join"));
+            frame.setlocal("_apply", frame.getname("apply"));
+            frame.setlocal("index", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_index));
+            frame.setlocal("rindex", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_rindex));
+            frame.setlocal("count", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_count));
+            frame.setlocal("find", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_find));
+            frame.setlocal("rfind", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_rfind));
+            frame.setlocal("_float", frame.getname("float"));
+            frame.setlocal("_int", frame.getname("int"));
+            frame.setlocal("_long", frame.getname("long"));
+            frame.setlocal("_StringType", frame.getname("type").__call__(s$8));
+            frame.setlocal("atof", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_atof));
+            frame.setlocal("atoi", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_atoi));
+            frame.setlocal("atol", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_atol));
+            frame.setlocal("ljust", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_ljust));
+            frame.setlocal("rjust", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_rjust));
+            frame.setlocal("center", new PyFunction(frame.f_globals, new PyObject[] {}, c$18_center));
+            frame.setlocal("zfill", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_zfill));
+            frame.setlocal("expandtabs", new PyFunction(frame.f_globals, new PyObject[] {i$42}, c$20_expandtabs));
+            frame.setlocal("translate", new PyFunction(frame.f_globals, new PyObject[] {s$8}, c$21_translate));
+            frame.setlocal("capitalize", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_capitalize));
+            frame.setlocal("capwords", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$23_capwords));
+            frame.setlocal("_idmapL", frame.getname("None"));
+            frame.setlocal("maketrans", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_maketrans));
+            frame.setlocal("replace", new PyFunction(frame.f_globals, new PyObject[] {i$17.__neg__()}, c$25_replace));
+            try {
+                imp_accu = org.python.core.imp.importFrom("strop", new String[] {"maketrans", "lowercase", "uppercase", "whitespace"}, frame);
+                frame.setlocal("maketrans", imp_accu[0]);
+                frame.setlocal("lowercase", imp_accu[1]);
+                frame.setlocal("uppercase", imp_accu[2]);
+                frame.setlocal("whitespace", imp_accu[3]);
+                imp_accu = null;
+                frame.setlocal("letters", frame.getname("lowercase")._add(frame.getname("uppercase")));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getname("ImportError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("string"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "string";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(string._PyInner.class, newargs, string.jpy$packages, string.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/threading$_PyInner.class b/server/jpywork/threading$_PyInner.class
new file mode 100644 (file)
index 0000000..614fe46
Binary files /dev/null and b/server/jpywork/threading$_PyInner.class differ
diff --git a/server/jpywork/threading.class b/server/jpywork/threading.class
new file mode 100644 (file)
index 0000000..b05afce
Binary files /dev/null and b/server/jpywork/threading.class differ
diff --git a/server/jpywork/threading.java b/server/jpywork/threading.java
new file mode 100644 (file)
index 0000000..f3a0d68
--- /dev/null
@@ -0,0 +1,1462 @@
+import org.python.core.*;
+
+public class threading extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject i$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject i$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject f$16;
+        private static PyObject f$17;
+        private static PyObject f$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject s$24;
+        private static PyObject s$25;
+        private static PyObject s$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject s$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyObject s$50;
+        private static PyObject s$51;
+        private static PyObject s$52;
+        private static PyObject s$53;
+        private static PyObject s$54;
+        private static PyObject s$55;
+        private static PyObject s$56;
+        private static PyObject s$57;
+        private static PyObject s$58;
+        private static PyObject s$59;
+        private static PyObject f$60;
+        private static PyObject s$61;
+        private static PyObject i$62;
+        private static PyObject i$63;
+        private static PyObject i$64;
+        private static PyObject s$65;
+        private static PyObject s$66;
+        private static PyObject s$67;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1__note;
+        private static PyCode c$2__Verbose;
+        private static PyCode c$3___init__;
+        private static PyCode c$4__note;
+        private static PyCode c$5__Verbose;
+        private static PyCode c$6_RLock;
+        private static PyCode c$7___init__;
+        private static PyCode c$8___repr__;
+        private static PyCode c$9_acquire;
+        private static PyCode c$10_release;
+        private static PyCode c$11__acquire_restore;
+        private static PyCode c$12__release_save;
+        private static PyCode c$13__is_owned;
+        private static PyCode c$14__RLock;
+        private static PyCode c$15_Condition;
+        private static PyCode c$16___init__;
+        private static PyCode c$17___repr__;
+        private static PyCode c$18__release_save;
+        private static PyCode c$19__acquire_restore;
+        private static PyCode c$20__is_owned;
+        private static PyCode c$21_wait;
+        private static PyCode c$22_notify;
+        private static PyCode c$23_notifyAll;
+        private static PyCode c$24__Condition;
+        private static PyCode c$25_Semaphore;
+        private static PyCode c$26___init__;
+        private static PyCode c$27_acquire;
+        private static PyCode c$28_release;
+        private static PyCode c$29__Semaphore;
+        private static PyCode c$30_Event;
+        private static PyCode c$31___init__;
+        private static PyCode c$32_isSet;
+        private static PyCode c$33_set;
+        private static PyCode c$34_clear;
+        private static PyCode c$35_wait;
+        private static PyCode c$36__Event;
+        private static PyCode c$37__newname;
+        private static PyCode c$38___init__;
+        private static PyCode c$39__set_daemon;
+        private static PyCode c$40___repr__;
+        private static PyCode c$41_start;
+        private static PyCode c$42_run;
+        private static PyCode c$43__Thread__bootstrap;
+        private static PyCode c$44__Thread__stop;
+        private static PyCode c$45__Thread__delete;
+        private static PyCode c$46_join;
+        private static PyCode c$47_getName;
+        private static PyCode c$48_setName;
+        private static PyCode c$49_isAlive;
+        private static PyCode c$50_isDaemon;
+        private static PyCode c$51_setDaemon;
+        private static PyCode c$52_Thread;
+        private static PyCode c$53___init__;
+        private static PyCode c$54__set_daemon;
+        private static PyCode c$55___MainThread__exitfunc;
+        private static PyCode c$56__MainThread;
+        private static PyCode c$57__pickSomeNonDaemonThread;
+        private static PyCode c$58___init__;
+        private static PyCode c$59__set_daemon;
+        private static PyCode c$60_join;
+        private static PyCode c$61__DummyThread;
+        private static PyCode c$62_currentThread;
+        private static PyCode c$63_activeCount;
+        private static PyCode c$64_enumerate;
+        private static PyCode c$65___init__;
+        private static PyCode c$66_put;
+        private static PyCode c$67_get;
+        private static PyCode c$68_BoundedQueue;
+        private static PyCode c$69___init__;
+        private static PyCode c$70_run;
+        private static PyCode c$71_ProducerThread;
+        private static PyCode c$72___init__;
+        private static PyCode c$73_run;
+        private static PyCode c$74_ConsumerThread;
+        private static PyCode c$75__test;
+        private static PyCode c$76_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Proposed new threading module, emulating a subset of Java's threading model.");
+            i$1 = Py.newInteger(0);
+            s$2 = Py.newString("%s: %s\012");
+            s$3 = Py.newString("<%s(%s, %d)>");
+            i$4 = Py.newInteger(1);
+            s$5 = Py.newString("%s.acquire(%s): recursive success");
+            s$6 = Py.newString("%s.acquire(%s): initial succes");
+            s$7 = Py.newString("%s.acquire(%s): failure");
+            s$8 = Py.newString("release() of un-acquire()d lock");
+            s$9 = Py.newString("%s.release(): final release");
+            s$10 = Py.newString("%s.release(): non-final release");
+            s$11 = Py.newString("%s._acquire_restore()");
+            s$12 = Py.newString("%s._release_save()");
+            s$13 = Py.newString("<Condition(%s, %d)>");
+            s$14 = Py.newString("wait() of un-acquire()d lock");
+            s$15 = Py.newString("%s.wait(): got it");
+            f$16 = Py.newFloat(1.0E-6);
+            f$17 = Py.newFloat(1.0);
+            f$18 = Py.newFloat(2.0);
+            s$19 = Py.newString("%s.wait(%s): timed out");
+            s$20 = Py.newString("%s.wait(%s): got it");
+            s$21 = Py.newString("notify() of un-acquire()d lock");
+            s$22 = Py.newString("%s.notify(): no waiters");
+            s$23 = Py.newString("%s.notify(): notifying %d waiter%s");
+            s$24 = Py.newString("s");
+            s$25 = Py.newString("");
+            s$26 = Py.newString("Semaphore initial value must be >= 0");
+            s$27 = Py.newString("Thread-%d");
+            s$28 = Py.newString("group argument must be None for now");
+            s$29 = Py.newString("Thread.__init__() was not called");
+            s$30 = Py.newString("initial");
+            s$31 = Py.newString("started");
+            s$32 = Py.newString("stopped");
+            s$33 = Py.newString(" daemon");
+            s$34 = Py.newString("<%s(%s, %s)>");
+            s$35 = Py.newString("Thread.__init__() not called");
+            s$36 = Py.newString("thread already started");
+            s$37 = Py.newString("%s.start(): starting thread");
+            s$38 = Py.newString("%s.__bootstrap(): thread started");
+            s$39 = Py.newString("%s.__bootstrap(): raised SystemExit");
+            s$40 = Py.newString("%s.__bootstrap(): unhandled exception");
+            s$41 = Py.newString("Exception in thread %s:\012%s\012");
+            s$42 = Py.newString("%s.__bootstrap(): normal return");
+            s$43 = Py.newString("cannot join thread before it is started");
+            s$44 = Py.newString("cannot join current thread");
+            s$45 = Py.newString("%s.join(): waiting until thread stops");
+            s$46 = Py.newString("%s.join(): thread stopped");
+            s$47 = Py.newString("%s.join(): timed out");
+            s$48 = Py.newString("cannot set daemon status of active thread");
+            s$49 = Py.newString("MainThread");
+            s$50 = Py.newString("%s: waiting for other threads");
+            s$51 = Py.newString("%s: exiting");
+            s$52 = Py.newString("Dummy-%d");
+            s$53 = Py.newString("cannot join a dummy thread");
+            s$54 = Py.newString("put(%s): queue full");
+            s$55 = Py.newString("put(%s): appended, length now %d");
+            s$56 = Py.newString("get(): queue empty");
+            s$57 = Py.newString("get(): got %s, %d left");
+            s$58 = Py.newString("Producer");
+            s$59 = Py.newString("%s.%d");
+            f$60 = Py.newFloat(1.0E-5);
+            s$61 = Py.newString("Consumer");
+            i$62 = Py.newInteger(3);
+            i$63 = Py.newInteger(4);
+            i$64 = Py.newInteger(5);
+            s$65 = Py.newString("Producer-%d");
+            s$66 = Py.newString("__main__");
+            s$67 = Py.newString("/usr/share/jython/Lib-cpython/threading.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1__note = Py.newCode(3, new String[] {"self", "format", "args"}, "/usr/share/jython/Lib-cpython/threading.py", "_note", true, false, funcTable, 1, null, null, 0, 1);
+            c$2__Verbose = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Verbose", false, false, funcTable, 2, null, null, 0, 0);
+            c$3___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 3, null, null, 0, 1);
+            c$4__note = Py.newCode(2, new String[] {"self", "args"}, "/usr/share/jython/Lib-cpython/threading.py", "_note", true, false, funcTable, 4, null, null, 0, 1);
+            c$5__Verbose = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Verbose", false, false, funcTable, 5, null, null, 0, 0);
+            c$6_RLock = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "RLock", true, true, funcTable, 6, null, null, 0, 1);
+            c$7___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 7, null, null, 0, 1);
+            c$8___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "__repr__", false, false, funcTable, 8, null, null, 0, 1);
+            c$9_acquire = Py.newCode(2, new String[] {"self", "blocking", "me", "rc"}, "/usr/share/jython/Lib-cpython/threading.py", "acquire", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_release = Py.newCode(1, new String[] {"self", "count", "me"}, "/usr/share/jython/Lib-cpython/threading.py", "release", false, false, funcTable, 10, null, null, 0, 1);
+            c$11__acquire_restore = Py.newCode(2, new String[] {"self", "(count, owner)", "owner", "count"}, "/usr/share/jython/Lib-cpython/threading.py", "_acquire_restore", false, false, funcTable, 11, null, null, 0, 1);
+            c$12__release_save = Py.newCode(1, new String[] {"self", "owner", "count"}, "/usr/share/jython/Lib-cpython/threading.py", "_release_save", false, false, funcTable, 12, null, null, 0, 1);
+            c$13__is_owned = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_is_owned", false, false, funcTable, 13, null, null, 0, 1);
+            c$14__RLock = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_RLock", false, false, funcTable, 14, null, null, 0, 0);
+            c$15_Condition = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "Condition", true, true, funcTable, 15, null, null, 0, 1);
+            c$16___init__ = Py.newCode(3, new String[] {"self", "lock", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 16, null, null, 0, 1);
+            c$17___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "__repr__", false, false, funcTable, 17, null, null, 0, 1);
+            c$18__release_save = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_release_save", false, false, funcTable, 18, null, null, 0, 1);
+            c$19__acquire_restore = Py.newCode(2, new String[] {"self", "x"}, "/usr/share/jython/Lib-cpython/threading.py", "_acquire_restore", false, false, funcTable, 19, null, null, 0, 1);
+            c$20__is_owned = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_is_owned", false, false, funcTable, 20, null, null, 0, 1);
+            c$21_wait = Py.newCode(2, new String[] {"self", "timeout", "endtime", "saved_state", "delay", "me", "gotit", "waiter"}, "/usr/share/jython/Lib-cpython/threading.py", "wait", false, false, funcTable, 21, null, null, 0, 1);
+            c$22_notify = Py.newCode(2, new String[] {"self", "n", "__waiters", "waiters", "me", "waiter"}, "/usr/share/jython/Lib-cpython/threading.py", "notify", false, false, funcTable, 22, null, null, 0, 1);
+            c$23_notifyAll = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "notifyAll", false, false, funcTable, 23, null, null, 0, 1);
+            c$24__Condition = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Condition", false, false, funcTable, 24, null, null, 0, 0);
+            c$25_Semaphore = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "Semaphore", true, true, funcTable, 25, null, null, 0, 1);
+            c$26___init__ = Py.newCode(3, new String[] {"self", "value", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 26, null, null, 0, 1);
+            c$27_acquire = Py.newCode(2, new String[] {"self", "blocking", "rc"}, "/usr/share/jython/Lib-cpython/threading.py", "acquire", false, false, funcTable, 27, null, null, 0, 1);
+            c$28_release = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "release", false, false, funcTable, 28, null, null, 0, 1);
+            c$29__Semaphore = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Semaphore", false, false, funcTable, 29, null, null, 0, 0);
+            c$30_Event = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "Event", true, true, funcTable, 30, null, null, 0, 1);
+            c$31___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 31, null, null, 0, 1);
+            c$32_isSet = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "isSet", false, false, funcTable, 32, null, null, 0, 1);
+            c$33_set = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "set", false, false, funcTable, 33, null, null, 0, 1);
+            c$34_clear = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "clear", false, false, funcTable, 34, null, null, 0, 1);
+            c$35_wait = Py.newCode(2, new String[] {"self", "timeout"}, "/usr/share/jython/Lib-cpython/threading.py", "wait", false, false, funcTable, 35, null, null, 0, 1);
+            c$36__Event = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Event", false, false, funcTable, 36, null, null, 0, 0);
+            c$37__newname = Py.newCode(1, new String[] {"template"}, "/usr/share/jython/Lib-cpython/threading.py", "_newname", false, false, funcTable, 37, null, null, 0, 1);
+            c$38___init__ = Py.newCode(7, new String[] {"self", "group", "target", "name", "args", "kwargs", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 38, null, null, 0, 1);
+            c$39__set_daemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_set_daemon", false, false, funcTable, 39, null, null, 0, 1);
+            c$40___repr__ = Py.newCode(1, new String[] {"self", "status"}, "/usr/share/jython/Lib-cpython/threading.py", "__repr__", false, false, funcTable, 40, null, null, 0, 1);
+            c$41_start = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "start", false, false, funcTable, 41, null, null, 0, 1);
+            c$42_run = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "run", false, false, funcTable, 42, null, null, 0, 1);
+            c$43__Thread__bootstrap = Py.newCode(1, new String[] {"self", "s"}, "/usr/share/jython/Lib-cpython/threading.py", "_Thread__bootstrap", false, false, funcTable, 43, null, null, 0, 1);
+            c$44__Thread__stop = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_Thread__stop", false, false, funcTable, 44, null, null, 0, 1);
+            c$45__Thread__delete = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_Thread__delete", false, false, funcTable, 45, null, null, 0, 1);
+            c$46_join = Py.newCode(2, new String[] {"self", "timeout", "delay", "deadline"}, "/usr/share/jython/Lib-cpython/threading.py", "join", false, false, funcTable, 46, null, null, 0, 1);
+            c$47_getName = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "getName", false, false, funcTable, 47, null, null, 0, 1);
+            c$48_setName = Py.newCode(2, new String[] {"self", "name"}, "/usr/share/jython/Lib-cpython/threading.py", "setName", false, false, funcTable, 48, null, null, 0, 1);
+            c$49_isAlive = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "isAlive", false, false, funcTable, 49, null, null, 0, 1);
+            c$50_isDaemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "isDaemon", false, false, funcTable, 50, null, null, 0, 1);
+            c$51_setDaemon = Py.newCode(2, new String[] {"self", "daemonic"}, "/usr/share/jython/Lib-cpython/threading.py", "setDaemon", false, false, funcTable, 51, null, null, 0, 1);
+            c$52_Thread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "Thread", false, false, funcTable, 52, null, null, 0, 0);
+            c$53___init__ = Py.newCode(1, new String[] {"self", "atexit"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 53, null, null, 0, 1);
+            c$54__set_daemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_set_daemon", false, false, funcTable, 54, null, null, 0, 1);
+            c$55___MainThread__exitfunc = Py.newCode(1, new String[] {"self", "t"}, "/usr/share/jython/Lib-cpython/threading.py", "__MainThread__exitfunc", false, false, funcTable, 55, null, null, 0, 1);
+            c$56__MainThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_MainThread", false, false, funcTable, 56, null, null, 0, 0);
+            c$57__pickSomeNonDaemonThread = Py.newCode(0, new String[] {"t"}, "/usr/share/jython/Lib-cpython/threading.py", "_pickSomeNonDaemonThread", false, false, funcTable, 57, null, null, 0, 1);
+            c$58___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 58, null, null, 0, 1);
+            c$59__set_daemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_set_daemon", false, false, funcTable, 59, null, null, 0, 1);
+            c$60_join = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "join", false, false, funcTable, 60, null, null, 0, 1);
+            c$61__DummyThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_DummyThread", false, false, funcTable, 61, null, null, 0, 0);
+            c$62_currentThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "currentThread", false, false, funcTable, 62, null, null, 0, 1);
+            c$63_activeCount = Py.newCode(0, new String[] {"count"}, "/usr/share/jython/Lib-cpython/threading.py", "activeCount", false, false, funcTable, 63, null, null, 0, 1);
+            c$64_enumerate = Py.newCode(0, new String[] {"active"}, "/usr/share/jython/Lib-cpython/threading.py", "enumerate", false, false, funcTable, 64, null, null, 0, 1);
+            c$65___init__ = Py.newCode(2, new String[] {"self", "limit"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 65, null, null, 0, 1);
+            c$66_put = Py.newCode(2, new String[] {"self", "item"}, "/usr/share/jython/Lib-cpython/threading.py", "put", false, false, funcTable, 66, null, null, 0, 1);
+            c$67_get = Py.newCode(1, new String[] {"self", "item"}, "/usr/share/jython/Lib-cpython/threading.py", "get", false, false, funcTable, 67, null, null, 0, 1);
+            c$68_BoundedQueue = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "BoundedQueue", false, false, funcTable, 68, null, null, 0, 0);
+            c$69___init__ = Py.newCode(3, new String[] {"self", "queue", "quota"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 69, null, null, 0, 1);
+            c$70_run = Py.newCode(1, new String[] {"self", "counter", "random"}, "/usr/share/jython/Lib-cpython/threading.py", "run", false, false, funcTable, 70, null, null, 0, 1);
+            c$71_ProducerThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "ProducerThread", false, false, funcTable, 71, null, null, 0, 0);
+            c$72___init__ = Py.newCode(3, new String[] {"self", "queue", "count"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 72, null, null, 0, 1);
+            c$73_run = Py.newCode(1, new String[] {"self", "item"}, "/usr/share/jython/Lib-cpython/threading.py", "run", false, false, funcTable, 73, null, null, 0, 1);
+            c$74_ConsumerThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "ConsumerThread", false, false, funcTable, 74, null, null, 0, 0);
+            c$75__test = Py.newCode(0, new String[] {"random", "Q", "P", "time", "ProducerThread", "t", "C", "BoundedQueue", "ConsumerThread", "i", "NP", "QL", "NI"}, "/usr/share/jython/Lib-cpython/threading.py", "_test", false, false, funcTable, 75, null, null, 0, 1);
+            c$76_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "main", false, false, funcTable, 76, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$76_main == null) _PyInner.initConstants();
+            return c$76_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner._note$2(frame);
+                case 2:
+                return _PyInner._Verbose$3(frame);
+                case 3:
+                return _PyInner.__init__$4(frame);
+                case 4:
+                return _PyInner._note$5(frame);
+                case 5:
+                return _PyInner._Verbose$6(frame);
+                case 6:
+                return _PyInner.RLock$7(frame);
+                case 7:
+                return _PyInner.__init__$8(frame);
+                case 8:
+                return _PyInner.__repr__$9(frame);
+                case 9:
+                return _PyInner.acquire$10(frame);
+                case 10:
+                return _PyInner.release$11(frame);
+                case 11:
+                return _PyInner._acquire_restore$12(frame);
+                case 12:
+                return _PyInner._release_save$13(frame);
+                case 13:
+                return _PyInner._is_owned$14(frame);
+                case 14:
+                return _PyInner._RLock$15(frame);
+                case 15:
+                return _PyInner.Condition$16(frame);
+                case 16:
+                return _PyInner.__init__$17(frame);
+                case 17:
+                return _PyInner.__repr__$18(frame);
+                case 18:
+                return _PyInner._release_save$19(frame);
+                case 19:
+                return _PyInner._acquire_restore$20(frame);
+                case 20:
+                return _PyInner._is_owned$21(frame);
+                case 21:
+                return _PyInner.wait$22(frame);
+                case 22:
+                return _PyInner.notify$23(frame);
+                case 23:
+                return _PyInner.notifyAll$24(frame);
+                case 24:
+                return _PyInner._Condition$25(frame);
+                case 25:
+                return _PyInner.Semaphore$26(frame);
+                case 26:
+                return _PyInner.__init__$27(frame);
+                case 27:
+                return _PyInner.acquire$28(frame);
+                case 28:
+                return _PyInner.release$29(frame);
+                case 29:
+                return _PyInner._Semaphore$30(frame);
+                case 30:
+                return _PyInner.Event$31(frame);
+                case 31:
+                return _PyInner.__init__$32(frame);
+                case 32:
+                return _PyInner.isSet$33(frame);
+                case 33:
+                return _PyInner.set$34(frame);
+                case 34:
+                return _PyInner.clear$35(frame);
+                case 35:
+                return _PyInner.wait$36(frame);
+                case 36:
+                return _PyInner._Event$37(frame);
+                case 37:
+                return _PyInner._newname$38(frame);
+                case 38:
+                return _PyInner.__init__$39(frame);
+                case 39:
+                return _PyInner._set_daemon$40(frame);
+                case 40:
+                return _PyInner.__repr__$41(frame);
+                case 41:
+                return _PyInner.start$42(frame);
+                case 42:
+                return _PyInner.run$43(frame);
+                case 43:
+                return _PyInner._Thread__bootstrap$44(frame);
+                case 44:
+                return _PyInner._Thread__stop$45(frame);
+                case 45:
+                return _PyInner._Thread__delete$46(frame);
+                case 46:
+                return _PyInner.join$47(frame);
+                case 47:
+                return _PyInner.getName$48(frame);
+                case 48:
+                return _PyInner.setName$49(frame);
+                case 49:
+                return _PyInner.isAlive$50(frame);
+                case 50:
+                return _PyInner.isDaemon$51(frame);
+                case 51:
+                return _PyInner.setDaemon$52(frame);
+                case 52:
+                return _PyInner.Thread$53(frame);
+                case 53:
+                return _PyInner.__init__$54(frame);
+                case 54:
+                return _PyInner._set_daemon$55(frame);
+                case 55:
+                return _PyInner.__MainThread__exitfunc$56(frame);
+                case 56:
+                return _PyInner._MainThread$57(frame);
+                case 57:
+                return _PyInner._pickSomeNonDaemonThread$58(frame);
+                case 58:
+                return _PyInner.__init__$59(frame);
+                case 59:
+                return _PyInner._set_daemon$60(frame);
+                case 60:
+                return _PyInner.join$61(frame);
+                case 61:
+                return _PyInner._DummyThread$62(frame);
+                case 62:
+                return _PyInner.currentThread$63(frame);
+                case 63:
+                return _PyInner.activeCount$64(frame);
+                case 64:
+                return _PyInner.enumerate$65(frame);
+                case 65:
+                return _PyInner.__init__$66(frame);
+                case 66:
+                return _PyInner.put$67(frame);
+                case 67:
+                return _PyInner.get$68(frame);
+                case 68:
+                return _PyInner.BoundedQueue$69(frame);
+                case 69:
+                return _PyInner.__init__$70(frame);
+                case 70:
+                return _PyInner.run$71(frame);
+                case 71:
+                return _PyInner.ProducerThread$72(frame);
+                case 72:
+                return _PyInner.__init__$73(frame);
+                case 73:
+                return _PyInner.run$74(frame);
+                case 74:
+                return _PyInner.ConsumerThread$75(frame);
+                case 75:
+                return _PyInner._test$76(frame);
+                case 76:
+                return _PyInner.main$77(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, frame.getglobal("_VERBOSE"));
+            }
+            frame.getlocal(0).__setattr__("__Verbose__verbose", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject _note$2(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("__Verbose__verbose").__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(1)._mod(frame.getlocal(2)));
+                frame.setlocal(1, s$2._mod(new PyTuple(new PyObject[] {frame.getglobal("currentThread").__call__().invoke("getName"), frame.getlocal(1)})));
+                frame.getglobal("_sys").__getattr__("stderr").__getattr__("write").__call__(frame.getlocal(1));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _Verbose$3(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$0___init__));
+            frame.setlocal("_note", new PyFunction(frame.f_globals, new PyObject[] {}, c$1__note));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$4(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject _note$5(PyFrame frame) {
+            // pass
+            return Py.None;
+        }
+        
+        private static PyObject _Verbose$6(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$3___init__));
+            frame.setlocal("_note", new PyFunction(frame.f_globals, new PyObject[] {}, c$4__note));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject RLock$7(PyFrame frame) {
+            return frame.getglobal("apply").__call__(frame.getglobal("_RLock"), frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject __init__$8(PyFrame frame) {
+            frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(1));
+            frame.getlocal(0).__setattr__("__RLock__block", frame.getglobal("_allocate_lock").__call__());
+            frame.getlocal(0).__setattr__("__RLock__owner", frame.getglobal("None"));
+            frame.getlocal(0).__setattr__("__RLock__count", i$1);
+            return Py.None;
+        }
+        
+        private static PyObject __repr__$9(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            return s$3._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("__class__").__getattr__("__name__"), (t$0$PyObject = frame.getlocal(0).__getattr__("__RLock__owner")).__nonzero__() ? frame.getlocal(0).__getattr__("__RLock__owner").invoke("getName") : t$0$PyObject, frame.getlocal(0).__getattr__("__RLock__count")}));
+        }
+        
+        private static PyObject acquire$10(PyFrame frame) {
+            frame.setlocal(2, frame.getglobal("currentThread").__call__());
+            if (frame.getlocal(0).__getattr__("__RLock__owner")._is(frame.getlocal(2)).__nonzero__()) {
+                frame.getlocal(0).__setattr__("__RLock__count", frame.getlocal(0).__getattr__("__RLock__count")._add(i$4));
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", new PyObject[] {s$5, frame.getlocal(0), frame.getlocal(1)});
+                }
+                return i$4;
+            }
+            frame.setlocal(3, frame.getlocal(0).__getattr__("__RLock__block").invoke("acquire", frame.getlocal(1)));
+            if (frame.getlocal(3).__nonzero__()) {
+                frame.getlocal(0).__setattr__("__RLock__owner", frame.getlocal(2));
+                frame.getlocal(0).__setattr__("__RLock__count", i$4);
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", new PyObject[] {s$6, frame.getlocal(0), frame.getlocal(1)});
+                }
+            }
+            else {
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", new PyObject[] {s$7, frame.getlocal(0), frame.getlocal(1)});
+                }
+            }
+            return frame.getlocal(3);
+        }
+        
+        private static PyObject release$11(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(2, frame.getglobal("currentThread").__call__());
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("__RLock__owner")._is(frame.getlocal(2)), s$8);
+            t$0$PyObject = frame.getlocal(0).__getattr__("__RLock__count")._sub(i$4);
+            frame.getlocal(0).__setattr__("__RLock__count", t$0$PyObject);
+            frame.setlocal(1, t$0$PyObject);
+            if (frame.getlocal(1).__not__().__nonzero__()) {
+                frame.getlocal(0).__setattr__("__RLock__owner", frame.getglobal("None"));
+                frame.getlocal(0).__getattr__("__RLock__block").invoke("release");
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$9, frame.getlocal(0));
+                }
+            }
+            else {
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$10, frame.getlocal(0));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _acquire_restore$12(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            
+            // Code
+            t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+            frame.setlocal(3, t$0$PyObject__[0]);
+            frame.setlocal(2, t$0$PyObject__[1]);
+            frame.getlocal(0).__getattr__("__RLock__block").invoke("acquire");
+            frame.getlocal(0).__setattr__("__RLock__count", frame.getlocal(3));
+            frame.getlocal(0).__setattr__("__RLock__owner", frame.getlocal(2));
+            if (frame.getglobal("__debug__").__nonzero__()) {
+                frame.getlocal(0).invoke("_note", s$11, frame.getlocal(0));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _release_save$13(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) {
+                frame.getlocal(0).invoke("_note", s$12, frame.getlocal(0));
+            }
+            frame.setlocal(2, frame.getlocal(0).__getattr__("__RLock__count"));
+            frame.getlocal(0).__setattr__("__RLock__count", i$1);
+            frame.setlocal(1, frame.getlocal(0).__getattr__("__RLock__owner"));
+            frame.getlocal(0).__setattr__("__RLock__owner", frame.getglobal("None"));
+            frame.getlocal(0).__getattr__("__RLock__block").invoke("release");
+            return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)});
+        }
+        
+        private static PyObject _is_owned$14(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("__RLock__owner")._is(frame.getglobal("currentThread").__call__());
+        }
+        
+        private static PyObject _RLock$15(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$7___init__));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$8___repr__));
+            frame.setlocal("acquire", new PyFunction(frame.f_globals, new PyObject[] {i$4}, c$9_acquire));
+            frame.setlocal("release", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_release));
+            frame.setlocal("_acquire_restore", new PyFunction(frame.f_globals, new PyObject[] {}, c$11__acquire_restore));
+            frame.setlocal("_release_save", new PyFunction(frame.f_globals, new PyObject[] {}, c$12__release_save));
+            frame.setlocal("_is_owned", new PyFunction(frame.f_globals, new PyObject[] {}, c$13__is_owned));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject Condition$16(PyFrame frame) {
+            return frame.getglobal("apply").__call__(frame.getglobal("_Condition"), frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject __init__$17(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(2));
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setlocal(1, frame.getglobal("RLock").__call__());
+            }
+            frame.getlocal(0).__setattr__("__Condition__lock", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("acquire", frame.getlocal(1).__getattr__("acquire"));
+            frame.getlocal(0).__setattr__("release", frame.getlocal(1).__getattr__("release"));
+            try {
+                frame.getlocal(0).__setattr__("_release_save", frame.getlocal(1).__getattr__("_release_save"));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("AttributeError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            try {
+                frame.getlocal(0).__setattr__("_acquire_restore", frame.getlocal(1).__getattr__("_acquire_restore"));
+            }
+            catch (Throwable x$1) {
+                t$0$PyException = Py.setException(x$1, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("AttributeError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            try {
+                frame.getlocal(0).__setattr__("_is_owned", frame.getlocal(1).__getattr__("_is_owned"));
+            }
+            catch (Throwable x$2) {
+                t$0$PyException = Py.setException(x$2, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("AttributeError"))) {
+                    // pass
+                }
+                else throw t$0$PyException;
+            }
+            frame.getlocal(0).__setattr__("__Condition__waiters", new PyList(new PyObject[] {}));
+            return Py.None;
+        }
+        
+        private static PyObject __repr__$18(PyFrame frame) {
+            return s$13._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("__Condition__lock"), frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("__Condition__waiters"))}));
+        }
+        
+        private static PyObject _release_save$19(PyFrame frame) {
+            frame.getlocal(0).__getattr__("__Condition__lock").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject _acquire_restore$20(PyFrame frame) {
+            frame.getlocal(0).__getattr__("__Condition__lock").invoke("acquire");
+            return Py.None;
+        }
+        
+        private static PyObject _is_owned$21(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("__Condition__lock").invoke("acquire", i$1).__nonzero__()) {
+                frame.getlocal(0).__getattr__("__Condition__lock").invoke("release");
+                return i$1;
+            }
+            else {
+                return i$4;
+            }
+        }
+        
+        private static PyObject wait$22(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            PyObject t$0$PyObject;
+            
+            // Code
+            frame.setlocal(5, frame.getglobal("currentThread").__call__());
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).invoke("_is_owned"), s$14);
+            frame.setlocal(7, frame.getglobal("_allocate_lock").__call__());
+            frame.getlocal(7).invoke("acquire");
+            frame.getlocal(0).__getattr__("__Condition__waiters").invoke("append", frame.getlocal(7));
+            frame.setlocal(3, frame.getlocal(0).invoke("_release_save"));
+            try {
+                if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                    frame.getlocal(7).invoke("acquire");
+                    if (frame.getglobal("__debug__").__nonzero__()) {
+                        frame.getlocal(0).invoke("_note", s$15, frame.getlocal(0));
+                    }
+                }
+                else {
+                    frame.setlocal(2, frame.getglobal("_time").__call__()._add(frame.getlocal(1)));
+                    frame.setlocal(4, f$16);
+                    while (i$4.__nonzero__()) {
+                        frame.setlocal(6, frame.getlocal(7).invoke("acquire", i$1));
+                        if (((t$0$PyObject = frame.getlocal(6)).__nonzero__() ? t$0$PyObject : frame.getglobal("_time").__call__()._ge(frame.getlocal(2))).__nonzero__()) {
+                            break;
+                        }
+                        frame.getglobal("_sleep").__call__(frame.getlocal(4));
+                        if (frame.getlocal(4)._lt(f$17).__nonzero__()) {
+                            frame.setlocal(4, frame.getlocal(4)._mul(f$18));
+                        }
+                    }
+                    if (frame.getlocal(6).__not__().__nonzero__()) {
+                        if (frame.getglobal("__debug__").__nonzero__()) {
+                            frame.getlocal(0).invoke("_note", new PyObject[] {s$19, frame.getlocal(0), frame.getlocal(1)});
+                        }
+                        try {
+                            frame.getlocal(0).__getattr__("__Condition__waiters").invoke("remove", frame.getlocal(7));
+                        }
+                        catch (Throwable x$0) {
+                            t$0$PyException = Py.setException(x$0, frame);
+                            if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                                // pass
+                            }
+                            else throw t$0$PyException;
+                        }
+                    }
+                    else {
+                        if (frame.getglobal("__debug__").__nonzero__()) {
+                            frame.getlocal(0).invoke("_note", new PyObject[] {s$20, frame.getlocal(0), frame.getlocal(1)});
+                        }
+                    }
+                }
+            }
+            finally {
+                frame.getlocal(0).invoke("_acquire_restore", frame.getlocal(3));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject notify$23(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyException t$0$PyException;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(4, frame.getglobal("currentThread").__call__());
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).invoke("_is_owned"), s$21);
+            frame.setlocal(2, frame.getlocal(0).__getattr__("__Condition__waiters"));
+            frame.setlocal(3, frame.getlocal(2).__getslice__(null, frame.getlocal(1), null));
+            if (frame.getlocal(3).__not__().__nonzero__()) {
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$22, frame.getlocal(0));
+                }
+                return Py.None;
+            }
+            frame.getlocal(0).invoke("_note", new PyObject[] {s$23, frame.getlocal(0), frame.getlocal(1), (t$0$PyObject = ((t$1$PyObject = frame.getlocal(1)._ne(i$4)).__nonzero__() ? s$24 : t$1$PyObject)).__nonzero__() ? t$0$PyObject : s$25});
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(3);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(5, t$0$PyObject);
+                frame.getlocal(5).invoke("release");
+                try {
+                    frame.getlocal(2).invoke("remove", frame.getlocal(5));
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) {
+                        // pass
+                    }
+                    else throw t$0$PyException;
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject notifyAll$24(PyFrame frame) {
+            frame.getlocal(0).invoke("notify", frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("__Condition__waiters")));
+            return Py.None;
+        }
+        
+        private static PyObject _Condition$25(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$16___init__));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$17___repr__));
+            frame.setlocal("_release_save", new PyFunction(frame.f_globals, new PyObject[] {}, c$18__release_save));
+            frame.setlocal("_acquire_restore", new PyFunction(frame.f_globals, new PyObject[] {}, c$19__acquire_restore));
+            frame.setlocal("_is_owned", new PyFunction(frame.f_globals, new PyObject[] {}, c$20__is_owned));
+            frame.setlocal("wait", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$21_wait));
+            frame.setlocal("notify", new PyFunction(frame.f_globals, new PyObject[] {i$4}, c$22_notify));
+            frame.setlocal("notifyAll", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_notifyAll));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject Semaphore$26(PyFrame frame) {
+            return frame.getglobal("apply").__call__(frame.getglobal("_Semaphore"), frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject __init__$27(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._ge(i$1), s$26);
+            frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(2));
+            frame.getlocal(0).__setattr__("__Semaphore__cond", frame.getglobal("Condition").__call__(frame.getglobal("Lock").__call__()));
+            frame.getlocal(0).__setattr__("__Semaphore__value", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject acquire$28(PyFrame frame) {
+            // Temporary Variables
+            boolean t$0$boolean;
+            
+            // Code
+            frame.setlocal(2, i$1);
+            frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("acquire");
+            while (t$0$boolean=frame.getlocal(0).__getattr__("__Semaphore__value")._eq(i$1).__nonzero__()) {
+                if (frame.getlocal(1).__not__().__nonzero__()) {
+                    break;
+                }
+                frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("wait");
+            }
+            if (!t$0$boolean) {
+                frame.getlocal(0).__setattr__("__Semaphore__value", frame.getlocal(0).__getattr__("__Semaphore__value")._sub(i$4));
+                frame.setlocal(2, i$4);
+            }
+            frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("release");
+            return frame.getlocal(2);
+        }
+        
+        private static PyObject release$29(PyFrame frame) {
+            frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("acquire");
+            frame.getlocal(0).__setattr__("__Semaphore__value", frame.getlocal(0).__getattr__("__Semaphore__value")._add(i$4));
+            frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("notify");
+            frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject _Semaphore$30(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {i$4, frame.getname("None")}, c$26___init__));
+            frame.setlocal("acquire", new PyFunction(frame.f_globals, new PyObject[] {i$4}, c$27_acquire));
+            frame.setlocal("release", new PyFunction(frame.f_globals, new PyObject[] {}, c$28_release));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject Event$31(PyFrame frame) {
+            return frame.getglobal("apply").__call__(frame.getglobal("_Event"), frame.getlocal(0), frame.getlocal(1));
+        }
+        
+        private static PyObject __init__$32(PyFrame frame) {
+            frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(1));
+            frame.getlocal(0).__setattr__("__Event__cond", frame.getglobal("Condition").__call__(frame.getglobal("Lock").__call__()));
+            frame.getlocal(0).__setattr__("__Event__flag", i$1);
+            return Py.None;
+        }
+        
+        private static PyObject isSet$33(PyFrame frame) {
+            return frame.getlocal(0).__getattr__("__Event__flag");
+        }
+        
+        private static PyObject set$34(PyFrame frame) {
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("acquire");
+            frame.getlocal(0).__setattr__("__Event__flag", i$4);
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("notifyAll");
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject clear$35(PyFrame frame) {
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("acquire");
+            frame.getlocal(0).__setattr__("__Event__flag", i$1);
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject wait$36(PyFrame frame) {
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("acquire");
+            if (frame.getlocal(0).__getattr__("__Event__flag").__not__().__nonzero__()) {
+                frame.getlocal(0).__getattr__("__Event__cond").invoke("wait", frame.getlocal(1));
+            }
+            frame.getlocal(0).__getattr__("__Event__cond").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject _Event$37(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$31___init__));
+            frame.setlocal("isSet", new PyFunction(frame.f_globals, new PyObject[] {}, c$32_isSet));
+            frame.setlocal("set", new PyFunction(frame.f_globals, new PyObject[] {}, c$33_set));
+            frame.setlocal("clear", new PyFunction(frame.f_globals, new PyObject[] {}, c$34_clear));
+            frame.setlocal("wait", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$35_wait));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject _newname$38(PyFrame frame) {
+            // global _counter
+            frame.setglobal("_counter", frame.getglobal("_counter")._add(i$4));
+            return frame.getlocal(0)._mod(frame.getglobal("_counter"));
+        }
+        
+        private static PyObject __init__$39(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._is(frame.getglobal("None")), s$28);
+            frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(6));
+            frame.getlocal(0).__setattr__("_Thread__target", frame.getlocal(2));
+            frame.getlocal(0).__setattr__("_Thread__name", frame.getglobal("str").__call__((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? t$0$PyObject : frame.getglobal("_newname").__call__()));
+            frame.getlocal(0).__setattr__("_Thread__args", frame.getlocal(4));
+            frame.getlocal(0).__setattr__("_Thread__kwargs", frame.getlocal(5));
+            frame.getlocal(0).__setattr__("_Thread__daemonic", frame.getlocal(0).invoke("_set_daemon"));
+            frame.getlocal(0).__setattr__("_Thread__started", i$1);
+            frame.getlocal(0).__setattr__("_Thread__stopped", i$1);
+            frame.getlocal(0).__setattr__("_Thread__block", frame.getglobal("Condition").__call__(frame.getglobal("Lock").__call__()));
+            frame.getlocal(0).__setattr__("_Thread__initialized", i$4);
+            return Py.None;
+        }
+        
+        private static PyObject _set_daemon$40(PyFrame frame) {
+            return frame.getglobal("currentThread").__call__().invoke("isDaemon");
+        }
+        
+        private static PyObject __repr__$41(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$29);
+            frame.setlocal(1, s$30);
+            if (frame.getlocal(0).__getattr__("_Thread__started").__nonzero__()) {
+                frame.setlocal(1, s$31);
+            }
+            if (frame.getlocal(0).__getattr__("_Thread__stopped").__nonzero__()) {
+                frame.setlocal(1, s$32);
+            }
+            if (frame.getlocal(0).__getattr__("_Thread__daemonic").__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(1)._add(s$33));
+            }
+            return s$34._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("__class__").__getattr__("__name__"), frame.getlocal(0).__getattr__("_Thread__name"), frame.getlocal(1)}));
+        }
+        
+        private static PyObject start$42(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__started").__not__(), s$36);
+            if (frame.getglobal("__debug__").__nonzero__()) {
+                frame.getlocal(0).invoke("_note", s$37, frame.getlocal(0));
+            }
+            frame.getglobal("_active_limbo_lock").invoke("acquire");
+            frame.getglobal("_limbo").__setitem__(frame.getlocal(0), frame.getlocal(0));
+            frame.getglobal("_active_limbo_lock").invoke("release");
+            frame.getglobal("_start_new_thread").__call__(frame.getlocal(0).__getattr__("_Thread__bootstrap"), new PyTuple(new PyObject[] {}));
+            frame.getlocal(0).__setattr__("_Thread__started", i$4);
+            frame.getglobal("_sleep").__call__(f$16);
+            return Py.None;
+        }
+        
+        private static PyObject run$43(PyFrame frame) {
+            if (frame.getlocal(0).__getattr__("_Thread__target").__nonzero__()) {
+                frame.getglobal("apply").__call__(frame.getlocal(0).__getattr__("_Thread__target"), frame.getlocal(0).__getattr__("_Thread__args"), frame.getlocal(0).__getattr__("_Thread__kwargs"));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _Thread__bootstrap$44(PyFrame frame) {
+            // Temporary Variables
+            boolean t$0$boolean;
+            PyException t$0$PyException;
+            
+            // Code
+            try {
+                frame.getlocal(0).__setattr__("_Thread__started", i$4);
+                frame.getglobal("_active_limbo_lock").invoke("acquire");
+                frame.getglobal("_active").__setitem__(frame.getglobal("_get_ident").__call__(), frame.getlocal(0));
+                frame.getglobal("_limbo").__delitem__(frame.getlocal(0));
+                frame.getglobal("_active_limbo_lock").invoke("release");
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$38, frame.getlocal(0));
+                }
+                t$0$boolean = true;
+                try {
+                    frame.getlocal(0).invoke("run");
+                }
+                catch (Throwable x$0) {
+                    t$0$boolean = false;
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("SystemExit"))) {
+                        if (frame.getglobal("__debug__").__nonzero__()) {
+                            frame.getlocal(0).invoke("_note", s$39, frame.getlocal(0));
+                        }
+                    }
+                    else {
+                        if (frame.getglobal("__debug__").__nonzero__()) {
+                            frame.getlocal(0).invoke("_note", s$40, frame.getlocal(0));
+                        }
+                        frame.setlocal(1, frame.getglobal("_StringIO").__call__());
+                        frame.getglobal("_print_exc").__call__(new PyObject[] {frame.getlocal(1)}, new String[] {"file"});
+                        frame.getglobal("_sys").__getattr__("stderr").__getattr__("write").__call__(s$41._mod(new PyTuple(new PyObject[] {frame.getlocal(0).invoke("getName"), frame.getlocal(1).invoke("getvalue")})));
+                    }
+                }
+                if (t$0$boolean) {
+                    if (frame.getglobal("__debug__").__nonzero__()) {
+                        frame.getlocal(0).invoke("_note", s$42, frame.getlocal(0));
+                    }
+                }
+            }
+            finally {
+                frame.getlocal(0).invoke("_Thread__stop");
+                try {
+                    frame.getlocal(0).invoke("_Thread__delete");
+                }
+                catch (Throwable x$1) {
+                    t$0$PyException = Py.setException(x$1, frame);
+                    // pass
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject _Thread__stop$45(PyFrame frame) {
+            frame.getlocal(0).__getattr__("_Thread__block").invoke("acquire");
+            frame.getlocal(0).__setattr__("_Thread__stopped", i$4);
+            frame.getlocal(0).__getattr__("_Thread__block").invoke("notifyAll");
+            frame.getlocal(0).__getattr__("_Thread__block").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject _Thread__delete$46(PyFrame frame) {
+            frame.getglobal("_active_limbo_lock").invoke("acquire");
+            frame.getglobal("_active").__delitem__(frame.getglobal("_get_ident").__call__());
+            frame.getglobal("_active_limbo_lock").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject join$47(PyFrame frame) {
+            // Temporary Variables
+            boolean t$0$boolean;
+            
+            // Code
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__started"), s$43);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0)._isnot(frame.getglobal("currentThread").__call__()), s$44);
+            if (frame.getglobal("__debug__").__nonzero__()) {
+                if (frame.getlocal(0).__getattr__("_Thread__stopped").__not__().__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$45, frame.getlocal(0));
+                }
+            }
+            frame.getlocal(0).__getattr__("_Thread__block").invoke("acquire");
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                while (frame.getlocal(0).__getattr__("_Thread__stopped").__not__().__nonzero__()) {
+                    frame.getlocal(0).__getattr__("_Thread__block").invoke("wait");
+                }
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$46, frame.getlocal(0));
+                }
+            }
+            else {
+                frame.setlocal(3, frame.getglobal("_time").__call__()._add(frame.getlocal(1)));
+                while (t$0$boolean=frame.getlocal(0).__getattr__("_Thread__stopped").__not__().__nonzero__()) {
+                    frame.setlocal(2, frame.getlocal(3)._sub(frame.getglobal("_time").__call__()));
+                    if (frame.getlocal(2)._le(i$1).__nonzero__()) {
+                        if (frame.getglobal("__debug__").__nonzero__()) {
+                            frame.getlocal(0).invoke("_note", s$47, frame.getlocal(0));
+                        }
+                        break;
+                    }
+                    frame.getlocal(0).__getattr__("_Thread__block").invoke("wait", frame.getlocal(2));
+                }
+                if (!t$0$boolean) {
+                    if (frame.getglobal("__debug__").__nonzero__()) {
+                        frame.getlocal(0).invoke("_note", s$46, frame.getlocal(0));
+                    }
+                }
+            }
+            frame.getlocal(0).__getattr__("_Thread__block").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject getName$48(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            return frame.getlocal(0).__getattr__("_Thread__name");
+        }
+        
+        private static PyObject setName$49(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            frame.getlocal(0).__setattr__("_Thread__name", frame.getglobal("str").__call__(frame.getlocal(1)));
+            return Py.None;
+        }
+        
+        private static PyObject isAlive$50(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            return (t$0$PyObject = frame.getlocal(0).__getattr__("_Thread__started")).__nonzero__() ? frame.getlocal(0).__getattr__("_Thread__stopped").__not__() : t$0$PyObject;
+        }
+        
+        private static PyObject isDaemon$51(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            return frame.getlocal(0).__getattr__("_Thread__daemonic");
+        }
+        
+        private static PyObject setDaemon$52(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35);
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__started").__not__(), s$48);
+            frame.getlocal(0).__setattr__("_Thread__daemonic", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject Thread$53(PyFrame frame) {
+            frame.setlocal("_Thread__initialized", i$1);
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None"), new PyTuple(new PyObject[] {}), new PyDictionary(new PyObject[] {}), frame.getname("None")}, c$38___init__));
+            frame.setlocal("_set_daemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$39__set_daemon));
+            frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$40___repr__));
+            frame.setlocal("start", new PyFunction(frame.f_globals, new PyObject[] {}, c$41_start));
+            frame.setlocal("run", new PyFunction(frame.f_globals, new PyObject[] {}, c$42_run));
+            frame.setlocal("_Thread__bootstrap", new PyFunction(frame.f_globals, new PyObject[] {}, c$43__Thread__bootstrap));
+            frame.setlocal("_Thread__stop", new PyFunction(frame.f_globals, new PyObject[] {}, c$44__Thread__stop));
+            frame.setlocal("_Thread__delete", new PyFunction(frame.f_globals, new PyObject[] {}, c$45__Thread__delete));
+            frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$46_join));
+            frame.setlocal("getName", new PyFunction(frame.f_globals, new PyObject[] {}, c$47_getName));
+            frame.setlocal("setName", new PyFunction(frame.f_globals, new PyObject[] {}, c$48_setName));
+            frame.setlocal("isAlive", new PyFunction(frame.f_globals, new PyObject[] {}, c$49_isAlive));
+            frame.setlocal("isDaemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$50_isDaemon));
+            frame.setlocal("setDaemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$51_setDaemon));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$54(PyFrame frame) {
+            frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), s$49}, new String[] {"name"});
+            frame.getlocal(0).__setattr__("_Thread__started", i$4);
+            frame.getglobal("_active_limbo_lock").invoke("acquire");
+            frame.getglobal("_active").__setitem__(frame.getglobal("_get_ident").__call__(), frame.getlocal(0));
+            frame.getglobal("_active_limbo_lock").invoke("release");
+            frame.setlocal(1, org.python.core.imp.importOne("atexit", frame));
+            frame.getlocal(1).__getattr__("register").__call__(frame.getlocal(0).__getattr__("__MainThread__exitfunc"));
+            return Py.None;
+        }
+        
+        private static PyObject _set_daemon$55(PyFrame frame) {
+            return i$1;
+        }
+        
+        private static PyObject __MainThread__exitfunc$56(PyFrame frame) {
+            frame.getlocal(0).invoke("_Thread__stop");
+            frame.setlocal(1, frame.getglobal("_pickSomeNonDaemonThread").__call__());
+            if (frame.getlocal(1).__nonzero__()) {
+                if (frame.getglobal("__debug__").__nonzero__()) {
+                    frame.getlocal(0).invoke("_note", s$50, frame.getlocal(0));
+                }
+            }
+            while (frame.getlocal(1).__nonzero__()) {
+                frame.getlocal(1).invoke("join");
+                frame.setlocal(1, frame.getglobal("_pickSomeNonDaemonThread").__call__());
+            }
+            if (frame.getglobal("__debug__").__nonzero__()) {
+                frame.getlocal(0).invoke("_note", s$51, frame.getlocal(0));
+            }
+            frame.getlocal(0).invoke("_Thread__delete");
+            return Py.None;
+        }
+        
+        private static PyObject _MainThread$57(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$53___init__));
+            frame.setlocal("_set_daemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$54__set_daemon));
+            frame.setlocal("__MainThread__exitfunc", new PyFunction(frame.f_globals, new PyObject[] {}, c$55___MainThread__exitfunc));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject _pickSomeNonDaemonThread$58(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject;
+            
+            // Code
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("enumerate").__call__();
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(0, t$0$PyObject);
+                if (((t$2$PyObject = frame.getlocal(0).invoke("isDaemon").__not__()).__nonzero__() ? frame.getlocal(0).invoke("isAlive") : t$2$PyObject).__nonzero__()) {
+                    return frame.getlocal(0);
+                }
+            }
+            return frame.getglobal("None");
+        }
+        
+        private static PyObject __init__$59(PyFrame frame) {
+            frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), frame.getglobal("_newname").__call__(s$52)}, new String[] {"name"});
+            frame.getlocal(0).__setattr__("_Thread__started", i$4);
+            frame.getglobal("_active_limbo_lock").invoke("acquire");
+            frame.getglobal("_active").__setitem__(frame.getglobal("_get_ident").__call__(), frame.getlocal(0));
+            frame.getglobal("_active_limbo_lock").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject _set_daemon$60(PyFrame frame) {
+            return i$4;
+        }
+        
+        private static PyObject join$61(PyFrame frame) {
+            if (frame.getglobal("__debug__").__nonzero__()) Py.assert(i$1, s$53);
+            return Py.None;
+        }
+        
+        private static PyObject _DummyThread$62(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$58___init__));
+            frame.setlocal("_set_daemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$59__set_daemon));
+            frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {}, c$60_join));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject currentThread$63(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            try {
+                return frame.getglobal("_active").__getitem__(frame.getglobal("_get_ident").__call__());
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) {
+                    return frame.getglobal("_DummyThread").__call__();
+                }
+                else throw t$0$PyException;
+            }
+        }
+        
+        private static PyObject activeCount$64(PyFrame frame) {
+            frame.getglobal("_active_limbo_lock").invoke("acquire");
+            frame.setlocal(0, frame.getglobal("len").__call__(frame.getglobal("_active"))._add(frame.getglobal("len").__call__(frame.getglobal("_limbo"))));
+            frame.getglobal("_active_limbo_lock").invoke("release");
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject enumerate$65(PyFrame frame) {
+            frame.getglobal("_active_limbo_lock").invoke("acquire");
+            frame.setlocal(0, frame.getglobal("_active").invoke("values")._add(frame.getglobal("_limbo").invoke("values")));
+            frame.getglobal("_active_limbo_lock").invoke("release");
+            return frame.getlocal(0);
+        }
+        
+        private static PyObject __init__$66(PyFrame frame) {
+            frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0));
+            frame.getlocal(0).__setattr__("mon", frame.getglobal("RLock").__call__());
+            frame.getlocal(0).__setattr__("rc", frame.getglobal("Condition").__call__(frame.getlocal(0).__getattr__("mon")));
+            frame.getlocal(0).__setattr__("wc", frame.getglobal("Condition").__call__(frame.getlocal(0).__getattr__("mon")));
+            frame.getlocal(0).__setattr__("limit", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("queue", new PyList(new PyObject[] {}));
+            return Py.None;
+        }
+        
+        private static PyObject put$67(PyFrame frame) {
+            frame.getlocal(0).__getattr__("mon").invoke("acquire");
+            while (frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("queue"))._ge(frame.getlocal(0).__getattr__("limit")).__nonzero__()) {
+                frame.getlocal(0).invoke("_note", s$54, frame.getlocal(1));
+                frame.getlocal(0).__getattr__("wc").invoke("wait");
+            }
+            frame.getlocal(0).__getattr__("queue").invoke("append", frame.getlocal(1));
+            frame.getlocal(0).invoke("_note", new PyObject[] {s$55, frame.getlocal(1), frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("queue"))});
+            frame.getlocal(0).__getattr__("rc").invoke("notify");
+            frame.getlocal(0).__getattr__("mon").invoke("release");
+            return Py.None;
+        }
+        
+        private static PyObject get$68(PyFrame frame) {
+            frame.getlocal(0).__getattr__("mon").invoke("acquire");
+            while (frame.getlocal(0).__getattr__("queue").__not__().__nonzero__()) {
+                frame.getlocal(0).invoke("_note", s$56);
+                frame.getlocal(0).__getattr__("rc").invoke("wait");
+            }
+            frame.setlocal(1, frame.getlocal(0).__getattr__("queue").__getitem__(i$1));
+            frame.getlocal(0).__getattr__("queue").__delitem__(i$1);
+            frame.getlocal(0).invoke("_note", new PyObject[] {s$57, frame.getlocal(1), frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("queue"))});
+            frame.getlocal(0).__getattr__("wc").invoke("notify");
+            frame.getlocal(0).__getattr__("mon").invoke("release");
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject BoundedQueue$69(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$65___init__));
+            frame.setlocal("put", new PyFunction(frame.f_globals, new PyObject[] {}, c$66_put));
+            frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {}, c$67_get));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$70(PyFrame frame) {
+            frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), s$58}, new String[] {"name"});
+            frame.getlocal(0).__setattr__("queue", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("quota", frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject run$71(PyFrame frame) {
+            PyObject[] imp_accu;
+            // Code
+            imp_accu = org.python.core.imp.importFrom("random", new String[] {"random"}, frame);
+            frame.setlocal(2, imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal(1, i$1);
+            while (frame.getlocal(1)._lt(frame.getlocal(0).__getattr__("quota")).__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(1)._add(i$4));
+                frame.getlocal(0).__getattr__("queue").invoke("put", s$59._mod(new PyTuple(new PyObject[] {frame.getlocal(0).invoke("getName"), frame.getlocal(1)})));
+                frame.getglobal("_sleep").__call__(frame.getlocal(2).__call__()._mul(f$60));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject ProducerThread$72(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$69___init__));
+            frame.setlocal("run", new PyFunction(frame.f_globals, new PyObject[] {}, c$70_run));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject __init__$73(PyFrame frame) {
+            frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), s$61}, new String[] {"name"});
+            frame.getlocal(0).__setattr__("queue", frame.getlocal(1));
+            frame.getlocal(0).__setattr__("count", frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject run$74(PyFrame frame) {
+            while (frame.getlocal(0).__getattr__("count")._gt(i$1).__nonzero__()) {
+                frame.setlocal(1, frame.getlocal(0).__getattr__("queue").invoke("get"));
+                Py.println(frame.getlocal(1));
+                frame.getlocal(0).__setattr__("count", frame.getlocal(0).__getattr__("count")._sub(i$4));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject ConsumerThread$75(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$72___init__));
+            frame.setlocal("run", new PyFunction(frame.f_globals, new PyObject[] {}, c$73_run));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject _test$76(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int, t$1$int, t$2$int;
+            PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject;
+            
+            // Code
+            frame.setlocal(0, org.python.core.imp.importOne("random", frame));
+            frame.setlocal(7, Py.makeClass("BoundedQueue", new PyObject[] {frame.getglobal("_Verbose")}, c$68_BoundedQueue, null));
+            frame.setlocal(4, Py.makeClass("ProducerThread", new PyObject[] {frame.getglobal("Thread")}, c$71_ProducerThread, null));
+            frame.setlocal(8, Py.makeClass("ConsumerThread", new PyObject[] {frame.getglobal("Thread")}, c$74_ConsumerThread, null));
+            frame.setlocal(3, org.python.core.imp.importOne("time", frame));
+            frame.setlocal(10, i$62);
+            frame.setlocal(11, i$63);
+            frame.setlocal(12, i$64);
+            frame.setlocal(1, frame.getlocal(7).__call__(frame.getlocal(11)));
+            frame.setlocal(2, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(frame.getlocal(10));
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(9, t$0$PyObject);
+                frame.setlocal(5, frame.getlocal(4).__call__(frame.getlocal(1), frame.getlocal(12)));
+                frame.getlocal(5).invoke("setName", s$65._mod(frame.getlocal(9)._add(i$4)));
+                frame.getlocal(2).invoke("append", frame.getlocal(5));
+            }
+            frame.setlocal(6, frame.getlocal(8).__call__(frame.getlocal(1), frame.getlocal(12)._mul(frame.getlocal(10))));
+            t$1$int = 0;
+            t$3$PyObject = frame.getlocal(2);
+            while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) {
+                frame.setlocal(5, t$2$PyObject);
+                frame.getlocal(5).invoke("start");
+                frame.getglobal("_sleep").__call__(f$16);
+            }
+            frame.getlocal(6).invoke("start");
+            t$2$int = 0;
+            t$5$PyObject = frame.getlocal(2);
+            while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) {
+                frame.setlocal(5, t$4$PyObject);
+                frame.getlocal(5).invoke("join");
+            }
+            frame.getlocal(6).invoke("join");
+            return Py.None;
+        }
+        
+        private static PyObject main$77(PyFrame frame) {
+            frame.setglobal("__file__", s$67);
+            
+            /* Proposed new threading module, emulating a subset of Java's threading model. */
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("time", org.python.core.imp.importOne("time", frame));
+            frame.setlocal("thread", org.python.core.imp.importOne("thread", frame));
+            frame.setlocal("traceback", org.python.core.imp.importOne("traceback", frame));
+            frame.setlocal("StringIO", org.python.core.imp.importOne("StringIO", frame));
+            frame.setlocal("_sys", frame.getname("sys"));
+            frame.dellocal("sys");
+            frame.setlocal("_time", frame.getname("time").__getattr__("time"));
+            frame.setlocal("_sleep", frame.getname("time").__getattr__("sleep"));
+            frame.dellocal("time");
+            frame.setlocal("_start_new_thread", frame.getname("thread").__getattr__("start_new_thread"));
+            frame.setlocal("_allocate_lock", frame.getname("thread").__getattr__("allocate_lock"));
+            frame.setlocal("_get_ident", frame.getname("thread").__getattr__("get_ident"));
+            frame.setlocal("ThreadError", frame.getname("thread").__getattr__("error"));
+            frame.dellocal("thread");
+            frame.setlocal("_print_exc", frame.getname("traceback").__getattr__("print_exc"));
+            frame.dellocal("traceback");
+            frame.setlocal("_StringIO", frame.getname("StringIO").__getattr__("StringIO"));
+            frame.dellocal("StringIO");
+            frame.setlocal("_VERBOSE", i$1);
+            if (frame.getname("__debug__").__nonzero__()) {
+                frame.setlocal("_Verbose", Py.makeClass("_Verbose", new PyObject[] {}, c$2__Verbose, null));
+            }
+            else {
+                frame.setlocal("_Verbose", Py.makeClass("_Verbose", new PyObject[] {}, c$5__Verbose, null));
+            }
+            frame.setlocal("Lock", frame.getname("_allocate_lock"));
+            frame.setlocal("RLock", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_RLock));
+            frame.setlocal("_RLock", Py.makeClass("_RLock", new PyObject[] {frame.getname("_Verbose")}, c$14__RLock, null));
+            frame.setlocal("Condition", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_Condition));
+            frame.setlocal("_Condition", Py.makeClass("_Condition", new PyObject[] {frame.getname("_Verbose")}, c$24__Condition, null));
+            frame.setlocal("Semaphore", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_Semaphore));
+            frame.setlocal("_Semaphore", Py.makeClass("_Semaphore", new PyObject[] {frame.getname("_Verbose")}, c$29__Semaphore, null));
+            frame.setlocal("Event", new PyFunction(frame.f_globals, new PyObject[] {}, c$30_Event));
+            frame.setlocal("_Event", Py.makeClass("_Event", new PyObject[] {frame.getname("_Verbose")}, c$36__Event, null));
+            frame.setlocal("_counter", i$1);
+            frame.setlocal("_newname", new PyFunction(frame.f_globals, new PyObject[] {s$27}, c$37__newname));
+            frame.setlocal("_active_limbo_lock", frame.getname("_allocate_lock").__call__());
+            frame.setlocal("_active", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("_limbo", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("Thread", Py.makeClass("Thread", new PyObject[] {frame.getname("_Verbose")}, c$52_Thread, null));
+            frame.setlocal("_MainThread", Py.makeClass("_MainThread", new PyObject[] {frame.getname("Thread")}, c$56__MainThread, null));
+            frame.setlocal("_pickSomeNonDaemonThread", new PyFunction(frame.f_globals, new PyObject[] {}, c$57__pickSomeNonDaemonThread));
+            frame.setlocal("_DummyThread", Py.makeClass("_DummyThread", new PyObject[] {frame.getname("Thread")}, c$61__DummyThread, null));
+            frame.setlocal("currentThread", new PyFunction(frame.f_globals, new PyObject[] {}, c$62_currentThread));
+            frame.setlocal("activeCount", new PyFunction(frame.f_globals, new PyObject[] {}, c$63_activeCount));
+            frame.setlocal("enumerate", new PyFunction(frame.f_globals, new PyObject[] {}, c$64_enumerate));
+            frame.getname("_MainThread").__call__();
+            frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {}, c$75__test));
+            if (frame.getname("__name__")._eq(s$66).__nonzero__()) {
+                frame.getname("_test").__call__();
+            }
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("threading"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "threading";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(threading._PyInner.class, newargs, threading.jpy$packages, threading.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/traceback$_PyInner.class b/server/jpywork/traceback$_PyInner.class
new file mode 100644 (file)
index 0000000..d2a7e09
Binary files /dev/null and b/server/jpywork/traceback$_PyInner.class differ
diff --git a/server/jpywork/traceback.class b/server/jpywork/traceback.class
new file mode 100644 (file)
index 0000000..6cc5696
Binary files /dev/null and b/server/jpywork/traceback.class differ
diff --git a/server/jpywork/traceback.java b/server/jpywork/traceback.java
new file mode 100644 (file)
index 0000000..0787c8e
--- /dev/null
@@ -0,0 +1,712 @@
+import org.python.core.*;
+
+public class traceback extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyObject s$7;
+        private static PyObject s$8;
+        private static PyObject s$9;
+        private static PyObject s$10;
+        private static PyObject s$11;
+        private static PyObject s$12;
+        private static PyObject s$13;
+        private static PyObject s$14;
+        private static PyObject s$15;
+        private static PyObject s$16;
+        private static PyObject s$17;
+        private static PyObject s$18;
+        private static PyObject s$19;
+        private static PyObject s$20;
+        private static PyObject s$21;
+        private static PyObject s$22;
+        private static PyObject s$23;
+        private static PyObject i$24;
+        private static PyObject s$25;
+        private static PyObject i$26;
+        private static PyObject s$27;
+        private static PyObject s$28;
+        private static PyObject s$29;
+        private static PyObject s$30;
+        private static PyObject s$31;
+        private static PyObject s$32;
+        private static PyObject s$33;
+        private static PyObject s$34;
+        private static PyObject s$35;
+        private static PyObject s$36;
+        private static PyObject s$37;
+        private static PyObject s$38;
+        private static PyObject s$39;
+        private static PyObject s$40;
+        private static PyObject s$41;
+        private static PyObject s$42;
+        private static PyObject s$43;
+        private static PyObject i$44;
+        private static PyObject s$45;
+        private static PyObject s$46;
+        private static PyObject s$47;
+        private static PyObject s$48;
+        private static PyObject s$49;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0__print;
+        private static PyCode c$1_print_list;
+        private static PyCode c$2_format_list;
+        private static PyCode c$3_print_tb;
+        private static PyCode c$4_format_tb;
+        private static PyCode c$5_extract_tb;
+        private static PyCode c$6_print_exception;
+        private static PyCode c$7_format_exception;
+        private static PyCode c$8_format_exception_only;
+        private static PyCode c$9__some_str;
+        private static PyCode c$10_print_exc;
+        private static PyCode c$11_print_last;
+        private static PyCode c$12_print_stack;
+        private static PyCode c$13_format_stack;
+        private static PyCode c$14_extract_stack;
+        private static PyCode c$15_tb_lineno;
+        private static PyCode c$16_main;
+        private static void initConstants() {
+            s$0 = Py.newString("Extract, format and print information about Python stack traces.");
+            s$1 = Py.newString("extract_stack");
+            s$2 = Py.newString("extract_tb");
+            s$3 = Py.newString("format_exception");
+            s$4 = Py.newString("format_exception_only");
+            s$5 = Py.newString("format_list");
+            s$6 = Py.newString("format_stack");
+            s$7 = Py.newString("format_tb");
+            s$8 = Py.newString("print_exc");
+            s$9 = Py.newString("print_exception");
+            s$10 = Py.newString("print_last");
+            s$11 = Py.newString("print_stack");
+            s$12 = Py.newString("print_tb");
+            s$13 = Py.newString("tb_lineno");
+            s$14 = Py.newString("");
+            s$15 = Py.newString("\012");
+            s$16 = Py.newString("Print the list of tuples as returned by extract_tb() or\012    extract_stack() as a formatted stack trace to the given file.");
+            s$17 = Py.newString("  File \"%s\", line %d, in %s");
+            s$18 = Py.newString("    %s");
+            s$19 = Py.newString("Format a list of traceback entry tuples for printing.\012\012    Given a list of tuples as returned by extract_tb() or\012    extract_stack(), return a list of strings ready for printing.\012    Each string in the resulting list corresponds to the item with the\012    same index in the argument list.  Each string ends in a newline;\012    the strings may contain internal newlines as well, for those items\012    whose source text line is not None.\012    ");
+            s$20 = Py.newString("  File \"%s\", line %d, in %s\012");
+            s$21 = Py.newString("    %s\012");
+            s$22 = Py.newString("Print up to 'limit' stack trace entries from the traceback 'tb'.\012\012    If 'limit' is omitted or None, all entries are printed.  If 'file'\012    is omitted or None, the output goes to sys.stderr; otherwise\012    'file' should be an open file or file-like object with a write()\012    method.\012    ");
+            s$23 = Py.newString("tracebacklimit");
+            i$24 = Py.newInteger(0);
+            s$25 = Py.newString("    ");
+            i$26 = Py.newInteger(1);
+            s$27 = Py.newString("A shorthand for 'format_list(extract_stack(f, limit)).");
+            s$28 = Py.newString("Return list of up to limit pre-processed entries from traceback.\012\012    This is useful for alternate formatting of stack traces.  If\012    'limit' is omitted or None, all entries are extracted.  A\012    pre-processed stack trace entry is a quadruple (filename, line\012    number, function name, text) representing the information that is\012    usually printed for a stack trace.  The text is a string with\012    leading and trailing whitespace stripped; if the source is not\012    available it is None.\012    ");
+            s$29 = Py.newString("Print exception up to 'limit' stack trace entries from 'tb' to 'file'.\012\012    This differs from print_tb() in the following ways: (1) if\012    traceback is not None, it prints a header \"Traceback (most recent\012    call last):\"; (2) it prints the exception type and value after the\012    stack trace; (3) if type is SyntaxError and value has the\012    appropriate format, it prints the line where the syntax error\012    occurred with a caret on the next line indicating the approximate\012    position of the error.\012    ");
+            s$30 = Py.newString("Traceback (most recent call last):");
+            s$31 = Py.newString(" ");
+            s$32 = Py.newString("Format a stack trace and the exception information.\012\012    The arguments have the same meaning as the corresponding arguments\012    to print_exception().  The return value is a list of strings, each\012    ending in a newline and some containing internal newlines.  When\012    these lines are concatenated and printed, exactly the same text is\012    printed as does print_exception().\012    ");
+            s$33 = Py.newString("Traceback (most recent call last):\012");
+            s$34 = Py.newString("Format the exception part of a traceback.\012\012    The arguments are the exception type and value such as given by\012    sys.last_type and sys.last_value. The return value is a list of\012    strings, each ending in a newline.  Normally, the list contains a\012    single string; however, for SyntaxError exceptions, it contains\012    several lines that (when printed) display detailed information\012    about where the syntax error occurred.  The message indicating\012    which exception occurred is the always last string in the list.\012    ");
+            s$35 = Py.newString("<string>");
+            s$36 = Py.newString("  File \"%s\", line %d\012");
+            s$37 = Py.newString("%s^\012");
+            s$38 = Py.newString("%s: %s\012");
+            s$39 = Py.newString("%s\012");
+            s$40 = Py.newString("<unprintable %s object>");
+            s$41 = Py.newString("Shorthand for 'print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file)'.\012    (In fact, it uses sys.exc_info() to retrieve the same information\012    in a thread-safe way.)");
+            s$42 = Py.newString("This is a shorthand for 'print_exception(sys.last_type,\012    sys.last_value, sys.last_traceback, limit, file)'.");
+            s$43 = Py.newString("Print a stack trace from its invocation point.\012\012    The optional 'f' argument can be used to specify an alternate\012    stack frame at which to start. The optional 'limit' and 'file'\012    arguments have the same meaning as for print_exception().\012    ");
+            i$44 = Py.newInteger(2);
+            s$45 = Py.newString("Shorthand for 'format_list(extract_stack(f, limit))'.");
+            s$46 = Py.newString("Extract the raw traceback from the current stack frame.\012\012    The return value has the same format as for extract_tb().  The\012    optional 'f' and 'limit' arguments have the same meaning as for\012    print_stack().  Each item in the list is a quadruple (filename,\012    line number, function name, text), and the entries are in order\012    from oldest to newest stack frame.\012    ");
+            s$47 = Py.newString("Calculate correct line number of traceback given in tb.\012\012    Even works with -O on.\012    ");
+            s$48 = Py.newString("co_lnotab");
+            s$49 = Py.newString("/usr/share/jython/Lib-cpython/traceback.py");
+            funcTable = new _PyInner();
+            c$0__print = Py.newCode(3, new String[] {"file", "str", "terminator"}, "/usr/share/jython/Lib-cpython/traceback.py", "_print", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_print_list = Py.newCode(2, new String[] {"extracted_list", "file", "line", "filename", "name", "lineno"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_list", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_format_list = Py.newCode(1, new String[] {"extracted_list", "line", "filename", "name", "item", "list", "lineno"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_list", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_print_tb = Py.newCode(3, new String[] {"tb", "limit", "file", "filename", "name", "lineno", "n", "f", "co", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_tb", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_format_tb = Py.newCode(2, new String[] {"tb", "limit"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_tb", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_extract_tb = Py.newCode(2, new String[] {"tb", "limit", "filename", "name", "lineno", "n", "f", "list", "co", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "extract_tb", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_print_exception = Py.newCode(5, new String[] {"etype", "value", "tb", "limit", "file", "line", "lines"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_exception", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_format_exception = Py.newCode(4, new String[] {"etype", "value", "tb", "limit", "list"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_exception", false, false, funcTable, 7, null, null, 0, 1);
+            c$8_format_exception_only = Py.newCode(2, new String[] {"etype", "value", "stype", "msg", "offset", "lineno", "line", "s", "filename", "i", "list", "c"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_exception_only", false, false, funcTable, 8, null, null, 0, 1);
+            c$9__some_str = Py.newCode(1, new String[] {"value"}, "/usr/share/jython/Lib-cpython/traceback.py", "_some_str", false, false, funcTable, 9, null, null, 0, 1);
+            c$10_print_exc = Py.newCode(2, new String[] {"limit", "file", "tb", "etype", "value"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_exc", false, false, funcTable, 10, null, null, 0, 1);
+            c$11_print_last = Py.newCode(2, new String[] {"limit", "file"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_last", false, false, funcTable, 11, null, null, 0, 1);
+            c$12_print_stack = Py.newCode(3, new String[] {"f", "limit", "file"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_stack", false, false, funcTable, 12, null, null, 0, 1);
+            c$13_format_stack = Py.newCode(2, new String[] {"f", "limit"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_stack", false, false, funcTable, 13, null, null, 0, 1);
+            c$14_extract_stack = Py.newCode(2, new String[] {"f", "limit", "filename", "name", "lineno", "n", "list", "co", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "extract_stack", false, false, funcTable, 14, null, null, 0, 1);
+            c$15_tb_lineno = Py.newCode(1, new String[] {"tb", "tab", "i", "c", "addr", "stopat", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "tb_lineno", false, false, funcTable, 15, null, null, 0, 1);
+            c$16_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/traceback.py", "main", false, false, funcTable, 16, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$16_main == null) _PyInner.initConstants();
+            return c$16_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner._print$1(frame);
+                case 1:
+                return _PyInner.print_list$2(frame);
+                case 2:
+                return _PyInner.format_list$3(frame);
+                case 3:
+                return _PyInner.print_tb$4(frame);
+                case 4:
+                return _PyInner.format_tb$5(frame);
+                case 5:
+                return _PyInner.extract_tb$6(frame);
+                case 6:
+                return _PyInner.print_exception$7(frame);
+                case 7:
+                return _PyInner.format_exception$8(frame);
+                case 8:
+                return _PyInner.format_exception_only$9(frame);
+                case 9:
+                return _PyInner._some_str$10(frame);
+                case 10:
+                return _PyInner.print_exc$11(frame);
+                case 11:
+                return _PyInner.print_last$12(frame);
+                case 12:
+                return _PyInner.print_stack$13(frame);
+                case 13:
+                return _PyInner.format_stack$14(frame);
+                case 14:
+                return _PyInner.extract_stack$15(frame);
+                case 15:
+                return _PyInner.tb_lineno$16(frame);
+                case 16:
+                return _PyInner.main$17(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject _print$1(PyFrame frame) {
+            frame.getlocal(0).invoke("write", frame.getlocal(1)._add(frame.getlocal(2)));
+            return Py.None;
+        }
+        
+        private static PyObject print_list$2(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Print the list of tuples as returned by extract_tb() or
+                extract_stack() as a formatted stack trace to the given file. */
+            if (frame.getlocal(1).__not__().__nonzero__()) {
+                frame.setlocal(1, frame.getglobal("sys").__getattr__("stderr"));
+            }
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 4);
+                frame.setlocal(3, t$0$PyObject__[0]);
+                frame.setlocal(5, t$0$PyObject__[1]);
+                frame.setlocal(4, t$0$PyObject__[2]);
+                frame.setlocal(2, t$0$PyObject__[3]);
+                frame.getglobal("_print").__call__(frame.getlocal(1), s$17._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(5), frame.getlocal(4)})));
+                if (frame.getlocal(2).__nonzero__()) {
+                    frame.getglobal("_print").__call__(frame.getlocal(1), s$18._mod(frame.getlocal(2).invoke("strip")));
+                }
+            }
+            return Py.None;
+        }
+        
+        private static PyObject format_list$3(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Format a list of traceback entry tuples for printing.
+            
+                Given a list of tuples as returned by extract_tb() or
+                extract_stack(), return a list of strings ready for printing.
+                Each string in the resulting list corresponds to the item with the
+                same index in the argument list.  Each string ends in a newline;
+                the strings may contain internal newlines as well, for those items
+                whose source text line is not None.
+                 */
+            frame.setlocal(5, new PyList(new PyObject[] {}));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(0);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 4);
+                frame.setlocal(2, t$0$PyObject__[0]);
+                frame.setlocal(6, t$0$PyObject__[1]);
+                frame.setlocal(3, t$0$PyObject__[2]);
+                frame.setlocal(1, t$0$PyObject__[3]);
+                frame.setlocal(4, s$20._mod(new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(6), frame.getlocal(3)})));
+                if (frame.getlocal(1).__nonzero__()) {
+                    frame.setlocal(4, frame.getlocal(4)._add(s$21._mod(frame.getlocal(1).invoke("strip"))));
+                }
+                frame.getlocal(5).invoke("append", frame.getlocal(4));
+            }
+            return frame.getlocal(5);
+        }
+        
+        private static PyObject print_tb$4(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Print up to 'limit' stack trace entries from the traceback 'tb'.
+            
+                If 'limit' is omitted or None, all entries are printed.  If 'file'
+                is omitted or None, the output goes to sys.stderr; otherwise
+                'file' should be an open file or file-like object with a write()
+                method.
+                 */
+            if (frame.getlocal(2).__not__().__nonzero__()) {
+                frame.setlocal(2, frame.getglobal("sys").__getattr__("stderr"));
+            }
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                if (frame.getglobal("hasattr").__call__(frame.getglobal("sys"), s$23).__nonzero__()) {
+                    frame.setlocal(1, frame.getglobal("sys").__getattr__("tracebacklimit"));
+                }
+            }
+            frame.setlocal(6, i$24);
+            while (((t$0$PyObject = frame.getlocal(0)._isnot(frame.getglobal("None"))).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1)._is(frame.getglobal("None"))).__nonzero__() ? t$1$PyObject : frame.getlocal(6)._lt(frame.getlocal(1))) : t$0$PyObject).__nonzero__()) {
+                frame.setlocal(7, frame.getlocal(0).__getattr__("tb_frame"));
+                frame.setlocal(5, frame.getglobal("tb_lineno").__call__(frame.getlocal(0)));
+                frame.setlocal(8, frame.getlocal(7).__getattr__("f_code"));
+                frame.setlocal(3, frame.getlocal(8).__getattr__("co_filename"));
+                frame.setlocal(4, frame.getlocal(8).__getattr__("co_name"));
+                frame.getglobal("_print").__call__(frame.getlocal(2), s$17._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(5), frame.getlocal(4)})));
+                frame.setlocal(9, frame.getglobal("linecache").__getattr__("getline").__call__(frame.getlocal(3), frame.getlocal(5)));
+                if (frame.getlocal(9).__nonzero__()) {
+                    frame.getglobal("_print").__call__(frame.getlocal(2), s$25._add(frame.getlocal(9).invoke("strip")));
+                }
+                frame.setlocal(0, frame.getlocal(0).__getattr__("tb_next"));
+                frame.setlocal(6, frame.getlocal(6)._add(i$26));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject format_tb$5(PyFrame frame) {
+            /* A shorthand for 'format_list(extract_stack(f, limit)). */
+            return frame.getglobal("format_list").__call__(frame.getglobal("extract_tb").__call__(frame.getlocal(0), frame.getlocal(1)));
+        }
+        
+        private static PyObject extract_tb$6(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Return list of up to limit pre-processed entries from traceback.
+            
+                This is useful for alternate formatting of stack traces.  If
+                'limit' is omitted or None, all entries are extracted.  A
+                pre-processed stack trace entry is a quadruple (filename, line
+                number, function name, text) representing the information that is
+                usually printed for a stack trace.  The text is a string with
+                leading and trailing whitespace stripped; if the source is not
+                available it is None.
+                 */
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                if (frame.getglobal("hasattr").__call__(frame.getglobal("sys"), s$23).__nonzero__()) {
+                    frame.setlocal(1, frame.getglobal("sys").__getattr__("tracebacklimit"));
+                }
+            }
+            frame.setlocal(7, new PyList(new PyObject[] {}));
+            frame.setlocal(5, i$24);
+            while (((t$0$PyObject = frame.getlocal(0)._isnot(frame.getglobal("None"))).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1)._is(frame.getglobal("None"))).__nonzero__() ? t$1$PyObject : frame.getlocal(5)._lt(frame.getlocal(1))) : t$0$PyObject).__nonzero__()) {
+                frame.setlocal(6, frame.getlocal(0).__getattr__("tb_frame"));
+                frame.setlocal(4, frame.getglobal("tb_lineno").__call__(frame.getlocal(0)));
+                frame.setlocal(8, frame.getlocal(6).__getattr__("f_code"));
+                frame.setlocal(2, frame.getlocal(8).__getattr__("co_filename"));
+                frame.setlocal(3, frame.getlocal(8).__getattr__("co_name"));
+                frame.setlocal(9, frame.getglobal("linecache").__getattr__("getline").__call__(frame.getlocal(2), frame.getlocal(4)));
+                if (frame.getlocal(9).__nonzero__()) {
+                    frame.setlocal(9, frame.getlocal(9).invoke("strip"));
+                }
+                else {
+                    frame.setlocal(9, frame.getglobal("None"));
+                }
+                frame.getlocal(7).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3), frame.getlocal(9)}));
+                frame.setlocal(0, frame.getlocal(0).__getattr__("tb_next"));
+                frame.setlocal(5, frame.getlocal(5)._add(i$26));
+            }
+            return frame.getlocal(7);
+        }
+        
+        private static PyObject print_exception$7(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Print exception up to 'limit' stack trace entries from 'tb' to 'file'.
+            
+                This differs from print_tb() in the following ways: (1) if
+                traceback is not None, it prints a header "Traceback (most recent
+                call last):"; (2) it prints the exception type and value after the
+                stack trace; (3) if type is SyntaxError and value has the
+                appropriate format, it prints the line where the syntax error
+                occurred with a caret on the next line indicating the approximate
+                position of the error.
+                 */
+            if (frame.getlocal(4).__not__().__nonzero__()) {
+                frame.setlocal(4, frame.getglobal("sys").__getattr__("stderr"));
+            }
+            if (frame.getlocal(2).__nonzero__()) {
+                frame.getglobal("_print").__call__(frame.getlocal(4), s$30);
+                frame.getglobal("print_tb").__call__(frame.getlocal(2), frame.getlocal(3), frame.getlocal(4));
+            }
+            frame.setlocal(6, frame.getglobal("format_exception_only").__call__(frame.getlocal(0), frame.getlocal(1)));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(6).__getslice__(null, i$26.__neg__(), null);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(5, t$0$PyObject);
+                frame.getglobal("_print").__call__(frame.getlocal(4), frame.getlocal(5), s$31);
+            }
+            frame.getglobal("_print").__call__(frame.getlocal(4), frame.getlocal(6).__getitem__(i$26.__neg__()), s$14);
+            return Py.None;
+        }
+        
+        private static PyObject format_exception$8(PyFrame frame) {
+            /* Format a stack trace and the exception information.
+            
+                The arguments have the same meaning as the corresponding arguments
+                to print_exception().  The return value is a list of strings, each
+                ending in a newline and some containing internal newlines.  When
+                these lines are concatenated and printed, exactly the same text is
+                printed as does print_exception().
+                 */
+            if (frame.getlocal(2).__nonzero__()) {
+                frame.setlocal(4, new PyList(new PyObject[] {s$33}));
+                frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("format_tb").__call__(frame.getlocal(2), frame.getlocal(3))));
+            }
+            else {
+                frame.setlocal(4, new PyList(new PyObject[] {}));
+            }
+            frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("format_exception_only").__call__(frame.getlocal(0), frame.getlocal(1))));
+            return frame.getlocal(4);
+        }
+        
+        private static PyObject format_exception_only$9(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject[] t$0$PyObject__, t$1$PyObject__;
+            boolean t$0$boolean;
+            PyObject t$0$PyObject, t$1$PyObject;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Format the exception part of a traceback.
+            
+                The arguments are the exception type and value such as given by
+                sys.last_type and sys.last_value. The return value is a list of
+                strings, each ending in a newline.  Normally, the list contains a
+                single string; however, for SyntaxError exceptions, it contains
+                several lines that (when printed) display detailed information
+                about where the syntax error occurred.  The message indicating
+                which exception occurred is the always last string in the list.
+                 */
+            frame.setlocal(10, new PyList(new PyObject[] {}));
+            if (frame.getglobal("type").__call__(frame.getlocal(0))._eq(frame.getglobal("types").__getattr__("ClassType")).__nonzero__()) {
+                frame.setlocal(2, frame.getlocal(0).__getattr__("__name__"));
+            }
+            else {
+                frame.setlocal(2, frame.getlocal(0));
+            }
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                frame.getlocal(10).invoke("append", frame.getglobal("str").__call__(frame.getlocal(2))._add(s$15));
+            }
+            else {
+                if (frame.getlocal(0)._is(frame.getglobal("SyntaxError")).__nonzero__()) {
+                    t$0$boolean = true;
+                    try {
+                        t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2);
+                        frame.setlocal(3, t$0$PyObject__[0]);
+                        t$1$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject__[1], 4);
+                        frame.setlocal(8, t$1$PyObject__[0]);
+                        frame.setlocal(5, t$1$PyObject__[1]);
+                        frame.setlocal(4, t$1$PyObject__[2]);
+                        frame.setlocal(6, t$1$PyObject__[3]);
+                    }
+                    catch (Throwable x$0) {
+                        t$0$boolean = false;
+                        t$0$PyException = Py.setException(x$0, frame);
+                        // pass
+                    }
+                    if (t$0$boolean) {
+                        if (frame.getlocal(8).__not__().__nonzero__()) {
+                            frame.setlocal(8, s$35);
+                        }
+                        frame.getlocal(10).invoke("append", s$36._mod(new PyTuple(new PyObject[] {frame.getlocal(8), frame.getlocal(5)})));
+                        if (frame.getlocal(6)._isnot(frame.getglobal("None")).__nonzero__()) {
+                            frame.setlocal(9, i$24);
+                            while (((t$0$PyObject = frame.getlocal(9)._lt(frame.getglobal("len").__call__(frame.getlocal(6)))).__nonzero__() ? frame.getlocal(6).__getitem__(frame.getlocal(9)).invoke("isspace") : t$0$PyObject).__nonzero__()) {
+                                frame.setlocal(9, frame.getlocal(9)._add(i$26));
+                            }
+                            frame.getlocal(10).invoke("append", s$21._mod(frame.getlocal(6).invoke("strip")));
+                            if (frame.getlocal(4)._isnot(frame.getglobal("None")).__nonzero__()) {
+                                frame.setlocal(7, s$25);
+                                t$0$int = 0;
+                                t$1$PyObject = frame.getlocal(6).__getslice__(frame.getlocal(9), frame.getlocal(4)._sub(i$26), null);
+                                while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                                    frame.setlocal(11, t$0$PyObject);
+                                    if (frame.getlocal(11).invoke("isspace").__nonzero__()) {
+                                        frame.setlocal(7, frame.getlocal(7)._add(frame.getlocal(11)));
+                                    }
+                                    else {
+                                        frame.setlocal(7, frame.getlocal(7)._add(s$31));
+                                    }
+                                }
+                                frame.getlocal(10).invoke("append", s$37._mod(frame.getlocal(7)));
+                            }
+                            frame.setlocal(1, frame.getlocal(3));
+                        }
+                    }
+                }
+                frame.setlocal(7, frame.getglobal("_some_str").__call__(frame.getlocal(1)));
+                if (frame.getlocal(7).__nonzero__()) {
+                    frame.getlocal(10).invoke("append", s$38._mod(new PyTuple(new PyObject[] {frame.getglobal("str").__call__(frame.getlocal(2)), frame.getlocal(7)})));
+                }
+                else {
+                    frame.getlocal(10).invoke("append", s$39._mod(frame.getglobal("str").__call__(frame.getlocal(2))));
+                }
+            }
+            return frame.getlocal(10);
+        }
+        
+        private static PyObject _some_str$10(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            try {
+                return frame.getglobal("str").__call__(frame.getlocal(0));
+            }
+            catch (Throwable x$0) {
+                t$0$PyException = Py.setException(x$0, frame);
+                return s$40._mod(frame.getglobal("type").__call__(frame.getlocal(0)).__getattr__("__name__"));
+            }
+        }
+        
+        private static PyObject print_exc$11(PyFrame frame) {
+            // Temporary Variables
+            PyObject[] t$0$PyObject__;
+            PyObject t$0$PyObject;
+            
+            // Code
+            /* Shorthand for 'print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file)'.
+                (In fact, it uses sys.exc_info() to retrieve the same information
+                in a thread-safe way.) */
+            if (frame.getlocal(1).__not__().__nonzero__()) {
+                frame.setlocal(1, frame.getglobal("sys").__getattr__("stderr"));
+            }
+            try {
+                t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("sys").__getattr__("exc_info").__call__(), 3);
+                frame.setlocal(3, t$0$PyObject__[0]);
+                frame.setlocal(4, t$0$PyObject__[1]);
+                frame.setlocal(2, t$0$PyObject__[2]);
+                frame.getglobal("print_exception").__call__(new PyObject[] {frame.getlocal(3), frame.getlocal(4), frame.getlocal(2), frame.getlocal(0), frame.getlocal(1)});
+            }
+            finally {
+                t$0$PyObject = frame.getglobal("None");
+                frame.setlocal(3, t$0$PyObject);
+                frame.setlocal(4, t$0$PyObject);
+                frame.setlocal(2, t$0$PyObject);
+            }
+            return Py.None;
+        }
+        
+        private static PyObject print_last$12(PyFrame frame) {
+            /* This is a shorthand for 'print_exception(sys.last_type,
+                sys.last_value, sys.last_traceback, limit, file)'. */
+            if (frame.getlocal(1).__not__().__nonzero__()) {
+                frame.setlocal(1, frame.getglobal("sys").__getattr__("stderr"));
+            }
+            frame.getglobal("print_exception").__call__(new PyObject[] {frame.getglobal("sys").__getattr__("last_type"), frame.getglobal("sys").__getattr__("last_value"), frame.getglobal("sys").__getattr__("last_traceback"), frame.getlocal(0), frame.getlocal(1)});
+            return Py.None;
+        }
+        
+        private static PyObject print_stack$13(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* Print a stack trace from its invocation point.
+            
+                The optional 'f' argument can be used to specify an alternate
+                stack frame at which to start. The optional 'limit' and 'file'
+                arguments have the same meaning as for print_exception().
+                 */
+            if (frame.getlocal(0)._is(frame.getglobal("None")).__nonzero__()) {
+                try {
+                    throw Py.makeException(frame.getglobal("ZeroDivisionError"));
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("ZeroDivisionError"))) {
+                        frame.setlocal(0, frame.getglobal("sys").__getattr__("exc_info").__call__().__getitem__(i$44).__getattr__("tb_frame").__getattr__("f_back"));
+                    }
+                    else throw t$0$PyException;
+                }
+            }
+            frame.getglobal("print_list").__call__(frame.getglobal("extract_stack").__call__(frame.getlocal(0), frame.getlocal(1)), frame.getlocal(2));
+            return Py.None;
+        }
+        
+        private static PyObject format_stack$14(PyFrame frame) {
+            // Temporary Variables
+            PyException t$0$PyException;
+            
+            // Code
+            /* Shorthand for 'format_list(extract_stack(f, limit))'. */
+            if (frame.getlocal(0)._is(frame.getglobal("None")).__nonzero__()) {
+                try {
+                    throw Py.makeException(frame.getglobal("ZeroDivisionError"));
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("ZeroDivisionError"))) {
+                        frame.setlocal(0, frame.getglobal("sys").__getattr__("exc_info").__call__().__getitem__(i$44).__getattr__("tb_frame").__getattr__("f_back"));
+                    }
+                    else throw t$0$PyException;
+                }
+            }
+            return frame.getglobal("format_list").__call__(frame.getglobal("extract_stack").__call__(frame.getlocal(0), frame.getlocal(1)));
+        }
+        
+        private static PyObject extract_stack$15(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject, t$1$PyObject;
+            PyException t$0$PyException;
+            
+            // Code
+            /* Extract the raw traceback from the current stack frame.
+            
+                The return value has the same format as for extract_tb().  The
+                optional 'f' and 'limit' arguments have the same meaning as for
+                print_stack().  Each item in the list is a quadruple (filename,
+                line number, function name, text), and the entries are in order
+                from oldest to newest stack frame.
+                 */
+            if (frame.getlocal(0)._is(frame.getglobal("None")).__nonzero__()) {
+                try {
+                    throw Py.makeException(frame.getglobal("ZeroDivisionError"));
+                }
+                catch (Throwable x$0) {
+                    t$0$PyException = Py.setException(x$0, frame);
+                    if (Py.matchException(t$0$PyException, frame.getglobal("ZeroDivisionError"))) {
+                        frame.setlocal(0, frame.getglobal("sys").__getattr__("exc_info").__call__().__getitem__(i$44).__getattr__("tb_frame").__getattr__("f_back"));
+                    }
+                    else throw t$0$PyException;
+                }
+            }
+            if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) {
+                if (frame.getglobal("hasattr").__call__(frame.getglobal("sys"), s$23).__nonzero__()) {
+                    frame.setlocal(1, frame.getglobal("sys").__getattr__("tracebacklimit"));
+                }
+            }
+            frame.setlocal(6, new PyList(new PyObject[] {}));
+            frame.setlocal(5, i$24);
+            while (((t$0$PyObject = frame.getlocal(0)._isnot(frame.getglobal("None"))).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1)._is(frame.getglobal("None"))).__nonzero__() ? t$1$PyObject : frame.getlocal(5)._lt(frame.getlocal(1))) : t$0$PyObject).__nonzero__()) {
+                frame.setlocal(4, frame.getlocal(0).__getattr__("f_lineno"));
+                frame.setlocal(7, frame.getlocal(0).__getattr__("f_code"));
+                frame.setlocal(2, frame.getlocal(7).__getattr__("co_filename"));
+                frame.setlocal(3, frame.getlocal(7).__getattr__("co_name"));
+                frame.setlocal(8, frame.getglobal("linecache").__getattr__("getline").__call__(frame.getlocal(2), frame.getlocal(4)));
+                if (frame.getlocal(8).__nonzero__()) {
+                    frame.setlocal(8, frame.getlocal(8).invoke("strip"));
+                }
+                else {
+                    frame.setlocal(8, frame.getglobal("None"));
+                }
+                frame.getlocal(6).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3), frame.getlocal(8)}));
+                frame.setlocal(0, frame.getlocal(0).__getattr__("f_back"));
+                frame.setlocal(5, frame.getlocal(5)._add(i$26));
+            }
+            frame.getlocal(6).invoke("reverse");
+            return frame.getlocal(6);
+        }
+        
+        private static PyObject tb_lineno$16(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            /* Calculate correct line number of traceback given in tb.
+            
+                Even works with -O on.
+                 */
+            frame.setlocal(3, frame.getlocal(0).__getattr__("tb_frame").__getattr__("f_code"));
+            if (frame.getglobal("hasattr").__call__(frame.getlocal(3), s$48).__not__().__nonzero__()) {
+                return frame.getlocal(0).__getattr__("tb_lineno");
+            }
+            frame.setlocal(1, frame.getlocal(3).__getattr__("co_lnotab"));
+            frame.setlocal(6, frame.getlocal(3).__getattr__("co_firstlineno"));
+            frame.setlocal(5, frame.getlocal(0).__getattr__("tb_lasti"));
+            frame.setlocal(4, i$24);
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("range").__call__(i$24, frame.getglobal("len").__call__(frame.getlocal(1)), i$44);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(2, t$0$PyObject);
+                frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(frame.getlocal(2)))));
+                if (frame.getlocal(4)._gt(frame.getlocal(5)).__nonzero__()) {
+                    break;
+                }
+                frame.setlocal(6, frame.getlocal(6)._add(frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(frame.getlocal(2)._add(i$26)))));
+            }
+            return frame.getlocal(6);
+        }
+        
+        private static PyObject main$17(PyFrame frame) {
+            frame.setglobal("__file__", s$49);
+            
+            /* Extract, format and print information about Python stack traces. */
+            frame.setlocal("linecache", org.python.core.imp.importOne("linecache", frame));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("types", org.python.core.imp.importOne("types", frame));
+            frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13}));
+            frame.setlocal("_print", new PyFunction(frame.f_globals, new PyObject[] {s$14, s$15}, c$0__print));
+            frame.setlocal("print_list", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1_print_list));
+            frame.setlocal("format_list", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_format_list));
+            frame.setlocal("print_tb", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$3_print_tb));
+            frame.setlocal("format_tb", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$4_format_tb));
+            frame.setlocal("extract_tb", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$5_extract_tb));
+            frame.setlocal("print_exception", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$6_print_exception));
+            frame.setlocal("format_exception", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$7_format_exception));
+            frame.setlocal("format_exception_only", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_format_exception_only));
+            frame.setlocal("_some_str", new PyFunction(frame.f_globals, new PyObject[] {}, c$9__some_str));
+            frame.setlocal("print_exc", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$10_print_exc));
+            frame.setlocal("print_last", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$11_print_last));
+            frame.setlocal("print_stack", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None")}, c$12_print_stack));
+            frame.setlocal("format_stack", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$13_format_stack));
+            frame.setlocal("extract_stack", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$14_extract_stack));
+            frame.setlocal("tb_lineno", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_tb_lineno));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("traceback"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "traceback";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(traceback._PyInner.class, newargs, traceback.jpy$packages, traceback.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/util$_PyInner.class b/server/jpywork/util$_PyInner.class
new file mode 100644 (file)
index 0000000..1fe437e
Binary files /dev/null and b/server/jpywork/util$_PyInner.class differ
diff --git a/server/jpywork/util.class b/server/jpywork/util.class
new file mode 100644 (file)
index 0000000..18e5598
Binary files /dev/null and b/server/jpywork/util.class differ
diff --git a/server/jpywork/util.java b/server/jpywork/util.java
new file mode 100644 (file)
index 0000000..bf5099e
--- /dev/null
@@ -0,0 +1,192 @@
+import org.python.core.*;
+
+public class util extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject i$1;
+        private static PyObject i$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject s$5;
+        private static PyObject s$6;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0_lookup;
+        private static PyCode c$1_getzip;
+        private static PyCode c$2_closezips;
+        private static PyCode c$3_findClass;
+        private static PyCode c$4_reportPublicPlainClasses;
+        private static PyCode c$5_openResource;
+        private static PyCode c$6_listAllClasses;
+        private static PyCode c$7_main;
+        private static void initConstants() {
+            s$0 = Py.newString(".");
+            i$1 = Py.newInteger(0);
+            i$2 = Py.newInteger(1);
+            s$3 = Py.newString("java class");
+            s$4 = Py.newString("__name__");
+            s$5 = Py.newString(",");
+            s$6 = Py.newString("/usr/share/jython/Tools/jythonc/util.py");
+            funcTable = new _PyInner();
+            c$0_lookup = Py.newCode(1, new String[] {"name", "top", "names"}, "/usr/share/jython/Tools/jythonc/util.py", "lookup", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_getzip = Py.newCode(1, new String[] {"filename", "zipfile"}, "/usr/share/jython/Tools/jythonc/util.py", "getzip", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_closezips = Py.newCode(0, new String[] {"zf"}, "/usr/share/jython/Tools/jythonc/util.py", "closezips", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_findClass = Py.newCode(1, new String[] {"c"}, "/usr/share/jython/Tools/jythonc/util.py", "findClass", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_reportPublicPlainClasses = Py.newCode(1, new String[] {"jpkg", "classes"}, "/usr/share/jython/Tools/jythonc/util.py", "reportPublicPlainClasses", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_openResource = Py.newCode(1, new String[] {"res"}, "/usr/share/jython/Tools/jythonc/util.py", "openResource", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_listAllClasses = Py.newCode(1, new String[] {"jpkg", "classes", "classes2", "pkg2"}, "/usr/share/jython/Tools/jythonc/util.py", "listAllClasses", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/util.py", "main", false, false, funcTable, 7, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$7_main == null) _PyInner.initConstants();
+            return c$7_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.lookup$1(frame);
+                case 1:
+                return _PyInner.getzip$2(frame);
+                case 2:
+                return _PyInner.closezips$3(frame);
+                case 3:
+                return _PyInner.findClass$4(frame);
+                case 4:
+                return _PyInner.reportPublicPlainClasses$5(frame);
+                case 5:
+                return _PyInner.openResource$6(frame);
+                case 6:
+                return _PyInner.listAllClasses$7(frame);
+                case 7:
+                return _PyInner.main$8(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject lookup$1(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(2, frame.getlocal(0).invoke("split", s$0));
+            frame.setlocal(1, frame.getglobal("__import__").__call__(frame.getlocal(2).__getitem__(i$1)));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(2).__getslice__(i$2, null, null);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(0, t$0$PyObject);
+                frame.setlocal(1, frame.getglobal("getattr").__call__(frame.getlocal(1), frame.getlocal(0)));
+            }
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject getzip$2(PyFrame frame) {
+            if (frame.getglobal("zipfiles").invoke("has_key", frame.getlocal(0)).__nonzero__()) {
+                return frame.getglobal("zipfiles").__getitem__(frame.getlocal(0));
+            }
+            frame.setlocal(1, frame.getglobal("ZipFile").__call__(frame.getlocal(0)));
+            frame.getglobal("zipfiles").__setitem__(frame.getlocal(0), frame.getlocal(1));
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject closezips$3(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            t$0$int = 0;
+            t$1$PyObject = frame.getglobal("zipfiles").invoke("values");
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(0, t$0$PyObject);
+                frame.getlocal(0).invoke("close");
+            }
+            frame.getglobal("zipfiles").invoke("clear");
+            return Py.None;
+        }
+        
+        private static PyObject findClass$4(PyFrame frame) {
+            return frame.getglobal("Py").__getattr__("findClassEx").__call__(frame.getlocal(0), s$3);
+        }
+        
+        private static PyObject reportPublicPlainClasses$5(PyFrame frame) {
+            frame.setlocal(1, frame.getglobal("sys").__getattr__("packageManager").__getattr__("doDir").__call__(frame.getlocal(0), i$1, i$2));
+            frame.getlocal(1).invoke("remove", s$4);
+            return frame.getglobal("string").__getattr__("join").__call__(frame.getlocal(1), s$5);
+        }
+        
+        private static PyObject openResource$6(PyFrame frame) {
+            // global _path_vfs
+            if (frame.getglobal("_path_vfs").__not__().__nonzero__()) {
+                frame.setglobal("_path_vfs", frame.getglobal("PathVFS").__call__(frame.getglobal("sys").__getattr__("registry")));
+            }
+            return frame.getglobal("_path_vfs").invoke("open", frame.getlocal(0));
+        }
+        
+        private static PyObject listAllClasses$7(PyFrame frame) {
+            // global _ypm
+            frame.setlocal(1, frame.getglobal("sys").__getattr__("packageManager").__getattr__("doDir").__call__(frame.getlocal(0), i$1, i$2));
+            frame.getlocal(1).invoke("remove", s$4);
+            if (frame.getglobal("_ypm")._is(frame.getglobal("None")).__nonzero__()) {
+                frame.setglobal("_ypm", frame.getglobal("YaPM").__call__(frame.getglobal("sys").__getattr__("registry")));
+            }
+            frame.setlocal(3, frame.getglobal("_ypm").invoke("lookupName", frame.getlocal(0).__getattr__("__name__")));
+            frame.setlocal(2, frame.getglobal("_ypm").invoke("doDir", new PyObject[] {frame.getlocal(3), i$1, i$2}));
+            frame.getlocal(2).invoke("remove", s$4);
+            frame.getlocal(1).invoke("extend", frame.getlocal(2));
+            return frame.getlocal(1);
+        }
+        
+        private static PyObject main$8(PyFrame frame) {
+            frame.setglobal("__file__", s$6);
+            
+            PyObject[] imp_accu;
+            // Code
+            frame.setlocal("lookup", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_lookup));
+            imp_accu = org.python.core.imp.importFrom("java.util.zip", new String[] {"ZipFile"}, frame);
+            frame.setlocal("ZipFile", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("zipfiles", new PyDictionary(new PyObject[] {}));
+            frame.setlocal("getzip", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_getzip));
+            frame.setlocal("closezips", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_closezips));
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("string", org.python.core.imp.importOne("string", frame));
+            imp_accu = org.python.core.imp.importFrom("org.python.core", new String[] {"Py"}, frame);
+            frame.setlocal("Py", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("yapm", new String[] {"YaPM"}, frame);
+            frame.setlocal("YaPM", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("PathVFS", new String[] {"PathVFS"}, frame);
+            frame.setlocal("PathVFS", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("findClass", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_findClass));
+            frame.setlocal("reportPublicPlainClasses", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_reportPublicPlainClasses));
+            frame.setlocal("_path_vfs", frame.getname("None"));
+            frame.setlocal("openResource", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_openResource));
+            frame.setlocal("_ypm", frame.getname("None"));
+            frame.setlocal("listAllClasses", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_listAllClasses));
+            return Py.None;
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("util"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "util";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(util._PyInner.class, newargs, util.jpy$packages, util.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/jpywork/yapm$YaPM.class b/server/jpywork/yapm$YaPM.class
new file mode 100644 (file)
index 0000000..2bf82f5
Binary files /dev/null and b/server/jpywork/yapm$YaPM.class differ
diff --git a/server/jpywork/yapm$_PyInner.class b/server/jpywork/yapm$_PyInner.class
new file mode 100644 (file)
index 0000000..2a14437
Binary files /dev/null and b/server/jpywork/yapm$_PyInner.class differ
diff --git a/server/jpywork/yapm.class b/server/jpywork/yapm.class
new file mode 100644 (file)
index 0000000..f3ea93e
Binary files /dev/null and b/server/jpywork/yapm.class differ
diff --git a/server/jpywork/yapm.java b/server/jpywork/yapm.java
new file mode 100644 (file)
index 0000000..71c7146
--- /dev/null
@@ -0,0 +1,367 @@
+import org.python.core.*;
+
+public class yapm extends java.lang.Object {
+    static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"};
+    static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
+    static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null};
+    
+    public static class _PyInner extends PyFunctionTable implements PyRunnable {
+        private static PyObject s$0;
+        private static PyObject s$1;
+        private static PyObject s$2;
+        private static PyObject s$3;
+        private static PyObject s$4;
+        private static PyObject i$5;
+        private static PyObject s$6;
+        private static PyObject i$7;
+        private static PyObject s$8;
+        private static PyFunctionTable funcTable;
+        private static PyCode c$0___init__;
+        private static PyCode c$1_findClass;
+        private static PyCode c$2_findAllPackages;
+        private static PyCode c$3_filterByName;
+        private static PyCode c$4_filterByAccess;
+        private static PyCode c$5_doDir;
+        private static PyCode c$6_packageExists;
+        private static PyCode c$7_YaPM;
+        private static PyCode c$8_main;
+        private static void initConstants() {
+            s$0 = Py.newString("python.packages.paths");
+            s$1 = Py.newString("java.class.path");
+            s$2 = Py.newString(",");
+            s$3 = Py.newString("sun.boot.class.path");
+            s$4 = Py.newString("python.packages.fakepath");
+            i$5 = Py.newInteger(0);
+            s$6 = Py.newString("$");
+            i$7 = Py.newInteger(1);
+            s$8 = Py.newString("/usr/share/jython/Tools/jythonc/yapm.py");
+            funcTable = new _PyInner();
+            c$0___init__ = Py.newCode(2, new String[] {"self", "registry"}, "/usr/share/jython/Tools/jythonc/yapm.py", "__init__", false, false, funcTable, 0, null, null, 0, 1);
+            c$1_findClass = Py.newCode(3, new String[] {"self", "pkg", "name"}, "/usr/share/jython/Tools/jythonc/yapm.py", "findClass", false, false, funcTable, 1, null, null, 0, 1);
+            c$2_findAllPackages = Py.newCode(2, new String[] {"self", "registry", "e", "p", "fakepath", "paths"}, "/usr/share/jython/Tools/jythonc/yapm.py", "findAllPackages", false, false, funcTable, 2, null, null, 0, 1);
+            c$3_filterByName = Py.newCode(3, new String[] {"self", "name", "pkg"}, "/usr/share/jython/Tools/jythonc/yapm.py", "filterByName", false, false, funcTable, 3, null, null, 0, 1);
+            c$4_filterByAccess = Py.newCode(3, new String[] {"self", "name", "acc"}, "/usr/share/jython/Tools/jythonc/yapm.py", "filterByAccess", false, false, funcTable, 4, null, null, 0, 1);
+            c$5_doDir = Py.newCode(4, new String[] {"self", "jpkg", "instantiate", "exclpkgs", "basic", "ret"}, "/usr/share/jython/Tools/jythonc/yapm.py", "doDir", false, false, funcTable, 5, null, null, 0, 1);
+            c$6_packageExists = Py.newCode(3, new String[] {"self", "pkg", "name"}, "/usr/share/jython/Tools/jythonc/yapm.py", "packageExists", false, false, funcTable, 6, null, null, 0, 1);
+            c$7_YaPM = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/yapm.py", "YaPM", false, false, funcTable, 7, null, null, 0, 0);
+            c$8_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/yapm.py", "main", false, false, funcTable, 8, null, null, 0, 0);
+        }
+        
+        
+        public PyCode getMain() {
+            if (c$8_main == null) _PyInner.initConstants();
+            return c$8_main;
+        }
+        
+        public PyObject call_function(int index, PyFrame frame) {
+            switch (index){
+                case 0:
+                return _PyInner.__init__$1(frame);
+                case 1:
+                return _PyInner.findClass$2(frame);
+                case 2:
+                return _PyInner.findAllPackages$3(frame);
+                case 3:
+                return _PyInner.filterByName$4(frame);
+                case 4:
+                return _PyInner.filterByAccess$5(frame);
+                case 5:
+                return _PyInner.doDir$6(frame);
+                case 6:
+                return _PyInner.packageExists$7(frame);
+                case 7:
+                return _PyInner.YaPM$8(frame);
+                case 8:
+                return _PyInner.main$9(frame);
+                default:
+                return null;
+            }
+        }
+        
+        private static PyObject __init__$1(PyFrame frame) {
+            frame.getlocal(0).invoke("findAllPackages", frame.getlocal(1));
+            return Py.None;
+        }
+        
+        private static PyObject findClass$2(PyFrame frame) {
+            return frame.getglobal("None");
+        }
+        
+        private static PyObject findAllPackages$3(PyFrame frame) {
+            // Temporary Variables
+            int t$0$int;
+            PyObject t$0$PyObject, t$1$PyObject;
+            
+            // Code
+            frame.setlocal(5, frame.getlocal(1).invoke("getProperty", s$0, s$1));
+            frame.setlocal(5, frame.getlocal(5).invoke("split", s$2));
+            if (s$3._in(frame.getlocal(5)).__nonzero__()) {
+                frame.getlocal(5).invoke("remove", s$3);
+            }
+            frame.setlocal(4, frame.getlocal(1).invoke("getProperty", s$4, frame.getglobal("None")));
+            t$0$int = 0;
+            t$1$PyObject = frame.getlocal(5);
+            while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) {
+                frame.setlocal(3, t$0$PyObject);
+                frame.setlocal(2, frame.getlocal(1).invoke("getProperty", frame.getlocal(3)));
+                if (frame.getlocal(2)._ne(frame.getglobal("None")).__nonzero__()) {
+                    frame.getlocal(0).invoke("addClassPath", frame.getlocal(2));
+                }
+            }
+            if (frame.getlocal(4)._ne(frame.getglobal("None")).__nonzero__()) {
+                frame.getlocal(0).invoke("addClassPath", frame.getlocal(4));
+            }
+            return Py.None;
+        }
+        
+        private static PyObject filterByName$4(PyFrame frame) {
+            return i$5;
+        }
+        
+        private static PyObject filterByAccess$5(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            return ((t$0$PyObject = frame.getlocal(1).invoke("find", s$6)._ne(i$7.__neg__())).__nonzero__() ? t$0$PyObject : frame.getlocal(2)._and(i$7)._eq(i$5)).__not__();
+        }
+        
+        private static PyObject doDir$6(PyFrame frame) {
+            frame.setlocal(4, frame.getlocal(0).invoke("basicDoDir", new PyObject[] {frame.getlocal(1), i$5, frame.getlocal(3)}));
+            frame.setlocal(5, new PyList(new PyObject[] {}));
+            frame.getlocal(0).invoke("super__doDir", new PyObject[] {frame.getlocal(0).__getattr__("searchPath"), frame.getlocal(5), frame.getlocal(1), i$5, frame.getlocal(3)});
+            frame.getlocal(0).invoke("super__doDir", new PyObject[] {frame.getglobal("sys").__getattr__("path"), frame.getlocal(5), frame.getlocal(1), i$5, frame.getlocal(3)});
+            return frame.getlocal(0).invoke("merge", frame.getlocal(4), frame.getlocal(5));
+        }
+        
+        private static PyObject packageExists$7(PyFrame frame) {
+            // Temporary Variables
+            PyObject t$0$PyObject;
+            
+            // Code
+            return (t$0$PyObject = frame.getlocal(0).invoke("super__packageExists", new PyObject[] {frame.getlocal(0).__getattr__("searchPath"), frame.getlocal(1), frame.getlocal(2)})).__nonzero__() ? t$0$PyObject : frame.getlocal(0).invoke("super__packageExists", new PyObject[] {frame.getglobal("sys").__getattr__("path"), frame.getlocal(1), frame.getlocal(2)});
+        }
+        
+        private static PyObject YaPM$8(PyFrame frame) {
+            frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__));
+            frame.setlocal("findClass", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_findClass));
+            frame.setlocal("findAllPackages", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_findAllPackages));
+            frame.setlocal("filterByName", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_filterByName));
+            frame.setlocal("filterByAccess", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_filterByAccess));
+            frame.setlocal("doDir", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_doDir));
+            frame.setlocal("packageExists", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_packageExists));
+            return frame.getf_locals();
+        }
+        
+        private static PyObject main$9(PyFrame frame) {
+            frame.setglobal("__file__", s$8);
+            
+            PyObject[] imp_accu;
+            // Code
+            frame.setlocal("sys", org.python.core.imp.importOne("sys", frame));
+            frame.setlocal("os", org.python.core.imp.importOne("os", frame));
+            imp_accu = org.python.core.imp.importFrom("string", new String[] {"strip"}, frame);
+            frame.setlocal("strip", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("java", new String[] {"io"}, frame);
+            frame.setlocal("io", imp_accu[0]);
+            imp_accu = null;
+            imp_accu = org.python.core.imp.importFrom("org.python.core", new String[] {"PathPackageManager"}, frame);
+            frame.setlocal("PathPackageManager", imp_accu[0]);
+            imp_accu = null;
+            frame.setlocal("YaPM", Py.makeClass("YaPM", new PyObject[] {frame.getname("PathPackageManager")}, c$7_YaPM, null, YaPM.class));
+            return Py.None;
+        }
+        
+    }
+    public static class YaPM extends org.python.core.PathPackageManager implements org.python.core.PyProxy, org.python.core.ClassDictInit {
+        public void addJar(java.lang.String arg0, boolean arg1) {
+            PyObject inst = Py.jgetattr(this, "addJar");
+            inst._jcall(new Object[] {arg0, Py.newBoolean(arg1)});
+        }
+        
+        public void addJarDir(java.lang.String arg0, boolean arg1) {
+            PyObject inst = Py.jgetattr(this, "addJarDir");
+            inst._jcall(new Object[] {arg0, Py.newBoolean(arg1)});
+        }
+        
+        public org.python.core.PyList basicDoDir(org.python.core.PyJavaPackage arg0, boolean arg1, boolean arg2) {
+            return super.basicDoDir(arg0, arg1, arg2);
+        }
+        
+        public java.lang.Object clone() throws java.lang.CloneNotSupportedException {
+            return super.clone();
+        }
+        
+        public void comment(java.lang.String arg0) {
+            super.comment(arg0);
+        }
+        
+        public void debug(java.lang.String arg0) {
+            super.debug(arg0);
+        }
+        
+        public void deleteCacheFile(java.lang.String arg0) {
+            super.deleteCacheFile(arg0);
+        }
+        
+        public void super__doDir(org.python.core.PyList arg0, org.python.core.PyList arg1, org.python.core.PyJavaPackage arg2, boolean arg3, boolean arg4) {
+            super.doDir(arg0, arg1, arg2, arg3, arg4);
+        }
+        
+        public void doDir(org.python.core.PyList arg0, org.python.core.PyList arg1, org.python.core.PyJavaPackage arg2, boolean arg3, boolean arg4) {
+            PyObject inst = Py.jfindattr(this, "doDir");
+            if (inst != null) inst._jcall(new Object[] {arg0, arg1, arg2, Py.newBoolean(arg3), Py.newBoolean(arg4)});
+            else super.doDir(arg0, arg1, arg2, arg3, arg4);
+        }
+        
+        public org.python.core.PyList super__doDir(org.python.core.PyJavaPackage arg0, boolean arg1, boolean arg2) {
+            return super.doDir(arg0, arg1, arg2);
+        }
+        
+        public org.python.core.PyList doDir(org.python.core.PyJavaPackage arg0, boolean arg1, boolean arg2) {
+            PyObject inst = Py.jfindattr(this, "doDir");
+            if (inst != null) return (org.python.core.PyList)Py.tojava(inst._jcall(new Object[] {arg0, Py.newBoolean(arg1), Py.newBoolean(arg2)}), org.python.core.PyList.class);
+            else return super.doDir(arg0, arg1, arg2);
+        }
+        
+        public boolean super__filterByAccess(java.lang.String arg0, int arg1) {
+            return super.filterByAccess(arg0, arg1);
+        }
+        
+        public boolean filterByAccess(java.lang.String arg0, int arg1) {
+            PyObject inst = Py.jfindattr(this, "filterByAccess");
+            if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, Py.newInteger(arg1)}));
+            else return super.filterByAccess(arg0, arg1);
+        }
+        
+        public boolean super__filterByName(java.lang.String arg0, boolean arg1) {
+            return super.filterByName(arg0, arg1);
+        }
+        
+        public boolean filterByName(java.lang.String arg0, boolean arg1) {
+            PyObject inst = Py.jfindattr(this, "filterByName");
+            if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, Py.newBoolean(arg1)}));
+            else return super.filterByName(arg0, arg1);
+        }
+        
+        public void finalize() throws java.lang.Throwable {
+            super.finalize();
+        }
+        
+        public java.lang.Class super__findClass(java.lang.String arg0, java.lang.String arg1) {
+            return super.findClass(arg0, arg1);
+        }
+        
+        public java.lang.Class findClass(java.lang.String arg0, java.lang.String arg1) {
+            PyObject inst = Py.jfindattr(this, "findClass");
+            if (inst != null) return (java.lang.Class)Py.tojava(inst._jcall(new Object[] {arg0, arg1}), java.lang.Class.class);
+            else return super.findClass(arg0, arg1);
+        }
+        
+        public java.lang.Class findClass(java.lang.String arg0, java.lang.String arg1, java.lang.String arg2) {
+            PyObject inst = Py.jgetattr(this, "findClass");
+            return (java.lang.Class)Py.tojava(inst._jcall(new Object[] {arg0, arg1, arg2}), java.lang.Class.class);
+        }
+        
+        public java.io.DataInputStream inOpenCacheFile(java.lang.String arg0) throws java.io.IOException {
+            return super.inOpenCacheFile(arg0);
+        }
+        
+        public java.io.DataInputStream inOpenIndex() throws java.io.IOException {
+            return super.inOpenIndex();
+        }
+        
+        public void initCache() {
+            super.initCache();
+        }
+        
+        public org.python.core.PyList merge(org.python.core.PyList arg0, org.python.core.PyList arg1) {
+            return super.merge(arg0, arg1);
+        }
+        
+        public void message(java.lang.String arg0) {
+            super.message(arg0);
+        }
+        
+        public java.io.DataOutputStream outCreateCacheFile(org.python.core.CachedJarsPackageManager.JarXEntry arg0, boolean arg1) throws java.io.IOException {
+            return super.outCreateCacheFile(arg0, arg1);
+        }
+        
+        public java.io.DataOutputStream outOpenIndex() throws java.io.IOException {
+            return super.outOpenIndex();
+        }
+        
+        public boolean super__packageExists(java.lang.String arg0, java.lang.String arg1) {
+            return super.packageExists(arg0, arg1);
+        }
+        
+        public boolean packageExists(java.lang.String arg0, java.lang.String arg1) {
+            PyObject inst = Py.jfindattr(this, "packageExists");
+            if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, arg1}));
+            else return super.packageExists(arg0, arg1);
+        }
+        
+        public boolean super__packageExists(org.python.core.PyList arg0, java.lang.String arg1, java.lang.String arg2) {
+            return super.packageExists(arg0, arg1, arg2);
+        }
+        
+        public boolean packageExists(org.python.core.PyList arg0, java.lang.String arg1, java.lang.String arg2) {
+            PyObject inst = Py.jfindattr(this, "packageExists");
+            if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, arg1, arg2}));
+            else return super.packageExists(arg0, arg1, arg2);
+        }
+        
+        public boolean useCacheDir(java.io.File arg0) {
+            return super.useCacheDir(arg0);
+        }
+        
+        public void warning(java.lang.String arg0) {
+            super.warning(arg0);
+        }
+        
+        public YaPM() {
+            super();
+            __initProxy__(new Object[] {});
+        }
+        
+        private PyInstance __proxy;
+        public void _setPyInstance(PyInstance inst) {
+            __proxy = inst;
+        }
+        
+        public PyInstance _getPyInstance() {
+            return __proxy;
+        }
+        
+        private PySystemState __sysstate;
+        public void _setPySystemState(PySystemState inst) {
+            __sysstate = inst;
+        }
+        
+        public PySystemState _getPySystemState() {
+            return __sysstate;
+        }
+        
+        public void __initProxy__(Object[] args) {
+            Py.initProxy(this, "yapm", "YaPM", args, yapm.jpy$packages, yapm.jpy$proxyProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+        }
+        
+        static public void classDictInit(PyObject dict) {
+            dict.__setitem__("__supernames__", Py.java2py(new String[] {"deleteCacheFile", "finalize", "super__doDir", "comment", "super__filterByAccess", "initCache", "outCreateCacheFile", "merge", "super__filterByName", "useCacheDir", "message", "super__packageExists", "debug", "inOpenIndex", "warning", "super__findClass", "clone", "outOpenIndex", "basicDoDir", "inOpenCacheFile"}));
+        }
+        
+    }
+    public static void moduleDictInit(PyObject dict) {
+        dict.__setitem__("__name__", new PyString("yapm"));
+        Py.runCode(new _PyInner().getMain(), dict, dict);
+    }
+    
+    public static void main(String[] args) throws java.lang.Exception {
+        String[] newargs = new String[args.length+1];
+        newargs[0] = "yapm";
+        System.arraycopy(args, 0, newargs, 1, args.length);
+        Py.runMain(yapm._PyInner.class, newargs, yapm.jpy$packages, yapm.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"});
+    }
+    
+}
diff --git a/server/keycreator/prog.py b/server/keycreator/prog.py
new file mode 100644 (file)
index 0000000..6148918
--- /dev/null
@@ -0,0 +1,48 @@
+import sys
+from OpenSSL import crypto
+from M2Crypto import X509
+sys.path.append('../../util/sec')
+sys.path.append('../../util')
+from sec import *
+from util import *
+from db import *
+
+SUFFIX1 = '_srr'
+SUFFIX2 = '_crr'
+
+#get input from user
+hrn = raw_input('Enter the hrn of the object: ')
+
+#generate certificate and the private key
+name = get_leaf(hrn)
+create_self_cert(name)
+
+#extract the public key from the certificate and input to the database
+cert = X509.load_cert(name+'.cert')
+pubkey_pem = cert.get_pubkey().as_pem(cipher=None)
+
+cnx = get_plDB_conn()
+tablename = obtain_authority(hrn).replace('.','$')
+t1 = tablename+SUFFIX1
+t2 = tablename+SUFFIX2
+
+querystr = "SELECT * FROM "+t1+" WHERE hrn='"+name+"';"
+res = cnx.query(querystr)
+if res:
+        querystr = "UPDATE "+t1+" SET pubkey = '"+pubkey_pem+"' WHERE hrn = '"+name+"';"
+        cnx.query(querystr)
+else:
+    querystr = "SELECT * FROM "+t2+" WHERE hrn='"+name+"';"
+    res = cnx.query(querystr)
+    if res:
+        querystr = "UPDATE "+t2+" SET pubkey = '"+pubkey_pem+"' WHERE hrn = '"+name+"';"
+        cnx.query(querystr)
+    else:
+        print 'The record with name:'+hrn+"' does not exist in the system.\n"
+        os.exit(1)
+
+print "Public key is successfully added to '"+hrn+"' record.\nThe certificate and key are generated.\n"
+
+
+
+
diff --git a/server/server.py b/server/server.py
new file mode 100755 (executable)
index 0000000..e3be0c0
--- /dev/null
@@ -0,0 +1,725 @@
+#wrapper for the registry
+
+# Socket address
+LISTEN_HOST = '127.0.0.1' 
+LISTEN_PORT = 8002
+SR_FILE = 'interface_tree_sr'
+CR_FILE = 'interface_tree_cr'
+
+AUTH_HOST = '127.0.0.1' 
+AUTH_PORT = 8002
+
+import SocketServer
+
+import socket, os, sys
+from M2Crypto import SSL
+from M2Crypto.SSL import SSLError
+from M2Crypto import X509
+from pg import DB
+sys.path.append('../')
+sys.path.append('../util')
+sys.path.append('../util/sec')
+sys.path.append("../PLCAPI/trunk")
+from util import *
+from tree import *
+from excep import *
+from sec import *
+from db import *
+from pl_to_geni import *
+import time, datetime, calendar
+
+# Import the API Shell
+from PLC.Shell import Shell
+shell = Shell(globals = globals())             # Add all the API methods to the global namespace
+##                 ,config = options.config,     # Configuartion file (Optional. Defaluts to /etc/planetlab/plc_config)
+##                 url = options.url,           # XML-RPC server uirl (Optional)
+##                 xmlrpc = options.xmlrpc,     # Use XML-RPC ? (Optional)
+##                 cacert = options.cacert,     # Certificate to use (Optional)
+##                 method = options.method,     # API authentication method (Optional)
+##                 role = options.role,         # Role to assume (Optional)
+##                 user = options.user,         # (Optional)
+##                 password = options.password, # (Required if user is specified)
+##                 session = options.session)   # Session authentication 
+
+class GENIServer(SSL.SSLServer):
+
+    #NOTE: 
+    #  step1: The caller first makes a discovery call.
+    #  step2: If the hrn is not managed by this interface, the appropriate child wrapper URL is returned.
+    #  step3: Else, DOMAIN_NAME is returned.
+    #  step4: Then, the caller does the call with authentication and authorization elements.
+    #  step5: The interface handles the call: 
+    #                  - Check if HRN is in the same database, or another db (again handled by this interface)
+    #                  - Perform the call in appropriate database in appropriate table.
+    #                  - For remote databases, ensure security. 
+
+    #NOTE: For all calls below, if the parameter dbinfo that points to the db/tabe to act shows a different db than the interface tree's root, then 
+    #the PL calls should also reflect that; the PL calls should be made to that db. Currently PL API db configuration is static, and there is no problem now 
+    #since all nodes in interface tree reside at the same database
+
+    #record is the record to be registered
+    #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
+    def register(self, record, dbinfo):
+        cnx = dbinfo[0]
+        table = dbinfo[1] 
+        type = record['g_params']["type"]
+        
+        try:
+            #check if record already exists
+            existing_res = check_exists_geni(record, dbinfo)
+            if existing_res:
+                    raise ExistingRecord("Record "+record['g_params']['hrn']+" already exists.\n" )
+            if type == "SA" or type == 'MA':
+                #geni parameters
+                record['g_params']["wrapperurl"] = 'local'
+                reg_type = ''
+                if type == "SA":
+                    reg_type = 'slc'
+                else:
+                    reg_type = 'comp'
+                rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)'
+                rights = rights + '#0:reg:'+reg_type+":"+obtain_authority(record['g_params']["hrn"])+'#1:reg:'+reg_type+":"+record['g_params']["hrn"]
+                record['g_params']['rights'] = rights
+                long_hrn = record['g_params']["hrn"]
+                hrn_suffix = get_leaf(record['g_params']["hrn"])
+                pointer = -1
+                login_base = ''
+                #PL specific parameters
+                site_fields = record['p_params']
+                
+                #check if the authority's site exists already
+                other_tree = None
+                if reg_type == 'slc':
+                    other_tree = self.cr_tree
+                else:
+                    other_tree = self.sr_tree
+                info = other_tree.tree_lookup(long_hrn)
+                if info:
+                    login_base = info.login_base
+                    pointer = cnx.query("SELECT site_id FROM sites WHERE login_base = '"+login_base+"';").dictresult()[0]['site_id']
+                else:
+                    #check if login_base is specified
+                    if site_fields.has_key('login_base'):
+                        login_base = site_fields['login_base']
+                        querystr = "SELECT * FROM sites WHERE login_base = '"+login_base+"'"
+                        res = cnx.query(querystr).dictresult()
+                        if res:
+                            return "Site login_base '"+login_base+", already exists in the system. Try another name.\n"
+                    else:
+                        #determine new login_base
+                        login_base = hrn_to_loginbase(long_hrn)
+                        for i in range(1,10):
+                            querystr = "SELECT * FROM sites WHERE login_base = '"+login_base+"'"
+                            res = cnx.query(querystr).dictresult()
+                            if not res:
+                                break
+                            else:
+                                login_base = hrn_to_loginbase(long_hrn, i)
+                        site_fields['login_base'] = login_base                        
+                    #add into PL table
+                    pointer = shell.AddSite(pl_auth, site_fields)
+                    
+                #create the folder for the site and keys
+                curdir = os.getcwd()
+                if reg_type == 'slc':
+                    dir_type = 'slice'
+                else:
+                    dir_type = 'component'
+                dirname = dir_type+'/'+(long_hrn).replace('.','/')
+                if os.path.exists(dirname):
+                    os.system('rm -rf '+dirname)
+                os.makedirs(dirname)
+                os.chdir(dirname)
+                create_self_cert(hrn_suffix)
+                os.chdir(curdir)
+                
+                #insert into GENI parent table 
+                record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"])
+                record['g_params']['pubkey'] = X509.load_cert(dirname+'/'+hrn_suffix+'.cert').get_pubkey().as_pem(cipher=None)
+                record['g_params']['pointer'] = pointer
+                querystr = generate_querystr('INSERT', table, record['g_params'])
+                cnx.query(querystr)
+                
+                #create the new table for the site
+                new_table_name = hrn_to_tablename(long_hrn, reg_type)
+                cnx.query('DROP TABLE IF EXISTS '+new_table_name) #drop the table if it exists
+                querystr = "CREATE TABLE "+new_table_name+" ( \
+                hrn text, \
+                type text, \
+                uuid text, \
+                userlist text, \
+                rights text, \
+                description text, \
+                pubkey text, \
+                wrapperURL text, \
+                disabled text, \
+                pointer integer);"
+                cnx.query(querystr)
+                
+                #update the interface tree
+                tree = None
+                if type == 'SA':
+                    tree = self.sr_tree
+                else:
+                    tree = self.cr_tree
+                parent_data = tree.tree_lookup(obtain_authority(long_hrn)).node_data
+                parent_db_info = parent_data['db_info']
+                parent_key_info = parent_data['key_info']
+                info = TreeNodeInfo()
+                info.name = long_hrn
+                info.login_base = login_base
+                db_info = DbInfo()
+                key_info = KeyInfo()
+                info.node_data = {'db_info':db_info, 'key_info':key_info}
+                
+                db_info.table_name = new_table_name
+                db_info.db_name = parent_db_info.db_name
+                db_info.address = parent_db_info.address
+                db_info.port = parent_db_info.port
+                db_info.user = parent_db_info.user
+                db_info.password = parent_db_info.password
+                
+                key_info.acc_file = ''
+                key_info.cred_file = ''
+                key_info.folder = parent_key_info.folder+'/'+hrn_suffix
+                key_info.id_file = hrn_suffix+'.cert'
+                key_info.id_key_file = hrn_suffix+'.pkey'
+
+                tree.tree_add(info)
+                if type == 'SA':
+                    self.save_state('sr')
+                else:
+                    self.save_state('cr')
+                return type+' '+long_hrn + ' is successfully added.\n'
+            
+            elif type == "slice":
+                login_base = get_leaf(obtain_authority(record['g_params']["hrn"]))
+                #geni parameters
+                #hrn is inside dictionary, passed by the client
+                long_hrn = record['g_params']["hrn"]
+                hrn_suffix = get_leaf(record['g_params']["hrn"])
+                #PL specific parameters
+                slice_fields = record['p_params']
+                slice_fields['name'] = login_base + "_" + hrn_suffix
+                
+                #insert the PL tables first
+                pointer = shell.AddSlice(pl_auth, slice_fields)
+                #insert into the GENI tables
+                record['g_params']["pointer"] = pointer
+                querystr = "UPDATE "+table+" SET hrn = '"+hrn_suffix+"'"
+                if record['g_params'].has_key('userlist'):
+                    querystr = querystr+" userlist = '"+record['g_params']['userlist']+"'"
+                if record['g_params'].has_key('rights'):
+                    querystr = querystr+" rights = '"+record['g_params']['rights']+"'"
+                querystr = querystr+" WHERE pointer = "+str(record['g_params']["pointer"])
+                cnx.query(querystr)
+                return "Slice "+long_hrn+" is successfully added.\n"
+            elif type == "user":       
+                #geni parameters
+                #hrn and pubkey are inside dictinary, passed by the client
+                long_hrn = record['g_params']["hrn"]
+                record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"])
+                rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)'
+                rights = rights + '#0:reg:slc:'+obtain_authority(record['g_params']["hrn"])
+                record['g_params']["rights"] = rights
+                #PL specific parameters
+                user_fields = record['p_params']
+                
+                #insert the PL tables first
+                pointer = shell.AddPerson(pl_auth, user_fields)
+                #insert into the GENI tables
+                record['g_params']["pointer"] = pointer
+                querystr = generate_querystr('INSERT', table, record['g_params'])
+                cnx.query(querystr)
+                return "User "+long_hrn+" is successfully added.\n"
+                
+            elif type == "node":       
+                #geni parameters
+                #hrn and pubkey are inside dictinary, passed by the client
+                long_hrn = record['g_params']["hrn"]
+                login_base = self.cr_tree.tree_lookup(obtain_authority(long_hrn)).login_base
+                record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"])
+                rights = ''
+                record['g_params']["rights"] = rights
+                #PL specific parameters
+                node_fields = record['p_params']
+                
+                #insert the PL tables first
+                pointer = shell.AddNode(pl_auth, login_base, node_fields)
+        
+                #insert into the GENI tables
+                record['g_params']["pointer"] = pointer
+                querystr = "UPDATE "+table+" SET hrn = '"+record['g_params']["hrn"]+"'"
+                if record['g_params'].has_key('rights') and record['g_params']['rights'] != '':
+                    querystr = querystr+" rights = '"+record['g_params']['rights']+"'"
+                querystr = querystr+" WHERE pointer = "+str(record['g_params']["pointer"])
+                cnx.query(querystr)
+                return "Node "+long_hrn+" is successfully added.\n"
+                
+        except Exception, e:
+            print "Error in 'register():"+str(e)
+            return "Error in register:."+str(e)
+            
+    #record is the record to be updated
+    #record contains the new values of the fields to be changed in a dictionary. 
+    #precondition: the authorization mechanism should already checked the fields intended to be updated
+    #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
+    def update(self, record, dbinfo):
+        cnx = dbinfo[0]
+        table = dbinfo[1] 
+        try:
+            #determine the type and PL pointer of the record
+            existing_res = check_exists_geni(record, dbinfo)
+            if not existing_res:
+                raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+            type = existing_res['type']
+            pointer = existing_res['pointer']
+            long_hrn = record['g_params']["hrn"]
+            
+            #PL update
+            if type == "SA" and pointer != -1:
+                #check if record exists in PL
+                pl_res = shell.GetSites(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                #PL specific parameters
+                site_fields = record['p_params']
+                #update the PL tables
+                shell.UpdateSite(pl_auth, pointer, site_fields)
+            elif type == "MA" and pointer != -1:
+                #check if record exists in PL
+                pl_res = shell.GetSites(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                #PL specific parameters
+                site_fields = record['p_params']
+                #update the PL tables
+                shell.UpdateSite(pl_auth, pointer, site_fields)
+            elif type == "slice":
+                #check if record exists in PL
+                pl_res = shell.GetSlices(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                #PL specific parameters
+                slice_fields = record['p_params']
+                #update the PL tables
+                shell.UpdateSlice(pl_auth, pointer, slice_fields)
+                #process the new users added to the slice
+                for user in record['g_params']['userlist']:
+                    usr_dbinfo = determine_dbinfo(get_authority(user), self.tree)
+                    if usr_dbinfo:
+                        rec = {'g_params':{'hrn':user}, 'p_params':{}}
+                        user_pointer = self.lookup(rec, usr_dbinfo)['geni']['pointer']
+                        querystr = "INSERT INTO slice_person VALUES("+pointer+", "+user_pointer+");"
+                        cnx.query(querystr)
+            elif type == "user":
+                #check if record exists in PL
+                pl_res = shell.GetPersons(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                #PL specific parameters
+                user_fields = record['p_params']
+                #update the PL tables
+                shell.UpdatePerson(pl_auth, pointer, user_fields)
+            elif type == "node":
+                #check if record exists in PL
+                pl_res = shell.GetNodes(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                #PL specific parameters
+                node_fields = record['p_params']
+                #update the PL tables
+                shell.UpdateNode(pl_auth, pointer, node_fields)
+                
+            #geni update
+            #all fields to be updated resides in the dictionary passed by the client, we just change the hrn field
+            record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"])
+            #update the GENI table
+            querystr = generate_querystr('UPDATE', table, record['g_params'])
+            cnx.query(querystr)
+            return "The record '"+long_hrn+"' is successfully updated.\n"
+        except Exception, e:
+            print "Error in 'update():'"+str(e)
+            return "Error in update:"+str(e)
+
+    #record shows the hrn to be deleted
+    #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
+    #we enforce that the deletions of SA/MA are only at leaf
+    def remove(self, record, dbinfo):
+        cnx = dbinfo[0]
+        table = dbinfo[1] 
+        try:
+            #determine the type and PL pointer of the record
+            long_hrn = record['g_params']["hrn"]
+            hrn_suffix = get_leaf(record['g_params']["hrn"])
+            existing_res = check_exists_geni(record, dbinfo)
+            if not existing_res:
+                raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+            type = existing_res['type']
+            pointer = existing_res['pointer']
+            
+            #delete from the PL tables
+            if type == "SA" or type == "MA":
+                #do not allow removal if site is not leaf
+                tree = None
+                if type == 'SA':
+                    tree = self.sr_tree
+                else:
+                    tree = self.cr_tree
+                leaf = tree.is_leaf(long_hrn)
+                if leaf == None:
+                    return "Error in remove.\n"
+                elif leaf == False:
+                    return "Site removal should be at the leaves.\n"
+            
+                #update the interface tree
+                tree.tree_remove(long_hrn)
+                
+                if type == 'SA':
+                    self.save_state('sr')
+                else:
+                    self.save_state('cr')
+                
+                #if the site still exists in the tree, do not remove from pl, else remove
+                if not site_to_auth(pointer):
+                    try:
+                        shell.DeleteSite(pl_auth, pointer)
+                    except:
+                        1==1  #the site may not be deleted because ttl of it expired, so should continue
+            elif type == 'user':
+                shell.DeletePerson(pl_auth, pointer)
+            elif type == "slice":
+                shell.DeleteSlice(pl_auth, pointer)
+            elif type == "node":
+                shell.DeleteNode(pl_auth, pointer)
+                
+            #delete from the GENI table
+            querystr = generate_querystr('DELETE', table, record['g_params'])
+            cnx.query(querystr)
+            return "The record '"+long_hrn+"' is successfully removed.\n"
+        except Exception, e:
+            print "Error in 'delete()'"+str(e)
+            return "Error in delete:"+str(e)
+            
+    #record shows the hrn to be searched
+    #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
+    def lookup(self, record, dbinfo):
+        cnx = dbinfo[0]
+        table = dbinfo[1] 
+        try:
+            #lookup in GENI tables
+            existing_res = check_exists_geni(record, dbinfo)
+            if not existing_res:
+                raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+            type = existing_res['type']
+            pointer = existing_res['pointer']
+            #lookup in the PL tables
+            pl_res = None
+            if type == "SA" and pointer != -1:
+                pl_res = shell.GetSites(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                pl_res = pl_res[0]
+            elif type == "MA" and pointer != -1:
+                pl_res = shell.GetSites(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                pl_res = pl_res[0]
+            elif type == "slice":
+                pl_res = shell.GetSlices(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                pl_res = pl_res[0]
+            elif type == "user":
+                pl_res = shell.GetPersons(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                pl_res = pl_res[0]
+            elif type == "node":
+                pl_res = shell.GetNodes(pl_auth, [pointer])
+                if not pl_res:
+                    self.remove(record,dbinfo)
+                    raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" )
+                pl_res = pl_res[0]
+            return str({'pl':pl_res, 'geni':existing_res})
+        except:
+            return None
+            
+
+    def list(self, record, dbinfo):
+        x=1
+        
+    #grants the credentials existing in database to the caller
+    #peer parameter shows the caller information
+    #record keeps the parameter: credential name
+    #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
+    #keyinfo is the id, id_key, and accounting data for the authority
+    #peerinfo is [peer_hrn, peer_certficate]
+    def getCredential(self, record, dbinfo, keyinfo, peerinfo):
+        cnx = dbinfo[0]
+        table = dbinfo[1] 
+        try:
+            cred_pem = None
+            if record['g_params']['cred_name'].split(':')[0] == 'registry':
+                #lookup in GENI tables
+                geni_res = cnx.query("SELECT * FROM "+table+" WHERE hrn = '"+get_leaf(peerinfo[0])+"' ").dictresult()
+                if geni_res:
+                    geni_res = geni_res[0]
+                else:
+                    raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" )
+                type = geni_res['type']
+                pointer = geni_res['pointer']
+                rights = geni_res['rights']
+                #lookup in the PL tables
+                pl_res = None
+                if type == "SA" and pointer != -1:
+                    pl_res = shell.GetSites(pl_auth, [pointer])
+                    if not pl_res:
+                        self.remove(record,dbinfo)
+                        raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" )
+                elif type == "MA" and pointer != -1:
+                    pl_res = shell.GetSites(pl_auth, [pointer])
+                    if not pl_res:
+                        self.remove(record,dbinfo)
+                        raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" )
+                elif type == "user":
+                    pl_res = shell.GetPersons(pl_auth, [pointer])
+                    if not pl_res:
+                        self.remove(record,dbinfo)
+                        raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" )
+                    pl_res = shell.GetPersons(pl_auth, [pointer])[0]
+                    if rights == '' or rights == None:
+                        if 'admin' in pl_res['roles']:
+                            rights = '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)'+ \
+                                        '(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)'
+                            rights = rights + '#0:reg:slc:'+ROOT_AUTH + '#1:reg:comp:'+ROOT_AUTH
+                        elif 'pi' in pl_res['roles']:
+                            rights = '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)'+\
+                                        '(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)'
+                            rights = rights + '#0:reg:slc:'+obtain_authority(peerinfo[0]) + '#1:reg:comp:'+obtain_authority(peerinfo[0])
+                        elif 'user' in pl_res['roles']:
+                            rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)'
+                            rights = rights + '#0:reg:slc:'+obtain_authority(peerinfo[0])
+                elif type == "node":
+                    pl_res = shell.GetNodes(pl_auth, [pointer])
+                    if not pl_res:
+                        self.remove(record,dbinfo)
+                        raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" )
+                #authcert, authkey, pubkey, cname, rights, time
+                cname = 'Registry credentials'
+                openssl_cert = peerinfo[1]
+                cred_pem = create_cred(keyinfo[0], keyinfo[1], openssl_cert.get_pubkey(), cname, rights)
+            else:
+                cred_name = record['g_params']['cred_name'].split(':')
+                if cred_name[0] == 'slice':
+                    slc_rec = {'g_params':{'hrn':cred_name[1]}, 'p_params':{}}
+                    slc_result = self.lookup(slc_rec, dbinfo)
+                    has_slc = False
+                    deleted = slc_result['p_params']['is_deleted']
+                    expires= time.strptime(slc_result['p_params']['expires'], PL_DATETIME_FORMAT)
+                    expires = datetime.timedelta(seconds=calendar.timegm(expires))
+                    if slc_result and  deleted == 'f':
+##                        if peerinfo[0] in slc_result['geni']['userlist']:
+##                            has_slc = True
+##                        else:
+                        usr_dbinfo = determine_dbinfo(get_authority(peerinfo[0]), self.tree)
+                        if usr_dbinfo:
+                            rec = {'g_params':{'hrn':peerinfo[0]}, 'p_params':{}}
+                            user_pointer = self.lookup(rec, usr_dbinfo)['geni']['pointer']
+                            querystr = "SELECT * FROM person_slice WHERE person_id = "+user_pointer+" AND slice_id = "+slc_result['geni']['pointer']
+                            usr_slc_res = cnx.query(querystr).dictresult()
+                            if usr_slc_res:
+                                has_slc = True
+                        if has_slc:
+                            rights = ''
+                            if slc_result['geni']['rights'] != '' or slc_result['geni']['rights'] != None:
+                                rights = slc_result['geni']['rights']
+                            else:
+                                rights = '(10-0)(11-0)(12-0)(13-0)(14-0)(15-0)(16-0)(17-0)(18-0)(20-0)(21-0)(22-0)(23-0)'
+                                rights = rights + '#0:comp:planetlab.*'
+                            #authcert, authkey, pubkey, cname, rights, time
+                            cname = slc_result['geni']['hrn']
+                            timenow = datetime.timedelta(seconds=time.time())
+                            if expires - timenow > CRED_GRANT_TIME:
+                                openssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM, peerinfo[1])
+                                cred_pem = create_cred(keyinfo[0], keyinfo[1], openssl_cert.get_pubkey(), cname, rights)
+                else:
+                    raise NonexistingCredType("Credential "+cred_name[0]+" does not exist.\n" )
+            if cred_pem == None:
+                return cred_pem
+            else:
+                return crypto.dump_certificate(crypto.FILETYPE_PEM, cred_pem)+keyinfo[3]
+        except: 
+            return None     
+
+
+    #returns the existing acconting information in database to the caller
+    #peer parameter shows the caller certificate, containing the public key
+    #record keeps the parameter: account_name to ask for
+    #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
+    #keyinfo is the id, id_key, and accounting data for the authority
+    #peer_cert is the ssl certificate of the peer
+    def getAccounting(self, record, dbinfo, keyinfo, peer_cert):
+        cnx = dbinfo[0]
+        table = dbinfo[1] 
+        try:
+            acc = None
+            #check if the record exists
+            rec = {'g_params':{'hrn':record['g_params']['account_name']}, 'p_params':{}}
+            res = eval(self.lookup(rec, dbinfo))
+            if not res:
+                raise NonexistingRecord("Record "+record['g_params']["account_name"]+" does not exist.\n" )
+            if res['geni']['pubkey'] == peer_cert.get_pubkey().as_pem(cipher=None):
+                openssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM, peer_cert.as_pem())
+                uuid = 0
+                if not res['pl']:
+                    uuid = res['geni']['uuid']
+                else:
+                    uuid = res['pl']['uuid']
+                acc = create_acc(keyinfo[0], keyinfo[1], openssl_cert.get_pubkey(), record['g_params']['account_name'], uuid)
+            if acc == None:
+                return acc
+            else:
+                return crypto.dump_certificate(crypto.FILETYPE_PEM, acc)+keyinfo[2]
+        except:
+            return None
+        
+    def __init__(self, socket, handler):
+        #initialize trees
+        self.sr_tree_file = SR_FILE
+        self.cr_tree_file = CR_FILE
+        self.sr_tree = None
+        self.cr_tree = None
+        self.construct_hierarchy()
+        set_tree_globals(self.sr_tree, self.cr_tree)
+        #initialize security module
+        self.sec = None
+        self.sec_init()
+        #set function list
+        self.functionList = {"register":self.register, "remove":self.remove, "update":self.update, "lookup":self.lookup, "list":self.list, "getCredential":self.getCredential, "getAccounting":self.getAccounting}
+        SSL.SSLServer.__init__(self, socket, handler, self.sec.ctx)
+    
+    def construct_hierarchy(self):
+        self.sr_tree = InterfaceTree('slice', self.sr_tree_file, (AUTH_HOST, AUTH_PORT)) #slice registry interface tree
+        self.cr_tree = InterfaceTree('component', self.cr_tree_file, (AUTH_HOST, AUTH_PORT)) #component registry interface tree
+    
+    def sec_init(self):
+        key_info = self.sr_tree.my_tree.info.node_data['key_info']
+        id_file = key_info.folder+'/'+key_info.id_file
+        id_key_file = key_info.folder+'/'+key_info.id_key_file
+        acc_file = key_info.folder+'/'+key_info.acc_file
+        cred_file = key_info.folder+'/'+key_info.cred_file
+            
+        self.sec = Sec('server', id_file, id_key_file, acc_file, cred_file) 
+        renew_cert('accounting', key_info.folder, 'slice', self.sr_tree.my_tree.info.name, None, None, (AUTH_HOST, AUTH_PORT), self.sec)
+        renew_cert('credential', key_info.folder, 'slice', self.sr_tree.my_tree.info.name, None, None, (AUTH_HOST, AUTH_PORT), self.sec)
+        
+    #save the state of the interface trees
+    def save_state(self, type='both'):
+        if type == 'sr' or type == 'both' :
+            self.sr_tree.save_tree()
+        if type == 'cr' or type == 'both' :
+            self.cr_tree.save_tree()
+
+class handle_connection(SocketServer.BaseRequestHandler):
+    def handle(self):
+##        pid = os.fork()
+##        if pid:
+##            # parent process closes connnection and returns
+##            self.request.socket.close()
+##            return
+##        else:
+        try:
+            peer = server.sec.auth_protocol(self.request)
+            if not peer:
+                return
+            
+            operation_request = msg_to_params(self.request.read())
+            #determine the database information associated with the hrn of the call
+            hrn_of_call = operation_request["g_params"]["hrn"]
+            opname = operation_request["opname"]
+            target_hrn = ''
+            if opname == "register" or opname == "remove" or opname == "update" or opname == "lookup":
+                target_hrn = obtain_authority(hrn_of_call)
+            elif opname == 'list' or opname == 'getCredential' or opname == 'getAccounting':
+                target_hrn = hrn_of_call 
+            reg_type = ''
+            if opname == "register" or opname == "remove" or opname == "update" or opname == "lookup" or opname == 'list':
+                type = operation_request["g_params"]["type"]
+                if type == 'slice' or type == 'user' or type == 'SA':
+                    reg_type = 'slice'
+                else:
+                    reg_type = 'component'
+            elif opname == 'getCredential':
+                if operation_request["g_params"]["cred_name"].split(':')[1] == 'slc':
+                    reg_type = 'slice'
+                else:
+                    reg_type = 'component'
+            elif opname == 'getAccounting':
+                reg_type = operation_request["g_params"]["registry"]
+            tree = None
+            if reg_type == 'slice':
+                tree = server.sr_tree
+            else:
+                tree = server.cr_tree    
+            dbinfo = determine_dbinfo(target_hrn, tree)
+            keyinfo = None
+            if opname == 'getAccounting':
+                keyinfo = tree.determine_keyinfo(target_hrn, server, 'accounting')
+            elif opname == 'getCredential':
+                keyinfo = tree.determine_keyinfo(target_hrn, server, 'credential')
+            if (dbinfo == None):
+                self.request.write("WRONG INTERFACE")
+                return
+            # check to see if a matching function has been registered
+            if not server.functionList.has_key(operation_request['opname']): 
+                self.request.write("NO FUNC")
+                return
+            #check the authorization of the peer
+            if not server.sec.check_authorization(peer.acc, peer.cred, operation_request):
+                self.request.write("AUTHORIZATION FAIL")
+                return
+        
+            #perform the function call
+            op = server.functionList[operation_request["opname"]]
+            params = {'g_params':operation_request["g_params"], 'p_params':operation_request["p_params"]} 
+            result = None
+            if op == server.getAccounting:
+                result = op(params,dbinfo, keyinfo, peer.cert)
+            elif op == server.getCredential:
+                peerinfo = [peer.acc.get_hrn(), crypto.load_certificate(crypto.FILETYPE_PEM, peer.cert.as_pem())]
+                result = op(params,dbinfo, keyinfo, peerinfo)
+            elif op == server.register or op == server.update or op == server.remove:
+                result = str({'message':op(params,dbinfo)})
+            else:
+                result = op(params,dbinfo)
+                if not result: 
+                    self.request.write(str({'message':'Requested record does not exist.\n'}))
+            self.request.write(result)
+            return
+        except Exception, e:
+            print "There is an error handling the request. "+str(e)
+            return
+
+#child process never executes this function, because it exits in "handle_connection".
+##    def finish(self):
+##        server.save_state()
+    
+server = GENIServer((LISTEN_HOST, LISTEN_PORT), handle_connection)
+def main():
+    server.save_state()
+    server.serve_forever()   
+
+
+if __name__=="__main__":
+    main()
+
diff --git a/server/server.pyc b/server/server.pyc
new file mode 100644 (file)
index 0000000..478d6e7
Binary files /dev/null and b/server/server.pyc differ
diff --git a/server/serverprj.e3p b/server/serverprj.e3p
new file mode 100644 (file)
index 0000000..cc32de4
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Project SYSTEM "Project-3.9.dtd">
+<!-- Project file for project serverprj -->
+<!-- Saved: 2008-03-19, 09:52:05 -->
+<!-- Copyright (C) 2008 ,  -->
+<Project version="3.9">
+  <ProgLanguage mixed="0">Python</ProgLanguage>
+  <UIType>Qt</UIType>
+  <Description></Description>
+  <Version>0.1</Version>
+  <Author></Author>
+  <Email></Email>
+  <Sources>
+    <Source>
+      <Name>den.py</Name>
+    </Source>
+    <Source>
+      <Name>server.py</Name>
+    </Source>
+  </Sources>
+  <Forms>
+  </Forms>
+  <Translations>
+  </Translations>
+  <Interfaces>
+  </Interfaces>
+  <Others>
+  </Others>
+  <Vcs>
+    <VcsType>None</VcsType>
+  </Vcs>
+  <FiletypeAssociations>
+    <FiletypeAssociation pattern="*.ui.h" type="FORMS" />
+    <FiletypeAssociation pattern="*.ptl" type="SOURCES" />
+    <FiletypeAssociation pattern="*.idl" type="INTERFACES" />
+    <FiletypeAssociation pattern="*.ui" type="FORMS" />
+    <FiletypeAssociation pattern="*.py" type="SOURCES" />
+  </FiletypeAssociations>
+</Project>
diff --git a/server/serverprj.e3t b/server/serverprj.e3t
new file mode 100644 (file)
index 0000000..1040c8d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Tasks SYSTEM "Tasks-3.8.dtd">
+<!-- Tasks file for project serverprj -->
+<!-- Saved: 2008-04-10, 03:56:08 -->
+<Tasks version="3.8">
+</Tasks>
diff --git a/server/slice/planetlab/acc_file b/server/slice/planetlab/acc_file
new file mode 100644 (file)
index 0000000..6fdfaca
--- /dev/null
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz
+8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG
+O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL
+m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3
+MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69
+KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n
+fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3
+si0AZRHgngrWmhf85bKAqS210OWHWOM=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/buaa/buaa.cert b/server/slice/planetlab/buaa/buaa.cert
new file mode 100644 (file)
index 0000000..183e8d4
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRidWFhMB4XDTA4
+MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owDzENMAsGA1UEAxMEYnVhYTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4VCO0co+HyKXQnjAUk7yRHCJj+iO0xrr
+zkb6rMlCsj2eiBVYn80jS0JHprxaWLpHjH2TBGm6UcSq2OM/iLdoo2PxE9/uGJvD
+ovwITLDCz9BRzlpeDC/vp/zEct5ipGJ6nin8cYQU6duY1COK+Fs6HP76mt5NquH8
+qIu23uOvh7ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQDOhqPSG26qaWJL0R2RqiQ9
+Qno20ZYpR/6DNDSnuF2zE7pczSq0htD3g1P0m+SVuDF5P4DcBfRHkjYramdIZ3vK
+QMp2DFtfIzvjKa//feaS1QZRIzHTyEpIl5Q+oaWBKRzLOvpIHsWBOkVR0WBhL2/G
+N4ZRDn0PuFeBkWSzKkidgw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/buaa/buaa.pkey b/server/slice/planetlab/buaa/buaa.pkey
new file mode 100644 (file)
index 0000000..801200a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDhUI7Ryj4fIpdCeMBSTvJEcImP6I7TGuvORvqsyUKyPZ6IFVif
+zSNLQkemvFpYukeMfZMEabpRxKrY4z+It2ijY/ET3+4Ym8Oi/AhMsMLP0FHOWl4M
+L++n/MRy3mKkYnqeKfxxhBTp25jUI4r4Wzoc/vqa3k2q4fyoi7be46+HsQIDAQAB
+AoGBANLAXGbFSqgq3dtSQWp758a2kSWnvPifpNO0tsMqGhXI52GYveXzpsC9hXHj
+moqF62jxCLRHBP14/OmUXphOHjN9cBhzA/5EuERhmDEYohiTfvLN5odpZQNHva1G
+mGkXK+0FULT0LnV5VvKJRjw4SXQYYsSvwJaQ1QX59ftcRyoFAkEA85QgIvLQjAf7
+yZmK//gDEWfogIFN4BZAZo91cfB5tOghfusxl8W5yut3Zi+LeLFhbGg4O53v1E0N
+D1xIl/Yf2wJBAOzN//+yhAPUL/cgEC1eepYqRXsCQICqju9kbBO1ggPM8YTi5MnH
+jIq33I2LtjCzJu7KEs+iAKFEdAenCsQ8gmMCQD2Eo7kv6kvzmDwKc3jCgsPaonYS
+MkDuXcWJZfgo7BQsrIkJjbTvU0VUwwsj5u3MnvZqPAmSkgfkje/bNtpqZxECQH26
+ci1krssJod3n3C76dsO79d/1tiGabQGVo/xi5oD2E1Wm0iqAFJKiRCuy/iylMgqe
+p5YuQX9eROy7N/Aw4FkCQEjxNglW5hAp/zJh/7b+6MPYw1UeXuxFPsSMLSGkGhL8
+M9z9jQ7julnpLkbvuHY9HbIYci8d9wdmFsZQjqbEceY=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canarie/canarie.cert b/server/slice/planetlab/canarie/canarie.cert
new file mode 100644 (file)
index 0000000..52c5e23
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdjYW5hcmllMB4X
+DTA4MDMyODAzNDUwMVoXDTEzMDMyNzAzNDUwMVowEjEQMA4GA1UEAxMHY2FuYXJp
+ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvz94T+dv3wgMD91Hg0k1J24N
+lGNQUhSxN/wPCqWJR/+82Y+tZOT/zW7EGLB7HvI5N+zp9+KBQwc6fc+2nseOXfJy
+dhY51H7nyKwMIStMgWIdsSnvV8aQLTyBZyi188BKQSB3FkOKWuYUp44xoczYYixP
+VBljvAsEzxnrKDHJJSMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBgUbzWXTa9X0uw
+pSaZifNi1OyDu2EkCU7/ZfFFbjnDy4bkCuZ8RnPKCHItzZ69z2HNV4ratEYACptm
+MxNMmr1j4w11V2F0YSbS3teVjg9sAFvCjA4gAGry/K4XS2ZfcAQBgdI8JpyiXRRH
+eMNuIv8crZ2dr+MGQTdxu9s9pApRKw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canarie/canarie.pkey b/server/slice/planetlab/canarie/canarie.pkey
new file mode 100644 (file)
index 0000000..92d173b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC/P3hP52/fCAwP3UeDSTUnbg2UY1BSFLE3/A8KpYlH/7zZj61k
+5P/NbsQYsHse8jk37On34oFDBzp9z7aex45d8nJ2FjnUfufIrAwhK0yBYh2xKe9X
+xpAtPIFnKLXzwEpBIHcWQ4pa5hSnjjGhzNhiLE9UGWO8CwTPGesoMcklIwIDAQAB
+AoGAIZmLD66/jtWhGOBtgflIp2bEZ/+SyvjrscRM+DfhCI87pJWDhyhccME3HodS
++jrgJp0u9egLgbUxZ40ornis4DJx1TysLHf2BudaryNi1WvQCzwXBidqnDtcKg8D
+f8BFyX7dj94PBGj4CNpooCicBV686k0sHQcisVsC89ZS+GECQQDzKbqTP0o7X2KS
+0qrwM+x7r5ZSePY3uu9Bise3vnbMfXvmUih3Di0uw7UsCw4wpie2kll6eafilevJ
+7nIexjxbAkEAyVggFgvQB81Cicf4NUV52XUbgXTRvWsETnb4IMHMdyreeGAZV0sT
+b5/hedGs4n7YtAftol+ligu22faZrPC02QJAcJIs8eYm832hIN+uiy0+mbQcH2oo
+cnx0Lx+UfhgK33hoV6RJX3SMrk2kHhOwKg2B7R+rlOulMVy+n+lno5+aaQJAI5Ud
+ZogD5b0Sq0LZzKBQnmuhxskcX/tPsYY456EYP18mHePt1o2AC9QXhu3VPdno9jgI
+eQ+qM7FKSU7ZbcTEUQJBAIA4cJ42sdAWeMNIcyEOeCNCi+e3a2mf/cQ/3yZqmdUK
+0JPjUWGMe7KrwoPtTZ430gCYBG0gGilykSEmyJqRvO4=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canariecalgary/canariecalgary.cert b/server/slice/planetlab/canariecalgary/canariecalgary.cert
new file mode 100644 (file)
index 0000000..1766943
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWNh
+bGdhcnkwHhcNMDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAZMRcwFQYDVQQD
+Ew5jYW5hcmllY2FsZ2FyeTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1Cep
+VkRrenTVTiAkTPcXEIs0nvdxWuREdxqlk4tNGQBbhMXZd2ETaq7lQ4vrHJ3zhpO0
+ZvSDQhtz6hfLlCvk28MooXJR9uuYMsg/3TAT1eK4cXjDey60R6N5ULrjoetUKb6U
+KlTvPGKaawyA16f3HbVCFej5ybest9vRP5opknMCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBRGrPFJbNB27lwyKhxrm4gtNIzA2CV1elhpizdzI2ShTIGbw/BDDcB/VW0
+GAy/gcv1mrjuREF3hKX5zjMLrAygkA/Uflxu8v/CleW7hhL1KbeJSD7zMPHLB+RS
+Q4SmWzRiWsP0odRYSdNO7V6myiqUkSKDnWgW5ChNQNnk0r2mYQ==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canariecalgary/canariecalgary.pkey b/server/slice/planetlab/canariecalgary/canariecalgary.pkey
new file mode 100644 (file)
index 0000000..f4d89b8
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDUJ6lWRGt6dNVOICRM9xcQizSe93Fa5ER3GqWTi00ZAFuExdl3
+YRNqruVDi+scnfOGk7Rm9INCG3PqF8uUK+TbwyihclH265gyyD/dMBPV4rhxeMN7
+LrRHo3lQuuOh61QpvpQqVO88YpprDIDXp/cdtUIV6PnJt6y329E/mimScwIDAQAB
+AoGACybuktdT4wMDN3EfF2ChuL/oizasob+ADda7v27CJb9MEEWqMclLkP8SlCNl
+v4JaC8f14reVssLoq/SGQgqwo/gx9qvfrBNAXHsD72m/igiIL1Qv7ADOKOKX7owu
+B9L4qFsbI/X4x5JF5IYA5uO1vjjCGvdXTkNI5U6UoLNEC6ECQQDwaqChL26fQB26
+ZHYk1LfhErwB8PKHZ9JBikzUfYhM+RoBO7J83xIB3Ww4TEAu1T7twUjNhql8nxIP
+3wjz/urDAkEA4egSqd+VFdeLeivGVWl9kIfFot6043pnzVN5AVSjBMtSCtCMkXzE
+a3qTrkaCLMSwmF2sOpDOJdzuI8k/WfFekQJBAL1MF6ISiNWXVFD43RVu8EGl0Kbu
+ouf+1UyJqqj9Fp8U3GbwLD+qHLGfOKCzWS4G9f+aWsqJJ1ZaoYwhnxkPNKUCQQDd
+74JOc4JjB/RWHSVnihC66jhHDyaFCR9rf+M0ZHMXZax/RW2kDQBnWvA1Wb3Pv5iC
+yBxJGTP9zLQEYlUjxtaRAkEAxyfFtWCzw9+NlrTQL7bUEEhwk0fFPWx/twF5BOPl
+scLpbNpO9m1N0IeSQ6YT8Eom6qB/VO1bi/tmzWg+DxMLjA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canariehalifax/canariehalifax.cert b/server/slice/planetlab/canariehalifax/canariehalifax.cert
new file mode 100644 (file)
index 0000000..50fe2e6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWhh
+bGlmYXgwHhcNMDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAZMRcwFQYDVQQD
+Ew5jYW5hcmllaGFsaWZheDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAw/Pe
+dFh/pNc8k7ewRYdXe2i0aE1PjCKVbz/Lf+23aXbLUo1n+s1uIZ5J6zsN6CQD2LOP
+NPgLeFegoR7MnVDX+F2J/Z589YG6aDR4t963D3EGnMEJ8zMR9jvGG/Mm+DWymQPt
+pt3kmHDB3cC83FuXvqf4Z61aRlLxIy/K0g3z/dsCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBgNlJbh33dZq2esZRuURigaeU0K3dG93tL9NlvR64y+xOFOqw2dzUQ2ZT4
+usVjFY34CxQeOws114KDrMxLTUu/tCexNySfCV4htLe/iaUM6EiaBGiv3YZZjSiX
+5En6oDXU8gjaL3Xxp8PC6bWhCm71hGEhHI1drt4RzAf9uoOrZg==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canariehalifax/canariehalifax.pkey b/server/slice/planetlab/canariehalifax/canariehalifax.pkey
new file mode 100644 (file)
index 0000000..75ec85e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDD8950WH+k1zyTt7BFh1d7aLRoTU+MIpVvP8t/7bdpdstSjWf6
+zW4hnknrOw3oJAPYs480+At4V6ChHsydUNf4XYn9nnz1gbpoNHi33rcPcQacwQnz
+MxH2O8Yb8yb4NbKZA+2m3eSYcMHdwLzcW5e+p/hnrVpGUvEjL8rSDfP92wIDAQAB
+AoGAe5Jh+fsJW/nEIN+ZEO+90nyAMLp4bMYueL7BZYaSwLaCmCfGp9o/FoJM2UQf
+jAKSTmlF6UB3c0fHa3QR0y91UfXm1/XXkgWi3SQZy7P1LQnmgYYrpTRMgdaVQiJ2
+8PtnKDUBfTBAqAHu3BnIPhqsanzVsxgCJBVReLEk1rowhIkCQQD6TnRF5ID7U4J/
+r9/IGB+oiirDx3j1VCb8GhJqrxywOWKxZmZSV885mBlNWhB3bSkj7OhiACDu4eh8
+pjQACMNtAkEAyGjo7Ku1JD/YIPRHbjt5+BKgjZbyCY0JHUZpKSuEd0tKc9e1FZhE
+t8rthT3eCnF5w6VRdYbnnpXEZ8ZiyCuxZwJARImg6tZjvu2h6QamVurMGGEkzpDa
+/Qn61sLo0g964oIEFSE92UQz+Mg9/WEw6xKX1j9zbgos+lwfRapYyL2djQJAPmN6
+b4McxwYhEFE7k3Nsiu+xj6J4AsUnGzf6MNjdSg3kRZ/XPbvDWLwRqTMTVojw8Rkb
+/MxceqABHpVB1zLS7QJBAIWbIo6qzu0NF43XJyA3uAQvP3heljxIJsj/I8egXpv5
+kwdoHvNKAAWuw5f9YmBe3AFThen/4JI1U0sV3Xp++J8=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canariemontreal/canariemontreal.cert b/server/slice/planetlab/canariemontreal/canariemontreal.cert
new file mode 100644 (file)
index 0000000..0759032
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZW1v
+bnRyZWFsMB4XDTA4MDMyODAzNDUwMloXDTEzMDMyNzAzNDUwMlowGjEYMBYGA1UE
+AxMPY2FuYXJpZW1vbnRyZWFsMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx
+lqju+Bh+Z1noC3wW8tjH3lbxtjHJFzq0VGJ2sgcFt9F9u/CZ4I0TjB9WuCoyVRr2
+MoVOcqmYfCHOsy5mJX4FGD9yWjEndKybbg/pqkvBjYtVXWRjp//PO+nYJ8dzLqxr
+nYJufiow15RQVFp4f32xBGxTVvgEHDQ01ccxcXiu1wIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAJCprpSaYJ8WHV6BK+KS6N1IOKNgYinS5goZatUiWajej8ttSzdZNNiT
+A9qJFMR9BMr4p5PMyrymKJN8dhdZZzt0qPLOXO4T/c6MOqZiJ0JiUwarwI6nF8lp
+iE7vyDzxKzQ9AOi7lMWk0WgEOruzy7BnQOh/9aQHKaIrOTFEm72P
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canariemontreal/canariemontreal.pkey b/server/slice/planetlab/canariemontreal/canariemontreal.pkey
new file mode 100644 (file)
index 0000000..a970d3a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCxlqju+Bh+Z1noC3wW8tjH3lbxtjHJFzq0VGJ2sgcFt9F9u/CZ
+4I0TjB9WuCoyVRr2MoVOcqmYfCHOsy5mJX4FGD9yWjEndKybbg/pqkvBjYtVXWRj
+p//PO+nYJ8dzLqxrnYJufiow15RQVFp4f32xBGxTVvgEHDQ01ccxcXiu1wIDAQAB
+AoGBAI7cRUAgYwvktmW+P2/yokN+8HB4Aerj/fytWZxksNN/wU4lj3MqOjM8aMWJ
+V6Cv6AWgNK8b/KTHTycJ68yOYqX8f/UPPw53yrWo/r/smJDE84Nw4ln6cUs++ytP
+xOe3hj2UzLhYT//lNC2OVBZPLkH40q7Ovu1Uqnbz8fX4uQoxAkEA5j2piUHlPEx9
+qeyyubGLRIBfMC9t5BfkRrMezgJv8UKMieKm/A0YEWCz4b08OhJ8DXmeLF0qENw4
+Qsrv2U5aaQJBAMV0+sLrm8kHAtUvIYn0TcoctR4InjPYHmN9ndaZo4QzbZ8yRFM9
+S1OSUZ986FkSdSXGFIz6k975DID+yBhpFz8CQBJnxYDCcsfSOY127YaoqcBtHq7k
+a717J3V7ZjADw90ee8ueAclOZqkk+NxH22OtDJurKDjVrcIxSJIWVPwjJlkCQHPn
+T459CEu+/s2uRayZp9O8eB/yBRL/iA70XGLsekwOeAlbUzndH8sldx38DtLB/9u1
+YrjCGWxnmgxaAZA6l7cCQE8thdtJJgO25ob5Yy4xmaOQvr8RpJF3v83UjDAPrxKb
+WGLB9/ZopLe6TrLH8UKe0s5/SiCsqyzFFBsHGYjuUMM=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canarieottawa/canarieottawa.cert b/server/slice/planetlab/canarieottawa/canarieottawa.cert
new file mode 100644 (file)
index 0000000..b11e1cf
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBnzCCAQgCAQAwDQYJKoZIhvcNAQEEBQAwGDEWMBQGA1UEAxMNY2FuYXJpZW90
+dGF3YTAeFw0wODAzMjgwMzQ1MDJaFw0xMzAzMjcwMzQ1MDJaMBgxFjAUBgNVBAMT
+DWNhbmFyaWVvdHRhd2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKJyrS8w
+AY2C/wn7AkQpMeYGxQ99QsIXPwMl6Wgd/t5kdUMheyhV3J+C4nHTIz05aRXrc+45
+LTmAnGODza4UEDuRewfAMJRNqOOdXygkJTcVm+kDBPgOKCzzvVYP2t/eCDovBTwy
+AtdKVlofCcxb75QPd6Jp1vLEY65st1Z5v+8XAgMBAAEwDQYJKoZIhvcNAQEEBQAD
+gYEAeT/8jTRrBu7SLjPlQ9tRUk04DPRorn3vPH+IwtwKr4oWXmIUO3yATvCBfk5x
+/DrO9yuVDVXxANd3zriA2xsG+/G1bZLu54spee2Rg5YoaUwnURnS0xke6jd3atGl
+0XstmhMrapDfLL3Xie9/3QbqQXlo9VdQPlm7/e2RJpVvXYc=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canarieottawa/canarieottawa.pkey b/server/slice/planetlab/canarieottawa/canarieottawa.pkey
new file mode 100644 (file)
index 0000000..3ec0524
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCicq0vMAGNgv8J+wJEKTHmBsUPfULCFz8DJeloHf7eZHVDIXso
+VdyfguJx0yM9OWkV63PuOS05gJxjg82uFBA7kXsHwDCUTajjnV8oJCU3FZvpAwT4
+Digs871WD9rf3gg6LwU8MgLXSlZaHwnMW++UD3eiadbyxGOubLdWeb/vFwIDAQAB
+AoGASqOmLyg/jmXCCTPrtqW255n0sUk8gzFrImco903Q7R37Qvz/OWk6FZBtux7n
+8hmOzyOAANUEkoclVBQbTQCq8/hbKKYBFD/HKMDLvW+fDpQkX6l6JZMFliE3UYbz
+3Tc+bCHReMG9V2QD/hTZTG1xDdzuKFEs7SXG8Amc66QIngECQQDOMluHFrW6PuR9
+TPt+/YWXv8VVh0O3GDdHv32oE9ukp/ku6aK+hvWOY/QDsiPny0qMGYDlaAellh0o
+F4/CbA+pAkEAya86OUpX5z6q/m87GnBYo8kzER1FOzffk+/PtuX+sEyjNXM+94NJ
+Gh2jG2prL1WRfN9Pf+Zc82BKHz4zh0ZAvwJBAJ8va0/QLX3afgVqACLa0F8F0u+j
+nJhmno7Ke9Tdd80XTJ12C4kxobNK4SBVT7jsTeH48nSoqnagfGPuRLLhP/kCQDBa
+++m6gmLmKpdAUfpfz1DNr5m929h75/YPPE0Mzci1RzhMfl9XsdI6It4y4KoDqRM4
+c1YmBEkx3/OntTEMzf8CQQCiSJ+KjC1kwAMTMU5HsC1lT7kgNImJOOk4xmwLnXLy
+YL5xVgqbdnEd+hOzvaC2vg/rrJ5pqIYbxL+gIpnk+igw
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canarietoronto/canarietoronto.cert b/server/slice/planetlab/canarietoronto/canarietoronto.cert
new file mode 100644 (file)
index 0000000..4711165
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZXRv
+cm9udG8wHhcNMDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAZMRcwFQYDVQQD
+Ew5jYW5hcmlldG9yb250bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArG6o
+uW/kYxKPFe6Np4vVO6x2NX7BkZPni+AzlDRywBps7kpkZhQLmqlDw6uzOZu+VyK7
+rLd5ZRquYmpa9JDWnmCsL2qUaULNusevjqxWDnSy2JfGRaSLa/WRw0pYMiMiNPhf
+KhoG1CFiArPO2pVYRaboxeCnKX01nwRZ2OrJfhUCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQCEEdCPjQ54BsxHOWkpmKFMWTvzD/GaXD41G8sNP/++FrIWiWJK3yCdsl2z
+1mcT3zFJTgUs0EYVfHgMjQq4Pp2Xf7yPz59K4eqWdp2tH6efAKVi9X5QJ++gUwQe
+MPgfPSfZ4Jg4oiFB++o7rBf8ie3QQFRjWn66QJo4sCILRlR3Ww==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canarietoronto/canarietoronto.pkey b/server/slice/planetlab/canarietoronto/canarietoronto.pkey
new file mode 100644 (file)
index 0000000..c2c9326
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCsbqi5b+RjEo8V7o2ni9U7rHY1fsGRk+eL4DOUNHLAGmzuSmRm
+FAuaqUPDq7M5m75XIrust3llGq5ialr0kNaeYKwvapRpQs26x6+OrFYOdLLYl8ZF
+pItr9ZHDSlgyIyI0+F8qGgbUIWICs87alVhFpujF4KcpfTWfBFnY6sl+FQIDAQAB
+AoGAFiiqWho8+VZbOPBNF+jqYB7LmhhN+81MBjerqTIMRQ+gTAcXW97bluaFpNGd
+2JthHIWEJK/3U7zYCCGuypsKWV3gkbEY3J6S8/6wHx67TmnM6QQRFoiejNZ+Fr8y
+E86sYOoIUkNjw8swGb8M5RDrz2lixNAem3OtN/NWwk7lLMECQQDiXBThZqgdxmFA
+AFl1vS8OuNaGKXaggkDlmJl1aChv9oiA6iDhXjaViyjB1/qpK2ovH/A3jVPSeLip
+0xwr84H5AkEAwwLZQQ+rpBly5ETTXwL7kp6M5AO2lfedkKTtXUWLGw96a95xP0jE
++Ng4oD0l5q1dKgZKWz4UlEjq9PrseoUj/QJBAM0J49AYkQgHfmfe6SoBZ/LJ82gr
+fsz9r5NJmxgCdT6V7if37Di4gnELUKvl26QJM3HkWE+5sMfhmkQaelZFiOECQQCb
+Zmy8RQGRblo4/4O1Bgp1x3Ucyry4ey8LsfIZTq7QbKAwz31NYe7dImjVgITwcxx3
+vbWJSkpZ9FWPzVmfNPP9AkEAkbJY46ht9kI4r/C1ZKW8JYBWUO1mcJr0qhBY0dES
+WMZJl7U3VLqZ/C0dZBdga3no0z7SVWhIl591N0NhuW6MHA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert b/server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert
new file mode 100644 (file)
index 0000000..16e0335
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZXdp
+bm5pcGVnMB4XDTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owGjEYMBYGA1UE
+AxMPY2FuYXJpZXdpbm5pcGVnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDr
+Pxqj5/UUVIe0ro/xVJfHzUOb4BlY59sZ+XPhtQ+kZQ7O1XVf5aya1hSCjTEqSCGH
+hr+4wQlYxbCe6dNObjkgb0zhKE+12tLZ7zmUrjw3VDOGvhTWkZFtOdC2lKBCn5AT
+hDLNdGkm1qF4t/Z18snCuvVnOWhAJm9t1VFgOhJ/iQIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAJg3lMom6NBliLg85zM0hhRnMYZoG6aQBe9HiAVyRdKshNbDUtrALqJd
+XfDg+TdKGacWWlh1CM3muqlJP+lKGnJr8m0WvSfENeCdyLFbhP+UGjGwADOcWIdI
+t/IcLZv2RIEKl8AEu+GWv9KEMKU3Y4bn+rOuDcJUJWNJvRrVNZDD
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey b/server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey
new file mode 100644 (file)
index 0000000..b8fb8ea
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDrPxqj5/UUVIe0ro/xVJfHzUOb4BlY59sZ+XPhtQ+kZQ7O1XVf
+5aya1hSCjTEqSCGHhr+4wQlYxbCe6dNObjkgb0zhKE+12tLZ7zmUrjw3VDOGvhTW
+kZFtOdC2lKBCn5AThDLNdGkm1qF4t/Z18snCuvVnOWhAJm9t1VFgOhJ/iQIDAQAB
+AoGAKj+pDyrHbyFHRgHbxCHHKJEKxWHX64moZd/RGgYkiwfDQw4/CDv9Zclw4Ylt
+/QP7UZW3tPymKxVGBSRFWN6ez4ZHJM4NIHAjxbpjuyUw0zBTM7Ed3CdtQQeOXdrP
+bzL4EW9ABLmvQrKKyXW5+WxN8EPkg+68R+kjddsmx0bKpmkCQQD3k4M0MGKOwOjU
+ppl0ueRiu6GFdZziRgMbgn4lWgG1x0V8GaD/M8xqpG7e9ETfzGZdIU/IOemVmkHR
+sbj6/isLAkEA80Ax3JcSR6wF795VjhMVzNUdzuz5+N3e2xxLdlZC8u93yP25tc6N
+q2xbI4l/G53db5pp72ojHgx7m0u7Tzg8OwJBAIsctzenDGo8WVfL+SROo9caqSrN
+qIa4Ylyd2XXxek6DFzchS4a6u10c4jOjO+Qo/UfNRQA0El1+nQdP/qoCEXsCQQDd
+rq1CSXNhWgZ3GfqCZiZB7B8kS5dsFFda/ChRij+tQku6InEynTFC/pb4hgAO3QnH
+AcR1ahbi9aFYX+YuRiOtAkEA32LWwPtnVx0EJ9jHvzpCw8PEyU7oAZkFGLLbs6iT
+4cY3l9NhAvrKVmFyJrlhkBzZA3LAko/NL1UJsGpd00K/dQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/canterbury/canterbury.cert b/server/slice/planetlab/canterbury/canterbury.cert
new file mode 100644 (file)
index 0000000..b89f230
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2FudGVyYnVy
+eTAeFw0wODAzMjgwMzQ1MDFaFw0xMzAzMjcwMzQ1MDFaMBUxEzARBgNVBAMTCmNh
+bnRlcmJ1cnkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO8qVycIcPftfVfY
+8GUAQAOhsi+06ggwRmn37OzcEQ21+NjDiKMR9xPjRC1wxoSlPPTM4+Cia3V1c7MV
+jEXc4UcGzMVnP7LrXG+vjTPOppOI8vTSkj07gKK+gGrti/jNpyY3sXn0hTuK/QU8
+G6fEsZyu9OyLTvD5749YDdpgC5dRAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAVL+m
+DcbGwGm9IBg8CxTD8H5m4pPhyNLwVIpaBRRFhxdse3rq742LT/2s6JfdZHKirJZ8
+DfxDJ4yFY6fH9E7y4HOl0eMrAkCd9zSfZqtRWHqXwMrBcVDLGmaWji4lnnSNj+/S
+ncxfnBE3P/Zh/1AhqD7fKK9VONfpArlesKgBVVg=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/canterbury/canterbury.pkey b/server/slice/planetlab/canterbury/canterbury.pkey
new file mode 100644 (file)
index 0000000..4772f72
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDvKlcnCHD37X1X2PBlAEADobIvtOoIMEZp9+zs3BENtfjYw4ij
+EfcT40QtcMaEpTz0zOPgomt1dXOzFYxF3OFHBszFZz+y61xvr40zzqaTiPL00pI9
+O4CivoBq7Yv4zacmN7F59IU7iv0FPBunxLGcrvTsi07w+e+PWA3aYAuXUQIDAQAB
+AoGALvlZ9Mirp4Z1v/NUBAJwkEYKAWS/MqyIp/eSCVOP5el/3tNI2v6EUNuqYGJu
+G095EXvMpipAgOl4uAvbaT1g4Xk5Rd3XdEIBI6W3RfyMbWpUaraIlD305l2aRDQ3
+gHXuGkIf1XzT7RUgmPziNthEIBF47VbDXQBaMLp20aKBViECQQD3vjlk93i29Ifi
+cLmh7+eOzFr658snq/z6Svo113KvxK2qNe3TVl2ANfZOm8vLmyxLbXzLiiqaKCj0
+jgo/gkSfAkEA9yLuMb+sacIBcJz14eLdKlK7Wtyq6DaR/NZrLdi08ddUbmpfK1Zy
+Tpo6adschTM6+i6FPAQGGfKnsDJoC8suDwJAKCwVXHTwgyJFwocq4sJnFvW2LwdV
+Hvq5i9CKoB5uf2fyDS6vgNx5TufxJ7AFrN9doGGBofOmkta+RWGe8ctq2wJAY5NZ
+cgYOzBX1SpCTqc4k2ra28qdS3XmPXNZwHOriDUd7p3mImwebyvvtaVV1ql2397Hi
+0Qm2A6J32lCVB5t4FQJBALEBq6o6T5+bYeiDQRyOyhj8165bgOtlj4z0zlpX1lef
+8Kr+YOdQ5gEo0MYb5GLb7SwpwE79KnZxJXTZLBaLJ5c=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cernetbuaa/cernetbuaa.cert b/server/slice/planetlab/cernetbuaa/cernetbuaa.cert
new file mode 100644 (file)
index 0000000..6476b0f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0YnVh
+YTAeFw0wODAzMjgwMzQ1MDNaFw0xMzAzMjcwMzQ1MDNaMBUxEzARBgNVBAMTCmNl
+cm5ldGJ1YWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANJjdorIoXe6W0KI
+4nKK06455u6cFfovDVpfct3xcxqCVs4rZVa2pZ3dVjYcxFfuw2Alf9a6l7i/c9ev
+HQ60NoB3KNQ0KTRfKdJYFW/eeQ+GbS6JG0UQz7jdmnWbwir0SrKpjx/+gShj24a7
+CAzmf8wUfsDuKVlFU05pns5dd2MPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEASx+n
+VELi295pDGO88OkW78XhRlLDZyeMaLFvuJRsA6enkjQRGRLGghsD4RLrizL484/o
+LoNN+pSOW3tdhcro+mY7jJKJhPBQNue37SDQzhRZkpxmTe4RQU7fsbFFnqGPeglZ
+pxaoFBA/V5b2y2xj7M8RwT018I+v4hcroSkpanU=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/cernetbuaa/cernetbuaa.pkey b/server/slice/planetlab/cernetbuaa/cernetbuaa.pkey
new file mode 100644 (file)
index 0000000..d4f87cf
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDSY3aKyKF3ultCiOJyitOuOebunBX6Lw1aX3Ld8XMaglbOK2VW
+tqWd3VY2HMRX7sNgJX/Wupe4v3PXrx0OtDaAdyjUNCk0XynSWBVv3nkPhm0uiRtF
+EM+43Zp1m8Iq9EqyqY8f/oEoY9uGuwgM5n/MFH7A7ilZRVNOaZ7OXXdjDwIDAQAB
+AoGAEOooPK42tR6Jecbxlc3tiONk2qg36B5iT3K/FHL2ExqJihfZFOioVhHWfZFA
+g+VRVeiN56Cm1BaoZJ3Skz0P6IzBmGyvjwGoz22WZh36DXB9JsJ8fXtZJMPOT2+G
+rONzgebtbnSTwhkmORvCLnNWYyc7+UP7UcoU66xM8KHrSNECQQD5jZnUwThYJ51j
+erm+7eBQsNWUU7p4pM3U2CiPOhIepOPHYH391C+DuEkBl23XNEIkWacS31H3h3WO
+Ac401oFnAkEA19LZrDi5pfFLbndzyPR/sNL5/O4F6ehZhXnMf4eK3COUjyHiedbF
+nymX5qjTQ7oxrPG4o1aTKee/VuUbCJ1AGQJAdP/EbZEhX4NDMQ6q4y8Xif0+RUp0
+FHf/4Jhve6cYM7HO8Pz2VPkURccyw0JBxzHDCNPXluuIvGqP3MJP8UnYZQJAUjeK
+oKcDYgnn2G889oLd2filLwtlyVOwNr7Nfo+eAHq1b0lTQ2Lj6dwod8A8qwJVRjLX
+SbIDYeVc6LdicwekkQJAfJCapdJmp1lrzm56Jp4zwNNEg15N6NX3O/Izf8SmkD0d
+RhRV6PyCehD9b7VdUwvoOrv7ToPcBryzBEosP7L5dQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cernetpku/cernetpku.cert b/server/slice/planetlab/cernetpku/cernetpku.cert
new file mode 100644 (file)
index 0000000..3714b25
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0cGt1
+MB4XDTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owFDESMBAGA1UEAxMJY2Vy
+bmV0cGt1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEhdci06ujwMqKSxSW
+UxAUOoe0E/dXA17+1q7BrSX3rORAjpki35f3rfkiLrBKtLCWeTHDwEyuyvx37OZI
+FtTSES1akZPGgFd4obraTaVn0DBHjBaXJAESeb+8AAdmixrnD8Qe0wifV+unh2sM
+zjR85xpeY9KSC7OI0zXEgQiABwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABCLzSj7
+yljbFHVBmTWRM+Bydeekpr6w9iXPBkh5ncS95dxigPhy9aJ69FtLzC087S6MUeC9
+eJYOQIXaUGGpRV9rBAkRxvlmsxk68U2b+TKEOBv5LTjKug+S8EvhbLnGuXq4eXbh
+tor9kBs/l7GNxalnjbWyXV/ndSeLi1GuymbP
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/cernetpku/cernetpku.pkey b/server/slice/planetlab/cernetpku/cernetpku.pkey
new file mode 100644 (file)
index 0000000..16f5a17
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDEhdci06ujwMqKSxSWUxAUOoe0E/dXA17+1q7BrSX3rORAjpki
+35f3rfkiLrBKtLCWeTHDwEyuyvx37OZIFtTSES1akZPGgFd4obraTaVn0DBHjBaX
+JAESeb+8AAdmixrnD8Qe0wifV+unh2sMzjR85xpeY9KSC7OI0zXEgQiABwIDAQAB
+AoGBAK/aZAySBIDfv13ImX96jGTNiykkxKtkJNk9GdvNKLBcUVNDRtzh34aOcuSX
+isEOtwWvJUzZAsVWdlyJ6/aOF5jgZsJMRIaJpglNEFMczWR0bTHSdLvqsCy6bfJU
+uv9dRkDnbMq7DHYVVCZFG6iGX5CgaX5guhJFTz3qhuUj99FhAkEA6fcbeT65TQsa
+/OaSQgsW7WUYGXX2yUuXzYbpJWOMhctmAxlBOf0paFDZXIKIAfTi4/bBQgnxDub6
+ylwAtREBcwJBANcH/0c9B7DKRCv494JI9VQTSmjWhN9uiVioc0tP3MdH7xDVUnMR
+6prAI6uJha3z5NEIjdf5DatV5CnU3BKp0h0CQQCgib9fRYvOcqVVDT0kdgmIYUrV
+BZ2N6AHEtCK8Vf9xOuzHiYe5K55DBt7u3F5IwWkCNSnMj5fJuvIw8kpF8+JDAkA3
+1lHJs+VdWQieyoWrBTr/XAsEckAKrO9pYESgF9rivKEto9dHHi3nhWE91/Yol56h
+UTFUFc4g4arf2fBTwFlZAkAmEzkMzLCHfT7ARAkYENw8XjWoyVWsYPcQHDjf7ce4
+qympaYbES7zJAhzmkMqDiSyP+bWgKg5+3O0XYlECoOW8
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cernetsdu/cernetsdu.cert b/server/slice/planetlab/cernetsdu/cernetsdu.cert
new file mode 100644 (file)
index 0000000..3d5f055
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0c2R1
+MB4XDTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owFDESMBAGA1UEAxMJY2Vy
+bmV0c2R1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC44c5N04HClzJ2lk/R
+FU6cD6HwEulR2q9q4KyKLDii6oWCkk5iQVG69HD1VkOjlGj/M16S+8X6mQsaZ4fx
+VW0BoNhG04AQqqP8yN6+WZD+odVUQ4UZ49w4C0UHhGx7fiTdwjke/cNkTujISZP/
+zo88XUOhs/5CxSqB16eBL1pS4wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGCsddSo
+VY+R+AqPytBtPXS+haM9peokGiou+CZ27otr1h6fCMMhBcoUDql4DGA72P88xHBS
+gDiQ477rHKFydLejuK8IXQ8/5xhfyWcHnKlOmANVUF+UHEvEnUJA6PzPVi2eGths
+2OfU1Vz53irEhEYV71zN88irx8BYajrHxbpb
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/cernetsdu/cernetsdu.pkey b/server/slice/planetlab/cernetsdu/cernetsdu.pkey
new file mode 100644 (file)
index 0000000..d537c83
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC44c5N04HClzJ2lk/RFU6cD6HwEulR2q9q4KyKLDii6oWCkk5i
+QVG69HD1VkOjlGj/M16S+8X6mQsaZ4fxVW0BoNhG04AQqqP8yN6+WZD+odVUQ4UZ
+49w4C0UHhGx7fiTdwjke/cNkTujISZP/zo88XUOhs/5CxSqB16eBL1pS4wIDAQAB
+AoGAJCPn2yjMRciekbXiVmHO4wzfP/nCaEDSZ5cRw1TPoXEsthB5iBVyr5QW/K5n
+PHPHbpORGjRjSBBgrkGsvk1PqFvC6MZTgJ2AB26aXuvsW83chnO5G7u/1OVwqbV4
+PB0+ND1oWNsCoXCumLPu8TyNTmp9RZRa9JwoTtZsPAW9w6kCQQDdDhaFJRfnoGY3
+c6Fwrx7X9gZVQ5XGHIYV3ZgziXwLcNP18PKXK1MEfP5yck6XdqeM4HL+sup3BA7l
+JfqhDK+1AkEA1hvT67bvEe7tYXvJwVnGzj3v05uMsRImwLfXvlqQO+yKQV6b4Lgm
+pWbx5TTkcPm1XsBXTP5FmV4AWeVKfOwnNwJBAKg9q6gkRiBU9NbpW4qezdPB/Kny
+KVDBrs9/evJmhhFTCw9ZFdk18RYuZ54FH4mplfXjccIlu8tfPFLs5+ag+C0CQQCA
+VXm2xZWSmDWswrfxrtAc+r7vhULVN94Gkas9K6dcY7GS8RRZo8d2SLgg/I0YsnPl
+8T/ipF4vSUrIl0kIi7wNAkEAjZ6fASbCmUab5/R245nh+xaWTdNDeEbPlhxo6BrX
+5KcMly0BhpzPXCa4JIti59NvBffPRkqpBv4aDxPcGZYJpQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cernetxjtu/cernetxjtu.cert b/server/slice/planetlab/cernetxjtu/cernetxjtu.cert
new file mode 100644 (file)
index 0000000..3270525
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0eGp0
+dTAeFw0wODAzMjgwMzQ1MDNaFw0xMzAzMjcwMzQ1MDNaMBUxEzARBgNVBAMTCmNl
+cm5ldHhqdHUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOExNZlI90LahaxC
+XdPwAxFWHBJhNHcTPM0i5pxk+Z7+6wMT4FKVUmL84WbN3IBPMgv9UkTCBtlKR+4K
+N5lpFyHN/TCcQu+Nl8+s1rT0P3cZxdlEMRGmDjQhr91f0rhWv0YQ1OEGjgu/PJLO
+MWoAmNlkzlmyDUMWkR9VKmQkB/iNAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAdFkA
+Z1i4TrfgAi55OXZGIuhDZIh6epp1T/ev6sgLc9WxpMxi+U5qtTsbabmPMnBlU1i/
+2sZcBVM8CatKbsPerHhCmqhDoEKDo4iX00uBKpzajcY5LJ/7fWBqP+gMAA9Ibz6o
+T4mSELr8TcRdFeBiw1ZIb1K8f/E9sHUv41N0WHg=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/cernetxjtu/cernetxjtu.pkey b/server/slice/planetlab/cernetxjtu/cernetxjtu.pkey
new file mode 100644 (file)
index 0000000..38d8b06
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDhMTWZSPdC2oWsQl3T8AMRVhwSYTR3EzzNIuacZPme/usDE+BS
+lVJi/OFmzdyATzIL/VJEwgbZSkfuCjeZaRchzf0wnELvjZfPrNa09D93GcXZRDER
+pg40Ia/dX9K4Vr9GENThBo4LvzySzjFqAJjZZM5Zsg1DFpEfVSpkJAf4jQIDAQAB
+AoGAW5iphYThVicOUifYhFlO1iFhX7R8I6cGhyYYCSslQZ/Mtb7C8rRcA3l6sVcw
+xlvwLmJGsUL+iCmnolIzlUnipxEEK3bf1gsWETuSUGtRVLAJuoTacCBdXTrj1Xx0
+v5aYGi3bYI8wPWX14HFb4nrP3tsBYwIenEa00x+LDqmdtn0CQQD1aRKQ5Wn7RjDL
+pIqwJQEqpnjGkT+qn+8WrBtRit1CPqyq+So+ZEIBpSGS/gKvYQm3254PF7W6F3nM
+gm8S/b+3AkEA6ujL1pJ0+jyulbeJ0ImXlMTeTOMVTfBrgxsIg4SKLVSPUIr0TlNn
+ZiY0K4jMniEBk5LNu/hmj2RRpNS6C/TB2wJAW/AJLI9FrQUWsrPp4SN71GaZSIqR
+t3JDN9MySNIlIfQo68R8tvMIZ2VdtpvClcFcyqxUAoN3aUfyMVOMGSlG8QJBAK77
+biuNuRlV7m6T41K1y3YEF9uKJCqEdnGYx4TAS/VsUb0bZNSbiCAtQRtUsabwyy3U
+YvAsHqmdfrubwmJ5lZUCQBfsf/SWv4UoRFszrctfe2dl0HMeWtGLxngo5Y8XmZh4
+7XeGEHo2+wYnOvDNGeQI4zY7fTnE16ezRBw/wJTLQbs=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cernetxmu/cernetxmu.cert b/server/slice/planetlab/cernetxmu/cernetxmu.cert
new file mode 100644 (file)
index 0000000..6a34eed
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0eG11
+MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJY2Vy
+bmV0eG11MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD8psPzBMWvcOOosJo
+aOvXTeJDv3MbkAzzlnk639mC+1nulhSotMhR4cKxvo0LxnN7J+bKS5uVEdYPcsgc
+c7oSEas0q1VXdAwtwNv/nE4YA2vvsLAxOjJ1RrBbyTz19PqVKJ2oyWTBLa4EiPU/
+T+nrph/FT60hRwuof2p1DL5SSwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFAx1Ppt
+Kw0wvgs2KwdZgtYU1tY6XFk5+rspMMUD2ztFMIwGFwMj/doPW7yW3zt9nKYEbL2F
+/TM/cEIYQRLpTXNHwM6jmSMjte2VHMaRIwG5Wm2yINsKc8vqatsrcPsyvSR2nL3Z
+axhpVU84FBvVvrca1ZrwC3aE+a9I3Cw+DqYb
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/cernetxmu/cernetxmu.pkey b/server/slice/planetlab/cernetxmu/cernetxmu.pkey
new file mode 100644 (file)
index 0000000..6d2fa06
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDD8psPzBMWvcOOosJoaOvXTeJDv3MbkAzzlnk639mC+1nulhSo
+tMhR4cKxvo0LxnN7J+bKS5uVEdYPcsgcc7oSEas0q1VXdAwtwNv/nE4YA2vvsLAx
+OjJ1RrBbyTz19PqVKJ2oyWTBLa4EiPU/T+nrph/FT60hRwuof2p1DL5SSwIDAQAB
+AoGBAKT/25bXz5MsxEmNwIrPHxk0Gj3WLwWcrWtI4Fi1OqHTKg2AD3Fome5pXtrx
+jC/IMmIYXX0nYaGLXWewzdU3lgw7xgG2xGS8D65rSuzwtPhV4EoHCq0qayZUULKd
+h+O2VyQH99ksnUtABtwVy22xiVwuJgCcssclXXK0CZkj9AWhAkEA5c/kS2QOdDTZ
+MnPve///yaUZP1tBYKOVT21uz9wYvzQHgzYNLWCSIKEuulXCbifAjoGSzR6p12fT
+Imvc/Hy26QJBANpG0TX4OimGI4c/RI5ndH93z38uHjSbrxWFRCygSkJe62Rsla3H
+71gUGV+p7XjEVzNnY+t7JEw+I91JDS2dZxMCQQCJOGT8jzYCNTwrYAZzaBx3btlw
+dzDGX2bcEl/ERYuRP6PsuO2NVshqK1QXdvWtiJb1gHEDgXewYxIyz20YZe9hAkB2
+e3ZYq1M28v8aDPezrOiJwIk7adcvi0pwjhRBfQiSGl//9QkSebKrxs03JlAm+7yx
+xG9yhTdgw2JIXbzvg79NAkEAhgM4QHRh37xGpSkJkKNqLm+FbmdMAqhFdHivrqY+
+Rkqcn/m5Kbvtk6tQEl+blHSsWUsBqUXS3SMvhw/ANnDSqw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cernetzju/cernetzju.cert b/server/slice/planetlab/cernetzju/cernetzju.cert
new file mode 100644 (file)
index 0000000..346db90
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0emp1
+MB4XDTA4MDMyODAzNDUwNFoXDTEzMDMyNzAzNDUwNFowFDESMBAGA1UEAxMJY2Vy
+bmV0emp1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFUVtL3Es5IfPJRRMc
+D5fwwACWSahzbos9IPQCdRigrvoK94RSEllAKJModSetdgGR+4mLoVoNu9m75Aqn
+HYz+2znyJ/wIAz6QlL9kw0CbvD7uZlgYpkR1vacMQAYHLlnFg9DU8XkuMbdolvb/
+LbkN5z0sXRxGHiklTncXZ3NsMwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMNRJVJX
+7e6kVq3VXIYLfsK7Fq37Dkz+e7QHII4lNL95My+6/+pFpFDJEM1usEU31Q5Urin9
+P3sAEURmDTC1zoQ0TJUXzBrodeXIs8RsKxwCD+gane1LVJaCrO6N0LRmXUhqv3Cd
+xm4eQkW/5Dp5u6xCGejVQ4LxgJi9afWWitdE
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/cernetzju/cernetzju.pkey b/server/slice/planetlab/cernetzju/cernetzju.pkey
new file mode 100644 (file)
index 0000000..546a58b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDFUVtL3Es5IfPJRRMcD5fwwACWSahzbos9IPQCdRigrvoK94RS
+EllAKJModSetdgGR+4mLoVoNu9m75AqnHYz+2znyJ/wIAz6QlL9kw0CbvD7uZlgY
+pkR1vacMQAYHLlnFg9DU8XkuMbdolvb/LbkN5z0sXRxGHiklTncXZ3NsMwIDAQAB
+AoGAGKGYSPb9+OrRGN3jjcwwhmAhcqFNQuOYxA+6BhiB84UEN5xAS1J5C7ZE8Hb3
+dgLWHVgOCn0g1bgObRMBdW0N7YYVWeRUCxipZLNFRp6nslXthV30K1wCi8YiAqOW
+KibAqF08i+HfkSuIe2wG0odEiNcD0VmQf/UGYlg2678y5aECQQD6bm3FhAqPrZS6
+Y+VrI4/8VLp6QALprXgILoKZJSvYwTh/rjw9BXuR3JR/Mm0dCK/pi6r9uRg8Othc
+oYTzjeeDAkEAybSUsqQRNLd2LxjRTNajnyAUFVn54ZR2kZXtlHQYCyB6zrjzcEir
+fJl9/hnK64MVkGasuzv0OenQcj+XNJKZkQJBAJe1yj47rYI4776ywcrT8mg0k/t3
+R8x0UCD0vB02jYd0FlwTG18EMUW90R/1VnCeUKM0/1NRjEMAiw4isz4wmy0CQEas
+ikmJqSmyequH45Yrwsr3n3HXw/FhZqYeRU912hLT/5O9RDb8j3GqCnZlLS+WD5E4
+GJ/GIw3DujC9zUozb7ECQQCKvqRHYuSvufmldVB5db8TPL0os+aRhZ++zE9xbvlq
+sUfw5aLJe1FN9kuD9z2UYNg8mRJ8L5pkPOeYo7gz0xjw
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/cred_file b/server/slice/planetlab/cred_file
new file mode 100644 (file)
index 0000000..c856f36
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2
+JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6
+R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX
+h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB
+/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt
+MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l
+dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U
+PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp
+26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG
+teVEYDdXpA==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/equinixsi/equinixsi.cert b/server/slice/planetlab/equinixsi/equinixsi.cert
new file mode 100644 (file)
index 0000000..993ca31
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJZXF1aW5peHNp
+MB4XDTA4MDMyODAzNDUwMloXDTEzMDMyNzAzNDUwMlowFDESMBAGA1UEAxMJZXF1
+aW5peHNpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5noA3K38D7wLVSLdi
+8iXGec4zu8gyqBJ9JzI/2+YMMO4hUFAfRrRH7h/+C8PgSne+O8SwcsRQRGQ3tZl/
+69+VS/xZBz86oyBh1EohoJOLSYxZPDsbasBFtynNGAWCh8AZTy7HwqpUz0d1NzVR
+WGRXz6z/GEryWz5s4SSfzkEKLwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAB/zQzz4
+5dzGskD++FopMQQXPDXhPW99XL6MzBn8lUy0+qRI3RJ408JAXW2wX9ZY/FHq+oEZ
+kk8SXAbRO8XUaqc8FYbPlAZK4V84gHhX02D/bSV9Ovl21Ht6DHPQxOB/91AGJD0v
+Yi8t9GJO5c+QgOHazsHTor8wJFcXddbcKZu+
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/equinixsi/equinixsi.pkey b/server/slice/planetlab/equinixsi/equinixsi.pkey
new file mode 100644 (file)
index 0000000..2e5bb5f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC5noA3K38D7wLVSLdi8iXGec4zu8gyqBJ9JzI/2+YMMO4hUFAf
+RrRH7h/+C8PgSne+O8SwcsRQRGQ3tZl/69+VS/xZBz86oyBh1EohoJOLSYxZPDsb
+asBFtynNGAWCh8AZTy7HwqpUz0d1NzVRWGRXz6z/GEryWz5s4SSfzkEKLwIDAQAB
+AoGAcwqjWI4iuKNn1ByvXCnL88kGXdXibFLyspKaeC2n1KJ21DrcjaXakkIpneBY
+1CgTMtoEO3/F4CGjI0vwCPJ9rRGYMEWKUtFYKT2ylktoDWx565v8dD5dcgcUy+Q7
+p5Pg/Fy0z9Q+5+kBe97XzJQAhmfSIIhD4CWjmQSPk/9THgECQQDoe9pjeZijCsWH
+uAyvXdAxbhhtDOHVth1680qyyD7A/eKoslSdw/w19tsC0UAq1QyaMo33x1fX4jpN
+u1xY9nKBAkEAzGUXeubrx+v/NqBACiQQznuBmdJ4ScNZ29cx54rqDiBCfRVFvvgX
+4lQJvxapc1xUBI3QXqsBRjBAY+K5Yx7ErwJAUosvBiS1SiZX7hEuB9HSSsqhR47M
+XFnV68KYIhQxG8rJAEaY/o8IbIyiRETReKO+Xr1WZMRVbyQ2uUStzDRsgQJAH5lx
+a9rPkPT3W+aif+7belC11KYpWp4NAmPen0FmthBetx/WzJNmfeMoLpa+U8tuYdXa
+5QfjBornKYofxyc2mQJAQbPkxWIwdL/D0t6W0AZ8/axatRZsBctyqbuwIwt77DE2
+gAmx4g3MwZfaKjDeuc38C9gI7qry4Cn6JyKZhPRoDA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/aston/aston.cert b/server/slice/planetlab/eu/aston/aston.cert
new file mode 100644 (file)
index 0000000..49b5be8
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVhc3RvbjAeFw0w
+ODAzMjgwMzQ0NTlaFw0xMzAzMjcwMzQ0NTlaMBAxDjAMBgNVBAMTBWFzdG9uMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDL1aMOqDQJSqqDNr6Bgy/Nv3rxgk1o
+FSIS0TtlTAD2/p1QP0r1+/tZL5pyVWgnWr7trhtq3tBbG2DEcOWfewfmA7dseeMR
+ZruBMis+NACyjl5HvWKOdoEk+J3KQNUQHZg2hlqoqEra55jzhEjOoQ6EEdB9TD/c
+5ho8GmiaW4isTQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAA1jnFA5DJGUW1w1R32u
+71vHaZ4QHnfCNO/iz9/0mbQj4HmxzZ0UasVsTZvQDrr9Hb90VyiPQfdxaXc2eyIK
+d5SYw6MaJVr39O2tfnCJDD6kJbTmpw/0SJRT5jyCf3s9nSkaTBiZBPoHuhnztKbb
+xtkHKzUBZZfpqItfz5UiD7pX
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/aston/aston.pkey b/server/slice/planetlab/eu/aston/aston.pkey
new file mode 100644 (file)
index 0000000..c755dd6
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDL1aMOqDQJSqqDNr6Bgy/Nv3rxgk1oFSIS0TtlTAD2/p1QP0r1
++/tZL5pyVWgnWr7trhtq3tBbG2DEcOWfewfmA7dseeMRZruBMis+NACyjl5HvWKO
+doEk+J3KQNUQHZg2hlqoqEra55jzhEjOoQ6EEdB9TD/c5ho8GmiaW4isTQIDAQAB
+AoGBAMVAC/bXFuQW+ULY6ynxhYUZUyP68GVUbhC/oTa5ggWDB0DsvuGj4uu/gTo7
+I/tReYoP/kBBNmez6sSua8cVC+HzrKZ1iqUU0mfPZ1DFYPQKx/7Aw2hiswdlY7Lb
+4mLVgUjnaMaxQ1/0+i/TcARDF32oXLE2CsbdSCQneMQKZ8UBAkEA8t9+txw4l9oD
+tg7H5K9eB6VMi0iE09FjLLYoH5yet55bNSXYbnA9zty4uEJkGw+C74Z0iI2zVG1X
+GcMyPe1wUQJBANbZ/KOPupm6q/69DYRyw3PdD+RpuzRL5lFbnIM1HzrpzCtN2Qy/
+uaAxvUj3SchC+jlSDXfXLqenj3oceL/tGT0CQFdu3+Y5kaIRCS78STfpbfdgqZqm
+w7KheYt6FB21O2os5vbOJgkz/PxAd3tV40XeoqtqAv+5y2pEZovOuoKSvNECQHCY
+Eo8A3rB7pHE+UBwuLIHGwvJX+pRghlXypaYZK8GrDqVPCcVloHj0OBdKCO+bMhji
+CE7ahQe1hzpeO2WRcp0CQE5n0HV8AtxczrgCEkTYjLR4DGBFBYr8kH66Ug2D/jkU
+U7p1X2dGe9mEU8Mld79ZtITFYjMb68u+KGsIRxkHYrs=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/bamberg/bamberg.cert b/server/slice/planetlab/eu/bamberg/bamberg.cert
new file mode 100644 (file)
index 0000000..ed3beec
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdiYW1iZXJnMB4X
+DTA4MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowEjEQMA4GA1UEAxMHYmFtYmVy
+ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApTBVBhxkCS1GK9sHrS4ACcd/
+9DAmruOZIyiDRdQ64fXXEeWWKCmgyNVj0YEkxxYj7Gk3Pa9mpIIL/a6QJXQQp1lv
+9cbJxwRzimJxdOjojqQaXInWGNVyy0oPVCbllC33RPeuyDndpJFmt8wqADRgsTIu
+kZAa3P8zKMtcEjZGuhsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBcfbxWo0sFATos
+LYDKyoLQm/XgJM/FuxyMPPUody7N+wax13kp4rt9Xv8VpIbzaUBO3KHYv5+08t2O
+SwY+gOe8pFCIKikP8T/799saKAIsMX6fMKEhvG4DKcA6LmDF8s2kHKwIIkNRNmez
+AP5vH7OVXnmtp8FivsLZabmwpiS2JA==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/bamberg/bamberg.pkey b/server/slice/planetlab/eu/bamberg/bamberg.pkey
new file mode 100644 (file)
index 0000000..6f04ae9
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQClMFUGHGQJLUYr2wetLgAJx3/0MCau45kjKINF1Drh9dcR5ZYo
+KaDI1WPRgSTHFiPsaTc9r2akggv9rpAldBCnWW/1xsnHBHOKYnF06OiOpBpcidYY
+1XLLSg9UJuWULfdE967IOd2kkWa3zCoANGCxMi6RkBrc/zMoy1wSNka6GwIDAQAB
+AoGAHxF2DE4uqmMvfXQWf4XVUAGLmTutKtt3o9ssxWdjI7h/GMibczZRHTS1L2Qg
+rKkHXKF1WE6y+WHUK4Q3bDPmJaYaK6dKRbKP9IVTaMetTFspvw/yMP9ACcj0osfa
+9UrLRedtq0DI0fD/lWMbBbsaS49f/jFqyxiiW3GdIIPzjLECQQDQdjAsxMmQB4bD
+6L70iLyAEDGSND6Dp8mIMCfyGNLSNON9mthSzSthSAGOPjHI4XiIpvJEv77DtLO0
+V/akGBkNAkEAytvpNgne/WwTIMH9YLRPFAD7tAYF/N4NKOC3DuwiZZeU+D0BFwoa
+XCkMAQSBErqwtuoTp7dnxFUKy1JSS8YFxwJBAKOiYqaBwobgoZTe+iYRv4X3MDJH
++Fp4NuZEhtavTa3b/kb2aaB1lPvD/hSeFY5ODsOV6M62hRQyoG2MLvsYP3ECQE8o
+Mr9QaMAQvQIKUHm8wiK3I4Ci3RFIAHCUBzp+cAmedZXMEDHSUmjl53Y6MLeDO9OU
+UWkfixE0cgrWq6A/vB8CQGOesDzuFtvxugDzlgdC4eZK4+Z5CfHcoIvMbidwsn6F
+F+1Vl3IO1mBmmtNBWrSWZRhHigAm8oeiNxVLmJyrfTg=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/basel/basel.cert b/server/slice/planetlab/eu/basel/basel.cert
new file mode 100644 (file)
index 0000000..be7da6e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwViYXNlbDAeFw0w
+ODAzMjgwMzQ0NThaFw0xMzAzMjcwMzQ0NThaMBAxDjAMBgNVBAMTBWJhc2VsMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCltyyxGv6cYHb6LQIwPZ0oZjUhjava
+sIPNa8b1PiS+UcBXeOihLyyjSlevwD9EmQvTXhIXQ7Y5IkvzBNy6lBtGlqraUFUA
+fzzIcO/F2p0agcyt3b/7bGiYo5g2TEZFuloS8jH55SRYj1Obh0Kn7lCQbz0AqeJa
+QJSDsgv26b8oJwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFVAEyH6H5deeZz+LMpH
+fmlB0o3hKzHA/8qN92Gq8NP8ZRmHWMUSPJcOrHoe7K0szUtlXuzzSa4+yay2NfGX
+NPROycVS4lz3SCz++w6m8vqseQXlWDXjxfV5ktkqHhwqXeMD0qcGaiuEvKY8++fI
+GYAlj9rmziZalMPY3Vq9zd/7
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/basel/basel.pkey b/server/slice/planetlab/eu/basel/basel.pkey
new file mode 100644 (file)
index 0000000..6f588e9
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCltyyxGv6cYHb6LQIwPZ0oZjUhjavasIPNa8b1PiS+UcBXeOih
+LyyjSlevwD9EmQvTXhIXQ7Y5IkvzBNy6lBtGlqraUFUAfzzIcO/F2p0agcyt3b/7
+bGiYo5g2TEZFuloS8jH55SRYj1Obh0Kn7lCQbz0AqeJaQJSDsgv26b8oJwIDAQAB
+AoGASJz8I1rNyF3opHUGaXcGH0ax71Lxw/DmwCOC2cFyPkb6PhoH7WELcT3JMITP
+9FIPwX2N9c3A0kY5+3Hc+pCdZlsh1ZjKoNfhTltkBAoMpvLXFxnn6eS0tsv2RSbN
+g3guxNqNWmnJ1dXGR2PHRfGDGicFVZnb5kiBTizmdVONlwECQQDZ7UhitoTpyYpL
+aYL4PE/XP2ocpetzMDM8Tbq2PoTWKtneGLd8JkxwHFmH6SrShfJSgGfHNM2ec/15
+mkLKkQCBAkEAwqrA9wEN9Of6IYuUVhMDEHsUVnKYSi1WaXu8G/BuNhkx2I5sjpeD
+5I6Q1B3qQG4UD1oBXNR4GXPOobzOkj3UpwJADWCie+TGXe+QPLbaYlCZehYbdmy8
++lIwIviGiJ9n2hnBS//qa4WSVaN3337xsQCl8miNdk4IfTyTh75vcS3bgQJBAJO1
+fTXvVue+Hc3WW3f0dR7MRWJTEbs3K5peiR2qEfZ6p5fqefS4gxuqEbrh+B1raU08
+vkvx7C9j8CZJXXUZ9YECQFy9MWpJY6jWssfPB9wwwfL1PfxIjdmNRKqWlRlQJ4R/
+3tVMxSBY9tfi6SQXm9tSkN7e10MG6QS5/mXkFdrTzkA=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/budapest/budapest.cert b/server/slice/planetlab/eu/budapest/budapest.cert
new file mode 100644 (file)
index 0000000..dcb72ff
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhidWRhcGVzdDAe
+Fw0wODAzMjgwMzQ0NTlaFw0xMzAzMjcwMzQ0NTlaMBMxETAPBgNVBAMTCGJ1ZGFw
+ZXN0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZhnw8g1GWddbLgd1gCDKx
+ouM1Poa5eoU/OiEwpLSOu5Qafz9QxutyGSsDINdTUBDfM/RQBigcg2moI+CEIEca
+0qkyhnqG5/jnOmNXEQdyGY4cJ14SplGFVU4Qs+iIEri0bwCt5VwHjfVyx7xKaEsp
+zmN82bjRfFA1zs38L3+eOwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGAzf/1U4yne
+APWE1uFt8mqHOE4tt2pLOAGmu3V3umABOSB/teJtvdi6u3s4tIV5O0tSugFnSDu4
+KuVuj33IiUTS9LkCQ/OM41RDq9wzaYWje0FVEHzeQSStRjR+1EqwAe7GY/r7kdrn
+0XIR6C4O/UEyUsIkZPWYmpjtDUPGZiC7
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/budapest/budapest.pkey b/server/slice/planetlab/eu/budapest/budapest.pkey
new file mode 100644 (file)
index 0000000..99cb405
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDZhnw8g1GWddbLgd1gCDKxouM1Poa5eoU/OiEwpLSOu5Qafz9Q
+xutyGSsDINdTUBDfM/RQBigcg2moI+CEIEca0qkyhnqG5/jnOmNXEQdyGY4cJ14S
+plGFVU4Qs+iIEri0bwCt5VwHjfVyx7xKaEspzmN82bjRfFA1zs38L3+eOwIDAQAB
+AoGAfml/bZNLKMtWhnHz+skI3N6yd9DcbpHbOcFIZIJzQ7eS/EsSupi/X1FtA6Zk
+PFB9XZlN0+ugB+H+1u3ynhY7+zItQHu8NOUzFRmYG26MamSdn0KGCqkTA1pzpWvq
+wfMrTJnIY5TTux42IhWC2bdU55jHSwzeSRPYgfqj5hf37JECQQDyZG7hosYLNtNc
+VCBvWI/Fl7+uF8r+s2VK6mfWEbi1VW0KY10PZuGUPrLIaMUxSCUBms2dYeCdrNNG
+f4eBXnIPAkEA5bysdgrLDmrsRcCrxZBxNZ7tVlqH62Mo/1UMM6VvDspE7PZ9Ow44
+a4Qe5U6ouxL/HZXbUKgm6SPj46QLSTKNFQJBALUEuiX5uKsBS8Fk9kARRHWNCVIL
+ZMbn1JqpCdi9rVKGtIMQh5wL+iUK2dt/GtzeAvz6zdleEi/OtI2uidTcYpMCQFPg
+5zbSCgFhmJJ/Hjgr3KmvNQhqVWXj9nwDGUliBYJo53F9LYv6TS80NfOTHJfw/6RV
+qpVwT4Sfzfy3UEeRZWECQQDk0EkI0n/l/ihH9sINw7x/Hje09mTrQCKLnS2K5v/H
+tK+5YDp3jC1V4BgUvlsSSvk+s1J/Smh8/9Gg5878RJoe
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/cesnet/cesnet.cert b/server/slice/planetlab/eu/cesnet/cesnet.cert
new file mode 100644 (file)
index 0000000..63d6523
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZjZXNuZXQwHhcN
+MDgwMzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjARMQ8wDQYDVQQDEwZjZXNuZXQw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALHFa7oH+fRbvs0uBoV6+ibpNBD8
+tRm+04HNDXFynczRAnJreziC6DzMX8Hijh3amF6mKWLA0uxc71waCwhdXlKAmdN2
+s8Bmgt17tDJPXQ/ZoBgigLkQ0ZrHjHtZk6VK1sejRXO5ctJ+oldb9ShE7o1QjNRX
+b68+uLqMhwKFFXpzAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAYnSsRh8ZUU//dhYK
+Xrz5gXGVodC7GJahCp1aUxQi1GEHpTwMdVIHCZ1Q7rvZmtlmL9ZJVU0zYY3cp4/R
+yhZJ93uTuGyzTtYJvFYpOD2PMqPZNhsqw77IlZoWiOtClVLGE8pMz2BraDlt6k0m
+drXnMyCeW0qkkdL1tC0GXz53QZU=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/cesnet/cesnet.pkey b/server/slice/planetlab/eu/cesnet/cesnet.pkey
new file mode 100644 (file)
index 0000000..f4ed802
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCxxWu6B/n0W77NLgaFevom6TQQ/LUZvtOBzQ1xcp3M0QJya3s4
+gug8zF/B4o4d2phepiliwNLsXO9cGgsIXV5SgJnTdrPAZoLde7QyT10P2aAYIoC5
+ENGax4x7WZOlStbHo0VzuXLSfqJXW/UoRO6NUIzUV2+vPri6jIcChRV6cwIDAQAB
+AoGAU7KnrcbjoHExvFjXKTFlZbyWjwjsG1sFKi/pDGjycuRVSpngQhMgVL/Etfx8
+/QFWi/mfsqcmp7J539tDJoUPSu+6C5mtcC09Ui3v2Dl8iJNvfAjKqh33NC64uGLw
+iSbtpAZuE+WpfSCybw2km+L16WeomlDysEvGf5+HVShuuoECQQDfToeHRmkawN6j
+Bl8beGMwYFGwUbeW2bs971N7gxg9kB/sx3lAiAjAZhJwbkuk8/SU8kctR0EpllTE
+XD+0LuLJAkEAy8w7PqrravlJ9BL+EYn999WERSCUJ7irHseCTaE1tayDTojpHjUJ
+Pmet2tY7JLWqV38wfs7h+3VE4JnUih11WwJAUQQrtY99GIC7BYiNPukpi2aWnJK5
+OdiazziiICCKzeMZQg2I1znDexJNRE8v0JPVu6g+3JWKda0d6fPSBOwxyQJBAKr3
+SyA4fMRCG3NBV5jZHZCCs7LWMNPdzNhGYJ7FReyBq6n/myk3LukGS0gRfo4+RIeg
+cMuAvP2ZlE2jXzT6n48CQQDW/VZAQCrOnJuSYg+uvSo/OeqQJ03nGDX/VlYLVUqf
+sKiNjDhtvr3ogQZbRrx588LyiBcEqWPwTgdR4rG3OT3j
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/enst/enst.cert b/server/slice/planetlab/eu/enst/enst.cert
new file mode 100644 (file)
index 0000000..1c28ef5
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRlbnN0MB4XDTA4
+MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowDzENMAsGA1UEAxMEZW5zdDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2kSO7US0A8vJIuGy287MD81Uez/FvlqR
+wiVnQG6/1TnCxCbbegodLsl5sPV6bOwB6ynNCThtZFLqFrsouqCOmbC92l2K85Ts
+1YeHJ+Xuh/qhhfaxq1Zv8FX/1bPvW+XE6TPqZte/vWp3+EvUhcdoiC3cBiYQVGqu
+qQZi3f9KF38CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCFKXXBXHNDSPm7CFy61Z/7
+hCHo2Y+sFQIu+Fzll2of+PYDpEJZ/6h6XRheLaqo0QHORNHjXRrNN01GpQdyNnkJ
+/yiCEcZc/aKv3LXGkcRCHsS5x65sLFywEHu/AWwTK3SZ9rYUB4Oa4kR1UwPaDbC2
+QEPbl+StEXXTWrvVYIvgAA==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/enst/enst.pkey b/server/slice/planetlab/eu/enst/enst.pkey
new file mode 100644 (file)
index 0000000..1a1e829
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDaRI7tRLQDy8ki4bLbzswPzVR7P8W+WpHCJWdAbr/VOcLEJtt6
+Ch0uyXmw9Xps7AHrKc0JOG1kUuoWuyi6oI6ZsL3aXYrzlOzVh4cn5e6H+qGF9rGr
+Vm/wVf/Vs+9b5cTpM+pm17+9anf4S9SFx2iILdwGJhBUaq6pBmLd/0oXfwIDAQAB
+AoGAbVNNq7Zv3D7kfh5CcirAt2GHYTxuFYxT2cTWVMWkPG70CT/VSulp+Jdd5q7u
+JUSJKXsEggvLbybAraYNHn1xLsiEtjgXgJKgsIdEWnK+cTcFsWtsBcvrwV8lESt1
+AjmXS5XPIzhyzYVatWMJgMO0sVw4QOpZCRF3Zmxfj28xfJECQQD/H1YfYVanQhQG
+T8z9wOnyhr/pJx5xTqAoFGQZk3YlCQoWQxAUU6jPO1sGw6g7+yk3IhvolJ8A5KDr
+D1CUosrjAkEA2wTEb3fUKGGgVFXtn4DEb8X7lw1bL8Rjs0Yj4Ie+hU/BwL/9iK6m
+gNAg8ejEHIi0cirA1wo6ALS1/P1U3sTXtQJABI73x/nCRZzNpMs6O3J9+6JivXTA
+e3/PJsgufbJ/0uuVbY5nNCXGh2VlG/rU/7VeKCkI3KADM03ifjC43N8HxwJBANUg
+eH74Hm4FQl2PGKLkTUNvZ3oAN0HuXA6yLGtr7MwRZrvImFEPk1s6LTT6iwwxQ1bt
+n6Yif3r8XzQG2TXGWxkCQQDTSE06QxWFSLwkhZpZSfpIaHwEF5ZXemvON8M9CGoR
+dRbYSVa4GZ0jS0Uh7CZ3ZajxQBK/NwYrEX//1xCQJ2Tk
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/ethzcs/ethzcs.cert b/server/slice/planetlab/eu/ethzcs/ethzcs.cert
new file mode 100644 (file)
index 0000000..34251be
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZldGh6Y3MwHhcN
+MDgwMzI4MDM0NDU4WhcNMTMwMzI3MDM0NDU4WjARMQ8wDQYDVQQDEwZldGh6Y3Mw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANhxGONDXLa26igiP+c9fFe9V9J5
+96SxoEZFJ/MSVq0Jrxm3TBqw/0ftQnVJtyqQyFZ70dwhXzNQ2M5S51V7wKwhvRSd
+UxuaA6bEkWYUJLC4oQI2GnKUhTZcwYJGMXWSE9Lt9g/NVoeGm16bvv8Y17klKEXK
+cf+V1fmekZ4SUN9LAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAdtCzm7FDQHnURZSE
+Qo9HwUGXUSS9TU6RYO8zgXPH4Yl8qY765OnUdqFbDSp8EJJqsdoKYRMDkmmP34Jw
+uzpRfZdgBt7yTtw/IbwpoBoF2iMVHBg5nXdY0nKM3/I/GytrwQKMZNjgk+GcwVM4
+dDN/Gn+4BNY5wpYYDXrZfZRKDd8=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/ethzcs/ethzcs.pkey b/server/slice/planetlab/eu/ethzcs/ethzcs.pkey
new file mode 100644 (file)
index 0000000..f2a254b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDYcRjjQ1y2tuooIj/nPXxXvVfSefeksaBGRSfzElatCa8Zt0wa
+sP9H7UJ1SbcqkMhWe9HcIV8zUNjOUudVe8CsIb0UnVMbmgOmxJFmFCSwuKECNhpy
+lIU2XMGCRjF1khPS7fYPzVaHhptem77/GNe5JShFynH/ldX5npGeElDfSwIDAQAB
+AoGBALr8ag3cYjqPp5doj2CMo+GA+GAjcqhbtCVBFZRPIYZ4OUe0LRFaHBDdjm6Z
+cp5ZWlosuk68nexNSiBlSul08iusWX/uwl/VO5ohY3hzevRKR2XI4quZ7rLwx8kD
+M/I8cWPkmvhWNruGknkSKWxc4HCqRN+aHSfHrZmM18wopHbxAkEA8VWgM5CUi1he
++nxMKlZkwGRvij21zJmVNqZvtNMYdQSGFQ95vmVU1D5+0ym+JQ1Ett6AdwJd0CKw
+rfwzqhnNNQJBAOWYOQISHOS/fEn2T3Gk8/KvgovZBw7TYY92kjcYsIHBhPD/H/EM
+zsPX0PDlDm1oRsBIn3ea2WRx7NffNieACn8CQQCnCb4dkrfODveGZlwNfci0hY/S
+Xk4j9DWcIuz0epvV+rCXiSOZzec+FJeRrrXGTX2/GRhPxxqJwkkJ06Mq3Dr1AkBQ
+vJTfe4sZjZShVbJeHkmCv+FCWFE5D3AxSNrl8RKwrmKXdL/AvmY/TDc3XvUR2Cd5
+GpCpOJTV05Ib32xlu4r1AkArGG6VGcUrQORv4ehtiyngr4Vp6/VM+fWHMQuW8IYo
+p5dg9aiNGFtFyf9otxur29kf+R3XCeWfpNCd2iFN3K4e
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/eu.cert b/server/slice/planetlab/eu/eu.cert
new file mode 100644 (file)
index 0000000..5860751
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJldTAeFw0wODAz
+MjgwMzQ0NTdaFw0xMzAzMjcwMzQ0NTdaMA0xCzAJBgNVBAMTAmV1MIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQCkl7+FqFVS9Fl88LfbkkyhQwpzu5iqGLMq9YCy
+5N158ZkMiE++uEnp8O5XfoZjLH6PL7X27ncRiyRGmqa06eFXhXY6VXSzYlpU/DKF
+xaHJ67gzClzJ8ew4/w+3moZe9UW2TCKcqqVdEuH8Spf2AmhwcCozE3MhuEbHWiuY
+GDc7tQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACG0tupEZ1GIHU8kzzuyhsRsu52E
+qAWqIv0jXbclpLbZkl0/4ET+/hB5qxzDAawnj8WrVt4MvlTYuaB9xJVbeqONItFZ
+dX433tDuGF7Cqn7/9NbaDgoIc6TebaD6i+SQFet30FjLbatIXsGtD+NmEh94nDOf
+92VdZ3HftCD4jVJS
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/eu.pkey b/server/slice/planetlab/eu/eu.pkey
new file mode 100644 (file)
index 0000000..76abc0f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCkl7+FqFVS9Fl88LfbkkyhQwpzu5iqGLMq9YCy5N158ZkMiE++
+uEnp8O5XfoZjLH6PL7X27ncRiyRGmqa06eFXhXY6VXSzYlpU/DKFxaHJ67gzClzJ
+8ew4/w+3moZe9UW2TCKcqqVdEuH8Spf2AmhwcCozE3MhuEbHWiuYGDc7tQIDAQAB
+AoGAGRJggzycGrHL++MzLog/kgUDT5PQ8oAmsrGI9Dc2oX+y35zYAOZTpAYmWD+W
+uv6pHKiY4E985bg7Q2IFaOODhrHOTfY+HRMFJxy4WrWVupFlF0QaVjkZoN+goLyr
+vtUAWPzm2Zq0YB8iX3AwYhsty3kn00+6dy7EH7jwqLZvHdUCQQDadNSoIMGV4FUM
+kOUjjxBKGL855oYAemswnEACE791p8aP/5p/DaI7L+3tomIN0/23/kK6qfBODBt0
+Vhg1UygvAkEAwOEku8NouvTHI4WjqR0ofETWLZwU0xyq+dO/4IuPtWMPHcQdPFam
+n1F3t97TE1Q+1/zYYaoQYUwfStWV3Ed9WwJAXJfccw6/PsmBAvx/Qt0mqGFo3B/L
+eHRq7oWr07WPF01vqiVK1MNwmemszWZgbUAHcG9C1V+mTU5wbJT5WdDPXQJACoS8
+shin/3oV2hQRpslWSeCfJYGbiR/JGzK3BhHWVnf+fQsS5RV8pLeWpcpbDHTNsI2z
+ZzAVEJlMI5KeR5MGfQJATA+Xx3ti+EQcrKCJvRAJavajhoVjMYguuU7gNdiA977D
+V/RXDBN3odnqUu6gGs19JRKu3eh8CvzwWOOjaxSrcg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/eurecom/eurecom.cert b/server/slice/planetlab/eu/eurecom/eurecom.cert
new file mode 100644 (file)
index 0000000..6ef2871
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdldXJlY29tMB4X
+DTA4MDMyODAzNDQ1N1oXDTEzMDMyNzAzNDQ1N1owEjEQMA4GA1UEAxMHZXVyZWNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvS+nKJCU1LHS6y/9J5Y7ELnS
+bdZCuY/mXmWPqCmjWPVq4VQcUWsCPQsaErgc9Q7hARSel/BEiodTU7FJykabl5rx
+i+8ERVy/YAvLltKKmaBCWenKw+YgoHOw7JYf3M1MAfXqd270Xr5J1pw4E9OWCwn+
+nbAq4dcH6SqAqYyd75ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQBAnkqFqpkx49w1
+HqwF70IHkPyuLAmzINEq+UvDVst32eHG3UvUI8E9oM8OqiRgjv9KlKknUmNV5xOD
+rLCV7Wkcxqmu8Z6SRF8rg8HeyFOYJLPs145+hpMaDXD3UbyLCKwinZt9YznnRMWJ
+APIkOoZnHvHow74qipxzk6e9d+hYXA==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/eurecom/eurecom.pkey b/server/slice/planetlab/eu/eurecom/eurecom.pkey
new file mode 100644 (file)
index 0000000..9b99c47
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC9L6cokJTUsdLrL/0nljsQudJt1kK5j+ZeZY+oKaNY9WrhVBxR
+awI9CxoSuBz1DuEBFJ6X8ESKh1NTsUnKRpuXmvGL7wRFXL9gC8uW0oqZoEJZ6crD
+5iCgc7Dslh/czUwB9ep3bvRevknWnDgT05YLCf6dsCrh1wfpKoCpjJ3vkQIDAQAB
+AoGAK68+PQqtozNwjagmH6b7+o+9/GjWPXzx5+gxtNXwhxEcXe2LIG3CNZBDtADZ
+huipohM9z73GReqbnh64+EE3mfNv1cUESPRT/riGywgO0U+ULkfS45ixCrnFLKqn
+jxg7PztAqlhmdSfsCC53MOMMgJBt6OpPYz4J54auX/HthzECQQDquh3v6tuH1GTK
+fJEihmMCGa01nq7FvP8Ub94X0nM1hTX+OztnqCmfJYTsuJ3PAeLteeH0qy/N5wDB
+ckxbgnvNAkEAzlTyHkJEhSPFGJTg7h6/1tJIl0I8e1bePc/CHhOYdKKFArLyL6W0
+RyE0ZPTspoP1Ad3g3FzfINfeeGsKNd6m1QJBAK71/+6fLve2F1LfOwdzCEW+gd9f
+4oI9+Bxxrigvk/Sm0LIp0IPZUvzvaH9StT5h95ZvrT9EgqOFtoh6+/OR9VkCQAXz
+STA6NQOp7msxD/OOC3ZEhjdmf5wG+03JCg4X/pOOhEt5oaZiHvrWKE6pCZIbyBsP
+rQZt3zlxQEc0vwyiqSkCQFlm2bZUIMR0IhJqMDWIA9wvFoo4psmzjFx6X5X3c+nW
+oMlRPur+ZrASAIevrmKQmhTbHxQuiAnuUVnREC9NZRE=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/fokus/fokus.cert b/server/slice/planetlab/eu/fokus/fokus.cert
new file mode 100644 (file)
index 0000000..f21f6a3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVmb2t1czAeFw0w
+ODAzMjgwMzQ1MDBaFw0xMzAzMjcwMzQ1MDBaMBAxDjAMBgNVBAMTBWZva3VzMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4zWe1voNh2K26hwAdcWCngahsrHVe
++86lgpJsEpCoUg2tH7KvvLCCT3RCa1OnK9r3X9JpaqhFpC/PYdNXHG3V9WAHr05W
+75aII9ibpb5a0NO8/xW7C9ynixYBCm5KHTbHtnCn1nRp6U30GGjcJ/t0+4usAZC6
+ZWa4ieDyNwMJmwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAAZWK4Wi+/9NWt/U2jyi
+HVOwUPKU33KRAy5JA+FyBTYTIzuoXDLqc2apE7uHB8PrI+LEzK1uKGSG0hoebxjw
+5q5jDSmWzsyS/qclkJNWXQK59IMYPFyUE4yZS17JMHfg6DfzcDzC2XyuHRslAOmv
+Izl83ITgwAz2VWOSJ0NT65i9
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/fokus/fokus.pkey b/server/slice/planetlab/eu/fokus/fokus.pkey
new file mode 100644 (file)
index 0000000..0db3379
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC4zWe1voNh2K26hwAdcWCngahsrHVe+86lgpJsEpCoUg2tH7Kv
+vLCCT3RCa1OnK9r3X9JpaqhFpC/PYdNXHG3V9WAHr05W75aII9ibpb5a0NO8/xW7
+C9ynixYBCm5KHTbHtnCn1nRp6U30GGjcJ/t0+4usAZC6ZWa4ieDyNwMJmwIDAQAB
+AoGAF8PyjmDNrIuc69vom+C0uVXnPvJ+tZRUYtyDz/ojOEI1GAp3hDoTyO5G2TPM
+MjdllWJxQLVCppISw+ykrRMu3JkYf9V61oswQdwvQ3DQHjrAV14BsD7kUx4jwxHA
+n0urO3WCo7/rlJTN7ltcuV3L4fqgo+VaQl9x2eg4iC73v6ECQQDec61DE7K2ngIM
+Dx3yRkdSmorVXVbU0nzl0p2GvLg4cYZMfcJzkV2G9OIwSNBmZ5DXXAvfzjC5EAFP
+JTcPFj7/AkEA1KwsUHIqiitHYrfiiyT/2C05gM20/qWA9QBIvQ0HArRFpM/8wgqk
+XmI1OVCfqpOIk2Z3fYxbc5dvHfw8NDLRZQJAdMwzyqZLDUtFM+O0C4MO67Ys8v5B
+GxkxbtH418e6yhgBNaRKNre6baOiJ0vz7/CswgaYTXhLaL+YkF+v2wIJLQJAKT+H
+jMbH12qTeuMdbk1rzdrfp0q+ixFAlMRMV1Z6gJzEUTYB2QTFYoT7u7UWcrgQqj4a
+eOBLMH0zkQZGCv28PQJAYnZaTY4TNIFnwU20zxDriA7GvpI5Ebh4tCvlGEtbesj+
+HEf3t46eNq22jaDD+6M7XQfFk8y6IE/pymE9Mui/sQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/hawh/hawh.cert b/server/slice/planetlab/eu/hawh/hawh.cert
new file mode 100644 (file)
index 0000000..fb1f2bb
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRoYXdoMB4XDTA4
+MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowDzENMAsGA1UEAxMEaGF3aDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsCqNvTgOpRBblD2oT5ZruAMBsp7Pf6I0
+Z7VpW1D70RUURwkruMzxc/8ys44LvaTn3llCp5h/YX/OkS9WaKOKX3nB55sXk/lO
+I2vHUnV0Ve59eOc6vrpyIr914Pyzk+S6mQsUnG5AAG7Rn82YWRdMw7pLnHl1U9Ti
+uLoK6fW6NGECAwEAATANBgkqhkiG9w0BAQQFAAOBgQAfMNCHGI8csV+1T/Olou5o
+bfNvssgQDSHapulR3R5/jNFHGMj5LS/GANNhhSJU5bX1ukZqvunYzm/gKPytDiVC
+FXyoWFla5I33+uCebxh+2El3ZtMPeC3imOFBSk1xmtrZ9wI8FC7eoc+MirxBhXEg
+dSKddBndUlpshaYqmuArJw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/hawh/hawh.pkey b/server/slice/planetlab/eu/hawh/hawh.pkey
new file mode 100644 (file)
index 0000000..f0c6cf9
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCwKo29OA6lEFuUPahPlmu4AwGyns9/ojRntWlbUPvRFRRHCSu4
+zPFz/zKzjgu9pOfeWUKnmH9hf86RL1Zoo4pfecHnmxeT+U4ja8dSdXRV7n145zq+
+unIiv3Xg/LOT5LqZCxScbkAAbtGfzZhZF0zDukuceXVT1OK4ugrp9bo0YQIDAQAB
+AoGAbh77oSeUh/w0svLj7nRB+7HtcsGxRcCYb6fIJyv1bZp2pX0HFqsN2AvTnsgR
+cMfPpX84mllKbyEceEcWBa0NRl3o0xLoZeiI8bzevp50fPeJmNNLL3XIVPDvwHV2
+bqGTbNI5iywgSOO6vnEs81tqMTcOmguKAa779NG/UYGfOAECQQDXPsCnGDkCbthi
+uI81PgTYSG+Kb/zUTyzzTzzbQz7EZVOWpKVCHP5CFlaNtQ2qMw1ndrDV5cTqQovP
+askCyFhBAkEA0YWW34d+5wHSsDhHDVOSVOlkF2XGtfozOQjEzhD0WVqvyFiCw1up
+RWX+Tn7TxPNjytf2itvBoGv/g3xrtJHUIQJBAILOFN+2vbZ3zDI6PHU7qlARvQ8h
+PUF8mDGIftA0zmkltqV+ixthaTaaQqE9XP+IpOWyYIasan1+UV6MY3m4bMECQGbs
+mvrfksVkLd2HJ9AyF5ZCuHqN8pl+eR8xYYxg48fpNqTSZhoVswd2XQCuaNU9Qu5o
+PKJl5a4qn3A19KrVYEECQAkyU45/68JCDgpIIcv7YbIFhbOGxM4GS8e9Mirqc0te
+38LN/dt3H4HU5e3MehNM93dQF9HhTGNxWM2yDPozo5Q=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/inria/inria.cert b/server/slice/planetlab/eu/inria/inria.cert
new file mode 100644 (file)
index 0000000..12b598b
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpbnJpYTAeFw0w
+ODAzMjgwMzQ0NThaFw0xMzAzMjcwMzQ0NThaMBAxDjAMBgNVBAMTBWlucmlhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChiGOPza8ZLsueB2NCNyOTZcQZ3dT2
+mw9SKp7q65Jdk29IRyqLuyUOBQqKhosT0HpFpeSjziKevp0qqBdIpWxtFM7fHs4g
+zeaZ7Ms0IwKW28ybr7LsWry6PUlOQ/AUMledSwuokHuyYN3SNr5CdNgcC2SMdcMG
++B8qLy7B8Z8teQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABBN0recPeVOv7shRlDS
+pGb9Fjs0nd/zf9OFkXKuHQbZUBk78xaS6JACZMoNPHRjmBtAKOzY/Ojs25w2cRdv
+tPhJNBK40B7aexvP7y+IVac3bGlXCdqaXCunYha4CFOimN367hcb9TIkhBEXTFdT
+b63jWjEPtMRIcBjD5QSzihaR
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/inria/inria.pkey b/server/slice/planetlab/eu/inria/inria.pkey
new file mode 100644 (file)
index 0000000..8a66a71
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQChiGOPza8ZLsueB2NCNyOTZcQZ3dT2mw9SKp7q65Jdk29IRyqL
+uyUOBQqKhosT0HpFpeSjziKevp0qqBdIpWxtFM7fHs4gzeaZ7Ms0IwKW28ybr7Ls
+Wry6PUlOQ/AUMledSwuokHuyYN3SNr5CdNgcC2SMdcMG+B8qLy7B8Z8teQIDAQAB
+AoGAM92qMjtV1J0s7gHrQhCYULSlYbTTs5cYNUbQHhgjt/4mBiwrohAmFrlRqCcJ
+MwSGriRVJK+EeDo2FsNALqhHBsCSkVrxt6yUexC6PmOBs9SQW5MwbDnB93Xw3HOj
+o2ztXW7t0Rd8mEASw8TvL53jBGS3SovHvz5atKabStSnvoECQQDXJxawnr1Q0vnI
+Mr0M31/XqusEaanKpkE0s+fmtbpgTfu6Pwi8lx657aGfLmjL6GGd6bRyMvE1mrfj
+y0sRedbxAkEAwDM/9okv8521g+vSfUnMy5usLGABK7UVs+tkuleSXw0eRXFYiKcV
+QYOESFo62Ye4rdbr+gu5Lbutle16NaaPCQJAQSBl7+S9LcAPOBiTvVfIbUIhjd5m
+NR+KUWe75MxRtGEmt8Po4x1jgah66fJkaoTXN7PMmVzuQumojF23RXz6IQJASw24
+VJWN3Bwh3bohIDvJdVj9CvcSffbg2rl5RCseRW/h+kwgvnxAmKy642YYxQly3K+o
+xqP9VBaN2pY5uumnwQJBAK5dC9mQc+t73dfsS7eYLWqf0TrN0DS/JlI7iAtzAjKI
+Ic6rWLZX7lb/SMIwcypZeKbR+K9YvyRq6x+YMeiNlU8=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/irisa/irisa.cert b/server/slice/planetlab/eu/irisa/irisa.cert
new file mode 100644 (file)
index 0000000..3a3587e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpcmlzYTAeFw0w
+ODAzMjgwMzQ0NTlaFw0xMzAzMjcwMzQ0NTlaMBAxDjAMBgNVBAMTBWlyaXNhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuvGoi2iSQx2tFic1NqbO7fX3Ps986
+aXKVEA4kfAZ2ZgqjuuEtJlZNWZ6hwG50MN+Cp/WczmrA4R+/wj5O8p1BhRApOu7A
+CHoCkvvf0xMyTp7NKKGvo4QhecPkfD3zavN0ge8EJpJ3jioXNNgJ4caeZdqdIuA+
++ufksPO0X0OvaQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJ0o4nDgJByUD2YzaOHK
+McusOkn/DzwJaUQXuwfUtDZ9R87Avev2hcEfX41LSmrAqGDIzhUun2kw0R5G7Jq0
+EZb29flgcm3nMsVKPa7IIFAG3ZSVpdkHOyKqaI+zWqRgxTiyWfnvFFfKLzE7mFt9
+RZjwsRN4K8wln3kUcVC3yBDz
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/irisa/irisa.pkey b/server/slice/planetlab/eu/irisa/irisa.pkey
new file mode 100644 (file)
index 0000000..c406364
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCuvGoi2iSQx2tFic1NqbO7fX3Ps986aXKVEA4kfAZ2ZgqjuuEt
+JlZNWZ6hwG50MN+Cp/WczmrA4R+/wj5O8p1BhRApOu7ACHoCkvvf0xMyTp7NKKGv
+o4QhecPkfD3zavN0ge8EJpJ3jioXNNgJ4caeZdqdIuA++ufksPO0X0OvaQIDAQAB
+AoGBAIhwPJvMI8Mcw6k/qZxbxyi+G0/kTojIr5yvNavNYCpxERu5n3vmtHqfYNtC
+a7y0MMJPrdvr3bWP03+jB44TqS+lnAvGZff10MOr7SMgLhte03kXqYsyjAj7ZMN1
+cL4MUUsMJaa4oigLxqQF9h4syzFi/ZspL4OAAixZFyEjL1AVAkEA5DPYNPiU+nJ5
+ooXtq3OGzEOwWNT1z32+cYXbnKkChnpBqv13v9rDpvmepfynuJiI8NjUsqnHEXo5
+cv9h+h2vqwJBAMQFS9LFWHwebfd0ky7gWe+/11B8AQfC1WU2bm+XfCFvEkkGdIMg
+0JVjRMrwHRrZwimG9mIztqmNJMt3dHJNmTsCQQCjv/wODq5AhLJ5h+cC13RL0OqS
+48W7bTyiE26CHNjeDI5gl189gUpR398StpjXokTppn4B8kgRZ4Yf2dfBdVnfAkAt
+jkmL539kATJvYzFdoJhmRsCEnP0kT5yGlDrgRmV747NtM0nau8KeJV70hw9MkTU1
+r38NXZVjHEFj5BQ1CGHHAkEAgTPnp9wBiwkJeJNxelmL+/im1P4sxe8ugUvDkZQJ
+lfhFzJUBxgi2RkTD4j2RkSpVNmoiTSM3Rv0FZ3XTL/T7pA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/konstanz/konstanz.cert b/server/slice/planetlab/eu/konstanz/konstanz.cert
new file mode 100644 (file)
index 0000000..cab1f63
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhrb25zdGFuejAe
+Fw0wODAzMjgwMzQ1MDBaFw0xMzAzMjcwMzQ1MDBaMBMxETAPBgNVBAMTCGtvbnN0
+YW56MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDy/tU7QlXCIk/OaSTBnSM7
+LWwz7UPjXtiejzCy9hrOW0l7eVY7ryhBSR9WVT/p2Nmu/gm8lmpZyRhxT9KFIlm5
+zi+SLNgBpy0FkFzD0MbQmsSGHIXdIHZtYkEWK+4II/88bemPBHygeiBeKDm+v0WV
+NuqsC3LsUongfzboHalHNQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBANy9Xnj4suOG
+Gn1nKfIrL/yq/3xI/7Zks0JBLAWkevk3AfsldewWbp6HF14Ouai7Clbir6XRrkUs
+9KlapvsjfGTCZV/uAYegyYCG8AbHTLZRl5zAfWCW9GWJcNHo9YVA9GuGRImIo5de
+QYf0q/VuVapgvGg1OEgF4ELP+CIILWfn
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/konstanz/konstanz.pkey b/server/slice/planetlab/eu/konstanz/konstanz.pkey
new file mode 100644 (file)
index 0000000..a26d440
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDy/tU7QlXCIk/OaSTBnSM7LWwz7UPjXtiejzCy9hrOW0l7eVY7
+ryhBSR9WVT/p2Nmu/gm8lmpZyRhxT9KFIlm5zi+SLNgBpy0FkFzD0MbQmsSGHIXd
+IHZtYkEWK+4II/88bemPBHygeiBeKDm+v0WVNuqsC3LsUongfzboHalHNQIDAQAB
+AoGBAJO5fKRUBZLKDT5tCV1zTFHToW5IFfeKV6K9ZlvF5jIBqUCZWWVbbNuTuqtf
+lEV0AZKy+fRedTU0Xdm1L0Skx2pQteU7LXoWW03UMvGN16o9aHEJL4cIxI1AP0os
+V7JTuVrEa7Sw+lkvXCtxTiYnbApwPFgSg1tfWPX/vBKPrbLZAkEA/VIregPxrCrI
+eRzU9JFtrXbmu7od/fBIFY32oXLk41Dw/pi3h0oaE0lc1ZzuOthCHGsPVBP9TlQr
+U/fzaSFHzwJBAPWQtUy8xMqxnJ0cdCSqiI9Y0A8mwRlgfiubAzHMeo01i7c9C2BD
+fKmntY7YwQJZs9EJ29Ikg8xLQzrIMznKvbsCQBSQPwdAmrWnI27xcDgKNiUGqeRD
+T3v1rWRSidrBQONTBr0kGIHa+hLmuap9erk8JOG5rxzcIovhOUMvtYqrMPECQQCJ
+zWgAJRpmCJ+zhukiPlSd5J/1MLFB9WU4QSfcxTusjHTYIjiFD7ogVo3LGJXPJNmE
+n/ysg3M2rLGQhhJBByXLAkEA8bU+Z4YCjw/b7XhX3WIEsX160YFEv02dZ4ux7+Ov
+v6FlGvTRkeX1ee/qpeUYnciXhEZW8Kv3CRE5bxs4pEFmdA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/lisbon/lisbon.cert b/server/slice/planetlab/eu/lisbon/lisbon.cert
new file mode 100644 (file)
index 0000000..60c1960
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZsaXNib24wHhcN
+MDgwMzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjARMQ8wDQYDVQQDEwZsaXNib24w
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMqgtDwJdJC/diRIdz6jRP5WvLle
+tm/ccw3pd56nzTEfJI9pcUh78APIlJcQOtSRTHcxmrWeBSy3NUlv1J43AF/S7/jB
+h1NQT4uzyS1DyV/4VyxTThPjtb+QX89uWBXytXiJmp8HRHFdH4kOvTlq+oMTMELp
+sbD7iLMqxgvLQoFJAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEADnB7CGnaWOWD/eKD
+tl0YdqW53ZfICn0SRWITwFMoPr7mVRXlJojepC3i8weCL1ZHRo4FiOy0qdcIKAYq
+GCAjjfcvm8wqU9oL3K/YKWvayRMPZIad0z4mp0j9G5j6+jYXtEhGr2TKyzUB9ADP
+CXJmzdFaWVS5FL1c7Drv2WvatfU=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/lisbon/lisbon.pkey b/server/slice/planetlab/eu/lisbon/lisbon.pkey
new file mode 100644 (file)
index 0000000..1c536ef
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDKoLQ8CXSQv3YkSHc+o0T+Vry5XrZv3HMN6Xeep80xHySPaXFI
+e/ADyJSXEDrUkUx3MZq1ngUstzVJb9SeNwBf0u/4wYdTUE+Ls8ktQ8lf+FcsU04T
+47W/kF/PblgV8rV4iZqfB0RxXR+JDr05avqDEzBC6bGw+4izKsYLy0KBSQIDAQAB
+AoGAXEjEzXMg+6u3it7WMFj72zp1yZcxT9D/NZ7XNBMIiQ69//Lt/S01KwP3aLWj
+lZx3TvHwnDbT9IGca03bcBNsv2g947tAXlYTfkCHbUJxxmjCF1MTebjOc84wQ8gW
+jWdtjzuUDkhTU8MFDRxTplAPubLZMUutnGvDSTcg5tOjwAECQQDnc39FaRL/Mk6Q
+LqShhEdEzTQd03kzq/YA0iZ/J4BQR3vWW2hSuM9khXkAmfVzTvmXmwEml4LY0bU7
+SKGP/EBJAkEA4B6TetkTC3R6ptBqOL/XFZWiH0rgS2EplLuu5pfNTEsS6+Tmu2Sf
+7UYCUg81HWy9ZtYy9+BE1cz5dHI/lUY5AQJALOeImsPfDqoI+gpCoJ+UYDHb2amM
+y0yiptge5e6ZA3pK+XS0kdAPVLZcmpREPcHlxNcq6vzcQwq0ubLGvbO4GQJAcZON
+MahoWlnA/mCINBIkMbAO5MTRPeITbGhgjkNHqu4wvJLXyweHdHsSGfvS8wJ0SXUr
+hyqEN8UUdcqgJkncAQJAMavw8xmidrL3YuljFLaMs8FE7AIVtwExaS3I4B8C8RUc
+Amo1MxsjIV0zUeh2FcO0HDs0oAEPiqLbLou8AVuTDw==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/moscowstate/moscowstate.cert b/server/slice/planetlab/eu/moscowstate/moscowstate.cert
new file mode 100644 (file)
index 0000000..e8b6534
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLbW9zY293c3Rh
+dGUwHhcNMDgwMzI4MDM0NDU4WhcNMTMwMzI3MDM0NDU4WjAWMRQwEgYDVQQDEwtt
+b3Njb3dzdGF0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtzP7wqSuKiJA
+jHUxV52cJk2frihdDbj7LTm51yek0CuY75CkieeQtcLEs8VYIPVAYysW0V14Lhnx
+WDByrJSdS5WexYbSFtXSfLec1I/QEZk6FpxRm9sKp5Zv/kH2InMp5J2ntMVLLgTU
+Z8ittU7VyqBTt+4XzF8oMRkdZ28yFO8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQAq
+UBthDf+O4NDOq6VcATWe7pXsQ4BaOxjw/Ygz1ADiSkXaEs6UFoN1PZl16607ghTW
++o6X2uu2heKOpYpMw2sLEy7hDLauTEj4x6+O6EZQTKM6V95Znz4E0nchgONu/IP0
+bs064lzjY+PPYGBkxSkw2jAGl1V/41HqWOSjMqbbHw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/moscowstate/moscowstate.pkey b/server/slice/planetlab/eu/moscowstate/moscowstate.pkey
new file mode 100644 (file)
index 0000000..47b1c97
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC3M/vCpK4qIkCMdTFXnZwmTZ+uKF0NuPstObnXJ6TQK5jvkKSJ
+55C1wsSzxVgg9UBjKxbRXXguGfFYMHKslJ1LlZ7FhtIW1dJ8t5zUj9ARmToWnFGb
+2wqnlm/+QfYicynknae0xUsuBNRnyK21TtXKoFO37hfMXygxGR1nbzIU7wIDAQAB
+AoGAKhIr/JTo0hAvlpHLFP3CwCEPTGVEiUQzmj0pajlWZd+9LTagMnMVDkh993KY
+PGlVsfBROx8l3CBlBgWKMAuo2zCc+jiz0XIXKaA4SJN+GDpGbc12FRKwYIv61714
+/jbgRd9vccBUD7ZP6QMRJ0T8CCbxnilZKkLvAjUUy4swd1ECQQDxyRbYnsyW5NvU
+f9w8g6Y01Y/2lawtl3Z4lpzXVA/ORLQlkuGjAwKHV5hPiYjjrjqloWJBHkeDSSAU
++EXnHOzjAkEAwfk4DvPOajD1b+xXjQ2OMDHnKfAC/Nyh9GOkbjFWCjLGrAqZPGDe
+H1xd7pv8agJ+0Q9k990v4Bosd//4eENhhQJBANSaaK9juyx34uEQ6PyBGnXc0DEY
+XQTd6TuR3CnvbdKHUQy1AhkPvXp6yKAvpKHngwQ/SyFNWb6UX1RxFy5ondcCQDpe
+jUDqmr2Xt/OTEhFu98+G5MHY6H1AwzdwWIWUMQjmmKQimFPz7kNPnzBzHfSkhZbR
+ZBe2JnbwSVte2l0OIaUCQQDPhp7VOGkIkKyubA7CVSMwXkGY3ZQPsrqiJoMT9LCg
+DXk0b+Eu3WZPsyctdB6xnKe1SmohViIMtwtcYdjdkfqr
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/msuchem/msuchem.cert b/server/slice/planetlab/eu/msuchem/msuchem.cert
new file mode 100644 (file)
index 0000000..28e231d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdtc3VjaGVtMB4X
+DTA4MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowEjEQMA4GA1UEAxMHbXN1Y2hl
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0gjX8EuAuU5NVl/ST8GBO3gy
+TFHFk4rZVuzlymbxWgqna2XCjhzThGUVGK68UMKnJ7eWjFYvlKp9vSipOPIEnsM/
+bTW2G0jcqbjOMlEn6wtbrxcbWEp+qbwnTVV9Y46XL1CGIbznEeHF4Eh1zbgwnTeS
+kSjK/qerFEJ95UPu3ucCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBpI1LHBaqPVhhQ
+MsSeapeTJa9wkjpWVxAWCh2GyWpY7zGl0KYyVWHFzf1uYn6x1JTHXcmUsx9TtBWV
+b2kILPkkn70ZsCv60xpqm2wZamNvY34gqas+akgnNng3eWvrORicpJeyq+EFxNyZ
+tYTjSsNijaEegYC9nqub+bgudA1UiQ==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/msuchem/msuchem.pkey b/server/slice/planetlab/eu/msuchem/msuchem.pkey
new file mode 100644 (file)
index 0000000..aebd1e5
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDSCNfwS4C5Tk1WX9JPwYE7eDJMUcWTitlW7OXKZvFaCqdrZcKO
+HNOEZRUYrrxQwqcnt5aMVi+Uqn29KKk48gSewz9tNbYbSNypuM4yUSfrC1uvFxtY
+Sn6pvCdNVX1jjpcvUIYhvOcR4cXgSHXNuDCdN5KRKMr+p6sUQn3lQ+7e5wIDAQAB
+AoGAZbsQ1HvNknOhs+dfl2/TZ3mVay/kMc177cV6m6l21zT32GYGcQz3SlYnfLgN
+0FQn4G3kxn5sN2bI1lkedc2LfHXUTbQJPeOZdJkm+XuXReFfsq6DbR/PoUBPGti9
+v3yQQIwq9ZxExxqm5wfzXA6Y1YdPBu5YD7YJp0xHxEcIHqkCQQDqDSBJklUbPfF7
+qI72Ug+g2ty3ahoWHAZBVLqBlSqYpoOIpaFdl/5tbAbDAEnbWKCzCqTBbDDPlDqk
+gOJyTIrtAkEA5bsls2FdigHZqZTQXBhvoAph0fYSFqLn/6Fcbp/8CXNuq62t1vJW
+EOd8Waf33d5pustXzrI70pP9B7NoTKzSowJAXvMiRRaLVjjj7XGtRbp2wp/naLUv
+jgaidwCDhSxZkoIC3H2tIAYYXpWzjIpibAzhbKEFw747cwrEW5Y5x3rL5QJAeiiO
+/pjapYUgWgWQ2jgAO2jp5TzlF3ZeyVbjkMuvuNLR2aaMFw1b6Lc/L2ma6zbWoAZ6
+1aV/HBWnag3je0o24wJALIOKxRuVL9KhCA048lsBgerb19ytew4Jby4enARC5GJg
++xgPNTwOLKNvaojgsg6FNBUGfvHUxWOYlx9fN4a+GQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/tcd/tcd.cert b/server/slice/planetlab/eu/tcd/tcd.cert
new file mode 100644 (file)
index 0000000..0d5bdab
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0Y2QwHhcNMDgw
+MzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjAOMQwwCgYDVQQDEwN0Y2QwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAO6ZhHilEnbdr2oRdnXA649Ddej2EWTdqpJh
+LvUs0cwpJ7i+4KNGmQuhdHFIUPyD+K+wd07/F5agKzTjSOL83nV/xkal0vYd7j6f
+BVxqT92jA2nzSet3IGJjc9UI5jvlev39FthcPewYnYBDWNdxYj9mVRyVyM2QGBVi
+qD6+WROnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA0hBff/5C2kXj46OuEMHEnBV1
+kseS+eQPVoKXRddNtxZyBClajLnX3UR+67R6MbB2830Quy9YyU6h4bclaWm7rwQS
+8XIs1MKldsHCmBYnJcsWU4q51C3CGc1fWQNwWm0HhBS5W4Z1ilXsNz2r++H3G4Wp
+W/pqUIMc+WijLpZeS+M=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/tcd/tcd.pkey b/server/slice/planetlab/eu/tcd/tcd.pkey
new file mode 100644 (file)
index 0000000..12e4df0
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDumYR4pRJ23a9qEXZ1wOuPQ3Xo9hFk3aqSYS71LNHMKSe4vuCj
+RpkLoXRxSFD8g/ivsHdO/xeWoCs040ji/N51f8ZGpdL2He4+nwVcak/dowNp80nr
+dyBiY3PVCOY75Xr9/RbYXD3sGJ2AQ1jXcWI/ZlUclcjNkBgVYqg+vlkTpwIDAQAB
+AoGAB0gIEuZ2ucnqIIKH6vAIQEb+wi1AOqPJIM52cGT9wg0/eRPaJyFwajpzI0Hh
+ttMQM8xe17pRLfeVWffVsZel8kDtTE1WaqvR0PzjtaWmYAYN16US9AkKRk/uofwq
+QVowvQ++6kSqQlJEtT7KWZuVIEIZz2Jd09VuvmUWRp2zeoECQQD846Gqi/4zSvz3
+Z+U7vV5W2Kqv1MSRynjAhcO61i6xzhXNbj1VCmbkXL/Xi/9zjtQyuK4MS7ZKDk9c
+4gAFb1aVAkEA8YjjG7J8wBROG7/09bzHb0GR1Y6cJQo4M7R6azdIBloPCUL4xyI9
+9/YP2GVeZm+ZYW0jQB4W2zZW8LJQpTBeSwJBAPrCWPc886Y28Fn/Cp5PK3GgTLgn
+mXcbNttoiGoGoayrtpDKhESEGPzOP2hjqL0UXrOgzuzgUnRidi2a5/x7p3UCQQDq
+jAxGhDACcnVbGy/sRdLBJkJQyHi2u1LSWusaHIezq1a4nrFo5saYePjwIZfnD245
+nrrBc7asTvtkJzSLBQo7AkAfp3LCRZ0//8U4sz/YX5RQCVZfn8EkHu0U9c8MTPlX
+fuLorzCqabl7UVYw6XPMVga8wszZKFNrd4RKMzIKxy/e
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/univie/univie.cert b/server/slice/planetlab/eu/univie/univie.cert
new file mode 100644 (file)
index 0000000..c9b9086
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1bml2aWUwHhcN
+MDgwMzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjARMQ8wDQYDVQQDEwZ1bml2aWUw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOvbZE9P7fc22RA3ONSpj+8dRPf9
+JbQVcQ8oGzEGAOyr/d0zVM7CpXnDBbEb0q2myq+WI718ODl/LFBv5gMqNCVZ1svR
+pFw3HBT0P6haQmIAQijoXIRhrfEVryGkXbMCEqeXkZUY/wDzMh+NTldBkVmYqQNP
+Wmrw57UEZlsSbFV7AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAS2nrGFt05PM+b/On
+WGgeN5fhSdaThYlV27sMAPdMitwQ24K2JlRsGY5XJHmUTJWkUD5Sh0pocz7HKBhS
+ZRLhaJmoJFk8uJyay4pOG/kIyo0Lbh37OeDdlqWw9A5Ojs+wDAapeWli9ZMP+0Ui
+DMLSo54iVJu2eBBLi68IPKEgqrI=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/univie/univie.pkey b/server/slice/planetlab/eu/univie/univie.pkey
new file mode 100644 (file)
index 0000000..aad7247
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDr22RPT+33NtkQNzjUqY/vHUT3/SW0FXEPKBsxBgDsq/3dM1TO
+wqV5wwWxG9KtpsqvliO9fDg5fyxQb+YDKjQlWdbL0aRcNxwU9D+oWkJiAEIo6FyE
+Ya3xFa8hpF2zAhKnl5GVGP8A8zIfjU5XQZFZmKkDT1pq8Oe1BGZbEmxVewIDAQAB
+AoGAToI17qylgo/QSzSGh0t17NsqVP3/6eTlQG1SN8xOzHknxNTMWxKxsEk5gM3J
+ICKP/0iT1wQdVw48+v10bANFXbHmLWQARTx3M6JHBhh8EI6P0GcEppJPy6yVQhlX
+whgIYBlkYZbR6DHHG4zdB/slYx17XBSgVBzPcf/r9CuwulkCQQD2ygaU5E327UPt
+CjHwYooYvxMGRJmSbnBklSeKsrT6LjzyMqGzv72dVDDwbspIel4XWxzCju3LmVBA
+N07OJxk3AkEA9Kjp3zzU5JXxY0Y3P+VwxPixzATpSNGdrER2J/aAj+tcuB4sbOqA
+KW87RzZbS+ZQa+HcdT/kTo9icEFafyV33QJADooGaz0sDrEZwFxKZuQXSK/xGfxu
+o77X5kUXSEeQ+/A/bPFor2NLc3pjS7brOevjoTKf9iJfhhApNy9K+EA7bwJAFtq4
+jhv2nyvKksV6X8OlFyFMKozC5gR+wBrdFrqWI9uOm7xl1f7J3hT/6pUPTjXDiXBd
+0a4YO6Z1QZs5QutTGQJBAJ0tkHhzyJQFbp5XuuU23ztSIgcB04IPVx1rjNW0mTU5
+CMHHdspxDDhzHrLn+7L41zOug51+wv0ZbprFpOy1Yo4=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/unizh/unizh.cert b/server/slice/planetlab/eu/unizh/unizh.cert
new file mode 100644 (file)
index 0000000..8443e6a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1bml6aDAeFw0w
+ODAzMjgwMzQ0NThaFw0xMzAzMjcwMzQ0NThaMBAxDjAMBgNVBAMTBXVuaXpoMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIZZjIN1u1BTi+4SD4Z6iHn3fPz9mY
+yzK5D6jfUAUrrwo6jmbRuCxhZFJ7mhvgt/H+jUJTWrtD+1lxNba29ICnpk5hrBNg
+t+45LqXqOhhNmWM6q//eaXcEpZu3nFr4hcOxnWSC9vt1szTj1oAy6sJv1nExhH2/
+3bSdTxxUqTyT9wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAAVVwnB854XwKk9Tg+qW
+9L80d5VKxFFBJmS5oj986e4x6tvdRCYj+pXYYx+UKpGwbfc6mh814Y3sPXPgYjwG
+r2/W2tQ0OaHkeTSri2iQh46Ls30BleN1eWD3dyoJPxkoAJ0/9XeGtOZ+olNvfkbr
+2LmKN7rd3sribMHXYIl2iuWO
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/unizh/unizh.pkey b/server/slice/planetlab/eu/unizh/unizh.pkey
new file mode 100644 (file)
index 0000000..162d1f5
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDIZZjIN1u1BTi+4SD4Z6iHn3fPz9mYyzK5D6jfUAUrrwo6jmbR
+uCxhZFJ7mhvgt/H+jUJTWrtD+1lxNba29ICnpk5hrBNgt+45LqXqOhhNmWM6q//e
+aXcEpZu3nFr4hcOxnWSC9vt1szTj1oAy6sJv1nExhH2/3bSdTxxUqTyT9wIDAQAB
+AoGAW0fL3Ac7Qq1qN6gceIne/kfpL0Oh/jMwm5NCfNXaRReqNRoAQ678qDAmUh7U
+a/vdwvFdMNK3UjP/fc3VuGiO4P/soff0l3wmC7MVBCJIUJbClNc1uEUj0ZZyRpU8
+6s5P4Tg+8AtYV16EIx45Kfm5lu60bIF5GlQnvSdNl68kqkECQQDwiP+eCFB3t3uC
+BFWi30Hk3ruui7ryq+JLHM0KYvgbBTyNAL6aPsPsAm6g6ZjEOvuUB9zb14BkocNx
+051uFjSJAkEA1Uf05ilkSSdXImK+r5us3dMwhlVOE904+UiSfEJwFBKbAGdDbwRd
+D4LZWkFbzEhmgGbVWIE8t8uX6KYhW1tkfwJBAI59KafNVxXEPMcFmFFWnitdgqLg
+pYtyJSjH0/MOM9mV3YvN4BtxiRB7VFvAZb4BDt1fVwdofueeKDB64my/fLkCQGcT
+TJdDn9T+70yN/mwuR2A5ZbU2WvKcsqE/YpQtI69/wmtyfJOVv0f0zAijl7LltqwN
+hsQsSWTmPzdPusVFKQ8CQHEmO/yxBQK7NTPS7M5uIMSwsKFOuFzMS466kK8RYASQ
+ISstxVyI3QdAwGkg2jk10+hmAp+SLJIVog53SGCpKD8=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/eu/upb/upb.cert b/server/slice/planetlab/eu/upb/upb.cert
new file mode 100644 (file)
index 0000000..2b2a3c4
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1cGIwHhcNMDgw
+MzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjAOMQwwCgYDVQQDEwN1cGIwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALojSE8A1PqbRYVSIs03YY6iZNSJDxRjvbey
+Rd1xitTxHqRFbB4M3HKprI7DpcQU8MHRfxcnNrUQV7uTczU1TnBi2LbYIhoJXwlP
+mOTvrjv14QuTdYx5AI9gCZ1kXbLjWTsKVdHwOtXPb1coHt79P8Ca/G5VTVeaXJJS
+4F17nGGPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAlDysbeM8dckd2vSBzRTUioai
+2pR3rCiyhJ+Ym1pFY95yjAnpi3a3aGPYYPBBiPdCHc+6lnPIrudVMToXgjVIc9UD
+6bnRwlAMyIw7b5YOcD16/xT3rHP28MzITs1a4nXWvbUQuLwf7sg2NiKGihSgofJG
+9c8znI9ldw7MPGFWOlQ=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/eu/upb/upb.pkey b/server/slice/planetlab/eu/upb/upb.pkey
new file mode 100644 (file)
index 0000000..f78f05f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC6I0hPANT6m0WFUiLNN2GOomTUiQ8UY723skXdcYrU8R6kRWwe
+DNxyqayOw6XEFPDB0X8XJza1EFe7k3M1NU5wYti22CIaCV8JT5jk76479eELk3WM
+eQCPYAmdZF2y41k7ClXR8DrVz29XKB7e/T/AmvxuVU1XmlySUuBde5xhjwIDAQAB
+AoGAKUbLsSFJGW23Q/JL32AplRyz6WGfY3Ee0A6LaajVFZWGqvzuFdfaRt8TcfE2
+4D2YihJv8W1zt0Exg1oWUTVJ+EbWDtYeHJFjS1JbXXQ8XwqFU1zudmkGLF4My4Ze
+GTJWjNpMqccYSQu1oiW2/HcBudHKJDCpkTr9eCqu9TZCz3kCQQDxS6Kb6JnSz2t4
+2OvE+P/kazx8mGCd/PNnOMFC1iQSgPThvDFQncMPEZqW7vVHI+8i3Jg2hieF6Szm
+Y9z/ykJ9AkEAxXsnFI5tvmSxl23fa6zqWo5rVKAhCAKmshIhmhyEyP4yKwodseEZ
+qBklXulO+wh63UnZRttOXjXdKx1UVh/F+wJBANOEUsnKrzTdwD8SIDLtdxtbaY1q
+4Z78gr2kQb1+C+bwhjlvB+e8M6X873+Jfxdah6EOsJtzJCg9y682MR9ExN0CQAW+
+SSqt4b8xyoBu75qAEujDT5fMeGl1Okffgx6qSapWyjq6NpbfxxE+efnCq0tducUJ
+ysnmwua2hlIkrjk6/1UCQFqB6e21EZ+wcLD7nWZ3bciSQJXo/IoYrZhETSdZgf5X
+GONX5XYvUzXkYdUFb7qrYeXleiLa/pse+uFQaMnEbjI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/fing/fing.cert b/server/slice/planetlab/fing/fing.cert
new file mode 100644 (file)
index 0000000..5eb0f63
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRmaW5nMB4XDTA4
+MDMyODAzNDUwMVoXDTEzMDMyNzAzNDUwMVowDzENMAsGA1UEAxMEZmluZzCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu6PNOmV8HdqW1brodQvKu3m6230IE79/
+8/SdotU5ip5hIvuULLzyr6iyxprBUpcqRrh4SAKZqRMW4f2NynUsaZD/z85M92C3
+JtHZ1/3N6d6XqRvcpTPvmGfk3Mv59WurhxvjPdlf1oBC2ynIZMr0BElefbX9paxY
+pR1Lp/4TpD8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBH/GMSgx8MtwXXwfsxET6n
+yINs3yw18V4dioTo/YcaxyW47ZkkqFAK3UnawmVDyPmjWcGMFTvIQeP1e4NYXrOF
+rZSUuVGhQ6icX+MgyOxvvVn3mTP6QibWWhpfHFEycJgR+UIjWg7SVxa46jDYLn2X
+fuGHOf3mrtmIH3/lyTaJ2A==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/fing/fing.pkey b/server/slice/planetlab/fing/fing.pkey
new file mode 100644 (file)
index 0000000..d50a13c
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC7o806ZXwd2pbVuuh1C8q7ebrbfQgTv3/z9J2i1TmKnmEi+5Qs
+vPKvqLLGmsFSlypGuHhIApmpExbh/Y3KdSxpkP/Pzkz3YLcm0dnX/c3p3pepG9yl
+M++YZ+Tcy/n1a6uHG+M92V/WgELbKchkyvQESV59tf2lrFilHUun/hOkPwIDAQAB
+AoGACG6O7V3cGvdUqdwRUBksjgolVHGk6EZFuK+4WbXdNRZy5QCLIwuGmFArYHNZ
+1p1GYBEwDoRXZVqfP56GPZ/QVAZIYFkCw3kPFCb//qnVi4h1Rnstq9/fRpKlhHFh
+ng5vhIA0kT5AOn+bdf2eTAmTOQcKsgKlL/VrQlt4f5LkLPECQQD0bO8p20NGtW7U
+zDrcUERAnZ2eRL9k3R+g5/B470ghvOtBiYDB6w1l2SJLGhl5nKsUUrCPqI9wA6vS
+THOHVlypAkEAxIZ6pLH8ybmjSwOPPMSMJa+6QueEqgc4MoJC6ZgRr1NzG7a2Jzxk
+SDofAI6uxfmAeafUrspixAGLF883pXDipwJAE7Mb64GygGZrEleLfuoxNgv+Ah2E
+V3rC69MFvJl8dMunIlcUu4xYPhcr/mWSHA0WdMLdXBa3yM1i8cYboZLCUQJBAJw6
+l9bDk8S9qb1heAYD7bGr7/Nt3z3XfWpRuWW/uRdazKAUcNviG4p7gdfMlc3WWbbc
+n6vQQhG1dGCaH4+KnPMCQQDvUdeGhJQsjO0TW1DqPvQueXaAaksNU95sUf1FukLz
+lw6HAl1xCbmHA5Wjlj078+yOLhSpkYGhXNBzb6cjgOQN
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/haifa/haifa.cert b/server/slice/planetlab/haifa/haifa.cert
new file mode 100644 (file)
index 0000000..11a81a8
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVoYWlmYTAeFw0w
+ODAzMjgwMzQ1MDFaFw0xMzAzMjcwMzQ1MDFaMBAxDjAMBgNVBAMTBWhhaWZhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/jqO9ZClR4gL/rO0XZ6fFU5ap3a+W
+Ev/r8rQ5vi8l505tdfaqsyfE8hjx0oyefrvGeeS/v7yVpQwzDejJxQ/0+5ZV57JF
+Q73SpuoD0+lwHSpTRcdX/iFBW4to6VqK7EdRZIyCd7Kft50bYenhjVgAWBPvsMTZ
+Zs7auQiO0+3+PQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADfvl0z0Xx41nxTtQCKD
+rmcS06V04dZu7zVCkIiRor1X+et9/1RwKkwZ0Qrd6+GSluYFjnwUe9MUNAXkNKPB
+nw5JK+PvoTVlRnsPOR+zMCbTG1Oc8fa7A0EQmOsLz7XkJh3+HVzi6UHKfqw5OTG/
+ZkbmNfGKozeGldv9me/AmFzP
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/haifa/haifa.pkey b/server/slice/planetlab/haifa/haifa.pkey
new file mode 100644 (file)
index 0000000..2962e59
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC/jqO9ZClR4gL/rO0XZ6fFU5ap3a+WEv/r8rQ5vi8l505tdfaq
+syfE8hjx0oyefrvGeeS/v7yVpQwzDejJxQ/0+5ZV57JFQ73SpuoD0+lwHSpTRcdX
+/iFBW4to6VqK7EdRZIyCd7Kft50bYenhjVgAWBPvsMTZZs7auQiO0+3+PQIDAQAB
+AoGAZI8Y3f+KwXWIZXf+Lt83b5tl6F58IqhuuQp8GiQA1EENJuFaUFokcns1JR2G
+vF2Dbbnnn9GjylsOgG642dMdgHFRS8bCaFJdyaFvElpTZoxdSMOAVc+FXpoq2lAp
+kfV8u+NBuK9wYZ2mQ5fYDng/f5t7i89XSiCdwnEVb7ya0gECQQDiuWDTuJDViKJ7
+LvIEJMgfN40e3oJ3BYEXeQDlWG1VnT+mjpIU/xS+rfrGAKHaslOc+C4jp7REbXZY
+Y5he7B7dAkEA2ErHPbfQbsHxKpCRdXsh925nvBuw4640K5hXNNJymfpVILyjI67c
+sG4Pvza8rK4CfQ6LzkYef2TKzdHPmZF24QJAek56t3xHVYoB7OXkVOvqsTxseoya
+YM6tVxZFr3NGd/r+TUF3+K+qZzq/n3TT24B7rqALc9ySWJ+cSg5gMkS6WQJASnOb
+F7yRK77oo+01lMn4zDId1Rt3DThmzubWheE2/5ey+9zTDzJe1wBbvUc7NPmE88Ux
+DKUIVHO+d5CUNFllIQJBAI4uhZds5oIaiML4iAhJMI0VQenFXv/Ec0MpRKzk6viH
+K1WQPtuGcBY86SfabXf5CJW9CwJkV/nbpXLidJCX0Mk=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/icavite/icavite.cert b/server/slice/planetlab/icavite/icavite.cert
new file mode 100644 (file)
index 0000000..6356558
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdpY2F2aXRlMB4X
+DTA4MDMyODAzNDUwMloXDTEzMDMyNzAzNDUwMlowEjEQMA4GA1UEAxMHaWNhdml0
+ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwGXkSiG9iU9wBaw0jtYSUrNy
+EGjMYb2N2H7EjZtkgMWzgntjVQB1qg4Sf0hU/N5kfZlAU6U5AyS6yvLibS+Geaoc
+frrTXYpJvBibfU0cfrijItUosDKBzhvl1Nby9CmoHBKrMW0OWyqjVCPNJCdoQd4q
+LRLzps2QWkWXO7y8k30CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCItGCr8qo1voWt
+loYa+DkNsmsdz9VfzjyiLAKSAd/U603+jM1RY30e8gSeAFsFv2Fc5Ll/edHvSYQD
+3s1ZOCVKCyBKa2XT90EPQwRPYRnqTHlcqRuaDb8dPRC1hme+yqEpgla0bIGPvjGD
+p3RXbbVhvxXa9GfcEumqFkZWnpAg9A==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/icavite/icavite.pkey b/server/slice/planetlab/icavite/icavite.pkey
new file mode 100644 (file)
index 0000000..6e7ccac
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDAZeRKIb2JT3AFrDSO1hJSs3IQaMxhvY3YfsSNm2SAxbOCe2NV
+AHWqDhJ/SFT83mR9mUBTpTkDJLrK8uJtL4Z5qhx+utNdikm8GJt9TRx+uKMi1Siw
+MoHOG+XU1vL0KagcEqsxbQ5bKqNUI80kJ2hB3iotEvOmzZBaRZc7vLyTfQIDAQAB
+AoGBALVwYXW3k/Klw1LWL0p0fxsWtv7alcOm6tm70shoPsNhrgPjMK28nTodwzvd
+jqhZYhNALvWy3q0kOjOiEf49z2XSaItCq0/wujBe7z9kkJbAnHgEudDPW4GFHvTv
+qRQTjKFDNNl8SNS16/Sg3Ti0ESnA8Kf5SXJzmVgNGjxKBNdRAkEA4jlshJnrzsnu
+RnTv0cxnweoI1pq0Yjfritalm8cOhkL6bl4QsZTbFQewNtLx4lnXz2x0CPJsrJHg
+4zD1JnjIjwJBANm4stSGnAxYQBsWNNuGuAmuPx6S7mej/1wv7pHqc9fZF03BViT9
+ZelND9l8L7Z+PoG/7DHQIrrVXoAH9kdC8TMCQQCRvokpTLjc+r9l6QRwV44pIgwb
+poO8G2bGhc8f8zhqS1BoNnXu0oXqoI9oYrKvL06YNbjz4qsc6sbF1864wGwFAkEA
+maaydjAlcsTZQQRz+zVhLlvNadtR6syfS8T7/fhTFtK7koFONT6rrHFZLShqV8VS
+gakbnLABwo8QaRS1ZudEZwJAFiEA027lNDD/iBtmbLJciIG/Kd/9ETOcNx6DR9nL
+7Gb7I499XIVHrGAddmibCxCgzp9q9dlfrofG48GfT3G1tA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/ihaifa/ihaifa.cert b/server/slice/planetlab/ihaifa/ihaifa.cert
new file mode 100644 (file)
index 0000000..26824ac
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZpaGFpZmEwHhcN
+MDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjARMQ8wDQYDVQQDEwZpaGFpZmEw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJuzYT/8+aKR7NmtIz62ikp72h95
+xsaFNaQqY15P5XelRfLVU6Eb04kZsqTgGvdDycgg7aTfvIhKWjV6NFDF8KT4xixT
+volqyixr49Wx1OJSVBQVTNmNjJ4+78NWahXTNVRswcHy6Wgb+I4MJGyw1tDxVrKr
+Rg8MCxf2MQ2ki1LZAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAm6Zr32vuFVtY1TtG
+aWGL64GSx9zROdG9+um1SUk2DIUA/zfK+/Xfneto/YGpJEnMVg5lWD84BFgHP8FK
+4nfuKWF7dn8Gmwk6xQ9xsd8jEbvv746QqXIhOiS3r2xec5eIUD/u8b4lX10ANkzM
+wOHTt01SerhCI2WQGPZUIQFfnlE=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/ihaifa/ihaifa.pkey b/server/slice/planetlab/ihaifa/ihaifa.pkey
new file mode 100644 (file)
index 0000000..12cb468
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCbs2E//PmikezZrSM+topKe9ofecbGhTWkKmNeT+V3pUXy1VOh
+G9OJGbKk4Br3Q8nIIO2k37yISlo1ejRQxfCk+MYsU76Jasosa+PVsdTiUlQUFUzZ
+jYyePu/DVmoV0zVUbMHB8uloG/iODCRssNbQ8Vayq0YPDAsX9jENpItS2QIDAQAB
+AoGAU6pAR7IYMlNXgmCW38wW449J1kAJoANUn7JnUvZ7x573x1T6a0gYk0NLy2zh
+EJ1MgE2xZTcUh+fsMXBJTF4QwL6F5pSEIDXO3vlpmeX6xgFITKsDq2f1U02ar7ao
+dJqUglMGrvsd5N7KWsi6dA7bI5DyPr7u+RTwjmYwiGSY1QECQQDNh3u0FOY4ZZLA
+FLsoujSC4TdLAYpNrKG5t1XoMUABn/aKEKGcwLzLyaLSriER/ZYOHheuWJ7TLxB7
+X6ADBokdAkEAwe9x+Qcd8uTbNc67DCcJfe1aQ/Pp27ne9MbtepueFXFVOUcnEcp1
+IvGrdrhEV3CIYQbxZfkC3I4TpLKdvw1/7QJAScXr3UPzLyMmfdPzKjdMSf5VPpMa
+9a6VjngEWgfzlaG5eO1nVUDJg8yoqT7fl/mSNxcOIQKmX99w5xf3854Q8QJAOwYP
+IAWkfcpdVTEICJjQ8LyOXmQb5r3ZN5JbsJcwM8J8d6RKJcYChJIc51MJqbscJrug
+OLLixhGPtO6PyBfpuQJBAMF/lG+3boZsV+HpMdzgFw9ZVpUQuqC8Lr5yqhwyUlN2
+xS+E/IPRviuJaJ0v4232y2SnROIbVeBCiMH/6SBIPrg=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/iitr/iitr.cert b/server/slice/planetlab/iitr/iitr.cert
new file mode 100644 (file)
index 0000000..81de006
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRpaXRyMB4XDTA4
+MDMyODAzNDUwMVoXDTEzMDMyNzAzNDUwMVowDzENMAsGA1UEAxMEaWl0cjCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApXTL9Lwok5Aq4ic8V81gk6CY5MzH6e8K
+tFF1e4In0AS/TsMYCLt1DubJk4aEnXuKRg1PIDvGm5FGtDmbh9Ebr0eyKO/S2s8v
+VU+dDX99UKRliWhbXfm5aHrSTepRn4tTr6OiM+Qlm0w1XemeircfVLEY4/2PBKlj
++q8IIsCKYRsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAiuVMafQ5+9T9AxP3zNbt3
+kR+S0gykiAa9VkwTzNB73ba2BuIQTL+VNyK3oZNH2h2QCQBT5H7i17+0BFfaMOkM
+9l81MMYCy2S8Q5jaMCSqsN3ZzkwSNegKuyAAewfobzDXDj3F5Wbvz/4xebhoYy+R
+tmqqmlRrKBBxnXGJrH8cGg==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/iitr/iitr.pkey b/server/slice/planetlab/iitr/iitr.pkey
new file mode 100644 (file)
index 0000000..6e29539
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCldMv0vCiTkCriJzxXzWCToJjkzMfp7wq0UXV7gifQBL9OwxgI
+u3UO5smThoSde4pGDU8gO8abkUa0OZuH0RuvR7Io79Lazy9VT50Nf31QpGWJaFtd
++bloetJN6lGfi1Ovo6Iz5CWbTDVd6Z6Ktx9UsRjj/Y8EqWP6rwgiwIphGwIDAQAB
+AoGAGIWL6NSuKtiWEniAL/8nThniLx7OjjQ4YOslv01V+zWI6PJvMHQf8DpyK6Qn
+KXPy1VkJnhxd3haU5QcYrvNl58JUn/WcNuQRn1n7+tG0/K4pT+5YhEXhuLAZFV3Q
+6/FSVuWIyUr+SaozGksRNaMx9FWYcd7y7ur3dWf4YfPKBfECQQDbwdUuFW66aTsq
+cchIaPW9N73apPQz3ITTCfvZFlOfyBkfqaE1+TI4AZ6nkr1RiSPmYzwpHVF1NM+l
+RycG+a/zAkEAwL5fxOXrN5PAEbxQosAplhSR0M3hZOyObGhRdrj/KexqbK4ln46E
+oohxlMQD5Ck4GrvIypeNJdYgU3p0ngX8OQJBANWBwBXy+s6f2L0HKTi4yTAajRl1
+tFECygWkKI0k9QBDT62EiD1BLHpfkH5swgUKwddfyJ6FfpPqSGfi9lb/leMCQQCE
+RKCYEGgAdcZC5YY4icKAGZGPRxm8FpIOVvBAlueUL4dBGaj7++ONXjEDtBgvhRHZ
+VrCORr44Dt+UKd7JarYRAkBhJK5sPrgLqyCNSeXzebKqUXK2Q5WEXj7tbFbwjPuQ
+eW6AgJROKvkhjR2ZrH174N4Ec8nh3TXXJAEzYGWvCCoa
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/ileixlip/ileixlip.cert b/server/slice/planetlab/ileixlip/ileixlip.cert
new file mode 100644 (file)
index 0000000..7fb7e5f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhpbGVpeGxpcDAe
+Fw0wODAzMjgwMzQ1MDJaFw0xMzAzMjcwMzQ1MDJaMBMxETAPBgNVBAMTCGlsZWl4
+bGlwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDX7vy/EztpCoO8hPVsvYpk
+9+JWskkWb5O/CrZf6B/ZfVnpQmHs/M2O3Rfxs5DHTS1xsyZqOnj09eGNKu0egEeP
+ZZfAVrl6KhnFn2R320LDFI6psqXg3cXDOi1c1g/0NHrnMmz2uZ9Xo7Qk9fe+nzcu
+9DFWoljqEaVH3txfu/kELQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAD/arbc8YGH5
+kjlmsIn5r1Th++GfeuNoc6507sPVGu5NvdkFBz6qa/E5zA6GonzsOf1zTslCtkzW
+ctLYqdm3kgdKHJoUSBIq9KMV0nrMZSd52at3onn/8I36DnHCOYsWh92Es/SskEyE
+fdYjXjNQXD2tPt1GipPlHgoVvb7Kjquc
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/ileixlip/ileixlip.pkey b/server/slice/planetlab/ileixlip/ileixlip.pkey
new file mode 100644 (file)
index 0000000..e4e2c8c
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDX7vy/EztpCoO8hPVsvYpk9+JWskkWb5O/CrZf6B/ZfVnpQmHs
+/M2O3Rfxs5DHTS1xsyZqOnj09eGNKu0egEePZZfAVrl6KhnFn2R320LDFI6psqXg
+3cXDOi1c1g/0NHrnMmz2uZ9Xo7Qk9fe+nzcu9DFWoljqEaVH3txfu/kELQIDAQAB
+AoGBAKcTDxR4uPspW4y+A3dDoJVHByW1hL+LTXH/w+SpIhuR1cOZzVMkt5fWkfQ9
+z8Olf4f96bc/zt8acI5drGJxNuvcRgHps0qYscz+VPrj9xEKKqXPLk6DVFqs/m3L
+8LD5rC0rCGQTu0QI4LMltxb6mZGebgzdxqNgL43vweijZ/SBAkEA+qvTh7zAFL4m
+LFzMP90lWT/Wr6uEYTwBpPuXlVaQwIqnsttGQE8h9lbzMVRAqFRSKKp7brieNgaY
+/n8XrFf9aQJBANyGHaOlCvXvF2vpZK5EvDLB3rHbngxdqZXgHKQGpXSPBQAJKW+F
+w/a5rturM+JTbEtBfkT+2/f1H4W2zLq1xCUCQDyycIT0mlordNjXG4n3RXzn7Vca
+I/LbcdZ+KUU68c/9gv/XApq9zo50nWx7ZzCbQk2ggkTcJUsVq+Qr6BKON8kCQCD3
+N5UQBgxvunuaPz/B7LRVwPmrj/vfQIu0HfPzPmanPqMbu4L9ZycJ6PbTqATsXaL+
+XmboBnARx62QfxhmNbUCQDxUykVvfZBDLdSPUPoo7ky9JCwR1B+drWSKUGdPb4Zs
+mipEqn62I2FBYiVBenD652u8GEqV74x7XEaRLWnTY/Y=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/acc_file b/server/slice/planetlab/jp/acc_file
new file mode 100644 (file)
index 0000000..5a4ef59
--- /dev/null
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf
+iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK
+2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ
+Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG
+hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3
+NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+
+GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX
+n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4
+gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz
+8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG
+O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL
+m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3
+MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69
+KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n
+fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3
+si0AZRHgngrWmhf85bKAqS210OWHWOM=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/cred_file b/server/slice/planetlab/jp/cred_file
new file mode 100644 (file)
index 0000000..6bd1404
--- /dev/null
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP
+5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx
+hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt
+EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud
+EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2
+LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp
+KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz
+bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk
++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw
+28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO
+7LyVz7tZQkIyNF23gv+z9IQU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2
+JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6
+R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX
+h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB
+/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt
+MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l
+dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U
+PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp
+26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG
+teVEYDdXpA==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/jaist/jaist.cert b/server/slice/planetlab/jp/jaist/jaist.cert
new file mode 100644 (file)
index 0000000..0a23671
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqYWlzdDAeFw0w
+ODAzMjgwMzQ0NTJaFw0xMzAzMjcwMzQ0NTJaMBAxDjAMBgNVBAMTBWphaXN0MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJIO5ADHk+/l1Mw9wdIvEyAJuyGHrL
+wtK3CxKTCnJKD+5nB1RQzAKCvayEM69MUxIwjLI3wZrd6sEWsx5aBl16eojLajJY
+AODLWJ9KtaRdZQo45MUquAuJVsFeVtVn9ofnsG2edvXpJ6iHnylvbfcUDQNvUu/r
+SBHpGqHM41HxOwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACLg8PuRj+tR7EefmcuN
+St0uAC13wj5fbbX2oFWZVCgmOUZolvsXqomi/PGIg4pra9gc3JNUaTkBF9Yn10f4
+bYWAZnItREGnPs9Gtj7mzlPoplixZt6FOpZCvyau/gkOfBX0wM5UYT3Ky2HGAgI2
+U52fVa1c66pTspuFdy/mRmdC
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/jaist/jaist.pkey b/server/slice/planetlab/jp/jaist/jaist.pkey
new file mode 100644 (file)
index 0000000..e6bb621
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDJIO5ADHk+/l1Mw9wdIvEyAJuyGHrLwtK3CxKTCnJKD+5nB1RQ
+zAKCvayEM69MUxIwjLI3wZrd6sEWsx5aBl16eojLajJYAODLWJ9KtaRdZQo45MUq
+uAuJVsFeVtVn9ofnsG2edvXpJ6iHnylvbfcUDQNvUu/rSBHpGqHM41HxOwIDAQAB
+AoGAQy0FhkzkPh71CIuuO+kMyBed6Pj2IpI6kLpZBNWLYKM7jBvNlILfH828Dhe5
+J/Pi8mY7rBW05QPgY/WFYKoZlBQNwHx6ici0L8omYSSpiXLcDdau8tvNPvTDRokO
+lXHE37dmY/OGTfMm6fg4pd7xf++Pmqdt11EZJZTTSJcpJGECQQDur3tXH0GS21EI
+icH5L3irT6XY+TaBdsi8BcahSjPKqt/Zz6bt0YOF5a9TKxujZQIaIrh4SLGv8Wo1
+iFgdx01rAkEA17f/gJz2FtgtA6EmaaU6qJDZTaHnGwmIkmEsFZ6usxrevNPX6ZRH
+9JPf96mg21xdyuKPQ8/thzu/6Ono2s6PcQJAWmbQemD2Px8eA/PZKf4W4Bucnx9U
+y5gn0z8EylYGY75wZljFytFN1Ur3KrLrFunM8AUyhSxTUGZJadkoNq8j3QJBAL7V
+prGnqcjR2xif4nSJWFgxNBwKg4GWsHwWfMJvi8sklTFlE1gu9mz2uKbHKGeG0e6e
++PCbrFz7Ta4F6BpRq/ECQQDIP89td2HTH+zlHT1xqbAiTxg49f4PWBzHFPxq85Xa
+XiX/cmdz74eIU3vEb4kpZ1dKXgh5kEnFFEx5f6YaThYx
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/jp.cert b/server/slice/planetlab/jp/jp.cert
new file mode 100644 (file)
index 0000000..eb8b77d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJqcDAeFw0wODAz
+MjgwMzQ0NDlaFw0xMzAzMjcwMzQ0NDlaMA0xCzAJBgNVBAMTAmpwMIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOfiurH0dBuwTFgTfWafbVQXcsY6IQs
+3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK2xMUYWuqcyErA9DCD1Ln+PLEJnsk
+x5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZAr/iM40lSpgUTHzHBGOlH7lNeY3U
+ZvLEZQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALJUkagbTvwjkNswagnzmFOwvrgr
+27VE+lze9XYu97FwLeG/ziU2zZHvjO1UVIzbisNGm6NUpKLwvXT4OYXmOQy/pwRj
+W+XxBXA51DNI275W3zEhm/ChH70rG9KlaJodGld4CK7lw6ZYYl8mvxV76T1V3oZ5
+SYElO96gZAMA3T9K
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/jp.pkey b/server/slice/planetlab/jp/jp.pkey
new file mode 100644 (file)
index 0000000..dd128a1
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDgD+Z79eOfiurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAI
+y2+puX30TZPVja6AsYbLXJsK2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/x
+bVOxDSOWQOXUKMxRbRCtlFtZAr/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQAB
+AoGACPpaH+lwX3ovgiY0FdwD4Hn/N1uGIlw/wRXABhQ86UEl6OI048VTChf2pg1d
+uRbeQSXb4tYpGDxC/XQR3liSoZVgJe4It5otzn8D6EjVlbvf482G3VbYkLCx5yda
+wCV8NRjeazXcvvXJeMpvBLzh/cckVB2hiIHzt9nw1QrbkJkCQQD/N4vA03NpSJQa
+CBuK3aXBJE6yKVuEjxZGBQ45X/IXImro/WOAet3NF8NPaFSHzSxXRez8r5fAcMuV
+JNMZCG5/AkEA4L/ic0jl8sTVTk+eg7CSlweg3TwYLf4qvYH7hqepgPV+S5SMiUFN
+iKxaj+8VZrGwq4EDkDgJIgoilWEcPaxjGwJAQzP0J9VGGZ4T6XrjDcDpiZ8u3bkI
+MTKgUdW49iCularpbepzDfzMdNniAwHc6Fl9aImwKqVuFy1cXixxLbFLrwJAAWfx
+6Lq6BYzJsNW6riQ6pos7rGal2BPQ/KKFilAeNVpT0fE599navFIntuLOBXhzHH+Q
+ICTZmcbqdHjJDnG3pQJBAI5UOdMLQi7APvItfyodK5wynS1FximUrn9pF4CTJVCx
+QKlRhnCTy4O1Sprl70xbKA4XKpTTHJ3pICoLvFM8ueo=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/keio/acc_file b/server/slice/planetlab/jp/keio/acc_file
new file mode 100644 (file)
index 0000000..603f9db
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MDQyNjQ0WhcNMDgwNzIxMjIxMzI0WjAaMRgwFgYDVQQDEw9HRU5JIEFjY291
+bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVoqTRxh/259AB1p3+G
+HcUxSKpdVkKgJJGXvsCtav2Rxu9jlEq1AHt6Ff08YlqjVLPbSLTxVDDYUva+fmWl
+SzWRRZdVkPrT5PipoQ38HM/RlgsMaSsB1otJd+sbVP2Opwbqcc3DZ4+NbRAV051Z
+mzR4C10QIOkYBaa+D48ocjC9AgMBAAGjWzBZMFcGA1UdEQEB/wRNMEuGSWh0dHA6
+Ly8jaHJuOnBsYW5ldGxhYi5qcC5rZWlvI3V1aWQ6NjU5MTQzMzc2OTc1MDYxNDM3
+ODc5MDUwMjkzMDIyOTMxMDY2MzAwDQYJKoZIhvcNAQEEBQADgYEA0NDOfUAk1Puw
+ghgHzdXzTBZLJkhj9B80D678aSGX/dSOIIJGUo/AXRNfwtVRVUfQ+PQs/LgygGJ6
+u1NUTuhVDJrJROd+bguDp5DSqR/om9uupSvGxGjcGGLpcrGES7hWuTU1VIRgdC8Z
+1BK3qYToeIsiaDzIjrkZplq5brgBHoE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf
+iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK
+2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ
+Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG
+hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3
+NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+
+GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX
+n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4
+gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz
+8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG
+O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL
+m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3
+MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69
+KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n
+fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3
+si0AZRHgngrWmhf85bKAqS210OWHWOM=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/keio/cred_file b/server/slice/planetlab/jp/keio/cred_file
new file mode 100644 (file)
index 0000000..f26e76f
--- /dev/null
@@ -0,0 +1,44 @@
+-----BEGIN CERTIFICATE-----
+MIICTzCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MDQyNjQ2WhcNMDgwNTA4MjAyNjQ2WjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj
+cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0
+AHWnf4YdxTFIql1WQqAkkZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS
+9r5+ZaVLNZFFl1WQ+tPk+KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41t
+EBXTnVmbNHgLXRAg6RgFpr4PjyhyML0CAwEAAaOBsTCBrjCBqwYDVR0RAQH/BIGg
+MIGdhoGaaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w
+KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3
+LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw
+bGFuZXRsYWIuanAua2VpbzANBgkqhkiG9w0BAQQFAAOBgQCQ9r5c/zYcsPuBV4iY
+s1KD1E6B1xTu+TtvQw8GMK4JwTLaiBCdX6tiUkOHw40mej3huXD0KSDiBTt34Bg9
+9/E5XwqE0L604WATE4zVzz3s/lP1MroMzjoSphFzXdyHHQRYAOMLWr8e6JLH8qvA
+CKI2ZD423aSCNB3FVxqlMyChwg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP
+5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx
+hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt
+EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud
+EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2
+LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp
+KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz
+bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk
++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw
+28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO
+7LyVz7tZQkIyNF23gv+z9IQU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn
+aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2
+JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6
+R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX
+h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB
+/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt
+MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l
+dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U
+PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp
+26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG
+teVEYDdXpA==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/keio/keio.cert b/server/slice/planetlab/jp/keio/keio.cert
new file mode 100644 (file)
index 0000000..f6afda5
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRrZWlvMB4XDTA4
+MDMyODAzNDQ1MloXDTEzMDMyNzAzNDQ1MlowDzENMAsGA1UEAxMEa2VpbzCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0AHWnf4YdxTFIql1WQqAk
+kZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS9r5+ZaVLNZFFl1WQ+tPk
++KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41tEBXTnVmbNHgLXRAg6RgF
+pr4PjyhyML0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCNEVlU0eBkj63NJBzt/pdo
+GBbu29BdYVxFzJ/t6cn80GdaIPBhxVC3yhhIqc5IytJNCKU7361rvUzkIZ7QmHhJ
+I/+2zNDKFKTTVzgizyY6OLRXf4uFTjkQtKFttdZ0xa3P4Iu0pGN+qxFUzn86XpHF
+rBp3xJGBIQK1aGfReoNaKw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/keio/keio.pkey b/server/slice/planetlab/jp/keio/keio.pkey
new file mode 100644 (file)
index 0000000..74098d1
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDlaKk0cYf9ufQAdad/hh3FMUiqXVZCoCSRl77ArWr9kcbvY5RK
+tQB7ehX9PGJao1Sz20i08VQw2FL2vn5lpUs1kUWXVZD60+T4qaEN/BzP0ZYLDGkr
+AdaLSXfrG1T9jqcG6nHNw2ePjW0QFdOdWZs0eAtdECDpGAWmvg+PKHIwvQIDAQAB
+AoGATq33olnxxy6YpfO0L8OCwFfn0S5T4GPmRtzhelm/4Rm3PfFMMdckRDUaB5FH
+NkjgSxNBO3WtZ1c6FRA+b4QiZ6WLbGRFLqYksOpiqryRXg6Hvlu4KIYrIUgOo0E9
+alL/bfNy3yoqs4zU5tqo+ETuoZsaAF3d05xbKgbvdlFpks0CQQD6MQOTJvL/aGBd
+iTleoJk+zc3NpFwYqUoUKti6eE52Elh0/IQEEIbbPr7/c7SeRDIETbyMhCeK6gUu
+8spkvuDfAkEA6rwgryjWpZTJDfIeZ5EGou9FpTMIQ6WaAmcU6ICd6oNtVeOCBajn
+gzeaSs1Z0YcRGhldC3C7AvfdK41IJJGV4wJBAJFRutPUAbycMazisbHm8lvqSimx
+19RzMBX6tRvKGTi3ey2oJj3+I3ZhQas616Q91Bdv155+fEFRoGUenLRbsl0CQGMQ
+JhMF/yA+HGOgTKiUkeJtbEz9rn0uBEMDUdWVgg+Yi6n1q8fLsni0HI94/nDouZT0
+I0pStvnXtSVOKKYWMtUCQGy/CrH6cfKZ3LIccJKSR4Ub6LIsjFqNIg3RdgcQtDpf
+9HXhuYNn/QQP26bg6CviPh1DcV70sjixyvgQ/leyLVI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/naist/naist.cert b/server/slice/planetlab/jp/naist/naist.cert
new file mode 100644 (file)
index 0000000..45a8a3b
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVuYWlzdDAeFw0w
+ODAzMjgwMzQ0NDlaFw0xMzAzMjcwMzQ0NDlaMBAxDjAMBgNVBAMTBW5haXN0MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO79i5Hcn2bpOv6himzZJrnnZf18A8
+LSPu2VTtNeg0jFg7P8U4yPW9z52owGUsWVCJuvdD+wmSG+BU66LpOHhIJVpEo5OV
+2tKCqMJ93MmWYuL9L+jH/v3jtJiNzXcP926FXQ7rdkx8CU0r9eRBW/hradI0+3rt
+9S+WHH83uD6kRwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJv1n/CkDDvUdrg/ysfi
+4tPEshjvXNeR+HJY6Kd7Y6QQXmrZIm4aSCpEbfnTk1xbY7JWzPRRoik0Vp5lkCyT
+Y438xLOEmOsGedaNs3y2Ko9ztQmXQ5TGKi2vOA7aREWIRtVz0uX9LlTBkBBc22WB
+bKoRLfruXogBrRcj8gp85uPo
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/naist/naist.pkey b/server/slice/planetlab/jp/naist/naist.pkey
new file mode 100644 (file)
index 0000000..763d8a1
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDO79i5Hcn2bpOv6himzZJrnnZf18A8LSPu2VTtNeg0jFg7P8U4
+yPW9z52owGUsWVCJuvdD+wmSG+BU66LpOHhIJVpEo5OV2tKCqMJ93MmWYuL9L+jH
+/v3jtJiNzXcP926FXQ7rdkx8CU0r9eRBW/hradI0+3rt9S+WHH83uD6kRwIDAQAB
+AoGBAJPkyqkSZyLeSGKzFccwqHKNn+BDm7nmMQYlARM/MaNMokpF+zfoN+jeFrli
+N2yIsIyeuNU29tIbZiqK9bVkjGEJCD6dzV7TgAs5nHprd94y9lH/wv9MwrEorK4H
+ru24pWiLuP7xuxgDsmYiRMiTghDaQzNcxkkz/GIRusRHYZwxAkEA/Qr5ebzHHB1I
+LXccIX24QVjuq5kRp1cxfTeLKixYtCC2UbdcJ3MXKknKYcof5LKDbJ6g6+gp1rk3
+DvUo9SsfqwJBANFa7/agRJcqKBNAhBEulabov8+iLBLh5oaqHW2ww0SOC6QnMjPC
+4H/xBHvlKfrT5A1QXM2jPVtDtyL7XxWY4dUCQEWqTtLYSU0RNrzlrQX/ccnz7Qmr
+Q7P5inN55kN/IBC/bNKEk8d8pSUMWb6ggjVZfFtcNNud+F7YcTMaBeOxsq8CQALw
+W94CcfQNS3K5vSDgnokxS0AG7sd1FF9fk/ouOQ+FTvSG+FVxruUc5Qs4NFapEtJ9
+BlB8sifN04xSKwuKkeECQA3FzuEJpvi4l4QwhM5EFonrOByFBkBc4VSXx/qc5L4n
+S7RUj+DFn0KnkPmhz/NT/Hyt0ytTeq+/i4F+VWnzWio=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/nict/nict.cert b/server/slice/planetlab/jp/nict/nict.cert
new file mode 100644 (file)
index 0000000..217428e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRuaWN0MB4XDTA4
+MDMyODAzNDQ1MFoXDTEzMDMyNzAzNDQ1MFowDzENMAsGA1UEAxMEbmljdDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA30SL5+u3hbtXEUfWoAKocJvggCB5gQDd
+4YcvFVi7JpgncVxm0WteQmc5Yzs7OISzcEZ74CX5fylid/FF7dueRPMNXLQfB2PF
+k3StYMgek/suPEDQtiV6iS0VPwuhMhIc0aOZYo/0ROWLNECjnBWb6x08or+dHwE0
+t9ekxSDCzqECAwEAATANBgkqhkiG9w0BAQQFAAOBgQA/Pq5O3G2PUXGjLth+UQDH
+3zL8kaf/nG809S0grsgDKJpHAIH1xPmuUlKaR1JTH4FssrqE7z+f2ujtA1lOqBIK
+TclcIvOU391NWhCW7BBwOn529wAXScEu/9wRlZwuPn81q4F1u1vGuqNeV9BYRZv6
+sRHMZaScPE/VtkbZtcIjnw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/nict/nict.pkey b/server/slice/planetlab/jp/nict/nict.pkey
new file mode 100644 (file)
index 0000000..f6699f2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDfRIvn67eFu1cRR9agAqhwm+CAIHmBAN3hhy8VWLsmmCdxXGbR
+a15CZzljOzs4hLNwRnvgJfl/KWJ38UXt255E8w1ctB8HY8WTdK1gyB6T+y48QNC2
+JXqJLRU/C6EyEhzRo5lij/RE5Ys0QKOcFZvrHTyiv50fATS316TFIMLOoQIDAQAB
+AoGAPk1yfRVZ8QeGFFxnl98mAcZ9r0NgpI8JW5XNnbdVAkATQZ73UhkUBJOpf/dX
+Xz4olHwWtUXjiYiS4cWCLg3K7Az9eU1ZUXOM/lzT4jugXqTmPl1T1IwaP+RBahpm
+T8WKqvtoxvllca2FocPe2bUMi18scSSfLI31yFH2mURLxMECQQD9pExDLZL1Rqva
+YBPs8ksx97t2PDCd8XS25+nCnqCWfnE0GC16aXexwlgGq67Xxg8W7cDK6ZRPJ93B
+/x0Gp1FLAkEA4Vf0Sw4j2HTMlq/cbdaVT4cWWsmTo/8rU+QeBdAIPwAFavj/v5ZL
+CHSoIcVXzDGunkaXW7lZPOFQO7zK45yYQwJAI4BcoEZ/vE8A/NbX0yFyvvKyzXDN
+ST4jnPpG8NOtHINkKut7ahfbBglysrRTC6aQNCBhDMW22YF1+5JOqMDAkwJBALXU
+lOkjRcVZqeRFj2aJ6f08Ecu8MAf61Gli/t7N2HmNeNGyjht4GJ+AElL9vDSmOjK4
+31VCIEHBxU4OruAu8aUCQAFJuuUR5zm+JaQQTCnAv39NxTugHP1HXodajvnnt3xI
+D6BHb0aT0ZanWVw5Q4Rzm/ZMi/apyfkYw1BApfaEh5k=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/osaka/acc_file b/server/slice/planetlab/jp/osaka/acc_file
new file mode 100644 (file)
index 0000000..e969bdb
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw
+MzI4MDQwMDIzWhcNMDgwNzIxMjE0NzAzWjAaMRgwFgYDVQQDEw9HRU5JIEFjY291
+bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANAGdic1KHHvvlTE7id6
+fmQU4HZ5iZwp9RqFiflTlvc/fJelxS8cV51rE878eZymgbVYwLIcO/Tyvfkg+axM
+nBzzWgzSX4wk/zuuNPV0ZwzG0Vf9EN/hzqzu1KWRMxT0/vz6Kri33eTgbyURWp4D
+OGYRqR7E573fDd8SWGfWW7AXAgMBAAGjXTBbMFkGA1UdEQEB/wRPME2GS2h0dHA6
+Ly8jaHJuOnBsYW5ldGxhYi5qcC5vc2FrYSN1dWlkOjE1MTI4NTYzNzgzNjk1MTc5
+NTEyOTg5MzAyMTMzNDQ0OTQyMjMyOTANBgkqhkiG9w0BAQQFAAOBgQBlo8xLJmkz
+rulFxopVFoKm0bSWtX83yg8YvTauCoxlcN+s1tgu9zT3L4nUsrzmTtrERAKD0XVK
+kM8s3PZ8bEq4cez4IMLGGMDBjC8t0QoCjftTTfHNLAT/4Bjv5q6NlCo31wKfD+02
+1H7ebavHehNV3+TJfX971Fvf87UDL1wFJw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf
+iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK
+2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ
+Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG
+hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3
+NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+
+GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX
+n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4
+gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO
+SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz
+8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG
+O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL
+m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE
+hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3
+MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69
+KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n
+fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3
+si0AZRHgngrWmhf85bKAqS210OWHWOM=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/osaka/osaka.cert b/server/slice/planetlab/jp/osaka/osaka.cert
new file mode 100644 (file)
index 0000000..ce4da44
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w
+ODAzMjgwMzQ0NTBaFw0xMzAzMjcwMzQ0NTBaMBAxDjAMBgNVBAMTBW9zYWthMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQBnYnNShx775UxO4nen5kFOB2eYmc
+KfUahYn5U5b3P3yXpcUvHFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+M
+JP87rjT1dGcMxtFX/RDf4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe9
+3w3fElhn1luwFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABOBGbnYsv2xjOXidUtp
+e1woERQGJRe7HJrbo9NyI5ozjSLt9yphY11ZmNex2IhKIrmbRSPfDnKNYaMHFOpz
+qbJMCmC4uUIUd9HY8bg4mQ4wjwdWkLA9uWlmpAFRoIY3eNEvv5tpUnD3sV1dEDsQ
+uQQcjxVTSgQQgjpE1KJ/KQ6q
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/osaka/osaka.pkey b/server/slice/planetlab/jp/osaka/osaka.pkey
new file mode 100644 (file)
index 0000000..25155f2
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDQBnYnNShx775UxO4nen5kFOB2eYmcKfUahYn5U5b3P3yXpcUv
+HFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+MJP87rjT1dGcMxtFX/RDf
+4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe93w3fElhn1luwFwIDAQAB
+AoGAflTuPDFUNp1aATD3UJJbX3wuNMTqhSQV7d1bRUc2T0EG8TGC5nFX5Am7JeC+
+GhwkeXVE0OXEo6UnKbyU48ZCp1lL70bjiPvhS/wceTbjuxJq2wS2hjIwf9NKyZ1j
+ppO0gpvxOVNbIgyS3Yj2T98sYkJCVBnBN2huUsfzmHSeKIECQQD3SOiKRGfla+Du
+dfBY7tKNxxXYTZwV2eYKhMZFW6rMcGboqoAXFMVUTEdHB2Ozk2wHsKcDb3WFpqQI
+0QFqdNefAkEA11tW5cDIjiLeppSi57knZr9aYfysJcHslez9wgFGgK72s8XB8CfS
+QqzPTmQm4F3NVM+5Y5PbMp55ntEiwPg0iQJAMnGsBjCoJRPZoatraSjmyMc4/JPw
+aEC3/aNSMundMLEpPQMy+AJjsquQyruGKibDndn6Z+f/yFDTG31PVaEaLwJAV8AQ
+GG4FSmVK8/V8q472TxeJbIPYYUozbKO0gmiioaypOXdLHuAa/LANiJOmg6W1FOnP
+UJPerTGFvQDaeGaqgQJBAItAXexGSQEA1AKVzP31zorlb6zBh6dTxxrMhfeROwZx
+drr47bhcwuiJ011xXzea9iy1dWJOtC8JrQ/YVw14Sjc=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert b/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert
new file mode 100644 (file)
index 0000000..3adcfe9
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLdG9reW9icmFu
+Y2gwHhcNMDgwNDA1MDYwNTIyWhcNMTMwNDA0MDYwNTIyWjAWMRQwEgYDVQQDEwt0
+b2t5b2JyYW5jaDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxU+FKE6oEaHQ
+lb7fZqVY1yJ1bJYULM3Q5N2Tlx3nPyjOViQ0QohRplSKsA8DEVVgFkaq5xHBXdQv
+itTRDY9XIJk4GCqrBSL6c45Mt4TgGcPHhBmHjW+vG3OMhZp9D7Hd7lgo7ZXAWUBw
+eAG0U8koajPvgl+RTrkbMQjeh3TKq1UCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCm
+qF+VWD1nVwOZpsN42juCb/OYQuDKC//ZMR6QVjOZvyrO1ZolqVM4JHfUkbWLBE4O
+8qLXIeXi86P0Ox8ur7oIHmLa7AzRfFwduwWzqJxM5/gihScA/Ym8jqHJZ8AdK5dK
+QVJ5vhIhNVjQkoHsCw89+dn1jXlXGXORdZMrZCKe7A==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey b/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey
new file mode 100644 (file)
index 0000000..569e960
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDFT4UoTqgRodCVvt9mpVjXInVslhQszdDk3ZOXHec/KM5WJDRC
+iFGmVIqwDwMRVWAWRqrnEcFd1C+K1NENj1cgmTgYKqsFIvpzjky3hOAZw8eEGYeN
+b68bc4yFmn0Psd3uWCjtlcBZQHB4AbRTyShqM++CX5FOuRsxCN6HdMqrVQIDAQAB
+AoGAf5bjaWQrpHM52Yt7FPo5D6z1t8j4tNxGh6iMxvyMS7hMbUGuFZPnEKK8qAqd
+FjlaEC2UWCWQH+eU8raZlKYrVQNyCdo02JIACxppy8zGbdScrvJ4zcNVsqenKJYn
+YlqtLouaZlo9LcUGrsjBm/Ob8nDXaaMm8DFaArgYlKqxV2UCQQDimOTTmFQeZCC6
+339YGp7KhhN4SlzHbGK9yDbfc3u1IH/+FebuDQV/lDWFDm4KgRxTpGRvEz0AiDjl
+faOggGz/AkEA3unImuNW7WxgSCiEVsb5jQI7gbneiGGEaEPyWQ6WvEUkBaGeHc47
+hdPh4xDyarfeGYxfPginTLvaPfMn0OUjqwJBAJ3OTuYRWtvDbYvXJG9uMpHmZ97J
+Iu37TJTQv25Ela2hkaGZDTdRuDeONuuQDhCgs+KIRS2Z30zkkYM5SV/4sG8CQB12
+XNNL9PNQfbFL2aH2jok6oE7XGDiCWxPE10U6DmY35TjxUYqy9V8M0DBIzyGXx70s
+tnHmhuY3dfL2Lm8Huh0CQEq+/+sgUHe6fIYsTtOSQ1nxxfU+jM6HazzRoz+T0e+c
+6ZfMyw/RQ/0+sLiTAImI8YRWFaRKPxU/uqHTOaRPeHg=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert b/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert
new file mode 100644 (file)
index 0000000..f545b68
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBnTCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAxMMdG9reW9icmFu
+Y2gyMB4XDTA4MDMyODIyMzQzNloXDTEzMDMyNzIyMzQzNlowFzEVMBMGA1UEAxMM
+dG9reW9icmFuY2gyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD2+WE/yzWe
+vPV7Wj2dRL5V+fEAvBT11W2B406gzUjkYdWqN1XxgJSBSMwPOP+BGuVqfWm0C5/I
+d+lURsqYucKGQ6kZBONKXL79qZzes8BV48m56PaqIG5aldGmO+6ci1kyAgAJXRfb
+XI73lXlKSyb2SwzDYyid7y6+ifVxBx2F2QIDAQABMA0GCSqGSIb3DQEBBAUAA4GB
+AAaOJT47A7aMrZdJqOA5bBgEIB/BhrpyIEaS+dn+57e2pPI5qjKFd7j4w+UlbfNf
+c0h399UUOR7DkLyo7jKuQDBffyeR53da6XRzprolwLfT9Z8KTzFg4z0kn5FX5giY
+Ca5zhgoA1NoMQupayYBhkOvcnOIqSRytPEgnWUcBDV8s
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey b/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey
new file mode 100644 (file)
index 0000000..5fc9fe0
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQD2+WE/yzWevPV7Wj2dRL5V+fEAvBT11W2B406gzUjkYdWqN1Xx
+gJSBSMwPOP+BGuVqfWm0C5/Id+lURsqYucKGQ6kZBONKXL79qZzes8BV48m56Paq
+IG5aldGmO+6ci1kyAgAJXRfbXI73lXlKSyb2SwzDYyid7y6+ifVxBx2F2QIDAQAB
+AoGBAKuY49/uMihDxBBbx9mgrNqR2ciX5bxU+Uw5AiWp3I6KB2nIHte4bfZR/S5K
+fQRYCrRtxObK+M7RufXLZfKthqBjr7+Sj6oFVkd3r7joSHnrFXB43Y3PmS9npzV7
+Xai36AZZ7EK6MXpuzqbZ90zbZn+SDY7Lp871qDXjxe9ud3wBAkEA/VtUxgYrxvXa
+c3GWRDqkqLNBhdxx9K6nZ/aQal8NH9JdkD/d0dU0XxMzLSSoZjOVdXM1eSUXu/BN
+lSKmkDwQWQJBAPmNAH7NTpd+PHAb3Swq/Zvbq/e7fV3AWLACJu87sKYWXt13NviX
+WE7YZHPa3Y00k8uO4QG9tMa3BRYP2z5ycYECQBi157bIs0xcfkn0MivFbHnnweRE
+c/jhcAJ70eoOC0GnSuje0cu9d7YuMTed867EKTejXPvL2lzCO07oakZ3FUECQCxI
+12OpL1826abDaxZhcqvr6bKGtRKkBZkGaL5fi1ON+Lu4YirvQJ6NTBY7KsHaKLgg
+3NEgRypUZDSsD64fRQECQQD1TYyFfJ4CyA0bOTOaHvDIC5Hz542jiDISLiaool4k
+eAWBdX2gYkM4GLFG3CnxmK3YDLWpQCytTR1x/5jLO5/R
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert b/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert
new file mode 100644 (file)
index 0000000..fb48fb2
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBnzCCAQgCAQAwDQYJKoZIhvcNAQEEBQAwGDEWMBQGA1UEAxMNdG9reW9icmFu
+Y2h0eTAeFw0wODAzMjgyMjM1NTNaFw0xMzAzMjcyMjM1NTNaMBgxFjAUBgNVBAMT
+DXRva3lvYnJhbmNodHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKK+rNrP
+EemVhmGvtOMFFdCSkegZ48XQ9Z4//McGuxAyDgrKk96T6lDzFzza38vZx8jqAzXm
+LEbI/Dq/+iH0znZM4OX70Qxea9QcZdlNO9Ceo+XGfgEozwHC1Tv0GyE2jCDNFC3x
+eRCnur7Q/Q8j4PIOcTBmcOP66Ive1By4zyxxAgMBAAEwDQYJKoZIhvcNAQEEBQAD
+gYEAPC4+9kfbGbALxxIazogV/sFz0sCP2Qu+HBKPX9AB5tQRMzBJ2q1drGgHNgwu
+mWdGCtSH4f5pIubj/gA4Ss0dONuCe06QNaqAK7Mc9S5m6a9jmd7VNJ3SrwBn+Pje
+K2Cnmzt4+Lh53GmRY/QqmQ83IoLyUCELusLx9wMslHdB+ew=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey b/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey
new file mode 100644 (file)
index 0000000..5c9b9ca
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCivqzazxHplYZhr7TjBRXQkpHoGePF0PWeP/zHBrsQMg4KypPe
+k+pQ8xc82t/L2cfI6gM15ixGyPw6v/oh9M52TODl+9EMXmvUHGXZTTvQnqPlxn4B
+KM8BwtU79BshNowgzRQt8XkQp7q+0P0PI+DyDnEwZnDj+uiL3tQcuM8scQIDAQAB
+AoGAYHlr+qH52mBbMxl3v4RKNERO3ipKzf9bOx5veIRS6/zgOiFwmudQZgBU7CxL
+soo9VqrykEcMREHs097uJqb6pFAi1Sl1eL5Wp0A6irPsGKotlEbcjtgOw4SshBZP
+98heo9S3tlflIoHF22gp012cyfzSbT1P2cKPgB4wLMwxVOkCQQDU+AuwUoI9ypFl
+Q90kCYaJpKgQomeh40XoYYXzKQuJymt5L6h6/CMfHAEkjZdHI7aHJev850GIdeZ+
+PaV5YTvDAkEAw6DBcAWik1fN3ZBTY5LcRg95deiHt+IM1AHd3Uh/f8Y6M5gdxh5J
+ny4RGIikm7oIXt8iTpfBWU6wg/idn04XuwJBAIRjfcCqSdRnrGKrATl5wmymMuPE
+UW/NfJOsrDwwc7/AWXcILU/mlV6tZfh3HGdYyArThBO/HnnZ8OLhJ5CA5UkCQQCi
+WSKvSL3m8ZNTMJdDp3lOW0E9bMBVBjAHMZViMuw8qdFbR/5NkI0goSZm6d9RrU2N
+Djh2aNJ4vykWHJkSv8hJAkEAw+0Q+agSCgG4a5Fm3K/a8Wg1zE83Mwozq8omYWUg
+g1ByDA1aKANmpd7+3xQEe7vRSO1DpPCuIWEf60eMuLPpgQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert b/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert
new file mode 100644 (file)
index 0000000..17d8088
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu
+ZnVrdW9rYTAeFw0wODAzMjgwMzQ0NTFaFw0xMzAzMjcwMzQ0NTFaMBsxGTAXBgNV
+BAMTEHBsY29sb2pnbmZ1a3Vva2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AJ0qH3RG7sJScOAgSHRWzYhlIyV76N3SPg0H7RJ4P/0JBd0UvoiTKBRThiruzaLe
+QTcxkw77OHvfsdoYa7ob+qtAYIzK3AtPT9T9b8iRZK5eDamoL7gaZnH8XFD+QgsE
+YD9ZlJNhU05H/KjnywjB1zOZSAgLCmseLrbnrY19G1bfAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEAQxwyaY8MTRQoH9GK6JelQG3mymTVuJFHIfcvB7/SeTmfT6lkX+jf
+OffVNSSQsl59wjmgwaojypUguIXaK9z5TfC6Owr+2I1sKQyNWZHpdJJoy6vKiun5
+h2/apDEHl9Sj8wwAh4ePKmj5IZVd2uzw+mhSkMQgduIsYCqpo4JgYv4=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey b/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey
new file mode 100644 (file)
index 0000000..ab2b474
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCdKh90Ru7CUnDgIEh0Vs2IZSMle+jd0j4NB+0SeD/9CQXdFL6I
+kygUU4Yq7s2i3kE3MZMO+zh737HaGGu6G/qrQGCMytwLT0/U/W/IkWSuXg2pqC+4
+GmZx/FxQ/kILBGA/WZSTYVNOR/yo58sIwdczmUgICwprHi62562NfRtW3wIDAQAB
+AoGAeRIYBQUXrM7BcYatCiJMVwRCXP/lVew+LN+sO4wzDwRCZhsy5Bcoyu/E7ZHl
+C9BXQOOJvAK/cn3SjoY9hrNDGDB7iAXcfZprzQVEqvww0GdwTEvMAAzLcYFyd4In
+D5d+F3sqmBdstEiYWKWH/pO9UpHxZkb8T+qPQFl2p6zGXRECQQDL/1fPVTGRYUKV
+/Zcxyycz505PDqAPbmn/tGx9cfMhInTqKg1ZQx1SFd8aEDQ1Lo4IJVzaf3M2FRBw
+ghXR+s9rAkEAxTqDzgUDOdKVmnWCAOkGCvDsSfdiDQpQjfEo19VjcD/Vmsz9jFBE
+KW1JqD5sw3F5z3b7wEtoUeZXFb8E+Mo3XQJAaP9wbuLmtHFfGFyCKbrq3qg7gi2A
+7PBj1p1DCf5QqclWbABhBoSo3ssrHfshJA5mRIMWm8/luPx2jbInEQELKQJBAL7T
+2QeTDgX6XMmv/HNJA5G+fcErXHFlk39i4LPEQYwwF0rKIGCMoQa8OVJR5AZOWx+C
+7h6mV282wPfHdNYLQfkCQQCKm35zZTQNvVWZUy2ah/NCzwDHSd09WxsiQwmX/TCU
+6nBSAr280D/oD5v3QghqCpSrWBWMpw9OmHlEykB4KNwu
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert b/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert
new file mode 100644 (file)
index 0000000..c9d6f25
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBqTCCARICAQAwDQYJKoZIhvcNAQEEBQAwHTEbMBkGA1UEAxMScGxjb2xvamdu
+aGlyb3NoaW1hMB4XDTA4MDMyODAzNDQ1MVoXDTEzMDMyNzAzNDQ1MVowHTEbMBkG
+A1UEAxMScGxjb2xvamduaGlyb3NoaW1hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
+iQKBgQCbhgXoF+JSqsc+t0M0aBbX6f83PTFj+HH15QBdhE9lFYHy6aGGpu+YkBeu
+mZOCZjkc2k8JiAaKA5mheQxhSP06BxU2z1rz7C52437PV7DylvZqr3R38SI78sdu
+uzqlz4uqfBvTFniyWSvU3RigXFobQ4xgIzUGBnkDu6vqarVMKQIDAQABMA0GCSqG
+SIb3DQEBBAUAA4GBAAi72cMggGITIUQzH5tn46OOq3m0yPvJ4WX7PpZdvktqhQw9
+r4zfzvvAu31TTK9wwCaIesvkr/qEi8+kmw1BzJWmtlvtViyBZFjFm0Ko959fXj0W
+Cj19r+JOfCsnymzaUGTIm51KP99Def1sbORe7WjcqhmcVs912Jz5uwaun5Nw
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey b/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey
new file mode 100644 (file)
index 0000000..1011b5f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQCbhgXoF+JSqsc+t0M0aBbX6f83PTFj+HH15QBdhE9lFYHy6aGG
+pu+YkBeumZOCZjkc2k8JiAaKA5mheQxhSP06BxU2z1rz7C52437PV7DylvZqr3R3
+8SI78sduuzqlz4uqfBvTFniyWSvU3RigXFobQ4xgIzUGBnkDu6vqarVMKQIDAQAB
+AoGBAJeDVyfIdPYCaH/B/FgG/BI3ZisDk6WIOkXLZrK0nsCk1me3kmRjJ9Kitl+k
+QJ/uRL/GMu/fNDeq0DYOfrAcco1b5l9umueOh0jLiFNISxRXQs2HrJbJbVpHdQLU
+yylttBYCzROWCIbiI5VCwf8Y4WbBkzgYQjV1rwFA1MJrpGdNAkEAx4tKjcx05it+
+s27cnBhgAL3QbXJNjYRImjn3ztNPc4E7+f9V3XEiSm27a0YrG861v5POYnL21p2D
+Ffk4G7Ug5wJBAMeGYY58uJZdhlD14Otz9FvzAEKBUt+0gGyG9bgnn8eTZXBjeSol
+QAHvIIMcQ1ZYvaucHh5dVvR3MOOlZU2KuG8CQQCGqQ6IANlG10Vqy77fLGflODNn
+GMMTZJkmU0ZTcjDk7urNvC1zAj004zaenzzKSEZI4fNeZt0DWkqzUns135czAkEA
+pyD5NtFiDRHqIIbVEGTgmuTBovOQ57HaoQ2rZcZLIHFm1u174MGzC+ux4CEchodu
+2QC8edLVs5DjcsxoPrukIQJBALB4rBr9rZdN/nCl3Z/r6fGgyDlMGQbm5fcq7S/W
+GTnQzZ0TWcaltoga9VRPpziuGP81KheLd0+VUsjhiJxjLjA=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert b/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert
new file mode 100644 (file)
index 0000000..dbe6907
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu
+a29jaGkwHhcNMDgwMzI4MDM0NDUxWhcNMTMwMzI3MDM0NDUxWjAZMRcwFQYDVQQD
+Ew5wbGNvbG9qZ25rb2NoaTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzxZe
+Qb9euARCd19rdgnqIeYeZPUuoYkIjbl1HsY0Ti3TGuUfC0A/a0pCNEtfuxLG3nn8
+hDoNsMjr0yTKsCXpGR3/iqS1/eHFvfOJNptyby0imjG7sIijGE+ebe8QGI0HfIaQ
+WsEn291G9C8T4CvzJiogFEZEy2D8jQoz14/DQRkCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBLVp1/VW3H9iayq3sCWCLxNTlWIv/uUm2H2Ydc8vYziHy8h3JAHiupdeFg
+IUt5cg53Jv5Bpz/oojEmNw+P3EgOFBKBZQalkIjX+ztKQdDivksNB6YKK+gYumlU
+SmL+gyQwxU+bSQd1ZbcPE6kYe9jTnUo8M8wtz8h+qO0yfaSEBQ==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey b/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey
new file mode 100644 (file)
index 0000000..c7a5d94
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDPFl5Bv164BEJ3X2t2Ceoh5h5k9S6hiQiNuXUexjROLdMa5R8L
+QD9rSkI0S1+7EsbeefyEOg2wyOvTJMqwJekZHf+KpLX94cW984k2m3JvLSKaMbuw
+iKMYT55t7xAYjQd8hpBawSfb3Ub0LxPgK/MmKiAURkTLYPyNCjPXj8NBGQIDAQAB
+AoGAa0/TDk0F32PNsaBPxn5CxshBzd1ECc9CEHcfWxAowK58a755hNIJSybTAdhh
+RkbnqRgbo8WVnJuxoNu68ObkUAGJ8jK5Vg/p8wTFN1HV4zmfzmScd2F9yoV9D5XV
+gf1cgQak+pU1iiIY4UyXIZ8sZhKmGqIljx9b92zxErrAyNUCQQD2q04Qt+LFkXE0
+B0p54YonyHqw/Vnp3RU1kX2pCbEDAfgoaweUXb/PpEa4JUTSHzDmDkosHGd7+eFc
+phqOBdVPAkEA1uvC2TXneumRaCWtsWfZdCN+n105wd6QP/KP9eb8tfUJM8oXDroO
++E16vra3088EzxuOgSBOsM0ZaP+xkLm5FwJBALW5eqfCcWUQQ5ALFwk36eppPkqK
+O+WZJPj0GNmh9DC9EK/mOg1KC/fTlO4xNsR+ii3StT5OJsclTqxNCx86mO0CQFRq
++nfzEl9XCwRLeHQshF936a6TIbKixyo3DpDaD/0wqFKtWG0ya9rgJAxxHLeXox3u
+hwT1ObN8fDSf6pEcQjUCQD+6xj33DI/Pk3zWwlTtgjNm/N0IjgO/odjy0W/mKMX9
+2hRp6VCKOLqe0O7o0fbje+pFch3HDlVhPP5ZeGqp5ng=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert b/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert
new file mode 100644 (file)
index 0000000..1fff5f4
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu
+bmFnb3lhMB4XDTA4MDMyODAzNDQ1MVoXDTEzMDMyNzAzNDQ1MVowGjEYMBYGA1UE
+AxMPcGxjb2xvamdubmFnb3lhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ
+ZKU5Ee3fDeXV6vsH+AWcOWrxFo6hpCmJPfQveh/ELirAGdkBA1QqTtCEOWWtbsmR
+n16lOIPEt+iDvuyf30L1DuO+Cfy0y2rPj3HcfSIRTZaaNghuo3PdyFKf0Z+H2y5/
+Sj8IUtXRlVDGPxpVi5510NTcXhuafY4wXPpt1CNeqQIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAAFsNbW2k0Rfm0x8XmJkl4cpS1izZVnlSIyEs7ogxB4ZJOH38yromxSr
+WDzlHOLhoUCqFDWE/g+Peqr/eQTx7JhQe3fWpa6fEHKZ4UFkuxngP8klvt1uRheI
+nfyAZVufbJ4qkaOV435xQu4g0YBxrd4zi3lA9v3iUYoe5FwAOzO6
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey b/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey
new file mode 100644 (file)
index 0000000..f560b43
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDQZKU5Ee3fDeXV6vsH+AWcOWrxFo6hpCmJPfQveh/ELirAGdkB
+A1QqTtCEOWWtbsmRn16lOIPEt+iDvuyf30L1DuO+Cfy0y2rPj3HcfSIRTZaaNghu
+o3PdyFKf0Z+H2y5/Sj8IUtXRlVDGPxpVi5510NTcXhuafY4wXPpt1CNeqQIDAQAB
+AoGAOWoBO1/9MV8a230J/IAQy6HmHNYiJdacuvses5Xp+prdnF+CsgzAu4dLW6KU
+qNvFHSHTaaHQa/pfTSzk9IcGYw4cC0ihZiHyI1MgmN+9lPlZj44xOaZ/31g8qC1g
+B/c0iJIlHZ1iGm6tVZpYi75Si6LPRKgJS5YWu28pXM/h3AECQQD8JeXmjUi4qHTe
+M1waXqjRg/VBK1e9qlUicCOSpHPFmJ2x+EwNv4OnkrDLWeABNl9U4XpG7J9SXa/t
+HxXxPPbZAkEA05OhZr5FHwFYAkmPd220m6AvkLLIwHLoYIZ96yglVfJwal89Fcr+
+Lg7IGdUEIb1bB8MvZkUMMPD2ULXbVADkUQJBAKKDyqnOZhCegrS0ZaiZWjWv12Mp
+jGOyZSzNGiBp3jR9KSaL4nj59uEKquhmBPrDEK6kpSsRV56+w6URZBMYOAECQQDQ
+aN/YARy9SemTdzpm/h2mHsg71KCDUa0tR83JUiZU3xd08JOPYAG5BL5/E6GaSpfc
+sZuDNgioPPOk1T5TJP3BAkAuz6jfl5o70NZ9JG/xm1x+Gf4AIOkgYLwPWNW+c6Bp
+tL85SeQaDSskvwGjtNX4OIBdJiOgMEki54uRCnYFpC8u
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert b/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert
new file mode 100644 (file)
index 0000000..141b454
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu
+b2theWFtYTAeFw0wODAzMjgwMzQ0NTFaFw0xMzAzMjcwMzQ0NTFaMBsxGTAXBgNV
+BAMTEHBsY29sb2pnbm9rYXlhbWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AMpkSA0hJMOgrUx+v0yuSBdsUB4xBDayrSfQnUIw9keCDvrUH0nqghA1l+bf26yv
+rXSIcnxLqzxyCnk696vlVZHHNFWXCmQxTjwrDr5h9i6LcszIcdTOMH0tj5i0roCS
+oV6JoYe0tA5srrio/OKqhgovRCyUBhhGqJ3IEqwsWpEZAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEATT+5d5N5qrgI12LsnhwHkAw9IGpdztPkmhDd8ffL5nw2mKbUAnop
+C4miPqcQj3JmNSQLSJGZGTTd8XQ6MVIoCFNjBJrCSyx2KinuaKV9LqF357zz0M3N
+plvAGXc0TzUNluDBDcL//Go6QQGqW4PPDrjseTjp4WJB4fcf9MVBNrw=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey b/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey
new file mode 100644 (file)
index 0000000..af83471
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDKZEgNISTDoK1Mfr9MrkgXbFAeMQQ2sq0n0J1CMPZHgg761B9J
+6oIQNZfm39usr610iHJ8S6s8cgp5Over5VWRxzRVlwpkMU48Kw6+YfYui3LMyHHU
+zjB9LY+YtK6AkqFeiaGHtLQObK64qPziqoYKL0QslAYYRqidyBKsLFqRGQIDAQAB
+AoGAYHgoN8nigjSmJd4MRPqVdkS0c4+dmIzWKDIxowk/epotlbViLJNQ53UEMJHn
+XYpnPTKEj2Zp+mfJQjuvLgokHH083MoFkg+rbcg7sICcowy/1yazgy7Gyo4mTSWz
+Sy3dUmrWJpUj5EnFAyM7fRe2S8zydNF2OY2Jiz+6uLwZPFkCQQDlVDohCQ+Zzalf
+KuwnvoNFKi1bNKY66b3SelHM1RQyKgfL3AWtKg6GRHOFBgweayoiqYM90zb58Nxe
+khdUzoIzAkEA4e4OIN79+a8s7vxiXHa93b01Li4ak6dO5O9SpB75/vCXh+RXw8Ll
+HwAJgrYcMjnCLQnWuNwZ/uM/uL/ksFNLgwJAVANUPE/+eCEA4I1v8Gt52bfG3/fc
+wg5pbRdEql6RRINjUcqsBbE3mvauv1fkzqwBxqsFGnwrUstrX/XzOC1jQwJAIRdc
+DGZ87phAzZQ71+0wbAztgCESlXPY82E2SoGa/kNA/o9sZ2jhZEP+IJ4JzTV2gmBB
+ifv69sFUMPwyQ70/fwJAfr3BzU3QEcrObEXrTmFj6nndShMVQAv2xaS0oVprbMx8
+3HLdTpb2DxMiqT5bLg5pBLcoUGhTZi8mXt2EOhQ57A==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert b/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert
new file mode 100644 (file)
index 0000000..d21ec33
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu
+b3Nha2EwHhcNMDgwMzI4MDM0NDUxWhcNMTMwMzI3MDM0NDUxWjAZMRcwFQYDVQQD
+Ew5wbGNvbG9qZ25vc2FrYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvsQh
+G/Yg2RA8m9eVAK4sdLQBEMsEgi4Ngd5n59Rgj//O1K+cv/9PwsS4kQwwaD+gdaO2
+iFJLdGUR19ykJFgIOAuF4rc/ieH5Fncwhsi6+WjDCpK5qCZTFhL8eCc1jebAFF/u
+7Y3/tT4HqGcskuTIQAUzXBSdS8I+ck2fc2U6B0UCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBrcjxgxY8UGDofGEQ9MCQH5WRT0JAobaAmi2JhSrH5gE+q9k1erflRpqtU
+kmvJregmzfsdCKiKHKwzwSfEQxJLYtg4Aq8UNGUR3qOFs6G2cMq9UOF8+wGCIQz+
+pOgxaS7dtB+hZsdTQZbUe6pjQ61jCWikc6s+JyGT4bRklnvtOw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey b/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey
new file mode 100644 (file)
index 0000000..aaaf18e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC+xCEb9iDZEDyb15UArix0tAEQywSCLg2B3mfn1GCP/87Ur5y/
+/0/CxLiRDDBoP6B1o7aIUkt0ZRHX3KQkWAg4C4Xitz+J4fkWdzCGyLr5aMMKkrmo
+JlMWEvx4JzWN5sAUX+7tjf+1PgeoZyyS5MhABTNcFJ1Lwj5yTZ9zZToHRQIDAQAB
+AoGAL/8WuXtGrnZoWWl3QtGPu9kiP4Bk5QADQ/6aM/j6RqC9AEQi8yeggMeQDGZ9
+s2z2yUJkhY33EBTx1VbdMYu4nTmlafWTczSS/LTxFfNLEJzPvZ5TYpZKOfWXiStg
+KbebJszaW3H7MKfLfKxMIvC6d31erBM5iJoBOJvNfQE3uE0CQQDwrChGwcdBGm1B
+dZbT1qBsOkPbpPtyv65Jy6hx65dFRx0r/tPi2lua3s+D5laH9AbVJljV0C2XNJCl
+eBHxg0SnAkEAyupQzdb5I1fVSbMBZsF6ke5Cf7t3aE+h+nIFrRoQ12UGSylehNWp
+06i1Pp0k0/scg78NXpqB5UUOHxvVKwsWMwJBAKFMkHXTm4pLftv3Rk3Vs5C1gBMu
+QIPIabP1tYAcSDbbEXcSA8ovVGO4XtXkwyu85fNnDvTF4DhNt3/euA/oTVMCQQCX
+5KKsEvnYDQ2p54drBfXcez/oIcqWmNWlhejd1R86PXNinAsW4GIKAMX7ouJIlDaa
+IE+/u2T03KZffxQo7lmlAkBExI+VF9b8FTJIo53k/+NsnXkUXGrd+Li9ejQKlPaT
+AifkfZv5Lc58flFfd6aRbKYXROjq7LUA+MM2kE/2D1AF
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert b/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert
new file mode 100644 (file)
index 0000000..07dd588
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu
+c2VuZGFpMB4XDTA4MDMyODAzNDQ1MVoXDTEzMDMyNzAzNDQ1MVowGjEYMBYGA1UE
+AxMPcGxjb2xvamduc2VuZGFpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+
+mqfgH+XFeueopeeRKg6VGo7j/ikyexu0FN23ep57Nva9+i1M9vC2oMBiwl//hmGx
+5jXfuWYgm92nYxD4syYLwHWwd1PhTP4lka1TAB0MaL6TR9zLMicHjs8CPVsxNGt+
+F7QmKixhg5xTd1OYjI4uJYvGfJpgWmRR1I0EHM3qnwIDAQABMA0GCSqGSIb3DQEB
+BAUAA4GBAFonC4Ej5gxizDbXM/G/8a2mWJx+MBtL6X2QY65vMEGN8LCoFM42Egq0
+0uHXwOV/8NrWanXTTU+iInvdnnSUJwLFAlaRhAUuCQgHnBFhuWsJtj6YQK7sQ3Fi
+yiJk1ZKK4JwyIjj95sVPjHgM5lPFawhl/MFUHeSjoUjBGILrHaVh
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey b/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey
new file mode 100644 (file)
index 0000000..92f5693
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC+mqfgH+XFeueopeeRKg6VGo7j/ikyexu0FN23ep57Nva9+i1M
+9vC2oMBiwl//hmGx5jXfuWYgm92nYxD4syYLwHWwd1PhTP4lka1TAB0MaL6TR9zL
+MicHjs8CPVsxNGt+F7QmKixhg5xTd1OYjI4uJYvGfJpgWmRR1I0EHM3qnwIDAQAB
+AoGARfaO2H3c4XgTwJvlPCur3p85BAcvKBB4QsnF+KtRsPij6WgDaNTb1q168MVY
+Z3r0MVDHRa/QBPgxjFeYyzE3LUb0rKcxJVZBc1FsNJnRdgs6+y2LnGcIcmS8QD7A
+/+ZLo8WVl/wlRl0l6ygFoonn2mwG+ndNK+NCd4Vb+gm5RUECQQDePslNfTDdQeQ1
+kRUG0D1nGqnXoKAtkMKvUbR4Q9M9Hg+eZC/Iicy2LNr8rHK+yBk3R7iH6WJiZh2Y
+nZO0pfaLAkEA242d6A2NiaEUoi5llR38axx6wfoq/WJSWrGbznFeZjH/BQD7ufLr
+9GGs8amsqXsd/7QbmH6O8tE5LH0cEBdyvQJAaaFz8jWXfQItYlxjnwpotNGSeh8p
+Ip8UOVnfKe4qv3jDOagqoekE+G1XZBLestjOS1z2UvrVPSmF1ZzHsGvVQwJAYUCb
+37yRI5PMtgJjUOhVdYTKA76y6EZzQGVIJOwm6pHe6vKCjt3CEyBpISsNpo04vpmj
+V6tH2ts+viw1EBOy6QJAOVYn6aZi9R2A+oFABeZKGiejo8J/cQr2H2TFbcyrQ0wR
+NbcnLkpApr/jYeg41wi8VljgNU0suJq+L0tblCZudQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert b/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert
new file mode 100644 (file)
index 0000000..bdc4e2a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBn
+ZGFuc2swHhcNMDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjAZMRcwFQYDVQQD
+Ew5wbGNvbG90cGdkYW5zazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAx3oY
++bW9XfqQnNQLmnrAsj+bPAKtzRQUHl8RzOIH/ECagTPQ3/RpC2Io2avzAoaP8WpR
+RE0GQYZIgc5HRAMqB9MyvBJ/WU/2G7uLS4w3sLKJPy5UHM8YNeoPiJ+6+UyOOjt8
+pf+PMwV70oFlf51xR6/8Zxn8u5zJKul2EypPQVsCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQBxf6a0UIk2eaxbC0r/Ch4yg2/2DBlIWQtnulSPRA72+VFxM4VZa4ScoHFj
+o4jwEdVynH0Ov+tffMa6EZD3x6M+u6yXVXiv/+CUJqgm5HcsTNiSgCtvbHG/f90t
+WsZcG5wMNNaVwBpOoKfsV8IklKS6rysgX5vUOLv0Tys1qU3XaQ==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey b/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey
new file mode 100644 (file)
index 0000000..825ece3
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDHehj5tb1d+pCc1AuaesCyP5s8Aq3NFBQeXxHM4gf8QJqBM9Df
+9GkLYijZq/MCho/xalFETQZBhkiBzkdEAyoH0zK8En9ZT/Ybu4tLjDewsok/LlQc
+zxg16g+In7r5TI46O3yl/48zBXvSgWV/nXFHr/xnGfy7nMkq6XYTKk9BWwIDAQAB
+AoGAc4AcFAKKWm8p6tTQvyrShqNTxCSc9ADrQUa07Nf33bSega86A2Lmq+OzWY45
+kD3P/O4djhm3RJt3Qknpc9UNMSE8fnhmle5febWMlGCr+NgYbliBWX156Twkr5kN
+pHUygZDcDR37CImPwiAAnpZEIV4zMVZTkuvA9/P0YyU8KbECQQD96utkFkLJVzFg
+yeka0QKQc4xa+2SdpG5wCs2kqgBsP3QKaqfNJaBSEQhqM4rFdHAUttufe4O/VfzM
+/nS3n9wJAkEAyRziTZ8kuhy2VYE/mM24DnHPEpMRX3/dGtDfqyl9yQGjnxWATFSa
+KjkvtEpCWibYyqkI8Rq9sekNd3Of3gQTQwJAIOPSE8fSZNQXgEsHF8MlCuL8tjhE
+AytuZrLvijm/DkZ12HeSPr918ctlBKSigAsiDXzWG+Va3mjb8w2uvq5FSQJBAJn6
+TGYDv7ni+9MxdwDGGPKuPk3JXhbRLfc3DtjclprMb3sAmk9WwwYq7JRL+stNTNS1
+YMxAnhZWCeJ4G2F/m0MCQEXwcw9Q4p3SSQBvu4suYtGLyGVKTj+8bUWPTXOURu/l
+nxwL8K54Y9ngFMPvnX7hMbz1LguFkGzkHqXFoCZbx5E=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert b/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert
new file mode 100644 (file)
index 0000000..0ec933d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvdHBw
+aW90cmtvdzAeFw0wODAzMjgwMzQ0NTJaFw0xMzAzMjcwMzQ0NTJaMBsxGTAXBgNV
+BAMTEHBsY29sb3RwcGlvdHJrb3cwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AL1cxMtqidWckqjyaQzwYWI1M7uKsVexHllVOiso0idC78y+n0gTrRwjuCalrHZq
+noG48L7qZpfN43qMKyo4sMEFB41XfTugIMGE0OsgjUl7J3Ywoe4OYE67QGl1/VMD
+KCLJR3jYTLCNUWLRSplktrrB7G3X4ZEBwg9frPICxTvhAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEAjeCwqfRhzeTO+UQbeXld78LiH+ykZFG+H4Qzi98S3N/TaGbGtt9O
+WFhmfCM5yqugAkWtcJZJwAnPqEmZZr7zbTr/rZSuo5hJnB+RHBn7om7ICSXU6ikk
+HZo0mVLVCCZQdHzS1GMkWBj30PtpIL0NmKsLJSSHX6uHE4Yiao8zU/4=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey b/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey
new file mode 100644 (file)
index 0000000..eba8e5a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC9XMTLaonVnJKo8mkM8GFiNTO7irFXsR5ZVTorKNInQu/Mvp9I
+E60cI7gmpax2ap6BuPC+6maXzeN6jCsqOLDBBQeNV307oCDBhNDrII1Jeyd2MKHu
+DmBOu0Bpdf1TAygiyUd42EywjVFi0UqZZLa6wext1+GRAcIPX6zyAsU74QIDAQAB
+AoGALg0bhuS39I0JVbDuP0lORZXuqNNH4a2fVdZWORzKTuYGb2KEVgEC/m7pX+y2
+jm3LcnzJf4R9wrk9cxYXgUMcKMmzMxDnOqr8Nz1ZCv4PGdIm7tYCHjeSQGGpFXmV
+ulXviX9UTjyq6QtwVI740wz/NkEAMGRAsRqwINhD7IE9lwkCQQDhjYZO+pcnusF7
+7nvQNpPHTneFmERK+2SBO6S+MHGivUgh5xrUbmbwQ+1kmf4KhMKNVOJyVT9YUWBC
+8YpxZ7D3AkEA1uyaazEmSCpXY1/oV1chG0743t8P/QSbRB1C3C2Ti16wI6MYxW6Y
+aMOSimH/dIA8oI4kTVdKs2k9GJuWxamb5wJBAN+3Cu9NOB3M69ormhzT9VGrL3uP
+orUokfBooyeNTzjWOzR9UCxB8NIA3fZ5kvMF6R5bglta2ICV/j+H6gQ/j9MCQQCu
+xi00qf1FhhkWWLGqBNKJUIkVRDPOP2a710e9oNpw5Yk7EbBdLPiHiTKrkdGYvYeP
+0Mc4lZnLl/L1BeFvz+NVAkEAq1dj+z+4g8TPxPsbi21qBAcNcfTWZ7sar03G3W6o
+9umHwhP7ee/cDP0BxhnIYPM8km/abL/JWYE06/zInWH/EQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert b/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert
new file mode 100644 (file)
index 0000000..48b2da7
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBw
+b3puYW4wHhcNMDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjAZMRcwFQYDVQQD
+Ew5wbGNvbG90cHBvem5hbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7SMf
+JoTdggcJ46fszrXh5biNTcaygwLeN1OOKtHmHrNX674Na9/ZJKKVuzvMX2xgKk9b
+pQhJ8fEvnnjp/Bkp6oIk5kFRmruqC0thbz8ppsgIBTg/0WDE2B/zExJAQPtJjXuB
+xr6mjSw6M4PB0WIOD+0lXTRQJDtoCi3wVjfTEeUCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQCcNgVPr5GW3w3c4HYb7WyWMMbIkMf92zX0yiTW7Gxmn+kHjjfu4AvRnc/7
+yfZMfV9KfhjP5sbdYu+YbyuoV2XgjT7lSKDF4FT+7yN4GVpvgmSWIdifWrG5BnnJ
+wB9mIN8qHA8NmjFX0HD+Yng498eoP5NTaNuR68jxeB5lvIj8+w==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey b/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey
new file mode 100644 (file)
index 0000000..21cbe02
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDtIx8mhN2CBwnjp+zOteHluI1NxrKDAt43U44q0eYes1frvg1r
+39kkopW7O8xfbGAqT1ulCEnx8S+eeOn8GSnqgiTmQVGau6oLS2FvPymmyAgFOD/R
+YMTYH/MTEkBA+0mNe4HGvqaNLDozg8HRYg4P7SVdNFAkO2gKLfBWN9MR5QIDAQAB
+AoGAA2XMbXXb4qANMTjXuMJ8YRk61RFyv1PMMUi+MbjeLjRtnxATCyei6dZ2hL8/
+l2JrIlAOxReQT6of/4pF9/m4Uv/IU1Rr/XnEb8paAbHNu2Vqp08xGGX+uD99tOII
+w9lT2hA4MWety0GE7WvFceZzSZSxvDqOkvfxYfBC69yEw4UCQQD8jXHvthxd3vf0
+Uvb3Avn/yvMBih1iqmFo/40cg4lWS3TTbcmptek4RiIXGrMi+aJOXO+pzYcbVvta
+3KJwXdBrAkEA8F/OoNsLYegYTh1zsufqWyw+Jj3bf9fgKklMxzadcl1pECcs07oh
+0qR57I2UmLlccxNsGSZSSJfFCen00V/67wJAfTriAVxLCp0SVJuDDI70SktnXh8P
+XSphLQBzB22N/zVhU6m/8qBaaeYU52H8693fBn589LUORpdGAhMflRpfywJAeN0j
+r5wUYBlsxzJl76pPG6LmaSInUWQBsiGDOpQKnOu9HUMldhycTycmqzwRYK2rf61f
+aFHtg9TUXYTG9dRV/wJBALLNSeW8yvdVBK+OYxHv7iU3uovifiOnTffRa7OBNCR4
+WdrZPruOnx/n9a/UwASpKvefu8PCWIaJjjYE/TdROwk=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/utokyo/utokyo.cert b/server/slice/planetlab/jp/utokyo/utokyo.cert
new file mode 100644 (file)
index 0000000..e65d0f8
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1dG9reW8wHhcN
+MDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjARMQ8wDQYDVQQDEwZ1dG9reW8w
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMtqtRmi6Mg2OmAjNVYUEa3mnICc
+uBZiBWaPK+zXeSwh1swYfb6WkboBhdUUxtD5ZhLFD2FO8KrGXfo1/Qy4k1SBTczW
+GLWdklzs8pAGGi5dRFuGXmSKy4tgwXmw0d28AbL8FaozLeKsDAHLjROTMXy7djW+
+pSwWz4+VLPGPydlFAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEArf0G5erePEbKXa/5
+JNJ8bYu0VYein+YJqg8AXF7qObESE1GFXrdmwbbaUZnRhDsA9Luc4+uMG3FQlBRs
+iGA9hYnvUcPfFehGSL5jgJFBX7Js7+IyXkA2U5X8RHO04gyai8HhlWmCozWQSLCb
+in7UJQr0S/UDdVOsnr8AE1+aBgU=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/utokyo/utokyo.pkey b/server/slice/planetlab/jp/utokyo/utokyo.pkey
new file mode 100644 (file)
index 0000000..53bc125
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDLarUZoujINjpgIzVWFBGt5pyAnLgWYgVmjyvs13ksIdbMGH2+
+lpG6AYXVFMbQ+WYSxQ9hTvCqxl36Nf0MuJNUgU3M1hi1nZJc7PKQBhouXURbhl5k
+isuLYMF5sNHdvAGy/BWqMy3irAwBy40TkzF8u3Y1vqUsFs+PlSzxj8nZRQIDAQAB
+AoGAJdxYlMrzlMAzIU2sUbcuizWPD4kb4l6gLrSbMlvwm7w4pIgyb1TLDtnVtRFG
+6AJjcz7mW/A7by24tCd0T/fSw+RX3OosWdxODQmHczbO3eZ3xYTG7rEfNXXqSfkH
+Esj2Za7++fUnj+8AVWLlHP69tAkDGXHUiTq9gtVQFzi/YgECQQD9xBmVgxThicl8
+hoPXrGDhQlVo5OXE2ERFfGSAM8Gnp+656Lkxsl/cBX34QJJsFsmAAZAoy66+hSto
+y1/MDPuFAkEAzTUjUoXYS2B7xkpz5Ni84Gq1IrY+LIl9pjWYwEXiUogM7ar4OPt3
+l/wDZp4P/l/w602krzPLrwkWrAFFBLNywQJASvi+nj9l0eRFVLbhCLzyulpApYbK
+o0dJlEXV41JnKkMg8mfhHt+WFojA2LErESgCTAEqOANFEyCA3KsJGF3ViQJAFBe8
+4qqqWA8Vb4AAwwqZy9uG6uQvSEsaG3kqAMGW/H/HzEmuTl4JAr+xUY3ugPjB7ThI
+BMOskPHx31usd15ewQJBAO5aLhZNfJGos+0zFMN7fZy7j2pfDAHcLUVlMFTPatix
+dXZCuDMGOXFzx9wTaqPS3sPKE90NaeNH32Z0LlKYKoo=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/waseda/waseda.cert b/server/slice/planetlab/jp/waseda/waseda.cert
new file mode 100644 (file)
index 0000000..fc1f3f8
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ3YXNlZGEwHhcN
+MDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjARMQ8wDQYDVQQDEwZ3YXNlZGEw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOOiMWExTF/RJdYQvlUcW9XDJkGt
+/08ok4V4wEseTm4y7vIdMIABItI04iBu5HH72NOq5tZmMjzcm+JDA8aCI77+cYJe
+DQftIWvZXmLo7M5PVUBhTHGA0FUR5VAtcDd5D6o99dIZBuaeQ8fOx9KNP4xXg6SB
+OYVy4aNGlhQ6WPbTAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAfeAwdyD3mMzfSRwi
+Zx+fn+t+DfocVuEUUOmf9fQAnWP94hMQ1rPgmQeSzXUdO2WYAKTAB9rVgZdyReeS
+5kuN5T2ehG1ukFiPsAGqXmQwIMash0z3Zdzjd0OdtliLBeuyWc6jDm4s5u+zsFEe
+juSCyOaiN5igPDVGyIRVijdpUv4=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/waseda/waseda.pkey b/server/slice/planetlab/jp/waseda/waseda.pkey
new file mode 100644 (file)
index 0000000..d2b1edf
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDjojFhMUxf0SXWEL5VHFvVwyZBrf9PKJOFeMBLHk5uMu7yHTCA
+ASLSNOIgbuRx+9jTqubWZjI83JviQwPGgiO+/nGCXg0H7SFr2V5i6OzOT1VAYUxx
+gNBVEeVQLXA3eQ+qPfXSGQbmnkPHzsfSjT+MV4OkgTmFcuGjRpYUOlj20wIDAQAB
+AoGALJrZpjvsxVHMYjgBs9fMvwRweKpJvw8qaRsSQyX7JGjinZrOqCaQ1jP6o3RX
+W2aIRGHWvehkq7xm511OXhWePy4skIXRsa0v5OpgFGrhzkCws58RzOnfth0b5yXF
+/HGZCsVkkB9j2x1s/pw2HfUXzNeF1QGCtcUqFHP7V3qzG1ECQQDzgRLmARE0Dm+4
+pZZMb2euJWA8UMcKtEPpGrTEJDNnEk3zURvPnSn5OgS5/rRuULxnov2tAw6cfIJS
+MvKO/GSvAkEA71CgOKaBuq1vn5sKgkqVvsA8U5oGzgxwRVZiIDGyqmt4yhQdv4u8
+OG6rkv83fk4FakMyn5dSHtcfUZr/vWkhHQJAd9RN84gU6jQsgIZkN0sfj5BvEl+C
+A9+AB+ePi3JxJUjZuWJxuDKUZERL7SfNrPfoL2wDQC/f8dxH2aGewgSsmwJBALrr
+Cnm089bO6ESNYGPrxZI7q+LQh0ggxwAhPHtQ1e/uCWYs2B9oERcyuagS11E7t1cM
+LVohYu7br4aZve4/UrECQQCAx/gadct+1c8DthO1Hzi3jSyodRdNp1xbkmjY8Ndf
+QTaX+D/XdfQkL3SgemTmaLYBoLzeutR4hRlCwfr3ZHoQ
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/jp/wide/wide.cert b/server/slice/planetlab/jp/wide/wide.cert
new file mode 100644 (file)
index 0000000..addc574
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR3aWRlMB4XDTA4
+MDMyODAzNDQ1MFoXDTEzMDMyNzAzNDQ1MFowDzENMAsGA1UEAxMEd2lkZTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyOYm22T4B+dj1AP8jXDhJxkre/hrJsV5
+bVJbX9EXRgC57cSHaIPIohsnSagcLR0i1DjIxQK8wj4+9Yq7WKECI3UxwDCa7G3k
+voMd7RBDhhPGxuByjBlG8i9ZglfiMvx5csTJMBZ704zda89IGCY+86jTIAFPX2VB
+Mk8pmuishbsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCicD1Hn0RKQIBdbRPsHAvQ
+juJ0zx6PQDH+FnHRJ5zNqG3ng0hb7TKWNT4c9/yfZ2uavIchmX/v4NV8bIBEmm1V
+N/xv8NOQaZCIgH+32cvylR/uHSWjCkntmmlTMNx0hOmGOeVSmg6N/T3FDGOJA3qZ
+R861Ht0Kvt1MlXhuQyjNSQ==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/jp/wide/wide.pkey b/server/slice/planetlab/jp/wide/wide.pkey
new file mode 100644 (file)
index 0000000..6160783
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDI5ibbZPgH52PUA/yNcOEnGSt7+GsmxXltUltf0RdGALntxIdo
+g8iiGydJqBwtHSLUOMjFArzCPj71irtYoQIjdTHAMJrsbeS+gx3tEEOGE8bG4HKM
+GUbyL1mCV+Iy/HlyxMkwFnvTjN1rz0gYJj7zqNMgAU9fZUEyTyma6KyFuwIDAQAB
+AoGBAJqeyHlDFMLAjEy5ZL9XiXKWJKmdYJrOkc5Z/ImaW9c859zfzXfbNafOTkaa
+ZFU0f4Hm0l8O5Eh7r+k7hUWJZiKWw0EF6a01bDrYB8R8ymRwJm6o49aIF9+Gwe/U
+kcSLhy6rXePj/HcWl16GXQ6i0+aMDZ7bFYfpZIPsWpYe35fBAkEA7IFKR3ykF4M6
+LxJyDWUq6QuRIncFpatP7L/hYZ+Jm924WuiTqOQyY+VOZIjVM7HopHoDmiq7V+T4
+aJ1cIqWDPwJBANl1ga3yS0Pwo9rfhoTsuSY1tty0wfSHk/mWyzJDWKHg523VU8fE
+4syQtugcLPtjs9fd8r2vkWvHl+QzUBAZKoUCQFyTGzUyR7TgbAUC7lvp7sr7+RqJ
+hk9b6FQeo6Un4qB9QG1tPmdMs6DAoFff67xpdkvzareM5Ho6KTYh6m+xY9cCQQC7
+aQLvB68ICX8dpaCINH/Ix2gmQ/4YITRNWUEbu2DKekrZpI2E0FDqHhoUZhv6N84J
+z3VhNsssSSLFf9eTWC0FAkBKjDOAZurdqAwytyRmZMBMnDaaP7irBhyZ8jZjmU6X
++rAXKv2GM28jktMZiuquUA9utLwBAm7aIwfmST+3GIXm
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/ntu/ntu.cert b/server/slice/planetlab/ntu/ntu.cert
new file mode 100644 (file)
index 0000000..cccdbf4
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNudHUwHhcNMDgw
+MzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAOMQwwCgYDVQQDEwNudHUwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBANqAs+Z926Fk2gRdSW/zw+l/I1eaozavqEsy
+dFz8uiWsSaWgh79ABkb6hzIAI09kAKmD7UyuHh59mzoynINdZ8uB8+S5z+kVhWpr
+8V+Rt6gpQkDgc6NdsTCJAmhLXTqAJv//SM8Y8nXY04lND0w1opt3FqG1Hn0NC87y
+30Wdt7v7AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA1xeD547F7TimLmtDU5VBuy1u
+vMvkuHmyhdtzaiaia7vXFDBpS4G2lI12FeFpyey8m9cmYufmLvhBCy36jLr6AUpn
+uHccguZDxBIRiVn1iCnO2KhcM2yS6/FPpneilS+hyNdMnwCngSRlv85xEkt8nzad
+ZYKZ6CKgKFtdBO+/diA=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/ntu/ntu.pkey b/server/slice/planetlab/ntu/ntu.pkey
new file mode 100644 (file)
index 0000000..526e97a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDagLPmfduhZNoEXUlv88PpfyNXmqM2r6hLMnRc/LolrEmloIe/
+QAZG+ocyACNPZACpg+1Mrh4efZs6MpyDXWfLgfPkuc/pFYVqa/FfkbeoKUJA4HOj
+XbEwiQJoS106gCb//0jPGPJ12NOJTQ9MNaKbdxahtR59DQvO8t9Fnbe7+wIDAQAB
+AoGAJM0Uf7em7DHuPlnv6nkmAAe3ziNvZeCD+dZPnvG58GpqJQk6k82WwRGk/5ji
+WZbAPczIhOe2jvAc2tp3XfC3cFF1ADWBxclGw4s5QjqyFRlrpwsL0GhPNnpaDcvu
+AgTGpEktGVWH0uZ/hNUUOrdku+/pnMH8NmcSmXuonM0cH/ECQQD5YO0+aH2i9tlq
+1mKUDf4txh0qZMrapAsi4zhx5nmXDRHGgtiAHcsCUr60YfagT/I3wwmr7m4KYpJm
+Q2Y26AQHAkEA4E3oKcQ038gEyDfx/6Zr+hNv88beWoT8uqtzzd9CuX6nlNDaGhRY
+ICcw0MdQlRqM7/jNb0JTTlaob24sLPKTbQJBAL4+Hz7Y39+OiVZjrlhcRGgPFvjc
+Y5RgSM6YoNrjhCajpcfW0esKz3A6R5m8kjTCSHoZpCsxfWkWwbCaAkQow8kCQQDP
+Gj/VaIslYEpCD53K3X9vHElO/XzKeWXceXfoS08RdIcI2bm3QLeJoIXrD00xDp24
+6LHOG6BNgaftkv0I10UVAkA34bml71517zxX9Fu/ZvtmeH5F2yZZfDfbpTWtEJ91
+c1IT8aug8SBUXAiTICdEmb7IxP60pWaHoaqX4IPJs/9N
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/planetlab.cert b/server/slice/planetlab/planetlab.cert
new file mode 100644 (file)
index 0000000..9f5b851
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ
+QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC
+apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9
+OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW
+JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL
+xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN
+C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/planetlab.pkey b/server/slice/planetlab/planetlab.pkey
new file mode 100644 (file)
index 0000000..93360c8
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC1NiZzJyIz8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO
+0yH3VUEPolblSM1Juke6M3vGO7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8ol
+tKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQAB
+AoGAHN02PKtkGFA9fhtOQIGMbGeWTe3ULD4id2+HycEAyhIZYQbyILtisqnixiG+
+o6D4CiFg4Xjn40iJqYB4H3oo+D7s9yitW8dz7/e3/7uUJvqypO9qxY4lpOesy9Is
+oXTzI3feD7muC6FXUhaEjXGNeovjLfrkpN6XfU7HSdz1WL0CQQDZs4kSDVdgHWuB
+1nsfwG+9moPX9RfgPevrM0ydLBIN7wBNg8psFFd7swW64DS2XDFTFTsk/4PqRy7A
+XBLJ1seHAkEA1Rc/0g/DFqLMmIVORVZywt5utK6aGw6axMnzJ9WW2uqhaECsuifW
+EWxuRZ6iXhHKvADrpoL1oyHwO6I/4IS1ZwJADBg+YENffFaGF4OL+ZqeWqFP+9qB
+BhNKnRmPgxfktON3V9cfktuadKPgiJ5WL1912hDO5WJQuN5ViZhT7uTA1wJAHFEj
+nQGVNjvaHmaQmSw8weKXKZGOTwwoyv/fPSroCh1l55m4mmBS1Svol33WK9QHceZZ
+al460DvhVbtg67AW/wJBAMNV87DOw5Kcr2C4DJ822uzt4tfdfrFO6nL7UQlxZeoz
+osbIYKGeVxm66r6dUmK/0qjqpujWnFCFKPxrMq8qXrI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/qub/qub.cert b/server/slice/planetlab/qub/qub.cert
new file mode 100644 (file)
index 0000000..e6edef6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNxdWIwHhcNMDgw
+MzI4MDM0NTAxWhcNMTMwMzI3MDM0NTAxWjAOMQwwCgYDVQQDEwNxdWIwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALmCUYQmYfmm7+u2PFKJmK08mBJV7fwVnk02
+Q417ydokFsINqmLlJWGss4uwELwuU+9z7kKnALW6zTDRCO2OiozYIh+iE7Co1qXX
+t61LEn7PLnVqfx+QQJa9f7TFziGWyGkC+gZSsowtDMjbtzhZihfevW7j5/SOtH0d
+0Wtzc4BxAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEArH3c4h00MS5B6pjuX0Y4DnZc
+uU9xwMTlJMIjUTkpUX/62p7jwWQIKNr09jbyPJPonV4nBlf/TnKNDwmmAzop8yBB
+84A+Drbs4PcP8jtAjyAjqz5unLahsnr5tnOM2xvOqbPCq+d3fnqLDs18ncS86AEJ
+501I0AMdgWt4WJOxxmM=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/qub/qub.pkey b/server/slice/planetlab/qub/qub.pkey
new file mode 100644 (file)
index 0000000..1ecd167
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC5glGEJmH5pu/rtjxSiZitPJgSVe38FZ5NNkONe8naJBbCDapi
+5SVhrLOLsBC8LlPvc+5CpwC1us0w0QjtjoqM2CIfohOwqNal17etSxJ+zy51an8f
+kECWvX+0xc4hlshpAvoGUrKMLQzI27c4WYoX3r1u4+f0jrR9HdFrc3OAcQIDAQAB
+AoGBAJPtW1tp0A7oE8F+nDOlDV53Rzy30QKHqqgfcVbNM3UD+jHb+9bIqzpsIPBv
+AalNuBjl9USpL2O7Bgy7Y8crN0cinK4VK3XNnhuCd871cWqfSY9UC3GCbWob8zi+
+IiQSBn5F76Dm21taRSBBN0ZjMRgIDU/w5Kol0e93uFP56tgRAkEA9jj9d8UW8TkF
+u0XhDFyc7oFOTrkpzj42XTFIYTx4yx8SUBG6Zz57FF+zSPaAPTerqlb5YYu4ci2D
+v4RcJfAPbwJBAMDgIuGVu6E4Rytq/doIbtX6G0QBqASYmoaHQ2ARWEgXsUgH1FzO
+K5l8p4AZ7yOYEJNyHiCU4wD6KbMRLlRHfh8CQQDimJYj2F0ByIGO1IOFVeIS2StQ
+5bUkmjp7z3QWEIn2HPVEfNw4UdcBbAVaG4jvTcGNNReyftxTL7H02gHX5DK/AkAB
+p2plKNWNEmB53NcEcaIRr61gLet07qIUmUBYqI1rQNjCV17Y1OPG0yzUimRkl788
+pHPhr6Uqsvp8kJ8nFd3dAkEAnXdfpZHTwovZnvMWZp95tNGOTUczTl1fcrR800vy
+EUXTDpAZSIAaVTE+DUIlXKbrH5sgg4vZ2KpLaI31gaUeRQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/snummlab/snummlab.cert b/server/slice/planetlab/snummlab/snummlab.cert
new file mode 100644 (file)
index 0000000..7f14c3f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhzbnVtbWxhYjAe
+Fw0wODAzMjgwMzQ1MDBaFw0xMzAzMjcwMzQ1MDBaMBMxETAPBgNVBAMTCHNudW1t
+bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC43rIuNr6Wa8Vk5nBiCcDh
+/1aHa8XryNn+/4ZVZrcd1V8lSriHqPqHn6ZX1GqsEEaSVEgZfeEmMvWqpqmO4Vwc
+icISLZ7qw1L2TT+aFSo6RRiAv+xQMYv1T8VpeJgcy/minU+GDfl6yL9N6PdeY+rE
+bPitgUQe034C3/Xj9tKSCwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJ0Hu8NhJwPJ
+xFixK3yZfUYC7nWYE9c3NdCnpfUvCpq0fzKt97+6w8kjSCIJKRmLkj2W2UljZEaE
+L0c9l3fJul5EqmuSITacgbma2WCmYfVzDJfhGB6iZdpupI1j8hycOpr1kt02udMG
+PDZcIzTeRmtQZE0vleGkFAzNMAcjOTDE
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/snummlab/snummlab.pkey b/server/slice/planetlab/snummlab/snummlab.pkey
new file mode 100644 (file)
index 0000000..039ec42
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC43rIuNr6Wa8Vk5nBiCcDh/1aHa8XryNn+/4ZVZrcd1V8lSriH
+qPqHn6ZX1GqsEEaSVEgZfeEmMvWqpqmO4VwcicISLZ7qw1L2TT+aFSo6RRiAv+xQ
+MYv1T8VpeJgcy/minU+GDfl6yL9N6PdeY+rEbPitgUQe034C3/Xj9tKSCwIDAQAB
+AoGAUFOTIDlxPnK9ZkYqdq6+PHRx6I2Phg/TiNUGTX0/+5qGqPF6lJd7pApegLMv
+VmwL/fDZExp7BdoGnIumCQsqtg6IYRtNwF7LOS5VRyek2JSGFBpqvhbCfPA7mlVk
+0hj88fEjpeElCzKBYlvnlZJppPuEB2xZjKUrS9YzzrftB8ECQQDhjO1NzLDF9Ll1
+u6NFZuxejK+RJr4+W/W05Ql9TgdZigPsiQw967UxmnUVxmC0cJ0MVQoYWmN703Ii
+Ci2IyaQzAkEA0dPW1/3+LuOKwN/dYSZM6tZkivKo19ERBWvgh69shrCubBz3/VZW
+FQj4WbNeeNxdxlNG6sGXZNQEsyLLk6bCyQJBAMsNjDWWKS6Nesk6+2nnlrQoA4ax
+UmPhdfo8l6ZvML6zOYUgfBzirmTRoMbRqQ3ItBn+FPCHrzgyy3VJpGSY43ECQHlx
+PVi3xeUHh2hIaU3wJ/aHbZvKBJUciNh1bne5vXtbSSiDv7hdvubf0TXBjf0vtgqy
+ako3D9OorquriN4FV5kCQQC5dO+YcuzPzFDWST9G5Rd9vuniehMMpPkoSyzHaKpa
+/9rYvcGiKH9oRAj87cTJPkVdrlf9+H+xo0cId3s+3cw1
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/sydney/sydney.cert b/server/slice/planetlab/sydney/sydney.cert
new file mode 100644 (file)
index 0000000..fe31e7c
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZzeWRuZXkwHhcN
+MDgwMzI4MDM0NTAxWhcNMTMwMzI3MDM0NTAxWjARMQ8wDQYDVQQDEwZzeWRuZXkw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALRNsTAX5KRMoT2eEa16ahL7dZbg
+5QqFGBMwpdCyjF1C5WGRPKRR4teOiDua/8VkA8XzCAiYJA/xIWi6bQLNZXNOizCZ
+yNhxOH3zU6Xn+1HEK54ljqfj85GJxgyAB19v4Ao68pBx94OoYFX5SugM6RpMkPyR
+Rdrk2DBzQpAw29wJAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAiNF5iXzOsAn3qQei
+MD0Bzban1KIPgvrqWnHT2IXzmNwir7vSPDKGRZhbZZZDikCwJ4i6sjHnCBTDipwx
+sXvCtxGpYgBjxBH80uYMjyVhro0E6me9lC/RyhlwsF03bm4hkmUmu6lYr7ls7d0P
+IbFQWJwJlrZSW9KrFLTh9x6BXKE=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/sydney/sydney.pkey b/server/slice/planetlab/sydney/sydney.pkey
new file mode 100644 (file)
index 0000000..b57dbf3
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC0TbEwF+SkTKE9nhGtemoS+3WW4OUKhRgTMKXQsoxdQuVhkTyk
+UeLXjog7mv/FZAPF8wgImCQP8SFoum0CzWVzToswmcjYcTh981Ol5/tRxCueJY6n
+4/ORicYMgAdfb+AKOvKQcfeDqGBV+UroDOkaTJD8kUXa5Ngwc0KQMNvcCQIDAQAB
+AoGBAIFIdBSYDUoB6FvWS7aoYAbcZ6SX/aNda7XW3A6Y+CynGvKqwWDRlmYZvXV/
+3oYbANmfOdNvw+vqapo9koy/2k1vUobGxpFhf6M1CHbUfWiTTo7bgfpyTRhnWiif
+smHXVNLKBanSz0jtFbcLCGNBebgv3A8gbaAKEMOMZvABhYABAkEA4C1FJnfGafoS
+pXFFLjYz2ettDX94Uy8T4tHSNLGFEOnatf8jAr6PTUn/VHyRtFlil0fqKHEr0tAt
+6SRS6shfCQJBAM3mCUwFMYmiocGS/oI5PCgvcc1ErAMV1+36gO4vOygvvuj4BrWZ
+52NgDnfVJTgQ13iCWBKObWTrbuZHv7Y51QECQBOcQjFURvocUyc/2mJpgW2tx5Nn
+tDnqo12zJyVO5ioNmwFSuVhTHSwQrhJQ91oEe7hqJRS2mbPOXEXJ1KsPLikCQQCR
+95vtrdzho08jiU8vCN5x6ri1+hIsGcc76hSPRyKcKcUhKfyvr80PcWCwaYX6Sk5H
+G7jOZvR80D+Nt53c1QEBAkBFg7ZtmMxOhibXXOokIXj3v1Tuk3LXiSoyrm0JNovN
+ww+uNNbS1b0wi9G+RT7mDwg6eisfphVMz0EHY6UTQrij
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/tau/tau.cert b/server/slice/planetlab/tau/tau.cert
new file mode 100644 (file)
index 0000000..4252c74
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0YXUwHhcNMDgw
+MzI4MDM0NTAxWhcNMTMwMzI3MDM0NTAxWjAOMQwwCgYDVQQDEwN0YXUwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAJpF8y1XoUb/Wr1/yDkAXfGRlp3Lp0Z48wSS
+T4z/Fo5NLYW8fU/fq6Bvfa0W28sptq+uivXkTP6+SJZdaLtmVJ88MsM/1wvIwfVo
+4B0Vi1rnh1YckDc0Gwj1lwiL8HV0DJNBFSZDhXWN3T6Sd7SklD/oIDipVmnHu/0J
+y/LN3J5zAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEADKcOxoRdxnYssCOskOIpExk0
+3Ju7n9FASc4SCiiu7WcOov97YQTRW4K+sWWqmpvOPcAA+ndb5s0G23MizavfbYdi
+HLpckuaBa7cE9iB1mJMFhKFLgzSudQ3xJUyU4uDmH5B/xntJ0z/mZzG0oYz70jZt
+3aJK6i2h8/+l7ArcV+g=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/tau/tau.pkey b/server/slice/planetlab/tau/tau.pkey
new file mode 100644 (file)
index 0000000..fb10b3d
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCaRfMtV6FG/1q9f8g5AF3xkZady6dGePMEkk+M/xaOTS2FvH1P
+36ugb32tFtvLKbavror15Ez+vkiWXWi7ZlSfPDLDP9cLyMH1aOAdFYta54dWHJA3
+NBsI9ZcIi/B1dAyTQRUmQ4V1jd0+kne0pJQ/6CA4qVZpx7v9CcvyzdyecwIDAQAB
+AoGAD49SkZYvDAwhSM+kkCs7TmwStuOdgXwddq6TG3N3AO9D0iNKuE2k78+O63BM
+xtb0OA/wsBBQu7jRdWkCcTRHAIhkW8Y+tvA6IXIFubDgtNzIQCnY2OEXLI/0czsC
+eqy32WGQR32S7NzHTeSpsCIUspcdNlRoYFrFwBwrlH8fziECQQDM8XOvP/TCNB6m
+iuRWByVmrdp0Th0W4zwQgUDLptpjfwLO3pEf4RSMy+iqY9imK6eHB+G2AIZOvanD
+IMj/Hm/7AkEAwLTzIjFrL7h0Jg3Q7jVdzS4vlt5Otfa/rucG5pAuu0BBxWqr1xjc
+BQL60RaxybRmqIT1NnbvDAFjs0b72PSp6QJBAJQ9Idxlenjuki0M0dSYHqmCnzz5
+M3lWrB+UHnYwHk9Rk4pm2rogaGjfJU/6IL8xXGADh3PKNVvHPH/zuu8t6PkCQDx7
+Tmfn7MVAdivPYEizNSqFmWgXg8q2k/i4B8FrdU9N3pawYRiUc9Ga2s+u+MPeu+2e
+NTwP3fz9nqYQ3FB+kakCQQC5YPA/4aK/ZNVTHNFDdCWrRwIS+BSg2/VN/JpEiOoY
+TuzQqXHpZ0uGMCyE4nxkMOur9EUj/KAQ6udq1b90RTfR
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/ula/ula.cert b/server/slice/planetlab/ula/ula.cert
new file mode 100644 (file)
index 0000000..02fcc43
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1bGEwHhcNMDgw
+MzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAOMQwwCgYDVQQDEwN1bGEwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAJ+mTuFd/vkl67wlVFoioHJnhhjRWcUoMUi2
+UR3l4bCzNQuOvRoxj/FwmYMJiWvjbVq1old0pfcAL+x9Kd2NS+ZePJ9OaA6Lv7KS
+0XO9UJWt6P8EhlCmMZPtnnFK3Vf17FQJA9+IuYm+TFjBPqEZvPm3aOIhF59llSpl
+w+dTHhmpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEACe+BOrpATA9RELoAFS/Cv6KJ
+JdaRgZ72jkfbDeOyaR88EIy7KssQ2UwavgPgoFNuqtHr1AsAMvso0CFM3pMmGZaX
+G1lCWhsbXt+mvtuG6K4DY9fAvwj6ougBIy+SUe1iIWQk+AfBnFtpAy9LrsNxrj/N
+pNDZDkHM0MYlAoPTox0=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/ula/ula.pkey b/server/slice/planetlab/ula/ula.pkey
new file mode 100644 (file)
index 0000000..d3c62d3
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCfpk7hXf75Jeu8JVRaIqByZ4YY0VnFKDFItlEd5eGwszULjr0a
+MY/xcJmDCYlr421ataJXdKX3AC/sfSndjUvmXjyfTmgOi7+yktFzvVCVrej/BIZQ
+pjGT7Z5xSt1X9exUCQPfiLmJvkxYwT6hGbz5t2jiIRefZZUqZcPnUx4ZqQIDAQAB
+AoGALh8IiLjz8RxQZvFN1iBMw+A+cCsCyR9cZYouEvoXYknTWDxrSwboc7K41o9J
+wP5Z2CvC84sCa0IFlkducc/hDf5oFdkehX4LYUQFjgeggKsK8KNbvEw2j5vMemM0
+1lvb4ZOq2JguO10QYKxv6cmEVfkX/xmvR4TbbyaeukNaMZECQQDRZicY21P4Ee2q
+gyhB2ykWsolHtGJ4QwCpHw98E7Ysa3rGUUX/SHb2gK79eTNWdtlmDKgR44T1Etaa
+mNbVxOxVAkEAwy3XV72BcQMA79b0YAsuzd8TXZj4Mw72Gpf9CYxmTBbjrZeDTrGX
+B2dPpbgDNWf2rgJSE+B1FbovGI15d+uMBQJBALHq3eVc1ee9M/bhId9y22KRp9rp
+BZGxPGp2Ha4LAYqUd+jxPUw+wfWIOSbdSCV7LhRrRJKOgnXI39bTbhaMD1ECQAZs
+gtLrdNAwZh5+t6pVk+PIvM1u1HRxwJ3ddMGUsmU8t5+mBfdYFv1yZAezR7/BPTg6
+8VKgJ5pgd15aga31vbUCQQCNFJFqbAIbIF6DiAea0UBFn/tR2umn50svdstMuBLe
+lc7a4l+ooptrvHwUHt4pDk5N7+NgnoFDztgIJDBuUHDw
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/unioslo/unioslo.cert b/server/slice/planetlab/unioslo/unioslo.cert
new file mode 100644 (file)
index 0000000..26fe655
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwd1bmlvc2xvMB4X
+DTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owEjEQMA4GA1UEAxMHdW5pb3Ns
+bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jHiJeG/dqPZRUNSQ5S7aEF/
+aT+sQOVS1wxZbpSsqhMnxtyunoJ8ZxUMr7I3owAu35vR7cW0k17aJbLyIrRi50UD
+i74aF9I0mFn4MFhz0TeoZvP7H1s5jbNjUouK6peFJFI0V+z7tHx/hYCaNXLYzs8I
+n+cul98aKoVeKXsJcRUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCBGU4uF81f38bj
+2tQml38Ri4eQH/Pxv1tfB1kko447ImJ+B4QUK23D4VRzFDqDqUc5jIjxuy/dLVO1
+2FXdUaIeV2BOtRh7b2uvWESqqpVu2RrpPBcNNv6uc3oOGwdIfY6LyKcOEei/fzvh
+nHYySDrIReffb0uZKjUtjlBdATEu/Q==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/unioslo/unioslo.pkey b/server/slice/planetlab/unioslo/unioslo.pkey
new file mode 100644 (file)
index 0000000..5583b27
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDSMeIl4b92o9lFQ1JDlLtoQX9pP6xA5VLXDFlulKyqEyfG3K6e
+gnxnFQyvsjejAC7fm9HtxbSTXtolsvIitGLnRQOLvhoX0jSYWfgwWHPRN6hm8/sf
+WzmNs2NSi4rql4UkUjRX7Pu0fH+FgJo1ctjOzwif5y6X3xoqhV4pewlxFQIDAQAB
+AoGAGo5i3BZhckPRN4cB5bfs1Ycw6cM5qBlRFgphYi82gWZaKC3Jgg1KWlu2dpw1
+m0pyoZ22MCxCXDwno4uwO+I+fG7Tg7risu0IxqihveyL4tNORPN2B9XfP8cP+S7z
+n6qihdaElhSjJWUZw2yDqv3lUFqwY6qbzWbETV4BEg63byECQQD71fGnfvgDWL2p
+H0YK5LICk04pbyS+fzU4pBV1mLk6A+lpcNJnRDkXbwSBVMRUmLEWGguo2bxYibst
+uCcoJqprAkEA1auq9QQQunZUVwynksJXYRNbhTLVY94JInQJ60EjUg8wvGoWrMJN
+YaCwSvx9ry8agcBgdMNrZltgLuKbMDYyfwJAH2MCw0Vn08LzoGhtal4mcXu6eh+I
+DNX95BlPM2DddQWXybRuBMDT/L+xaA0Qixqct4x3d4vrlX1U/tW8y5xGEQJANSca
+RQ841hm/i1QTj5eWwwhcuPrXSJugbBivqv0uOyiaOBSwBVPkige+MzkyTtUJ5AMm
+O4Wtfu32NFOcxVaGIwJAVIun2AZznhn8Ezkg9Row7nQSFhUvjY61aqRbStnjXruI
+X8dWmeCfg4PDdaGgLmkTJK+tbzBtTozNGymUVxet7g==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/att/att.cert b/server/slice/planetlab/us/att/att.cert
new file mode 100644 (file)
index 0000000..bbfcf60
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdHQwHhcNMDgw
+MzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAOMQwwCgYDVQQDEwNhdHQwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAN0mIxSymiZpB88JCyPYdfJ7TuEzMoSemFGc
+I9Pv6vcgPIrPkrTNUcJ0mphguzY75YJaXBxzW+jUfBCxjAT3hbon3rcW+XMM5REm
+V53dh1hGKUDfF2JiqVqnEM+2FFmquSHd7auY8sVh8k7phQkWrytBnBfK//Gb/U/F
+4CQjCO7xAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAHPYkaMYAn7yZ9O+a3eqKdaDK
+bzMvAN3ZZsFDtQ5cNk4IHVkAleJWFlHTQ494FzUHWj1cvnEk5Hs+F7ZXZh8Zw06t
+67aqq3f6AGbdVn3aJqFEIK5OC1TXit4lOLKSUeWaPJPOjW1YrtJgELuuecm8+bzu
+S5OYVxz62lwZOXDogkQ=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/att/att.pkey b/server/slice/planetlab/us/att/att.pkey
new file mode 100644 (file)
index 0000000..ea0010a
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDdJiMUspomaQfPCQsj2HXye07hMzKEnphRnCPT7+r3IDyKz5K0
+zVHCdJqYYLs2O+WCWlwcc1vo1HwQsYwE94W6J963FvlzDOURJled3YdYRilA3xdi
+YqlapxDPthRZqrkh3e2rmPLFYfJO6YUJFq8rQZwXyv/xm/1PxeAkIwju8QIDAQAB
+AoGALJRSgAqczl9fxplhGIG7DP1UYksqxNcfh1v9UOzNJbHm4miDf1TgRV2yCEN/
+magrVMKYTNfoUB/9PnQ78Ihg+Uy+VLf5CaXyOAta0ci6/oFYJOxVh7V8/y7AVDlI
+U51cDM3jc6cDzJhDcL3uY4RlJDPJIBaUPKTXQhEBZoK6L9ECQQDxG4qzAZxMXIww
+hNO3xGjRM173iL+VTNOBkeMDjEBfuRPfVcssM8cdsjE9JJ+uErpwzpbXlQzbwm5z
+Mldzu/mVAkEA6s8BGDmdTBg+oItcQ8gupCvsAq1jPiBiuJohqhd1K039LP+EmpDX
+x/XrEhuD2BkgDOgD1YzR2yXMhoZbEf9g7QJASpGXEwfjfCZ/YR4jkMlZFaKKs4oC
+nr1VCNTC3j0JR9Go2MDjBne5FHEhE2T5UdAPA4aRVnmNsYXvvQcLzwqLBQJAaFQn
+mVroEAppsS2ahidoydsWFy5w/QaotnsNYCTiE6aoShkSExcuOROEKdx93UN0oSdp
+pLXX/HY0BMWnqzx8FQJABPrwEb5H0l0VzQ1RF8StfiCAnlZE7+TZDKSe4IhWzH/o
+r9d1m8bTTAfTb6kbAJrMv0KE/jL33rKdeF+rYGkWfA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/aub/aub.cert b/server/slice/planetlab/us/aub/aub.cert
new file mode 100644 (file)
index 0000000..9f55b84
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdWIwHhcNMDgw
+MzI4MDM0NDU2WhcNMTMwMzI3MDM0NDU2WjAOMQwwCgYDVQQDEwNhdWIwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALzIi+myvkm0ndYKqwHVcjNBGnGQN4cfL+p/
+W9Zf0tEjb/2Wo/JnJN80uvFUJcNbsJ61gGKgol8jSKf1bjZq3MdNYPkIWcmay3xk
+a02UbEFOVdotRX3GIEY1fGkDHMvdF1Q0JYB/vsrYCn8JYI0wVsWAIRJ6Mfei0r41
+xctymawfAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEACZvYezSxSKx2k8OmnyfCEz/R
+DW6vvpicdppWDwhz1nEvlyupuY+Iy+f1mCO+p/PYFwWIqB1Yalx3LEAmc9TH9La1
+A6UIVYKxT1/BvqkMYHoRVXF6A1mqd6qtyp96juQx63zgpzdauPJQfNUFLLXxHhRX
+iz2ewh74GuvnaUzS5sE=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/aub/aub.pkey b/server/slice/planetlab/us/aub/aub.pkey
new file mode 100644 (file)
index 0000000..399e464
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC8yIvpsr5JtJ3WCqsB1XIzQRpxkDeHHy/qf1vWX9LRI2/9lqPy
+ZyTfNLrxVCXDW7CetYBioKJfI0in9W42atzHTWD5CFnJmst8ZGtNlGxBTlXaLUV9
+xiBGNXxpAxzL3RdUNCWAf77K2Ap/CWCNMFbFgCESejH3otK+NcXLcpmsHwIDAQAB
+AoGADvP3mRguWFo1EkogB3InrIWgmZQpwcsnmXRjCtTmNuiOq1BuRfoDgqaDlC/t
+Gc8+ayPHOoiss8pwq9UV2LuYJxIF/fxq4v0igw4aBiPETUhLsHceP9UjR6705yY2
+WZ6rVxE+vlmtFVxwSB/9eW8xfRBsRdPJy1rrirRDmOOMGGECQQD7pYsPHPx9PDdX
+jJRXMHjA4cvoMGEOPTVfL+3E6o6yaLnZ2m4d9uox7OZYYV3qdYZzsBzE9lxlJ7Uy
+t6SdbBJPAkEAwAyafGAXbw30F531qWlMvVc3tHPNM52Wkh1tuYLhCxKHx+6sYCHH
+bC/QzLtz41mdPyvBxmnbnM3SVHYaP/9lMQJAMfCibjdkbD4dBYTik4MNE8o7uzKO
+sFK5WtCaMTATbZiW+YL9w3iS9aF7/SIljzgPnLngm74AjBqbPRtw0cT2xQJBALR0
+41DNRhe/J8ZtUeHPJSGg66HvUjkW8d34MxsmxOmPjvCp72UhOG8K+wr1dO6DTUOH
+jTwwSgCsUd+1XfMWu3ECQQDt1R9o+TwuCzQBF5m0XQ98qEHuD6ySfWCoejkChpjl
+o20dvRlUBa01Ne65P7y5a0OHWqdWZuLBJ6tU+srFupwe
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/brown/brown.cert b/server/slice/planetlab/us/brown/brown.cert
new file mode 100644 (file)
index 0000000..87dedaf
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVicm93bjAeFw0w
+ODAzMjgwMzQ0NTVaFw0xMzAzMjcwMzQ0NTVaMBAxDjAMBgNVBAMTBWJyb3duMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0oZ502M9kE+18RU9R8kffP3aV/4XM
+DfzE3VEC6L6g1ytzQg/GjClN88Pe7oVa4Lcrj/0ItjjAoLhawWlH8wSHMtDUuqEH
+dj9vnwHURvf+1MddbYV04i6EvmQXBvj1CjoOY5rvSSV7o7tuqNOYrY4/VPRVw0r8
+PfoleRFU3zkxrQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAK1Qfrnxie8bmHauvhlO
+wFr845uiJnAuXMuSN/oRAvNOSaf16rR19Kwo2mCKsrIL78Hhb9uNgMHETMYViLbo
+K5qTueKcmjaGDRaYLzyKGo+28jmogBdqMiZ6rAUCCEAWRCKgv+4RF5ygKeY5LMkJ
+C95qLAqN+BWm1Nlpb5F+gge4
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/brown/brown.pkey b/server/slice/planetlab/us/brown/brown.pkey
new file mode 100644 (file)
index 0000000..8aaca92
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC0oZ502M9kE+18RU9R8kffP3aV/4XMDfzE3VEC6L6g1ytzQg/G
+jClN88Pe7oVa4Lcrj/0ItjjAoLhawWlH8wSHMtDUuqEHdj9vnwHURvf+1MddbYV0
+4i6EvmQXBvj1CjoOY5rvSSV7o7tuqNOYrY4/VPRVw0r8PfoleRFU3zkxrQIDAQAB
+AoGBAK9Jf6nIlEl8BSRpZjYRtalxvrSFSOPiVv77/peiIQuYgvPQkdqNPbAF9Hgs
+Y4DzPQ2rJ1QC8UQNM5nuwyotLKAbxF0SftBkmk8ero4Sfz3JjVHBLNZBFsx3Kf2b
+smJvOfIgoQrqZOAAz6cU6JEXhWA9JDq7Njt7TpvXxb6KqC8BAkEA6oL4OWbXmWoY
+9mIsDKbIgY6AlGWAikKej3kVanaN2mM45N9PtimdxS0vjA8q0JwJarjL8fPoyqOa
+91JqD19SYQJBAMUuwjVLd8v7DnkquDhU3bOEwAh98nfMKFW+eboisHkGfvUKEeT8
+3xQFVslt4rNa4pLLIPgqBa+Yn582Zwnies0CQCzM6G7O3tFIG4y2JIQmOJfHiXjQ
+C0Zeg7wU/aphC6h03CGdJ7U9Lg7FGxg+rYc8x+/DbfLDDe3oY2psLCbTpwECQQCQ
+eEbgp2+Za1NaYXtiAoQBMKVGU4kgTtvKnukvAJWNxr2kKYGc5c1ILPU+Vh2ATXmu
+FdgNGzTZSBjDnSd3bZGNAkA1xdRqY/qKQlaPYUL3YMuNBNY+5pvTFLoyQsuEYYDR
+bzjL2N6z4BCB6e043398T81MtegDp+stu0esW4nDM++X
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/bu/bu.cert b/server/slice/planetlab/us/bu/bu.cert
new file mode 100644 (file)
index 0000000..15c732f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJidTAeFw0wODAz
+MjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMA0xCzAJBgNVBAMTAmJ1MIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQCkufr83FOXkeY4LT1a/HzAeeDYGzVyZ4Csbs9Y
+pdbfWydSyDgy08Z5V3boF/fObHpRPw+QpDc3/ZvXb3gbTBn6E39/DnJR5mNBsf0K
+dKbyGjfkPWPHGo0YeSZRRhiF1GWiRlyD5YnOyV5od7rHBeMggsC6weR7LDXa4+si
+SIjCgQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGcPcDOXXHmGS5C9OLnU8N/OpVHt
+kG+fdv5I9XsYNKlRLAs+i6lWSzxH5n1zJdJc/FQs9DgFEeAe+nN8V4OvpKCs2gRu
+kiZx0G3VRGOygcREBAor+dtup0AQQkM/OgltnpzawaN5Z2YaeBpa+W1zQW1Kh1NE
+aagGgB0yQaCoP+il
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/bu/bu.pkey b/server/slice/planetlab/us/bu/bu.pkey
new file mode 100644 (file)
index 0000000..a3906f8
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCkufr83FOXkeY4LT1a/HzAeeDYGzVyZ4Csbs9YpdbfWydSyDgy
+08Z5V3boF/fObHpRPw+QpDc3/ZvXb3gbTBn6E39/DnJR5mNBsf0KdKbyGjfkPWPH
+Go0YeSZRRhiF1GWiRlyD5YnOyV5od7rHBeMggsC6weR7LDXa4+siSIjCgQIDAQAB
+AoGBAKHag3y02AXTu4tzGBgwgjt1BbIRegCBJnNHJcCKoogwPoEebemzIA7WG+WM
+t1ZCTCVMevS6Be+j5t5VjoPz0IjNI0qODJHHZDe/U9ZvHHvi0RPaUjpR5aaeXAle
+RvH6kYuBOWCsgPwIfokSJD/IIonW6pDoIkSm5DRErOCEZtvhAkEA2dOpaw7y98OL
+4WBX7I0z2LdMdD2+TOGOZ0V6H3iRROH9YSjh5QGBHIhV9PlPHYTyUc2aH/+RaBVe
+KDoxgPF7TQJBAMGYFdh5DdTg3VNSMm2xBBOrKwqmJapLxFG29JOTq4AVSIJNkc5n
+BKeeOdFtF5ZNxwtdDVUZKAi9tvSJYRtlwgUCQB6D3V8HGBiHh2gKVCbqXRIGE6rR
+H4CrtIRZIlOYU1mAAzwCOysWu9ygaNJJvsCW6E93axkCd39KRweBp3+11J0CQQCu
+N1AJc77XwNhL4B+TiQYzMQlV1vj0TKTKKIvmtrBSXlTXNjktdpXAxeogJj1gvHOQ
+LVgPKclWPGwFmg+yWRuFAkBqUa39GWIFMT43HDoOYOedIWQ7UJNpgzJisv38QIOd
+yNdcyJe8cv7h6RqaXIAV9uF9NUFiJrB/frIb4hhTlDz6
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/ccny/ccny.cert b/server/slice/planetlab/us/ccny/ccny.cert
new file mode 100644 (file)
index 0000000..1d9759a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRjY255MB4XDTA4
+MDMyODAzNDQ1NFoXDTEzMDMyNzAzNDQ1NFowDzENMAsGA1UEAxMEY2NueTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5647f58g/6eXx1ARYB8ENVWL+OM1kqR/
+VjqoFxS3qNnacoTW9RWlR0fSM/WZC+yRhzHakYIXgyaj4zblDubtrrRRiutWnRaa
++if5idUCbq8YIK205KZpvuTQFbQ0FhJVBWpdWB5/T0b2ZheORF1WX5A+YvEEmUqq
+cUyU09J8PJcCAwEAATANBgkqhkiG9w0BAQQFAAOBgQDTHPJjsT9KV028qx4rfhyR
+sBYDfUsCOmloHf1mVPLeBNJZ2SXgKk0rED8Px1DkYmyeda1j0m1uSF9CQIHoSD3S
+Oynkw/wiH2I5v4abdNtn3nF3HBbVJ7PmbEeGnM35c8KUzH3/gbR7Sv4MzuO4GsaR
+EZfIhQ9KM0FCFNzPxffxqw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/ccny/ccny.pkey b/server/slice/planetlab/us/ccny/ccny.pkey
new file mode 100644 (file)
index 0000000..b7e7e2e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDnrjt/nyD/p5fHUBFgHwQ1VYv44zWSpH9WOqgXFLeo2dpyhNb1
+FaVHR9Iz9ZkL7JGHMdqRgheDJqPjNuUO5u2utFGK61adFpr6J/mJ1QJurxggrbTk
+pmm+5NAVtDQWElUFal1YHn9PRvZmF45EXVZfkD5i8QSZSqpxTJTT0nw8lwIDAQAB
+AoGAR6Vm+vmP79+5HUcSiIIu//tblPVWvOmoA1eSYcjjXxE379BK1XIDMb7xL2ZV
+FQ3slz2AlR0A/mr1pa91OJ2LhLPJppG5mC+IsL+O9aoHutR5rNj2hmxkAyUznHKr
+TmDKIe6yqRhsdB2wpkwXjPXvw3kkPddz1UnSPbEB2+zTwuECQQD6S94muSSBDmOm
+LqDg3GAPSCCHC/lbBPuSWrWdBsV4Ts/42roGS2CLFsgkWp+94aaQbx+7ce3cYLAT
+gxxKQo6HAkEA7PXEeO0GSAG6Sd1WGfy93ovP94cJclffSQaj+wmUgbcNLT4oe5eZ
+kkTLYCyrfPnNNe0PZjUzZjXAuielVZPVcQJAdAavWGwCzACLmQGMejAuJ2dcDL40
+PUk2BUYfYkc9SuPd7JIYIcrXWiKZbKDF5BOyTsn0f8P0a3A2rxTcDGCGCQJBANzR
+1wrdzzmxKnoFImTLS+ElJ2PDWoFM9A5oes3JSrRq8oOT5kPurbVKGMCCQDkRzTOQ
+vAYCU+jO9NBFe+S5BHECQQC+RXO5aC5o/C+vYvydi9qMjOXdHsgARxvb8jPjsrzq
+yWGnzoG7+j/m75UTzLS0TEwHULpnofJ5JiuoNQ0eXoVR
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/cernetneu/cernetneu.cert b/server/slice/planetlab/us/cernetneu/cernetneu.cert
new file mode 100644 (file)
index 0000000..a6cb533
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0bmV1
+MB4XDTA4MDMyODAzNDQ1M1oXDTEzMDMyNzAzNDQ1M1owFDESMBAGA1UEAxMJY2Vy
+bmV0bmV1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZl6ra3CMGqYfSFIW5
+TTPdYoPXrYVosGRFmJJ1Y2feEGS4WJcI9yN/qknqs3PeZN05bh5aHbU1bwjzL8h2
+uI29aRlAXc9rwr2Im3TLLtU4VLuM5fSZkoQJokirsa4oOUjrD1pq616j51vHU1tO
+7GZV1UH2bZvsHqCCQhXn3W7BCQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMx3GxB+
+7PTb2+evwhqFWVRWpTbosAbTr+G66kXBsJz1VAMOd0hHBjftZdHCOSpU1LZlB0fq
+wzoam+6Cxi8jaShTiYID/FFa+NrUj2Iga7RxnUX8/mRNItdZO1BF04hNo1bnZSeu
+XJMHSvQArZfbHSpNmSoXhuxHbK1ez5CKvCI3
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/cernetneu/cernetneu.pkey b/server/slice/planetlab/us/cernetneu/cernetneu.pkey
new file mode 100644 (file)
index 0000000..8be5f6b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDZl6ra3CMGqYfSFIW5TTPdYoPXrYVosGRFmJJ1Y2feEGS4WJcI
+9yN/qknqs3PeZN05bh5aHbU1bwjzL8h2uI29aRlAXc9rwr2Im3TLLtU4VLuM5fSZ
+koQJokirsa4oOUjrD1pq616j51vHU1tO7GZV1UH2bZvsHqCCQhXn3W7BCQIDAQAB
+AoGBAKu+mozE1KCdjyayLBpmZVmIOKgzvekz0PFdy7v8Ci+soNMgmZXp+4r4zf8C
+RaJz2mlKEYrvh+f1DAtm28NZSAWUI46GJTfBWCcbnsu31pvcGbhP0fvljnZwAPTZ
+8hUroyzd6urkZHHP/29IH8VtVbbjYWAShl2VwddBd73NGc0BAkEA7vP/rqRP5Enn
+CDBO+aZrxO6VIGftUKatG0fhYsV/4eqI0tPPizEw52iXv7wgo6ILqy2u70Z+qLYT
+swXnE2vHFQJBAOkdjwcfZm1g0qZ62Q6b5UDoBtk3GMfKsag5OVk/XihfIivwHWX2
+Eb2Wi3if/BiltDmjMDG7QcVCqDAgZc2dzyUCQQCbTRXmCYCrHKT9G3iYpOLyESX2
+89S3UDy9uE/yA+6DhAz9CRCgpI3mOII36StFbnIrBPvnI2f6eqv+9F0ksC2pAkAU
+R0r63qNlXmfUrZkWKT+PHuABo0ZXku1Tae7wMY/6SRRK6C9WgEpYyLDHRHuElV2R
+Kf32RYjaJQtGbHsOoOy1AkEA4e7rSt/fOBVnjAjH9wm7Uut8aYYk8kl7zh99rWac
+htse4vU2Kf5vOI7Ppv/bllG+h6cBLZUJVEQ8av7OYanNTQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/colorado/colorado.cert b/server/slice/planetlab/us/colorado/colorado.cert
new file mode 100644 (file)
index 0000000..f303f2e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2xvcmFkbzAe
+Fw0wODAzMjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMBMxETAPBgNVBAMTCGNvbG9y
+YWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXNdc4YX49Sz5cu4Uh3dk6
+sAU1mdZS6Ygzpe21oDbdjHt9Rajk1JWnXOZj/T+H/CpIBOB+WtSxGiVO3Sb26uy1
+rxfdD0Rmg6MWxlzqdc0RUWzfDfcp03IFEArP1QAytzlsLMG9Rtc/NUWvLdjcLUGk
+TtLAhNeKelBl99ySv9uD6wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAF7z9Nu2iryC
+D8Raa/Ff6LGNv4AAKlDReXwHxMnVd6Fj8AP/EYT5JZsWalcKRb99rpq2tWiQI3Bt
+D6CUg1t4ZGXiJ10y+hxi+pLC32GEcS0w+dFcAAgIrqpv/RD3NLxT9muskse8EN7N
+76ZmzakprDHn1atjr9vbtyAXyx7UO8P/
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/colorado/colorado.pkey b/server/slice/planetlab/us/colorado/colorado.pkey
new file mode 100644 (file)
index 0000000..dc8f4e3
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDXNdc4YX49Sz5cu4Uh3dk6sAU1mdZS6Ygzpe21oDbdjHt9Rajk
+1JWnXOZj/T+H/CpIBOB+WtSxGiVO3Sb26uy1rxfdD0Rmg6MWxlzqdc0RUWzfDfcp
+03IFEArP1QAytzlsLMG9Rtc/NUWvLdjcLUGkTtLAhNeKelBl99ySv9uD6wIDAQAB
+AoGATAomBTHNXPLdEf7fx1uPiYDwFkRIyfrhuP4Dw4zcVeNxLo4SYugKCJx2exXc
+ALxEZDX07DBDvl+ylu7k+ZGAGPvTiLQmNKysHWKByrpfAiyH5LfVUzwemuQtO89T
+vXwcZmiMRKPF3KqJC3/rLTEYEmigPIoJ1ifZMlo5Na+t5GECQQDyiDZn126+QGll
+lTp3wU2sIgVWKJkjqmKp2ICBwKlC0xVPq4gYp7zjOnEjjEbB4kpBkNB3VnASTbGw
+Dqx7JX1PAkEA4yk6OcSEle0+4gyo6kJ16KneioufqW+ONAww2aSpyE/YxtuZyNiF
+GiDuyLucwds491aqM42SUTMDqj8yXUJApQJBAMdEbx8GfDDIj1AtOeqm4gBpu2S8
+2oXZOlM+VOdGukrzT3E0CA/p0WII5GhGmuQ13rjcGMvUMyR2vWVfyQstFDUCQFpl
+raYPbjO7laqfHxkaGZHdB5Javc7PdeeAcnAp9uaf38RC34/tmgor0NpQzrDWbHUB
+J/ob/H4TrwGw5Hn4Q4ECQH283+PKpErNiMgkPadO7dWrW0gwWXWc9+11LZvfoWiB
+QMw8NyvbeqOtP3nqY8NLrFkMO9PRsx51DYK4s/fBWGI=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/columbia/columbia.cert b/server/slice/planetlab/us/columbia/columbia.cert
new file mode 100644 (file)
index 0000000..9dbc097
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2x1bWJpYTAe
+Fw0wODAzMjgwMzQ0NTRaFw0xMzAzMjcwMzQ0NTRaMBMxETAPBgNVBAMTCGNvbHVt
+YmlhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqi6dUknFKC1w8HR+e/w6Q
++XaWA29YQm7icXVMjK0r+EN0CEgkWnyQsq13opXPzF8rejaoT7p/e4cdrCRmrowO
+EdQwh5Yaj5HMyY04el+kr6xFxF+1rR0WrpEeWSwKTI23DWPxLvr/b8zjBSWcxjut
+kiHYGbGCcl6Fo+Q8HV0wQQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABp1qk6HHNCi
+iEGf/56sOzpA4OOO0HWXur0zKFpr9Vg35JrKmK98Tc2eMxeOrLvR4DcwhCFZcEiV
+XRCnqSPPMrKEdDgeQpg8T5bgTp++XSNjNHUJfJzwSF/NZU6UceRWhrrs2xOOpoOu
+SG0sducdgvjylTLEntv+vlVS5/K11UDV
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/columbia/columbia.pkey b/server/slice/planetlab/us/columbia/columbia.pkey
new file mode 100644 (file)
index 0000000..99d2024
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDqi6dUknFKC1w8HR+e/w6Q+XaWA29YQm7icXVMjK0r+EN0CEgk
+WnyQsq13opXPzF8rejaoT7p/e4cdrCRmrowOEdQwh5Yaj5HMyY04el+kr6xFxF+1
+rR0WrpEeWSwKTI23DWPxLvr/b8zjBSWcxjutkiHYGbGCcl6Fo+Q8HV0wQQIDAQAB
+AoGAeUH+HnEfdOJuqv17jZ3bkAQI1QGtnPmrjhKOTCcmmGbfqKtncLP/Vmep2wIJ
+ZccJJNcoTtf5WVMpxaNrplJzQQ1pGu1QBbYNJEPZ4jZNOv9WjlbKOErh9QyZZGYg
+CLg0JW8PXNMgjMifvxx1w7jgAA8Rr1KphxqJWlauovDAPYECQQD8PDA7FyFa8Fxi
+bpnmdLg0bqV7wJQHAAwos4HnfIx4GmFGRovfnpTXDwO7GAzglRyIYodNtHXhmnKZ
+h1OR/lzpAkEA7gvfL9Z9fTQfLBgHy9GG6g4Wp7pLFzwI6rrkmqI/Z0e6CC2M8XL+
+SQp1SDumbFMKHdjlYiCrCXDpE4NS9mzBmQJBALGzSZtnqUUjD0L9folAc8Hkrcso
+mmDwJKDMDlnigiffFebnroVFeMCmQE+gGvphsq9XEtGosF/XaqNFFphFJnkCQBqb
+LxXstlfxJG7MPMrWH2s3qeaTVuNA7Yo222hBLC8CAFP7q14tSSimx5cMO7ytx1qw
+rGq8VgGXIiXxLqumWjkCQDxbkoi14s3PIFlo5TSQH2OL00KsE6EYx+ceeY4l12eI
+nogNVh8T7gKeZaaObvZZFYfLqWi2UhmeECsHZQvwky8=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/irp/irp.cert b/server/slice/planetlab/us/irp/irp.cert
new file mode 100644 (file)
index 0000000..db016c9
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNpcnAwHhcNMDgw
+MzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAOMQwwCgYDVQQDEwNpcnAwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBANfWdYVtEE6fPiRbnX2Vlgr3yVy5kEryMRKk
+8X8/ZEHPMNtsQW8aMk05D9AONXv5vVng2m7V4lijBw3PdkBUOkYXKiQc+wt9tkk8
+t7xzAzYEi1KYpkwYuGYtP03WXXSGSxqKl2hIN5NqfsY9KYwdUu+2CCT+AY+SxGuO
+sza204qpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAhN0H0VVo1rFF3DUDPQrIQbRQ
+DTf+QUkCNMg/OaRdHAnXAh1cVuorTmYPINq4DBUbC+TDzk98U5hTVs7M5JiRoILp
+IV12aMKEGFK8YUCPLhiunBX4r2DH0S5mu07sq1U7UHFKPJis5Wn68KwMczGKvl71
+6gL3+IRw7vCjz9BMzxE=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/irp/irp.pkey b/server/slice/planetlab/us/irp/irp.pkey
new file mode 100644 (file)
index 0000000..8667a37
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDX1nWFbRBOnz4kW519lZYK98lcuZBK8jESpPF/P2RBzzDbbEFv
+GjJNOQ/QDjV7+b1Z4Npu1eJYowcNz3ZAVDpGFyokHPsLfbZJPLe8cwM2BItSmKZM
+GLhmLT9N1l10hksaipdoSDeTan7GPSmMHVLvtggk/gGPksRrjrM2ttOKqQIDAQAB
+AoGAaqz1Qq/H2oP8C644JaS0FtGm9SxFs7UGKgfZ0CF9pMUJibl0kbvp1p74QMV1
+C8RAINbwPs15ZIOW7e12rY6ziZ5x0Mjzx2T2ri/EQmeB9UUp3neRVhBaYaGl0Rip
+SM5Y954mDTxxd056fy+Sfh6Q4qq8J5ISWcy7GrVVKEBmk/ECQQDuXySH2YcDqsGf
+l+YNbLW/O+aBwTQcBedVGi0JQe82J3o5sIoA3zhwzGDMA0EWt4vpDYb0yipTeyCB
+YNepuUINAkEA58y0JWlXU5QVgieCp2egqHUp/VY142MO6GYasCV1pr8qf6lABj83
+byCo355NGpxMAaggduqnejD6j1+vF7vwDQJBAOIjxOZUifACqRoc4xVNUscPrsje
+X+9N8n8cDCnCMYxwu1XLk8DsBAGPAy3I0JEapFL+kE/fE3SLVPUoyLCtnmkCQQDP
+bwjnUdWsHaEB0InDdaD4H6Fr7HJdApCcuIK5j0wx5HELvVJmRLw+3mNBelBVt/js
+oqAqyuMFHj+bfm0aOD0hAkBjB85gGzjDwY0K514D6emnDKLiDuj9wEGiaRQDp4d/
+OWWIn1ea65MXFyPYFQbuPVwa5m9Vxl9A6+Qry1uFWvqc
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/jhuis/jhuis.cert b/server/slice/planetlab/us/jhuis/jhuis.cert
new file mode 100644 (file)
index 0000000..7e3ecd8
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqaHVpczAeFw0w
+ODAzMjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMBAxDjAMBgNVBAMTBWpodWlzMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4ipJ/Rah4jVV6N+vAEcjrW0YBLyWN
+gK4VuDv2zkH9hgGmLwXZ8zo01FPR6H/6u5MeQ1PNg7YVdws0SvYygBOR9uYgKPRa
+BoKmX9U+vGayhPT32haYc3qqnkAq1NUPMSkKZtb6PcBSJOGMc+RsW8/VMJk7pyVt
+zEVs4cOaaLLULwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIBauOrbC0d4jIEuX1Z+
+UWHND/xpAY96tGMIC89NPMPhxpFsluTBQqBDsjPdYNT8LGGdF50STBNO0u81MUoc
+DI283D7Hy3WdhsExk83XdHujLqSB1bIR0koJJzgIXTa6kMk6DuraKixr+yeNVEiH
+ttbyJ3G4SMJzFYRw26yxr78Q
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/jhuis/jhuis.pkey b/server/slice/planetlab/us/jhuis/jhuis.pkey
new file mode 100644 (file)
index 0000000..2f2a449
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC4ipJ/Rah4jVV6N+vAEcjrW0YBLyWNgK4VuDv2zkH9hgGmLwXZ
+8zo01FPR6H/6u5MeQ1PNg7YVdws0SvYygBOR9uYgKPRaBoKmX9U+vGayhPT32haY
+c3qqnkAq1NUPMSkKZtb6PcBSJOGMc+RsW8/VMJk7pyVtzEVs4cOaaLLULwIDAQAB
+AoGAdFeAdlaPGLlZyzyYFzXfKmoXn0V+8k/O8Ih+3WE5f0DNp1x73uUVrBq0YWCn
+1oYNAQZHPgiscankWWps/nd6XfhvuY1PaCot2x1jb2qtShg60YW3k6WDmmmKHbdh
+IgJE4aCUt9oVE3mAJHbefA+CM76A9S2gczYerMLqTnZvs7kCQQDZsrgiqpP5Ato3
+0lekzlWNiZPaiYOsbhDdriJk+l3tU2zUkwQLBa9YDWMdE0GoN0UfUv4Xf6xUEovK
+eEh9IOs7AkEA2QJyFi5g0aO564KdpOWN5jUiQWIJCrB6ndBWm9cwdcmIsbVAuY+C
+Iy9K3AGrZHcaUhFY41bQRKrXN5TFbXSjnQJADSd3aODVwB4kAWt8UEEHel3tyS61
+/h1Id5ymB2P5ePWphc68V84oIjHs4zzeosN0MchaAiF80DeuqrVJ7AWpMQJAGTp6
+ju+XW+ff3mxR7XCufXvh3p4KFQ8NQjmNSBLNVHQ4iwhaXPg9FeASoN8k0Moz6iSQ
+I+Xc0o7V9GU8SoxL1QJBAMkJPnO5OTrAdDAJOrBW+cD0FBs0TCyKo6cByT1J9saa
+hVz5teUHQMelehOGiOChv0xASHgn2xVFHvSTfsCU5Rs=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/michigan/michigan.cert b/server/slice/planetlab/us/michigan/michigan.cert
new file mode 100644 (file)
index 0000000..b6bea7d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhtaWNoaWdhbjAe
+Fw0wODAzMjgwMzQ0NTRaFw0xMzAzMjcwMzQ0NTRaMBMxETAPBgNVBAMTCG1pY2hp
+Z2FuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+IB5wVi7z9TmbSpW9zxKe
+t+X8t4j3+eHgKj2wbWzcH6AopKz+64SUDjGnGLCj+WuJ/VEzGjT3mut5Nq550EJQ
+GUcXsTxB2WLt9wQXHxCG2a9B3VLm1cjB3DgLbvEF0kswvDusvJz6c5uRgfese5P1
+UvBhlOACnrFZvbd2rq6w7wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAA/K1ATWBswm
+BfRzU/yGJhemoFfPk8vLwzgPHemDj7VAgfi+50UScx0p0aSoeIHADMDwZj2CNOA6
+nHFdPm0GnyT0r4espnSXLiyF1vDR9WzH8P7iHswniO64b+uwMegjZcHl4Xxw0UCm
+Wwz551w5jY035GqWytd4tlQwXqlbl9bO
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/michigan/michigan.pkey b/server/slice/planetlab/us/michigan/michigan.pkey
new file mode 100644 (file)
index 0000000..5ea3d7b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC+IB5wVi7z9TmbSpW9zxKet+X8t4j3+eHgKj2wbWzcH6AopKz+
+64SUDjGnGLCj+WuJ/VEzGjT3mut5Nq550EJQGUcXsTxB2WLt9wQXHxCG2a9B3VLm
+1cjB3DgLbvEF0kswvDusvJz6c5uRgfese5P1UvBhlOACnrFZvbd2rq6w7wIDAQAB
+AoGATijqGohzmPsRCZQp5vP/1ZwIQlI5Tqg9gWgcIDF79SpTLyIztECiKjODmgv+
+YgqheQLYpMd7Suc3MoeWRqGlAI9cloGDPV04QoQXRz+QIsu7geQdl9tBt6gJv10Y
+++rm8JOjBv3SFpiG2gLyRPW5WagH3cGHv17FoZR9cnx7e3ECQQDe9G5wvGkDTg26
+QOUOCqvKdHmKS5I1TLJEPYxNnoOy7IKEnuF6sQWN7dDMrH3PStiisl9Bl1BCFv6J
+o2TtRFYDAkEA2k4LYvSnq0nhR3uJ3/+7qp7l5dZ42+nbKh+PRn2KzvALomYE40+D
+dS56sz0VGA2ZHLOMrbpK9Qq0C4O58JBrpQJBAMPOnjPqdLvPUCUUm1ZCru9mbdu0
+VRr0Wdeuykrc/UMljdcVhmdvkrY8d1VZ5EAqtqnkx93eG0F/2lpdIuVyT6sCQQDI
+pNCsW+c7dMT82VvoqHiJIlB1BcHBhlgsiCM8i6in+FMJKTE2518Qte6KjQq1N9JR
+Yelbx4ybWgIPTzv4EhUNAkEAmaAQj5RXRTKca+6jXptK021RxIKis1qRwLj999cM
+gAA57Yk3oeiZWSWGoD0BxFs3hR0EcUTRTo856qX5LbYOXA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/northwestern/northwestern.cert b/server/slice/planetlab/us/northwestern/northwestern.cert
new file mode 100644 (file)
index 0000000..69ab82d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBnTCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAxMMbm9ydGh3ZXN0
+ZXJuMB4XDTA4MDMyODAzNDQ1NFoXDTEzMDMyNzAzNDQ1NFowFzEVMBMGA1UEAxMM
+bm9ydGh3ZXN0ZXJuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaRVqvAQ9o
+0PmOLe10t9nEFXaQhHKP4LAX+YhfKuwn54si3SMC6/1YKOgIP4h86bwJUXKWl/f/
+eXpYadyAM1m9XUBNI+8K9Qybf+NGwvUe9BHQbadZElP/hWwfGkB4ubw4DFSdjkAp
+qmBsezOyDaT8w/FrDyqCYCCWjscjWlVw3wIDAQABMA0GCSqGSIb3DQEBBAUAA4GB
+ACdQjSPsRDBjpCfK+HTtosMymSpd6H+c+WQ2EpbDhrbMwalQXukvWpx0zBgVdM0T
+fFfdpKMw88YeEtLafDtZCKyYEn5k/s3ikZqidLdYz87h0GRYHc+9ahu3x9od46sI
+DDI8XBAcGRlm7vwYCwpD91hcp6vs87Nq62x57ErMRZ17
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/northwestern/northwestern.pkey b/server/slice/planetlab/us/northwestern/northwestern.pkey
new file mode 100644 (file)
index 0000000..fe12573
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDaRVqvAQ9o0PmOLe10t9nEFXaQhHKP4LAX+YhfKuwn54si3SMC
+6/1YKOgIP4h86bwJUXKWl/f/eXpYadyAM1m9XUBNI+8K9Qybf+NGwvUe9BHQbadZ
+ElP/hWwfGkB4ubw4DFSdjkApqmBsezOyDaT8w/FrDyqCYCCWjscjWlVw3wIDAQAB
+AoGAQvdiUi0GGEd9OVT39IZvpoxbOw2XxHLQNBrX7zLRD5EnjAPCuSPEL6clQVqU
+upZPnaBCgtePO+9+TN/1ydN3ZWPFgEWJMSlUhwVgiNEKj4Dbffrx6OeDZj3r6xI/
+cSSMxvNzi/9snlBEyYKesi25rja33m5bv6BP0aaXUYgrVZkCQQDvw9nERXUHytMB
+3HfLTdg/wPjp0fVKPuvQwVwz3xnRDWw0HHucqi8zftNSUH6t/RlxsPTYKa5LTSn1
+HwwQ2ZbTAkEA6QzrN+uatRM7HmCq6oWk9ANyYUsZFAYvDLs/zC8wfRLtGO3ZXA4E
+lnE6v2NzloGuLF+W3obu/uvesrngNybORQJALjp41lr+AY6duJIlltFfjItMcujE
+fpg7J3jgqi+t7pzD7BhBzScTCr69R/W1Nx7BtSYFT1hZ/rLWECj4TpdleQJAM8PP
+13r4wTHFVukH7dHDowPE+0FwD5eUCdLpx9PPhGiYy4nBVwYyFKyP7QUNHqgtZOPS
+ohj8qxj/PVm2KOnwtQJAY8yca3rwxNCFU01RKPZQak+PbpxMyY819NkT4zhCcsw7
+wCR6ytm6SbYjIX8HiJZD7u6K7lNmblVASqQipdDaWA==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/orbit/orbit.cert b/server/slice/planetlab/us/orbit/orbit.cert
new file mode 100644 (file)
index 0000000..bae41f8
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvcmJpdDAeFw0w
+ODAzMjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMBAxDjAMBgNVBAMTBW9yYml0MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+kK4ZvtSRC8JkC7Gfk0biDjxJhhgN
+06EmZjpNrS2D4yUi98Muv2OKq4T4ALmlVJ6/n2IUkjKJNPkeZYeGeo/IbO59guxi
+nfIJRNqDT0vUv5H+sx/KMliU5OfnRJYcHw9jeIBT/5rMH2cS6YmsF4+Fq12ygOOp
+x9wTNlkU3ZWZAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALN6eKbNLKdzVhtCHZ1Z
+ZagKhl7yLQlEhKaztcWI3zMfhsL3vC5FXJrKGKACMnPOkmNVtDa3e3+LlIU2Lnpb
+NySYbgHt9uDlOy5mQjw5vkDmUXjX0w+K/Ris1wqLu4EIXbcxdJDbk+6TIbUGb2nl
+hNbf4VRpL7Wc2G9Sc1We7tnm
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/orbit/orbit.pkey b/server/slice/planetlab/us/orbit/orbit.pkey
new file mode 100644 (file)
index 0000000..37090ad
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC+kK4ZvtSRC8JkC7Gfk0biDjxJhhgN06EmZjpNrS2D4yUi98Mu
+v2OKq4T4ALmlVJ6/n2IUkjKJNPkeZYeGeo/IbO59guxinfIJRNqDT0vUv5H+sx/K
+MliU5OfnRJYcHw9jeIBT/5rMH2cS6YmsF4+Fq12ygOOpx9wTNlkU3ZWZAQIDAQAB
+AoGBALMDPkk5Fn3ayhUpVwZMV33rWX7H1LjIYM2ton9teyA1tKEQle3IJD4Tuakv
+JTXGNApWMtCYNZjmhk6jmZgecgl6HyagvehrxXJNOgp5cSELHamhNss66k880XaP
+g6cnfIqyYummvoAK5Z8Poa+1/wSgJhXUkTJ91oeCVUwbVldBAkEA4RTsntVczJkF
+zIW3dtsM9USiacf6uKbXlwiJyAVdC7XWW+5JubuhVD+mp8eoGGlBtJNlyGCMETke
+bD1W2g1nJQJBANi99/M5THfal+jJQzCqBW51qM2slmZtQIa8+HP9e4P5SVHOawmT
+fdp7mEeLB4Hw2IBEpP+KH102eDQ5Y490wa0CQC99vr90vXPeBb81p5RIe990b+Bp
+9Zjoeyy+/HNbzloeL/CNwriRwmSIWZ2lHu6nptl3EE7LMEKiDq0/9AdmNJECQQCG
+aB/X6+N4u8zSZeTNy9G8cyhwCyPldsC6DXvBaiLrb27BVVFZSeaU02pWi2fnc7S+
+rlLnyP60LjASqrgL4SqtAkB4RAlTGWrl0IQgapxo4w4pr/sk7reBKtSGpxzo/ewU
+dinaGu8FSzqTRUcWGnhHH7wZ2rtSRWltNO5qZZAKfaJl
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/rice/rice.cert b/server/slice/planetlab/us/rice/rice.cert
new file mode 100644 (file)
index 0000000..61cd573
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRyaWNlMB4XDTA4
+MDMyODAzNDQ1NFoXDTEzMDMyNzAzNDQ1NFowDzENMAsGA1UEAxMEcmljZTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwn8WNNIDcwNTK6D1vdvJj1Yj8idOB6gr
+Ntm4rEutcIfqaMAPc/Wka2l818HUH4lIj7l4IL7yiJZCk2SBGfPzR6G1hs0mjhZ4
+MFTiMnvhXyaGGyBNWalZwChWqcPtOPPP9lIgj2uAy3MWwUGR84jVj7Ql2Ed7f3HT
+LpFg0ySy+p0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCJnHY+9YAjtDyZ8IwVmWip
+IRMjlktgsnSXkqDeZ2/QPej1XrcoY28k/FtbM4OTH+K2xImZi+AXhPKwUlmnGGnt
+ipJAwroZ+dvUVtWokjrlrKlF86pz3/+MHrO3mZ4Cn8hN0hbCgs/RvpIkUcUaSZvI
+Z8MMeTA3srLHGUIczW+Xtw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/rice/rice.pkey b/server/slice/planetlab/us/rice/rice.pkey
new file mode 100644 (file)
index 0000000..b90927c
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDCfxY00gNzA1MroPW928mPViPyJ04HqCs22bisS61wh+powA9z
+9aRraXzXwdQfiUiPuXggvvKIlkKTZIEZ8/NHobWGzSaOFngwVOIye+FfJoYbIE1Z
+qVnAKFapw+0488/2UiCPa4DLcxbBQZHziNWPtCXYR3t/cdMukWDTJLL6nQIDAQAB
+AoGANi9Vrm17zIT2nMcA713V73reFM5ibLurHmLVkhqbPSiAY6JuK64ZmlsPDsTP
+JeIHNxNCpkzMIMVL0uhDF0nhUm0d/h8hiElTU0RhCN5QC49OdWtnAyrPgbBAtzRq
+isVDNsbnU2XnhEAj5WcThJyCtfH2zfwNgGu7dGgpSj2gRgECQQDjhOx3zHAFPQ7i
+g18+nqGGLgA3w+ZDO5x7xVavw79A2Mlw74qBkroVcl+5Vz3EU0481K9xwVObkzTr
+4aT52lxdAkEA2tfqRE6Zo3pi38KOCiBcxtF2f0JiEjSCoR7kA7uPaB7MfvUINJ9S
+g2nOfd5mA6uHJGmyiiHA6+2yT82cDZczQQJACOFhUXO7U5kEgbba+ti6OUCGZabR
+0AH9o58aORYM2v0bL7tJzrDpbnjeX5+WG5mczicHCguftczTHfnatJ3fSQJAPpnC
+9rUxN9VbkTx7GyR0xZ7HcdHQcfq5X1OR0AuIEzW0M6DuLvdgSB0tJ05GCki3yM+/
+dcoAAL0m47MiL7UPwQJBAMP5wBoh3DSrZCnn2PJYftpGCdWr+0eKgm54yl8knvYK
+5Pn2zkSXK8kL32MUnKAIEGypkw/4vJdPe9TxnOotRi4=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/rpi/rpi.cert b/server/slice/planetlab/us/rpi/rpi.cert
new file mode 100644 (file)
index 0000000..d99ce0b
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNycGkwHhcNMDgw
+MzI4MDM0NDU0WhcNMTMwMzI3MDM0NDU0WjAOMQwwCgYDVQQDEwNycGkwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAMktbvEQKoMOn0qI5wM246CHJUtSU46DSYff
+Qt5g4FJAAG7WjWTV3P4GO5rzfiIVYZmS5Jq/ijWmJHl1G27eRu7b0U+OIRSQqFaR
+FOU9UeUnPc4RiVL98l1W7QqqdBs6qhErmjNt1GuJ3lJwAiGEnAYIFGVjeFAp6gps
+WJvkG/rNAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAaAtzTqBZ6M0/RLBKxYBxQ2WY
+krURmp+h70dB6WyEC6jkI6S0C+fj/kLai7JM6okVYg99B5YlgY59SMSNFOdXvXyJ
+VRzWqhOj2+mmb+hoW7lYQT5jLa23JcaUqmyeuGXa/fHlR1/zLgHTBWIL8wLxXQgw
+YbrHq7cFnuBZMDI1uS4=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/rpi/rpi.pkey b/server/slice/planetlab/us/rpi/rpi.pkey
new file mode 100644 (file)
index 0000000..23dceab
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDJLW7xECqDDp9KiOcDNuOghyVLUlOOg0mH30LeYOBSQABu1o1k
+1dz+Bjua834iFWGZkuSav4o1piR5dRtu3kbu29FPjiEUkKhWkRTlPVHlJz3OEYlS
+/fJdVu0KqnQbOqoRK5ozbdRrid5ScAIhhJwGCBRlY3hQKeoKbFib5Bv6zQIDAQAB
+AoGBALPT7vWA899OtMjVc1qGOBcIdyfLIXGknZfc1FMf2aTsHPb2xlE6cl6Hh8RM
+n5Ur86Bpk/tX991Y9AW1zp3eBxxqPVpWArWEXeDNPwfOllrxtyEaI4pWisSkATYX
+4JPW9d7LS62mT97XyvUoP+rbeYQXnyUDbnShy+7/5Gbr0OqpAkEA7PHSJAXc6u2R
+3c78L3WKPN5iJOZvsZmV35INRAwCxtE8ECXXx7fVO48nH49hUSmO3ZFtzHi6GP7t
+zF1igSKZ1wJBANlbPoHvd7KCiiEgHU/EfRIYXxjvmsG+rlpo2dLtRm9h1wieNY0/
+sLFt3kaPCXYax7U3h8llF0jBS/X+QNu3Y/sCQEmVvB5F19r51sAc5QLULQ9EPRSa
+n/t26C2bjRUh6cbW+iFFr2Kt+8HYbl0FyUJMdrrmzEOhBqJ2oWFDazERjtcCQGUw
+E0OOZh0WpJOTTdIK2WcJLYyAT32O9cBlO7L0f2vvEpqSfL/LPMj9KxOSF4eCJCL7
+PR3HEDXwtxpISY2ALO0CQQCrr3VuHI9HGwTN70jzV5ZtlufUek1xMuO18cswCgGE
+4tV+neTrKUlkJNgo1Qa95dMlb9cCLRahwOBF4TI5rI4u
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/stevens/stevens.cert b/server/slice/planetlab/us/stevens/stevens.cert
new file mode 100644 (file)
index 0000000..e64478e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdzdGV2ZW5zMB4X
+DTA4MDMyODAzNDQ1NloXDTEzMDMyNzAzNDQ1NlowEjEQMA4GA1UEAxMHc3RldmVu
+czCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1MnzZ36Guii0B5AKJKpu95r8
+WP8o06UhBOou3ansEGXAhn3ZPzLWWapm2giBXkceNRJkZUC3tXaNd7fT2xBqgn1D
+9QGJvZ/+f18EKdjg+GRJJSV5ge10LF3lqb4SAFmgvcX9Nu3oihM2cg8kt/lF753x
+q/ERin9fALiAFUrf+zMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBoE7fcJaySaOiH
+qi73Wej1a/jn+Ul8Vyc9O7ELYvB5mnqpPOH76Skppuz5vzerIvcb2OLdFNAewDiX
+xKq4kYs7/S5YWipUvBoL/vYRg3QCPPIc+sybYbgtr912vTjKmRbrzB0RM0cS4LRY
+uck1s1KfdlK8cFZIuDSKt0qJBSiv2g==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/stevens/stevens.pkey b/server/slice/planetlab/us/stevens/stevens.pkey
new file mode 100644 (file)
index 0000000..c53b25b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDUyfNnfoa6KLQHkAokqm73mvxY/yjTpSEE6i7dqewQZcCGfdk/
+MtZZqmbaCIFeRx41EmRlQLe1do13t9PbEGqCfUP1AYm9n/5/XwQp2OD4ZEklJXmB
+7XQsXeWpvhIAWaC9xf027eiKEzZyDyS3+UXvnfGr8RGKf18AuIAVSt/7MwIDAQAB
+AoGANnJKHqQoUv/RONIpVkJpzF9SzG7VgnoRHdHSFhPBfFycy4zuBpa6dAz+7jEY
+8QefehLvr1zE5OClyAk4YygrKCrCw9juiXtSkPo0vwqdCfLNWLgeudEPpTA1QbkR
+JrWgGkQSAiuqRWr+Lm9y/k4ULGjX3KpOeCwEnI29P16jkeECQQD3XZljIi5Mz5W/
+lnBoxDtLv9L2Xk3brUktKbAcCjaUvZ18uDAeZ0tMIgY6T8sa8afjrqZ8WsCi1rbu
+9JJ+cC1jAkEA3DdhxpRYQvwptspLk48uZ4zTBi+VtznDJhJWYsTZWBZgaspIO0M/
+ZkhR6jaWWnuBzNoakQvQdtzDVPmMawYL8QJAKuZ6wayd5whhajbHDARsXDjKd5vn
+WN/2vvRp7JMA4E76TzUKc1tqvatw9Q/9o5Chk2UozoxWuGcQluSnu3HtDQJAIqgs
+oR3zjgc1YWkQ39YmzXEiPNT8UOusRK+aHM0yD2TmI6hWGc2JisVS7vNMUk0hrmWc
+zLr5QduYeiUT7jvzYQJAYPN0sadE6qDkoqCREMsNWMVynpVOZoB8WalH8TfYh1Zo
+4IZWPsx1sv600J7GINtsgGB+gwQSbUe+hWbanxfLlQ==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/tky/tky.cert b/server/slice/planetlab/us/tky/tky.cert
new file mode 100644 (file)
index 0000000..bc59b4a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0a3kwHhcNMDgw
+MzI4MDM0NDU3WhcNMTMwMzI3MDM0NDU3WjAOMQwwCgYDVQQDEwN0a3kwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBANUk7u6wn8t38ziGyCjmlZ5dBlCluZ81NzC3
+k+YvWMSLH27baxXLJqJjLZV9hXeSY6kNzWlGSOxP9675cW1NEAlk8bbZYd5i09Xh
+TA+WZWFCxNcFfCpcUHbwGC0sOblj1OF2zScL4Bt9Y4CpP2j8+XNqNAKGxPBY2m6Y
+ftLL+7KrAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAYILsZMR/+d1UcZg2TGVwBaEt
+azdip7aLJavRqebC9RcFhMA5SnCq2cyHcADI3YfKuSXvXpLr5xXZWYUEMHyGmpv+
+YtK316I4mmGwRXPA4eQea1xVDRbfYp2nKRXeKEQAPIb+DQYy/kXsnwOpgXVrcSvh
+Qq2GuvO7KB8tuKWwZxk=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/tky/tky.pkey b/server/slice/planetlab/us/tky/tky.pkey
new file mode 100644 (file)
index 0000000..19c2e94
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDVJO7usJ/Ld/M4hsgo5pWeXQZQpbmfNTcwt5PmL1jEix9u22sV
+yyaiYy2VfYV3kmOpDc1pRkjsT/eu+XFtTRAJZPG22WHeYtPV4UwPlmVhQsTXBXwq
+XFB28BgtLDm5Y9Thds0nC+AbfWOAqT9o/PlzajQChsTwWNpumH7Sy/uyqwIDAQAB
+AoGASFwehYgO57uUJceUIlaNytKX9z8b8lHVp8NbAZVnVGpKxI7XHvH17sEu04Zm
+jj5zeQwHhUroLNnFI3Dpsgqse3VPvqWqL5NL0aseHR2nFPgABfUm56O8QF7ibvRk
+Mi7dbfd0HGlh5ZhKva+WVpvS0V7CD438cJ5kPae6uNrRUdECQQDwOvzcshjJdzNt
+Hb6W0R50Gks02GvrrIyZeaQOWeHcHDfX41ERQg6Ag1gO7PlZ1Ra0psYufs7axDjv
+/C9YBadzAkEA4yLFBEhXKFsGLaC4HniJGOpWLtGk717AM4oRa56eWA5N/63bHdWI
+mJWTesKqJ9ZfD7KDEo7vSBzzn/fp7u/J6QJBAJM3cvJEahA8blV2HvAJoyH/Yws1
+fZ1llpwPAUySJGlhGY/BjFKJKp3y36n16zDz9wAqG9UufNFv4nyfDNxiSqUCQECo
+RS1S6nyybK/QcJk79ssA6keppin97vi89PiNzsWCTPHbq+RyRNAqxDDN+WIdxDHT
+vzwpNDRzCWcgS5eY6wECQCnjhw4iZ0VCTKjKSrXHnHO+1LR7HOtFyBpZk7SDB7/3
+BCtAsGYjrtHQKOv/laZw2+qRsceYkrJDrCJ9194O0ck=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/ucd/ucd.cert b/server/slice/planetlab/us/ucd/ucd.cert
new file mode 100644 (file)
index 0000000..0d56351
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2QwHhcNMDgw
+MzI4MDM0NDU3WhcNMTMwMzI3MDM0NDU3WjAOMQwwCgYDVQQDEwN1Y2QwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAKC/zUm0FA02ANkYAbBrg2PJ3NYduJNFd7l6
+BQMOHnFKZpkOxuLrwbV3tHdjiY/UArD7BULwS30Mhu4EuHAFKVf5UUc26sWiUd/H
+Xg2U1R+yj8wj+/PLS+UXdHnXGDAj6fSEjWYuVa0XHxDNxFn+AQHy1s9B7U1rAuBl
+CLNuqjvBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAPI+KZDyVFwqW8WBtklpHgqcf
+VZBbEA5o99wz8OB4Y9N70yUjpkblcHBlZIuwWoyy1boe+yVl8XHhBZwGCgrq/xCq
+v/WaRUl1hG0sBUX6Z9Ot/6YiAkTDjt/isuvfS/a7dj5Mx53ZUpSGtMcxnUsAh3SZ
+k4iYkCgy6JBUuJAQ7Zo=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/ucd/ucd.pkey b/server/slice/planetlab/us/ucd/ucd.pkey
new file mode 100644 (file)
index 0000000..7f0f21f
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCgv81JtBQNNgDZGAGwa4NjydzWHbiTRXe5egUDDh5xSmaZDsbi
+68G1d7R3Y4mP1AKw+wVC8Et9DIbuBLhwBSlX+VFHNurFolHfx14NlNUfso/MI/vz
+y0vlF3R51xgwI+n0hI1mLlWtFx8QzcRZ/gEB8tbPQe1NawLgZQizbqo7wQIDAQAB
+AoGBAIlBnLE9IQ3yuaCk3fRcqPDQ0U7GS+78FvF5XcQxDw9fHuG7+1iRQ3KGhsKW
+bEQyHCYwAFsawOpCgwfDYhTMY3KPTJ6QTA8mljBhds2VWBY8b4Rx5z/N1qJmVTkh
+QttwT+MeENaZq+2AZcvtjl/AsoprOhHGdMuGBK+wFOFix+UNAkEAzUcL80gSvG5R
+haHGQB4ttDCThgNIgdaaq9QOMdFBVx0HWK6fjdmFyQlbt5aCs4vDij6S6PrYhUX9
+K70Iwr3zYwJBAMh4F0GqYLkPIEMs+TdF2qfCQan/9m6Nk72TjK2I3H7bx17E922k
+nwjcyoNmh7wx3IE7cOCRf7aJ9Tsv2r6xJ4sCQBqPttwj10jKfYHtDNn/DarjHjOY
++SjTu++/4JZRnULIXsr6zWptWwJIU7XNo9vXmdWpgxjiXGHiTH/8VcXdDkECQGRh
+PcPzvFrt6Am7C09R+xrlelvVf1/8JG5Y46hBT6d2BW6+0eZk9/1IEV+ah30EupU7
+XloUgQ62JcVtQOsbaeECQFy+XESBh7QsFyItVJb6iq9cvc3yFisSm/sLHewUuYWe
+uza8M6sLgjhcAybA2uoN/c7grjp9IsoCddSGnCxuDNY=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/uci/uci.cert b/server/slice/planetlab/us/uci/uci.cert
new file mode 100644 (file)
index 0000000..6f48dce
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2kwHhcNMDgw
+MzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAOMQwwCgYDVQQDEwN1Y2kwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALAUn8PKeVF7TuuxcmRpX8JIoNpIK5qW3QMS
+kvgqxd40Xq2XKexw7qe6Gt3tRxgnADTAIUf/wW9/V7KPojRNZrfL6mdraO5epFpR
+EQOmntswu0B8MaPa4wSOHOsa1+vw00ys4VZVzhSs4vIgBxAIXQIc9YbMNEEQklCc
+L3k7+yITAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAHPqygZiW2Qim98dUhZUilF9D
+76O2ZEnwRu7gku8PCsph88zgvhyivCC3EhYKxCS9/pO4TbV8ixvTX5Z7Sr1EajFY
+lli9vVxqP88tuAW+PEuU5BMKJ1+mRBOfUsTBPfF2t4VzRxXfMjyd9E/9x0VVTGig
+DvhAmtTpZ2/LuMR+LpE=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/uci/uci.pkey b/server/slice/planetlab/us/uci/uci.pkey
new file mode 100644 (file)
index 0000000..4bf782b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCwFJ/DynlRe07rsXJkaV/CSKDaSCualt0DEpL4KsXeNF6tlyns
+cO6nuhrd7UcYJwA0wCFH/8Fvf1eyj6I0TWa3y+pna2juXqRaUREDpp7bMLtAfDGj
+2uMEjhzrGtfr8NNMrOFWVc4UrOLyIAcQCF0CHPWGzDRBEJJQnC95O/siEwIDAQAB
+AoGAKGczGbwWBmpi+5YmB4BeZrg/oJa62qgPYqsaajN2X7xolTCAgC6RtI7xp0bQ
+72vTkkcb2+eFvU3dE639rD6ueNCt0xdUkv2eHy4CqNiprBehwvZOPGCcV1e+LseN
+7nUFfDHDaJnenumQIhEv24nGWydK4LAbGVzX1a3XjY4Ue8ECQQDZLYPys5lVmEdT
+PsOtSQoaXN5V3XlT0YWFBJPxNujHM1k4iv+L9sCC5SjRYGAlnVLlB0sbBVM/tW+Z
+gimAcbgRAkEAz45rD7Z7+2AWvALSDCeIrlt6sk9alnIFP2iDMKFrtHhD9FxtX7rI
+tD0exugc+pVh1d/dmnGIuyeJCc5QNyk74wJBAIoMDoVleCAabawSh1tMxClBwuod
+n5OR6SdGY6u+VXTZxOrWH94d+Py7IZkFg9glCp4eZrVES0iB0fBn9m1426ECQQCY
+Y+KreLpzCEvo4tFB50ztZ3Egti62wySjN6MK85nWuW57XdlYLhXqb+3G8OlF+qQI
+mgNkv/M6Jn7xWi9/MKEtAkEAyZ0dIgoO9+woS4OK8KwAOvo7PDfV7by4p2RC6/F7
+9QHwfpGnvR1MYwWe4HCY0qfnau6UnapcJH/q45gnSu4WTg==
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/ucla/ucla.cert b/server/slice/planetlab/us/ucla/ucla.cert
new file mode 100644 (file)
index 0000000..e17fce1
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1Y2xhMB4XDTA4
+MDMyODAzNDQ1M1oXDTEzMDMyNzAzNDQ1M1owDzENMAsGA1UEAxMEdWNsYTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApn5VAuYIzXVVDfk7EzHHJy7kOCA7y3zK
+LxOBqiBxr1rpeJdpZAdpIan/yC4UdbpgeOgBwkSF+nxDXc6h+BxCQBnJSGr5NmYG
+mR1qA96Sdv4YahkhEc/W9Vrz/JEcJHvk5enScqKiwM77vq1EO7bDDGsFdYq7v5B+
+euyOoZz2eKUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBuGbgzK0LFWHfw84W0hTTH
+JyDhbT8oqZVmb6N6IiVdAspLOM+bzlSQs1Pr3GX6tXBYu0Mcr/N9lOjQJwz1uy6e
+BW1/5MsHHvMQRyaLXoesIw7v8mceeOUaMyPKOjrtcosNU2O0vKtuof1RW0RaVdzo
+XZB+n1w+oEbmKQyNb8YHAw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/ucla/ucla.pkey b/server/slice/planetlab/us/ucla/ucla.pkey
new file mode 100644 (file)
index 0000000..8dd9763
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCmflUC5gjNdVUN+TsTMccnLuQ4IDvLfMovE4GqIHGvWul4l2lk
+B2khqf/ILhR1umB46AHCRIX6fENdzqH4HEJAGclIavk2ZgaZHWoD3pJ2/hhqGSER
+z9b1WvP8kRwke+Tl6dJyoqLAzvu+rUQ7tsMMawV1iru/kH567I6hnPZ4pQIDAQAB
+AoGBAJP9JPk/mUFu8pxKFV15WIkWoBrXY+76zAhOMWoUDpkMmQvsoewcvjEDF21K
+sDr44Dl4F+Ai4mgEviiKu+N60tMR1yIQHUbXj1tF8HAxNgN4i2iHmJHK40XwF1TN
+XcByQ9lAv7haT185zxbx458fjL/iVNdyajhJQCWI5zRzyEFhAkEA2WCnUzabti8V
+swKab5K7Xa8lfNXumYCurdSoCSfvZ/4pODcXh8OwyaYauCoaf6bZ9tbdjBlRZdUh
+LrUrR3TgfQJBAMQTO74v/bLOrk5NNeUd4sV+WmPn2R3ssi4qOHWkvFyb67WP6E3Y
+hWIC6Io+iyWcfwegkbsv8WNWSwl26UejWUkCQD8547FKcuP8sf0NRsopDaJkLS0w
+NGQlj6kz72QqX3IJ9QdKzudIPgWI8MCcTnTOnRs0x9/WBVzvLuWdAGeaUSkCQHqx
+1mayvTyQ3L4ezqTqyKbw5Ds0L8bsAKumu+HSDhSddSgOPz3HSeAFFeK8NHJ6tXre
+XZMW8yRIMXhgsqWjcBECQQDOil5v2Alo5+1+v9V00bF3+T/B4PXMNl4nexJ2nyit
+an+te6SnyWZRWe8xG+bC+JmSZ2JK9Bq9oqiTMDCJepOv
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/uclaee/uclaee.cert b/server/slice/planetlab/us/uclaee/uclaee.cert
new file mode 100644 (file)
index 0000000..86d7e23
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1Y2xhZWUwHhcN
+MDgwMzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjARMQ8wDQYDVQQDEwZ1Y2xhZWUw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANNEGYUpWj9uzmNwI053jzSyrymH
+qIyvlJMEwwRqiFONmfCJOox8NsKtlxadv6X+3vmWl79KmsO7ouYGrV4YZ8HJWOwi
+CxEUpoMUPjyKhH82dTROR96sdGb0oRjJ8uOitDfnAqIj4PXngVP1MVgkPkRATeG2
+EZo9Pydjeqb+GOL9AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAzFsDWC+Q9W4jjgoB
+jAs4jpzqyXVMj7QUHZn9zGkSc3fJsdi981Csnlg0qrHPgHu+1O46O8nvTHva6abj
+XQTlqRFg0UgeWqWDvM88VTMs6IlxeG0I788FO6mXBBbxPCe55tvMM/OI6sw41zgK
+4iFCp5ljmddk4I4tnu/uyrN2pLE=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/uclaee/uclaee.pkey b/server/slice/planetlab/us/uclaee/uclaee.pkey
new file mode 100644 (file)
index 0000000..e87299e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDTRBmFKVo/bs5jcCNOd480sq8ph6iMr5STBMMEaohTjZnwiTqM
+fDbCrZcWnb+l/t75lpe/SprDu6LmBq1eGGfByVjsIgsRFKaDFD48ioR/NnU0Tkfe
+rHRm9KEYyfLjorQ35wKiI+D154FT9TFYJD5EQE3hthGaPT8nY3qm/hji/QIDAQAB
+AoGAN39sNM7oJkG1dem/XJ2LwQwvd3lrjYmSPgzCLibOKSTJi6aA+uame/2d8xL9
+hV2utWIZ+uZeQYzI/iRC5rUCjCtd3pVlXFPrYUiac5lM9w86l8yTITH9fiMrDFv8
+ulvadfLJ0HplxIEkKjzHgItbcu/oPIwFasLKNvGoaPlhGwECQQDu4tH92XnjfFHx
+r6giDNBxXbGAtpCu/os5XdLTCYSbYWtzZAMx7gl6JtgnBV87uOL9+6wHeHrt6pAf
+9G4E1FfbAkEA4ma6NjeDTo1TkuryzknCVfWfPyFHQJKlAB9ay/OB3/7JZky6eyKG
+BQQwIiGLL3rv11RnV/d5mMXu4QkoSvY0BwJBANI4pwVWgc4wVEh1BWfZkQGCqzcS
+8iYdeNWl/GadJKY8R/vG0oz45jwpvOQx9QmwfYl3FX+JhdyjI+wLBVqYpysCQB18
+89QL9vZMQg5ou6dSxBUeINfAJd+rOgKCEvlthgT+0oyYgdF39azBluNbKx3MDWEm
+hS9X9GaJoUt+PdlFqBECQQCWahQ7yOXDweinIuYobmWMZiwEg7XlvijApB7SxXjf
+Nqs8d6+3shUakmg2eo8UsGQwccVs6bIQjtKuaPtufhDz
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/us.cert b/server/slice/planetlab/us/us.cert
new file mode 100644 (file)
index 0000000..dcca3e2
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJ1czAeFw0wODAz
+MjgwMzQ0NTJaFw0xMzAzMjcwMzQ0NTJaMA0xCzAJBgNVBAMTAnVzMIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQCgMlKVmVUDNLOYgxbb0N/vS2rxY0TxHf6FqHKC
+BeHkEefaCgAZ+i/4H4qhMPyMwIH+3RBo3OR+1c4DVORK9vtE19UsBy/VhMgxZNsc
+g8ZtFaoMc77ZhfQWYyvlmKPYQPdTXV1SfjfcCNf2FP/NNoMO0rUHp76csnfQUS72
+ypAnFQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAD2n9MD1bJU6r1+oNC4PwwGQj0Zw
+S+16X5KoP+wKY4WJoXB5dJhHZ3nKjnHR6d7Gf8NtY7NBdu0Gmmnj09QJ7Ve4tNh2
+JaMPyVrwk0b2K5+rgLpxbht5lOOllHTn8E/XyIbCV1CoPAW9j5jW53g0xUlevBqT
+lJcGvGF1RTBXl8CA
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/us.pkey b/server/slice/planetlab/us/us.pkey
new file mode 100644 (file)
index 0000000..51edd5d
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCgMlKVmVUDNLOYgxbb0N/vS2rxY0TxHf6FqHKCBeHkEefaCgAZ
++i/4H4qhMPyMwIH+3RBo3OR+1c4DVORK9vtE19UsBy/VhMgxZNscg8ZtFaoMc77Z
+hfQWYyvlmKPYQPdTXV1SfjfcCNf2FP/NNoMO0rUHp76csnfQUS72ypAnFQIDAQAB
+AoGBAIQ4hMlNAUngGcvrhtZvlCUiDmamFKUeqJEQ81I2ILfpv3/LeUH3qdgV0Ioy
+sIBL8/+z3nNuvnmhZqSBUNw+9iwRuPYaqNAKKBpeOGpdbocuWLHIEmV38YdTeZhr
+yIXQl1/PT8DF/3xrPKw7rZpn03xGOU3htha6QKUdbBOom8mRAkEA0H3fNYyM4cm8
+1FBJiPEHb35/GEgpZ2Xj86+CaWW15cTf0Vx7GqpCEER0h9pHr8ZVyUIzA3yrqrrB
+xDGpjPnH5wJBAMSzNaFtKr/+wXgW7XSEFjYyEFD5pLFstkh7+LFZWVg8/m3F5Aa8
+EJ2lll+cCXKa2vPhBpq8TrxSTz8CGuGzSaMCQEa9/uevifnutqifmWPizLATDtLR
+YWMZGnCL48cZYM/Wrk7ef1K75HCamaOi9+H3fRIt6RtMyP7EIY0NgMc51Y8CQDWJ
+BQa7fJAm2SdDLjuxG46Cj7hKSc3UZcRSoXw7cjq21xSvcIF4vBj8EXJSOKwNg5wu
+2apRqChPSqw+eWyGbHsCQB0LSeYGtQMH0l0zVgWg3j5CmyzRQ9yrrtCPXX+8WgLO
+5rWDmCglKeDTGHZ3TnYmRcfRe2nBrCjHQAIvNyFk2P0=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/utah/utah.cert b/server/slice/planetlab/us/utah/utah.cert
new file mode 100644 (file)
index 0000000..5d64f2a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dGFoMB4XDTA4
+MDMyODAzNDQ1N1oXDTEzMDMyNzAzNDQ1N1owDzENMAsGA1UEAxMEdXRhaDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwe1it1/G1NSMFj9URIqWdNMWc0G/Cv/r
+gngSveqqvDLRbQ1zyotNXECh9jl+pTBkpNvDVXtH5GvCgn0MGc0+wP2+zB3lwatl
+F9iuCwo+vMjURCT3u9ZpJEjzRSxzdc4DY94wiZFNXy8TziOTt5R5boHp/qucX7DK
+/MDloQHfVBMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCx8D3dYaWTUJVLRhRnu1cV
+q1HF8ThmOmwqgQ7RKi7+5ezoP68KqFmCAiMCeRu7WeHSZwkTfpO1mbqZqk4DlhQW
+DVAt9q1qrUn4oOLpFU5RPb60wysH9DnSiZ4go5e0Cea3zet7Nz090Ey4RK6cgcjZ
+4IsU/pItFWT4om6FA0Lk4w==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/utah/utah.pkey b/server/slice/planetlab/us/utah/utah.pkey
new file mode 100644 (file)
index 0000000..9c172bf
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDB7WK3X8bU1IwWP1REipZ00xZzQb8K/+uCeBK96qq8MtFtDXPK
+i01cQKH2OX6lMGSk28NVe0fka8KCfQwZzT7A/b7MHeXBq2UX2K4LCj68yNREJPe7
+1mkkSPNFLHN1zgNj3jCJkU1fLxPOI5O3lHlugen+q5xfsMr8wOWhAd9UEwIDAQAB
+AoGACA00GQr39WQxwMa2V/YtEwKknvpu1SUVASC9Hnd8yT2O5mk1koZAGwFv+Aoh
+EPi2ZQXe0VDCBmDW/ZX1h6i23zfM+X/9YnQKxPgN95d7YPOzkmzmYCggeyb2RQTy
+fUYGSZCVmi1teK+ZQ4w7O0FJaz0oB01onXmOyr/muHPynekCQQD4jf0w9qImX2kS
+J7TXtsewh9ZVGnH6ehMeBEDXLZo2G0+Ee1+LuMidviYTJiF5edUeav2rw51RSgLx
+dnHHZC3NAkEAx7x+TLizkPMltolhcfIi5+P8HYBsVx9mRWzm3Vz7QEMwxovKPhAz
+3jSGhiWRKhUYQKkEECF/FmBM0gY/oU6pXwJBAIp5kLXWsj/up/sVZAtKKbaP9zky
+oo2JtVzjwbwgC+pZDNQiZ/jP2fUIGu5QMBYdaj6oHOu079B6C2m7M2iCx4ECQQCw
+SMroB/RkMFXOv33DxcPNCskPeLMmSc5H5A/2vAP8+dBozCQZls9QhOdeKnXuwGOB
+Xir52baDF0d17pHmWrjdAkAc4mG6A7/iux3KO9JykXge8/ShmXA6ovhYL7mDCa71
+8/LSNuJEQj2/CSueDIl9rVOlCljWplFivl0E9/KItnmQ
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/utxsa/utxsa.cert b/server/slice/planetlab/us/utxsa/utxsa.cert
new file mode 100644 (file)
index 0000000..b14009c
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1dHhzYTAeFw0w
+ODAzMjgwMzQ0NTNaFw0xMzAzMjcwMzQ0NTNaMBAxDjAMBgNVBAMTBXV0eHNhMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJNKDEqpoW+rvTrXP3/O9+xfVq/+Be
+EtqWBu6Rr5zY/LATVRdqUd+xsrel/UH5dqWicg+5Js+GRbLxWqOMOn/Xwm4mgi2P
+xwHNR1rAN507wNaaBT+ntemF92ffCPqi9d+iN3wMHQWsgL1+5VP9c/Lj2TMBGpbV
+Fmmy9O1d+gqYkQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJum3WhwYv3LTH/002T+
+SarCRHyGwhhuhmTj1/ZYC82aZ+TgsGkPwlq7AadBHyE7tccfz2Og4RrnXcixoKpV
+dAXHEh92Xan8NwU79uGsxe5gC4hOVoRs6RDu1FYDI8V9+XHe16i5rRCiSPyO8R1I
+CCbNzVpCFunSHxS4K5+4ZY0i
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/utxsa/utxsa.pkey b/server/slice/planetlab/us/utxsa/utxsa.pkey
new file mode 100644 (file)
index 0000000..346f0ac
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDJNKDEqpoW+rvTrXP3/O9+xfVq/+BeEtqWBu6Rr5zY/LATVRdq
+Ud+xsrel/UH5dqWicg+5Js+GRbLxWqOMOn/Xwm4mgi2PxwHNR1rAN507wNaaBT+n
+temF92ffCPqi9d+iN3wMHQWsgL1+5VP9c/Lj2TMBGpbVFmmy9O1d+gqYkQIDAQAB
+AoGACoiVzhX8YS2ZPbi79ISqaSGl+ocQ0Pv9s5MDVF80P+vir/BpfGhy5JOtp6P9
+mzjJ7Ro5loDgpm/psVcEbuf1H1fLYQg7djyU+NC02MJAwZO/3C7Oa/pNezW98LTE
+n9WPd+GKHqHtePfzUpCVt5SaLr5Z7dRGQvFGreUZn64n4u0CQQDmRD6klh5UOeKx
+E35gdXimqb2v1pILfynthV2WPQS06bKwG0oK2cjfQtXdbuv4EcyobSO25qCWbVzV
+q9+hdfbzAkEA37D4PCo/h0i+qdo2MXlm/bb51LstClWnO5D+crdOQQNCM0nDomRh
+LJy4aH+n4auREdUlrM2WNDTOaoCiGjxbawJADqT4du81LpYf3LMormnKKo9RCQXU
+c/a6a+i3cv6edgMG4jxaESaYp9pQT6zmRPic03lddBxmyipaZRxxNIuUEQJAOlXJ
+ds9BwAMNjfgVN/PEExhbsMmbZl2N/i/C26HIK5Yw9nUfKsNowByizsWzv1thurfO
+WnFG4Zh/2DBxlcv1vwJBAIDOK58oF6bCuF1h96J1Iut45ePM5BEuaBBhUSJvbBvI
+AVVAAOMU9Qeopjh2leXN6ZZ2QxVX+gFA5bQMDdDvks0=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/uvic/uvic.cert b/server/slice/planetlab/us/uvic/uvic.cert
new file mode 100644 (file)
index 0000000..f93e862
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dmljMB4XDTA4
+MDMyODAzNDQ1NVoXDTEzMDMyNzAzNDQ1NVowDzENMAsGA1UEAxMEdXZpYzCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4MT5TfugtASY8ZCRJW2Ng+OyG8ct9Aux
+aaEmnPwHGAu0ci4Qc5ol8/m5o5VjbwM7O6fsOHDQObcrs+MEETit1NrWa/HjYN8k
+aWbR7iNoQCpBY5skb3aF2Wx7HEtdleLYeXfH3cFjuGwAK0sJIk1mzbfyNhKfwBIR
+MfFtTUfM56cCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAatIOy9CWFZu7MdHk7Di7j
+Tfp+t8N9cJiszAaL7TenSbgb17Hc5YoN7hbZ3j5ZUE5K7RzeHa4YD845J6GTScO7
+oAROOwHkVRYn3y6rrIkdwctxPKedAgfEUvwFXL//8lJ/Nl/KAenzIjTR3N+6LC5j
+CQUo6wmMR1dFU/qKbniEqw==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/uvic/uvic.pkey b/server/slice/planetlab/us/uvic/uvic.pkey
new file mode 100644 (file)
index 0000000..7b1be64
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDgxPlN+6C0BJjxkJElbY2D47Ibxy30C7FpoSac/AcYC7RyLhBz
+miXz+bmjlWNvAzs7p+w4cNA5tyuz4wQROK3U2tZr8eNg3yRpZtHuI2hAKkFjmyRv
+doXZbHscS12V4th5d8fdwWO4bAArSwkiTWbNt/I2Ep/AEhEx8W1NR8znpwIDAQAB
+AoGAMVNImpJzy82OesSM9be67IyVU388WGgQgOu6e4zbSa2X5c6yEYxsc8QDtyBb
+d8svvoG1VxV6vI+z6YASLm1PyBL+X+lMB283R0Fm5gFZ8XD8Zk7waFDrYYR72ZdM
+Yz47fCvrUt0qOlQEPu47wKBaXJW5kP9yTx1jfHbCgLvLnvECQQD4HDbpkY3Psz5n
+hYkrplgXq7DLRHPSXPwkz40RGVe2crmUKJC21Rs6UjYU+RuCTP3C7kK3Cj6aijuf
+J1yQ8f4LAkEA5+q/4OlTRQHozf1WVOx4V9RnGjsPqRPse8zF44uTY5CInOTZeYnj
+ZJzslmJaqkur22qSnUdITHDAGR4vHalqVQJATxEGutZEv/zaFTlr5jojdp+jPpO4
+6T/ypnRx+xH9bsoOs9VdkLZG8AYE8BgWmSaZ88XkAtrD6pHEwEpV6GcF0wJBAMMd
+Q/tUMgNPvO544gYmwIScJXXzFJTaN05clGyBBCpy8gyVmMXhFVeTkpRfAQpfCaJb
+AiiiTRhKj8NSGq+o1dUCQEJJZhs3JcGVjM+3ZntSJQVqBoym2iYsVW/YHMp5UB44
+BsJlYLtav913XwHhU3lhhsa8NyjpFB0cE+zdbMsDids=
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert b/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert
new file mode 100644 (file)
index 0000000..b840538
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOdXdhY2NyZXRp
+dmVkc2wwHhcNMDgwMzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAZMRcwFQYDVQQD
+Ew51d2FjY3JldGl2ZWRzbDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6YIS
+13t7BOCpBgrw3j7G4pgJDZmupyGmB2z7IflKrQtfnJRxG1n9jxL+WA+yjPGsN7XD
+sb/BgUl1YTCY95nS4FNnyjgGmu+fNYBCu89pQfXfAPWnXha68Je2Y2pjVv78CAAb
+8zkWo8d6SfoLTinExxvlRCi25KrB/i+UQ+tjq+kCAwEAATANBgkqhkiG9w0BAQQF
+AAOBgQAIEgjRZkHH/y/++BzH2rMyO8Vv36hbFI15ByaP+bggAtSZNh9GW3vyl/mr
+7g8E4J3yDXkCv58KzG6+3Ji7e5nPrhNIYVtSSk0N0myNdUTw9OhFs/qKU82ZcCHh
+pKkup8G6NCdIeVifh7P1P4LB5YrCiOq4CLk+G9FkMC3jTLpI6g==
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey b/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey
new file mode 100644 (file)
index 0000000..f28ff81
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDpghLXe3sE4KkGCvDePsbimAkNma6nIaYHbPsh+UqtC1+clHEb
+Wf2PEv5YD7KM8aw3tcOxv8GBSXVhMJj3mdLgU2fKOAaa7581gEK7z2lB9d8A9ade
+Frrwl7ZjamNW/vwIABvzORajx3pJ+gtOKcTHG+VEKLbkqsH+L5RD62Or6QIDAQAB
+AoGAOU+Qeky3O9I8Cdyjk5iKzdCM4Eao5CJREp9/363E00XoWJDiVdk3b2c0/74S
+j589Kos1Fao/vxCde5Ym5RZe9/HPXcuEbIhhIoCjJ/kL1GCNEcI+D1GKeh+jSZsn
+3vcWbW5AXVv/W+l8bGq1A1RVMoTbs/KJg4JkKTvqPtVd4pECQQD7sF0jKwdTcRdK
+2F6w3SNrIkso+WV5NZGMUKPrMtq/rl5seIoZXcA4vtmDkqFJ00wWU6W7miHqFMQo
+vQNM7x5lAkEA7YH9AblPUeyIRdh9K3lM7e5Yc1E0/S0T49M5/bGW7BdVsQWA9aFe
+B4ZtLp9JHHouQrp2A1jLB7p9fbi7B+ZNNQJBANJva//6ev6WIL5wWAOScYmiu6q/
+ksscMdxalCMTevgnB0W0Jur8ironP+AVWgtKwmQsffZz8YUw5a2WE0tg5k0CQQCa
+AMKMXptXNLc8Ct9G1DWUxgqmY46nZ5ZREMK2hHOnDI5s5XO0UfkFih27sF8YzwS2
+Ee+5xdaIYV1DqwfjXGrNAkAGWrSEGIz7wx9obSrO2H3YoYW0VfIeldHdrZKchKN7
+P1XA0TSJwkVVixxYErZV8PUI+pDyWXvWbjmWgQus1Dxi
+-----END RSA PRIVATE KEY-----
diff --git a/server/slice/planetlab/us/vanderbilt/vanderbilt.cert b/server/slice/planetlab/us/vanderbilt/vanderbilt.cert
new file mode 100644 (file)
index 0000000..d91ca8e
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKdmFuZGVyYmls
+dDAeFw0wODAzMjgwMzQ0NTNaFw0xMzAzMjcwMzQ0NTNaMBUxEzARBgNVBAMTCnZh
+bmRlcmJpbHQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALswqzfxhgzB2Yfj
+Z4Kv6RqSL8c7PsRogJtzRccmyNUlXMBuPmSpn2+V2xRh5z4Id66JIYGJxgMRDC5t
+Brr+233w47ylqTfoGmrjGa3wYZfApFpxznglQtLByrSpTNWvWyIp+RJyXpFAjbxB
+u+FhaIkfLzFrhKKGwpgCan5C6DaLAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAlLIT
+7/OzFKmbz00h9Et+gw1xA3v5CMYKGwEK9BIcU/MTLGK+Fs9qUuHpVBvRKHFI8Zqr
+pwWOgUc0QC0kR/teCu3Vy6a1G24514drUtLBug3PmmewWPatPNvoaHZLKnMz3G5j
+Qq/6TwIViScp+YLfefom346HlJ9LW4lDocFuXB0=
+-----END CERTIFICATE-----
diff --git a/server/slice/planetlab/us/vanderbilt/vanderbilt.pkey b/server/slice/planetlab/us/vanderbilt/vanderbilt.pkey
new file mode 100644 (file)
index 0000000..9e806ac
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC7MKs38YYMwdmH42eCr+kaki/HOz7EaICbc0XHJsjVJVzAbj5k
+qZ9vldsUYec+CHeuiSGBicYDEQwubQa6/tt98OO8pak36Bpq4xmt8GGXwKRacc54
+JULSwcq0qUzVr1siKfkScl6RQI28QbvhYWiJHy8xa4SihsKYAmp+Qug2iwIDAQAB
+AoGAPe0m55YGY9gJj/QCPXDWrAyqs7180VtFGKg08GJ7VFBM8/hEueaHsVGhLYgK
+CTKh7WK+a+1ZTZBpOD6nWFuR3vIj9KH7e6DB9+N21xaGw4m5HW3cLfTlx5j4ohN3
+XADS8q58Dz+OlhOV8f6aWIGKMd0omiw2qjh/KajaYLg8feECQQDolnLFRwvXCbVr
+2jzX6Tbn4RZcBSr4QQUdKMxu4LJDkdy2wnUACy4S4+3mbEt0quUQNCrT86OK3Idj
+7IsSgxX7AkEAzghe1e6y2+yU9FcoG9BC5aAT3P8cWb/B9+WQYPIE1ladIMOcxzBP
+urFVHCv5A+kop0Tm3gYrVNEm4E6VQKbMsQJAYr/lsK6ubzlXBpic9oq03hRp+t3S
+1Z49fpjg2z6ZUSjvzcSYClG02R5e1lMqYjlgkdWkTWMHD6D79sfqcAyp2wJACVl7
+5D1mxHAh+kySN2DmCEGRZS/2e2QmSzeRq7SP36Iik0ANN0TL+W7eq96a+EB2ZdDM
+oTqqcLjlCLzILRzkoQJBALq8SMNS/I5J7Mwe8gk9MoaVEnVbP0xI81Za7ikx3yrm
+mMamdtJV/jSWLg258wNzRaUPlaZPnJEY7NcVT4hussg=
+-----END RSA PRIVATE KEY-----
diff --git a/server/trusted_certs/geni_mng.cert b/server/trusted_certs/geni_mng.cert
new file mode 100644 (file)
index 0000000..9f9b5c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4
+MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4
+cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c
+LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS
+4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc
+6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x
+k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q
+rBwyf1+Su4n1IPiqGi9yyA==
+-----END CERTIFICATE-----
diff --git a/server/trusted_certs/geni_slc.cert b/server/trusted_certs/geni_slc.cert
new file mode 100644 (file)
index 0000000..9f9b5c3
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4
+MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4
+cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c
+LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS
+4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc
+6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x
+k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q
+rBwyf1+Su4n1IPiqGi9yyA==
+-----END CERTIFICATE-----
diff --git a/server/trusted_certs/planetlab_mng.cert b/server/trusted_certs/planetlab_mng.cert
new file mode 100644 (file)
index 0000000..c1b4211
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE
+YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba
+6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm
+u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU
+2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6
+X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld
+GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz
+-----END CERTIFICATE-----
diff --git a/server/trusted_certs/planetlab_slc.cert b/server/trusted_certs/planetlab_slc.cert
new file mode 100644 (file)
index 0000000..9f5b851
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ
+QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC
+apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9
+OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW
+JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL
+xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN
+C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r
+-----END CERTIFICATE-----
diff --git a/util/db.py b/util/db.py
new file mode 100644 (file)
index 0000000..590a002
--- /dev/null
@@ -0,0 +1,81 @@
+import os
+from pg import DB
+from excep import *
+from tree import *
+from util import *
+
+#planetlab authentication structure
+pl_auth = {'Username': 'ssevinc@princeton.edu',        # User account
+'AuthMethod': 'password',        # Type of auth this is. Can be password, session ...
+'AuthString':  'Ss3928Ee' # the password for this account
+} 
+
+def get_plDB_conn():
+    dbname = 'plDB'
+    address = 'localhost'
+    port = 5433
+    user = 'postgres'
+    password = '111'
+    cnx = DB(dbname, address, port=port, user=user, passwd=password)
+    return cnx
+    
+#copy the pl db info to requester
+def get_plDB_info(dst):
+    dst.db_name = 'plDB'
+    dst.address = 'localhost'
+    dst.port = 5433
+    dst.user = 'postgres'
+    dst.password = '111'
+
+
+#determines the database info of a given hrn
+#if the hrn does not exist in the tree hierarchy None is returned
+def determine_dbinfo(hrn, tree):
+    info = tree.tree_lookup(hrn)
+    if info == None:
+        return None
+    else:
+        db_info = info.node_data['db_info']
+        cnx = DB(db_info.db_name, db_info.address, port = db_info.port, user = db_info.user, passwd = db_info.password)
+        tablename = db_info.table_name
+        return [cnx, tablename]
+
+#convert the parameter list to query string suitable for supplying to database queries
+#input: query type, table name and field-value pairs
+def generate_querystr(type, table, dict):
+    querystr = ""
+    if type == 'INSERT':
+        keys = dict.keys()
+        str1 = keys[0]
+        for i in range(1, len(keys)):
+            str1 = str1 + ','+ keys[i]
+        str2 = ""
+        for i in range(len(keys)-1):
+            if isinstance(dict[keys[i]],str):
+                str2 = str2 + "'" + dict[keys[i]] + "', " 
+            else:
+                str2 = str2 + str(dict[keys[i]]) + ", "
+        if isinstance(dict[keys[len(keys)-1]],str):
+            str2 = str2 + "'" + dict[keys[len(keys)-1]] + "'" 
+        else:
+            str2 = str2 + str(dict[keys[len(keys)-1]]) 
+        querystr = "INSERT INTO "+table+ "(" + str1 + ") VALUES(" + str2 + ")"
+    elif type == 'UPDATE':
+        str1 = ""
+        keys = dict.keys()
+        for i in range(len(keys)-1):
+            if keys[i] != 'hrn':
+                if isinstance(dict[keys[i]],str):
+                    str1 = str1 + keys[i] + " = '" + dict[keys[i]] + "', " 
+                else:
+                    str1 = str1 + keys[i] + " = " + dict[keys[i]] + ", " 
+        if keys[len(keys)-1] != 'hrn':
+            if isinstance(dict[keys[len(keys)-1]],str):
+                str1 = str1 + keys[len(keys)-1] + " = '" + dict[keys[len(keys)-1]] + "'" 
+            else:
+                str1 = str1 + keys[len(keys)-1] + " = '" + dict[keys[len(keys)-1]]
+        querystr = "UPDATE "+table+ " SET " + str1 + " WHERE hrn = '"+get_leaf(dict["hrn"])+"'"
+    elif type == 'DELETE':
+        querystr = "DELETE FROM "+table+" WHERE hrn = '"+get_leaf(dict["hrn"])+"'"
+    return querystr
+            
diff --git a/util/db.pyc b/util/db.pyc
new file mode 100644 (file)
index 0000000..533d791
Binary files /dev/null and b/util/db.pyc differ
diff --git a/util/excep.py b/util/excep.py
new file mode 100644 (file)
index 0000000..4f2a4fa
--- /dev/null
@@ -0,0 +1,42 @@
+
+class MalformedHrnException(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+
+class TreeException(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+
+class NonexistingRecord(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+
+class ExistingRecord(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+        
+class NonexistingCredType(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+
+class NonexistingFile(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+        
+class InvalidRPCParams(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
diff --git a/util/excep.pyc b/util/excep.pyc
new file mode 100644 (file)
index 0000000..3aa377e
Binary files /dev/null and b/util/excep.pyc differ
diff --git a/util/pl_to_geni.py b/util/pl_to_geni.py
new file mode 100644 (file)
index 0000000..db07211
--- /dev/null
@@ -0,0 +1,174 @@
+import sys
+from pg import DB
+from db import *
+from util import *
+
+PL_DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
+        
+#given a login_base or site_id (which are ids of a site in Planetlab), determines the hierarchical name of it in GENI
+def site_to_auth(id_or_loginbase):
+    cnx = get_plDB_conn()
+    site_id = None
+    hrn = None
+    loginbase = None
+    if isinstance(id_or_loginbase, int):
+        site_id = id_or_loginbase
+        querystr = "SELECT login_base FROM sites WHERE site_id = "+str(id_or_loginbase)
+        res = cnx.query(querystr).dictresult()
+        if res:
+            loginbase = res[0]['login_base']
+        else:
+            return None
+    else:
+        loginbase = id_or_loginbase
+        #get site_id
+        querystr = "SELECT site_id FROM sites WHERE login_base = '"+loginbase+"'"
+        res = cnx.query(querystr).dictresult()
+        if res:
+            site_id = res[0]['site_id']
+        else:
+            return None
+    #search login_base in trees
+    (sr_tree, cr_tree) = get_tree_globals()
+    hrn = site_to_auth_rec(loginbase, sr_tree.my_tree)
+    if not hrn:
+        hrn = site_to_auth_rec(loginbase, cr_tree.my_tree)
+    if not hrn:
+        return None
+    else:
+        return (site_id, hrn)
+    
+def site_to_auth_rec(loginbase, treenode):
+    if treenode.info.login_base and treenode.info.login_base == loginbase:
+        return treenode.info.name
+    else:
+        for child in treenode.children:
+            name = site_to_auth_rec(loginbase, child)
+            if name:
+                return name
+    return None
+    
+def hrn_to_loginbase(hrn, algorithm=0):
+    hrn_arr = hrn.split('.')
+    j = len(hrn_arr)-2
+    alg_count = algorithm-1 
+    login_base = hrn_arr[len(hrn_arr)-1]
+    while j>=0 and alg_count>=0:
+        if alg_count == 0:
+            login_base = login_base+hrn_arr[j]
+        j = j-1
+        alg_count = alg_count-1
+    if len(login_base) > 20:
+        return login_base[0:20]
+    else:
+        return login_base
+        
+    
+#given an email or person_id (which are ids of a person in Planetlab), determined the last portion of hierarchical name of it in GENI
+def person_to_user(email, algorithm = 0):
+    hrn_suffix = ''
+    if algorithm == 0:
+        hrn_suffix = email.split('@')[0].replace('.','-')
+    elif algorithm == 1:
+        hrn_suffix = email.split('@')[0].replace('.','-')+'-'+email.split('@')[1].split('.')[0]
+    elif algorithm == 2:
+        hrn_suffix = email.replace('@','-')
+        hrn_suffix = hrn_suffix.replace('.','-')
+    return hrn_suffix
+    
+def plslice_to_slice(slice_name):
+    i = 0
+    while slice_name[i]!='_':
+        i = i+1
+    return slice_name[i+1:len(slice_name)]
+    
+def plnode_to_node(hostname, algorithm = 0):
+    hrn_suffix = ''
+    if algorithm == 0:
+        hrn_suffix = hostname.split('.')[0]
+    elif algorithm == 1:
+        hrn_suffix = hostname.split('.')[0]+'-'+hostname.split('.')[1]
+    elif algorithm == 2:
+        hrn_suffix = hrn_suffix.replace('.','-')
+    return hrn_suffix
+    
+def check_exists_pl(cnx, pointer, type):
+    exists = True
+    if type == 'SA' or type == 'MA':
+        res = cnx.query("SELECT deleted FROM sites WHERE site_id = "+str(pointer)).dictresult()
+        if len(res)==0 or res[0]['deleted'] == 't':
+            exists = False
+    elif type == 'slice':
+        res = cnx.query("SELECT is_deleted FROM slices WHERE slice_id = "+str(pointer)).dictresult()
+        if len(res)==0 or res[0]['is_deleted'] == 't':
+            exists = False
+    elif type == 'user':
+        res = cnx.query("SELECT deleted FROM persons WHERE person_id = "+str(pointer)).dictresult()
+        if len(res)==0 or res[0]['deleted'] == 't':
+            exists = False
+    elif type == 'node':
+        res = cnx.query("SELECT deleted FROM nodes WHERE node_id = "+str(pointer)).dictresult()
+        if len(res)==0 or res[0]['deleted'] == 't':
+            exists = False
+    return exists
+    
+def check_exists_geni(record, dbinfo):
+    cnx = dbinfo[0]
+    table = dbinfo[1] 
+    try:
+        #lookup in GENI tables
+        geni_res = cnx.query("SELECT * FROM "+table+" WHERE hrn = '"+get_leaf(record['g_params']["hrn"])+"' ").dictresult()
+        if geni_res:
+            return geni_res[0]
+        else:
+            return None
+    except:
+        return None
+        
+#fill the geni table with the records in PL database
+#login_base: indicates the site in PL
+#tablename: the GENI table name
+#type: 'slice' or 'component' indicating the registry type of the GENI table
+def populate_pl_data(login_base, tablename, type):
+    cnx = get_plDB_conn()
+    site_id = cnx.query("SELECT site_id FROM sites WHERE login_base='"+login_base+"';").dictresult()[0]['site_id']
+    
+    if type == 'slice': #slice registry
+        #populate user records
+        querystr = "SELECT p.person_id, p.email FROM persons as p, person_site as ps WHERE p.person_id = ps.person_id AND  ps.site_id = "+str(site_id)
+        users = cnx.query(querystr).dictresult()
+        for user in users:
+            new_hrn = person_to_user(user['email'])
+            existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult()
+            if len(existing) > 0:
+                new_hrn = person_to_user(user['email'], 1)
+                existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult()
+                if len(existing) > 0:
+                    new_hrn = person_to_user(user['email'], 2)
+            cnx.query("INSERT INTO "+tablename+"(hrn,type,wrapperurl,pointer) VALUES('"+new_hrn+"','user','local',"+str(user['person_id'])+")")
+        #populate slice records
+        querystr = "SELECT slice_id, name FROM slices WHERE site_id = "+str(site_id)
+        slices = cnx.query(querystr).dictresult()
+        for slice in slices:
+            slcname = slice['name'].split('_')
+            if slcname[len(slcname)-1] != 'deleted':
+                new_hrn = plslice_to_slice(slice['name'])
+                existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult()
+                if len(existing) > 0:
+                    new_hrn = new_hrn+'-'+str(slice['slice_id'])
+                cnx.query("INSERT INTO "+tablename+"(hrn,type,wrapperurl,pointer) VALUES('"+new_hrn+"','slice','local',"+str(slice['slice_id'])+")")
+                
+    if type == 'component': #component registry
+        #populate node records
+        querystr = "SELECT node_id, hostname FROM nodes WHERE site_id = "+str(site_id)
+        nodes = cnx.query(querystr).dictresult()
+        for node in nodes:
+            new_hrn = plnode_to_node(node['hostname'], 0)
+            existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult()
+            if len(existing) > 0:
+                new_hrn = plnode_to_node(node['hostname'], 1)
+                existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult()
+                if len(existing) > 0:
+                    new_hrn = plnode_to_node(node['hostname'], 2)
+            cnx.query("INSERT INTO "+tablename+"(hrn,type,wrapperurl,pointer) VALUES('"+new_hrn+"','node','local',"+str(node['node_id'])+")")
+        
diff --git a/util/pl_to_geni.pyc b/util/pl_to_geni.pyc
new file mode 100644 (file)
index 0000000..002a7a7
Binary files /dev/null and b/util/pl_to_geni.pyc differ
diff --git a/util/sec/certgen.py b/util/sec/certgen.py
new file mode 100755 (executable)
index 0000000..d969f27
--- /dev/null
@@ -0,0 +1,111 @@
+#
+# certgen.py
+#
+# Copyright (C) Martin Sjogren and AB Strakt 2001, All rights reserved
+#
+# $Id: certgen.py,v 1.2 2004/07/22 12:01:25 martin Exp $
+#
+"""
+Certificate generation and validation module.
+"""
+
+from OpenSSL import crypto
+import time, calendar, datetime
+
+TYPE_RSA = crypto.TYPE_RSA
+TYPE_DSA = crypto.TYPE_DSA
+
+def createKeyPair(type, bits):
+    """
+    Create a public/private key pair.
+
+    Arguments: type - Key type, must be one of TYPE_RSA and TYPE_DSA
+               bits - Number of bits to use in the key
+    Returns:   The public/private key pair in a PKey object
+    """
+    pkey = crypto.PKey()
+    pkey.generate_key(type, bits)
+    return pkey
+
+def createCertRequest(pkey, name, digest="md5"):
+    """
+    Create a certificate request.
+
+    Arguments: pkey   - The key to associate with the request
+               digest - Digestion method to use for signing, default is md5
+               **name - The name of the subject of the request, possible
+                        arguments are:
+                          C     - Country name
+                          ST    - State or province name
+                          L     - Locality name
+                          O     - Organization name
+                          OU    - Organizational unit name
+                          CN    - Common name
+                          emailAddress - E-mail address
+    Returns:   The certificate request in an X509Req object
+    """
+    req = crypto.X509Req()
+    subj = req.get_subject()
+    for (key,value) in name.items():
+        setattr(subj, key, value)
+    req.set_pubkey(pkey)
+    req.sign(pkey, digest)
+    return req
+
+def createCertificate(req, (issuerCert, issuerKey), serial, (notBefore, notAfter), extensions=[], digest="md5"):
+    """
+    Generate a certificate given a certificate request.
+
+    Arguments: req        - Certificate reqeust to use
+               issuerCert - The certificate of the issuer
+               issuerKey  - The private key of the issuer
+               serial     - Serial number for the certificate
+               notBefore  - Timestamp (relative to now) when the certificate
+                            starts being valid
+               notAfter   - Timestamp (relative to now) when the certificate
+                            stops being valid
+               digest     - Digest method to use for signing, default is md5
+    Returns:   The signed certificate in an X509 object
+    """
+    cert = crypto.X509()
+    cert.set_serial_number(serial)
+    cert.gmtime_adj_notBefore(notBefore)
+    cert.gmtime_adj_notAfter(notAfter)
+    cert.set_issuer(issuerCert.get_subject())
+    cert.set_subject(req.get_subject())
+    cert.set_pubkey(req.get_pubkey())
+    if extensions:
+        extList = []
+        for name, critical, value in extensions:
+            ext = crypto.X509Extension (name, critical, value)
+            extList.append(ext)
+        cert.add_extensions(extList)
+    cert.sign(issuerKey, digest)
+    return cert
+
+
+#checks if a certificate is valid in terms of validity periods    
+def check_valid(usercert):
+    """
+    Method that ensures the issuer cert has
+    valid, not_before and not_after fields
+    """
+    valid = True
+    before_time = usercert.get_not_before()
+    after_time = usercert.get_not_after()
+    before_tuple = time.strptime(str(before_time), "%b %d %H:%M:%S %Y %Z")
+    after_tuple = time.strptime(str(after_time), "%b %d %H:%M:%S %Y %Z")
+    starts =  datetime.timedelta(seconds=calendar.timegm(before_tuple))
+    expires = datetime.timedelta(seconds=calendar.timegm(after_tuple))
+    now = datetime.timedelta(seconds=time.time())
+    time_delta = expires - now
+    
+    #cert has expired
+    if time_delta.days < 0:
+        valid = False
+    #cert is not yet valid
+    time_delta = now - starts
+    if time_delta.days < 0:   
+        valid = False
+
+    return valid
diff --git a/util/sec/certgen.pyc b/util/sec/certgen.pyc
new file mode 100644 (file)
index 0000000..4bfb1ae
Binary files /dev/null and b/util/sec/certgen.pyc differ
diff --git a/util/sec/certgen2.py b/util/sec/certgen2.py
new file mode 100755 (executable)
index 0000000..4fb5a4d
--- /dev/null
@@ -0,0 +1,368 @@
+#!/usr/bin/env python
+
+"""
+Certificate generation module.
+"""
+
+from OpenSSL     import crypto
+from os          import chmod, remove
+from os.path     import join
+
+from myap.tools  import execute_cmd
+from myap.config import config
+
+TYPE_RSA = crypto.TYPE_RSA
+TYPE_DSA = crypto.TYPE_DSA
+
+YEAR = 60*60*24*365
+
+X509Attr    = ( 'C', 'ST', 'L', 'O', 'OU', 'CN', 'emailAddress' )
+X509WinAttr = { 'C'            : 'C',
+                'ST'           : 'S',
+                'L'            : 'L',
+                'O'            : 'O',
+                'OU'           : 'OU',
+                'CN'           : 'CN',
+                'emailAddress' : 'E' }
+
+def createKeyPair(type, bits):
+    """
+    Create a public/private key pair.
+
+    Arguments: type - Key type, must be one of TYPE_RSA and TYPE_DSA
+               bits - Number of bits to use in the key
+
+    Returns:   The public/private key pair in a PKey object
+    """
+
+    pkey = crypto.PKey()
+    pkey.generate_key(type, bits)
+
+    return pkey
+
+def createCertRequest(pkey, subject, digest='md5'):
+    """
+    Create a certificate request.
+
+    Arguments: pkey    - The key to associate with the request
+               subject - A dictionary with the subject of the request, possible
+                         key,value pairs are:
+                           C            - Country name
+                           ST           - State or province name
+                           L            - Locality name
+                           O            - Organization name
+                           OU           - Organizational unit name
+                           CN           - Common name
+                           emailAddress - E-mail address
+               digest  - Digestion method to use for signing, default is md5
+
+    Returns:   The certificate request in an X509Req object
+    """
+
+    req  = crypto.X509Req()
+    subj = req.get_subject()
+
+    # Storing attributes in the correct order
+    for attr in X509Attr:
+        if subject.has_key(attr):
+            setattr(subj, attr, subject[attr])
+
+    req.set_pubkey(pkey)
+    req.sign(pkey, digest)
+
+    return req
+
+def createCertificate(req, (issuerKey, issuerCert), serial, (notBefore, notAfter), extensions=[], digest='md5'):
+    """
+    Generate a certificate given a certificate request.
+
+    Arguments: req        - Certificate reqeust to use
+               issuerCert - The certificate of the issuer
+               issuerKey  - The private key of the issuer
+               serial     - Serial number for the certificate
+               notBefore  - Timestamp (relative to now) when the certificate
+                            starts being valid
+               notAfter   - Timestamp (relative to now) when the certificate
+                            stops being valid
+               digest     - Digest method to use for signing, default is md5
+               isca       - The certificate is a CA
+
+    Returns:   The signed certificate in an X509 object
+    """
+
+    cert = crypto.X509()
+    cert.set_version(2)
+
+    if extensions:
+        X509Extensions = []
+        for name, critical, value in extensions:
+            X509Extensions.append(crypto.X509Extension(name, critical, value))
+
+        cert.add_extensions(X509Extensions)
+
+    cert.set_serial_number(serial)
+    cert.gmtime_adj_notBefore(notBefore)
+    cert.gmtime_adj_notAfter(notAfter)
+    cert.set_issuer(issuerCert.get_subject())
+    cert.set_subject(req.get_subject())
+    cert.set_pubkey(req.get_pubkey())
+    cert.sign(issuerKey, digest)
+
+    return cert
+
+def createSignedCertificate(subject, serial, extensions=[], type=TYPE_RSA, bits=2048, cipher='DES-EDE3-CBC', passphrase='', years=5, capkey='', cacert='', capassphrase=''):
+    """
+    Generate a Signed Certificate.
+
+    Arguments: subject      - The subject of the request, see createCertRequest()
+               type         - (optional) Key type, see createKeyPair()
+               bits         - (optional) Number of bits to use in the key
+               cipher       - (optional) if encrypted PEM format, the cipher to use, see dump_privatekey()
+               passphrase   - (optional) if encrypted PEM format, the passphrase to use, see dump_privatekey()
+               years        - (optional) Number of years to use for validity, see X509()
+               capkey       - (optional) CA's private key (PEM formated string)
+               cacert       - (optional) CA's certificate (PEM formated string)
+               capassphrase - (optional) if CA private key is in encrypted PEM format,
+                              the passphrase to use, see load_privatekey()
+               
+    Returns:   Two PEM formated strings containing private key and signed certificate
+    """
+
+    pkey = createKeyPair(type, bits)
+    req  = createCertRequest(pkey, subject)
+
+    if capkey and cacert:
+        # Certificate will be signed by an Autority
+        capkey = crypto.load_privatekey(crypto.FILETYPE_PEM,  capkey, capassphrase)
+        cacert = crypto.load_certificate(crypto.FILETYPE_PEM, cacert)
+    else:
+        # Self signed certificate
+        capkey = pkey
+        cacert = req
+
+    cert = createCertificate(req, (capkey, cacert), serial, (0, years*YEAR), extensions=extensions)
+
+    if passphrase:
+        pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey, cipher, passphrase)
+    else:
+        pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
+
+    cert = crypto.dump_certificate(crypto.FILETYPE_PEM, cert)
+
+    return (pkey, cert)
+
+def getSubject(cert, for_win=False):
+
+    cert = crypto.load_certificate(crypto.FILETYPE_PEM, cert)
+    subj = cert.get_subject()
+
+    subject = ''
+    for attr in X509Attr:
+        value = getattr(subj, attr)
+        if value:
+            if for_win:
+                # Converting Attr to Windows Attr
+                attr = X509WinAttr[attr]
+            subject += '%s=%s, ' % (attr, value)
+
+    subject = subject[:-2]
+
+    return subject
+
+def convertPemToDer(pkey, cert, cipher='DES-EDE3-CBC', passphrase=''):
+    """
+    Convert two PEM formated strings (pkey, cert) onto two DER formated strings.
+
+    Arguments: pkey       - private key (PEM formated string)
+               cert       - certificate (PEM formated string)
+               cipher     - (optional) if encrypted PEM format, the cipher to use, see dump_privatekey()
+               passphrase - (optional) if encrypted PEM format, the passphrase to use, see dump_privatekey()
+
+    Returns:   Two DER formated strings containing private key and signed certificate
+    """
+
+    pkey = crypto.load_privatekey(crypto.FILETYPE_PEM,  pkey, passphrase)
+    cert = crypto.load_certificate(crypto.FILETYPE_PEM, cert)
+    
+    if passphrase:
+        pkey = crypto.dump_privatekey(crypto.FILETYPE_ASN1, pkey, cipher, passphrase)
+    else:
+        pkey = crypto.dump_privatekey(crypto.FILETYPE_ASN1, pkey)
+
+    cert = crypto.dump_certificate(crypto.FILETYPE_ASN1, cert)
+
+    return (pkey, cert)
+
+def convertDerToPem(pkey, cert, cipher='DES-EDE3-CBC', passphrase=''):
+    """
+    Convert two DER formated strings (pkey, cert) onto two PEM formated strings.
+
+    Arguments: pkey       - private key (DER formated string)
+               cert       - certificate (DER formated string)
+               cipher     - (optional) if encrypted DER format, the cipher to use, see dump_privatekey()
+               passphrase - (optional) if encrypted DER format, the passphrase to use, see dump_privatekey()
+
+    Returns:   Two PEM formated strings containing private key and signed certificate
+    """
+
+    pkey = crypto.load_privatekey(crypto.FILETYPE_ASN1,  pkey, passphrase)
+    cert = crypto.load_certificate(crypto.FILETYPE_ASN1, cert)
+    
+    if passphrase:
+        pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey, cipher, passphrase)
+    else:
+        pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
+
+    cert = crypto.dump_certificate(crypto.FILETYPE_PEM, cert)
+
+    return (pkey, cert)
+
+def dump_pkcs12(pkey, cert, cacert='', passphrase=''):
+    """
+
+    """
+
+    # Storing all the params to a temp file
+    temp_file = '/tmp/pkcs12'
+
+    pkcs12 = pkey + cert + cacert
+
+    f = open(temp_file, 'w')
+    f.write(pkcs12)
+    f.close()
+    chmod(temp_file, 0600)
+
+    # Create pkcs12 file with openssl
+    cmd = 'openssl pkcs12 -export -in %s -passout pass:"%s"' % (temp_file, passphrase)
+
+    exitcode, pkcs12 = execute_cmd(cmd)
+    remove(temp_file)
+    
+    if exitcode:
+        return pkcs12
+
+    return None
+
+def newCertificate(db, ip):
+
+    serial = db.get_last_serial_cert()
+    ca     = db.get_certificate(serial=0)
+
+    # Creating the certificate for the ip
+    serial       += 1
+    subject       = config['SSL_DEFAULT']
+    subject['CN'] = ip
+    extensions    = (('nsCertType',       False, 'client'),
+                     ('keyUsage',         False, 'dataEncipherment'),
+                     ('extendedKeyUsage', False, 'clientAuth,1.3.6.1.4.1.311.10.3.4.1'))
+    pkey, cert = createSignedCertificate(subject, serial, extensions=extensions, bits=1024, capkey=ca['private_key'], cacert=ca['certificate'], capassphrase=config['SSL_CA_PASS'])
+
+    # Adding it to the database
+    db_cert = {}
+    db_cert['serial']      = serial
+    db_cert['private_key'] = pkey
+    db_cert['certificate'] = cert
+
+    return db.set_certificate(db_cert)
+
+def getPKCS12(db, reservation_id):
+
+    ca          = db.get_certificate(serial=0)
+    reservation = db.get_reservation(reservation_id=reservation_id)
+    certificate = db.get_certificate(certificate_id=reservation['certificate_id'])
+
+    pkcs12 = dump_pkcs12(certificate['private_key'], certificate['certificate'], ca['certificate'])
+
+    return pkcs12
+    
+def revokeCertificate(db, certificate_id):
+
+    return True
+
+def init(db):
+
+    db.delete_certificates()
+
+    # Creating the CA
+    serial     = 0
+    subject    = config['SSL_DEFAULT']
+    extensions = (('basicConstraints', True,  'CA:true'),
+                  ('nsCertType',       False, 'objCA,sslCA,objsign,client,server'),
+                  ('keyUsage',         False, 'keyCertSign,cRLSign,nonRepudiation,keyEncipherment,dataEncipherment'),
+                  ('extendedKeyUsage', False, 'clientAuth,serverAuth,1.3.6.1.4.1.311.10.3.4.1')) # 1.3.6.1.4.1.311.10.3.4.1 is for VPN
+
+    capkey, cacert = createSignedCertificate(subject, serial, extensions=extensions, passphrase=config['SSL_CA_PASS'])
+
+    # Adding it to the database
+    db_cert = {}
+    db_cert['serial']      = serial
+    db_cert['private_key'] = capkey
+    db_cert['certificate'] = cacert
+    if not db.set_certificate(db_cert):
+        return False
+
+    # Creating the certificate for the WebServer
+    serial       += 1
+    subject['CN'] = config['SERVER_NAME']
+    extensions    = (('nsCertType',       False, 'server'),
+                     ('keyUsage',         False, 'keyEncipherment'),
+                     ('extendedKeyUsage', False, 'serverAuth'))
+
+    pkey, cert = createSignedCertificate(subject, serial, extensions=extensions, bits=1024, capkey=capkey, cacert=cacert, capassphrase=config['SSL_CA_PASS'])
+
+    # Adding it to the database
+    db_cert = {}
+    db_cert['serial']      = serial
+    db_cert['private_key'] = pkey
+    db_cert['certificate'] = cert
+    if not db.set_certificate(db_cert):
+        return False
+
+    try:
+        f = open(config['MYAP_HTTPD_PKEY'], 'w')
+        f.write(pkey)
+        f.close()
+        chmod(config['MYAP_HTTPD_PKEY'], 0600)
+    
+        f = open(config['MYAP_HTTPD_CERT'], 'w')
+        f.write(cert)
+        f.close()
+
+    except:
+        return False
+
+    # Creating the certificate for Racoon
+    serial       += 1
+    subject['CN'] = 'Racoon Server'
+    extensions    = (('nsCertType',       False, 'client,server'),
+                     ('keyUsage',         False, 'keyEncipherment'),
+                     ('extendedKeyUsage', False, 'clientAuth,serverAuth,1.3.6.1.4.1.311.10.3.4.1'))
+
+    pkey, cert = createSignedCertificate(subject, serial, extensions=extensions, bits=1024, capkey=capkey, cacert=cacert, capassphrase=config['SSL_CA_PASS'])
+
+    # Adding it to the database
+    db_cert = {}
+    db_cert['serial']      = serial
+    db_cert['private_key'] = pkey
+    db_cert['certificate'] = cert
+    if not db.set_certificate(db_cert):
+        return False
+
+    try:
+        pkey_file = join(config['SSL_TOP_DIR'], config['RACOON_PKEY'])
+        cert_file = join(config['SSL_TOP_DIR'], config['RACOON_CERT'])
+
+        f = open(pkey_file, 'w')
+        f.write(pkey)
+        f.close()
+        chmod(pkey_file, 0600)
+    
+        f = open(cert_file, 'w')
+        f.write(cert)
+        f.close()
+
+    except:
+        return False
+
+    return True
diff --git a/util/sec/certgen_m2crypto.py b/util/sec/certgen_m2crypto.py
new file mode 100755 (executable)
index 0000000..220b255
--- /dev/null
@@ -0,0 +1,20 @@
+#certificate generation functions
+
+from M2Crypto import X509
+from M2Crypto import EVP
+
+def createKeyPair(type, bits):
+    """
+    Create a public/private key pair.
+
+    Arguments: type - Key type, must be one of TYPE_RSA and TYPE_DSA
+               bits - Number of bits to use in the key
+    Returns:   The public/private key pair in a PKey object
+    """
+    
+    
+    
+    
+
+
+
diff --git a/util/sec/certs/den.py b/util/sec/certs/den.py
new file mode 100644 (file)
index 0000000..33cae57
--- /dev/null
@@ -0,0 +1,43 @@
+import sys
+from OpenSSL import crypto
+from M2Crypto import X509
+sys.path.append('../')
+sys.path.append('../..')
+from sec import *
+
+
+##osaka2 = X509.load_cert_string(crypto.dump_certificate(crypto.FILETYPE_PEM, osaka_acc))
+##usersoner2 = X509.load_cert_string(crypto.dump_certificate(crypto.FILETYPE_PEM, usersoner_acc))
+##
+##t1 = osaka2.as_text()
+##t2 = usersoner2.as_text()
+##
+##res = usersoner2.verify(osaka2.get_pubkey()) 
+##
+##print res
+
+#pl_pem = X509.load_cert('usersoner.cert')
+#pkey = pl_pem.get_pubkey().as_pem(cipher=None)
+
+#from pg import DB
+
+#dbname = 'plDB'
+#address = 'localhost'
+#port = 5433
+#user = 'postgres'
+#password = '111'
+#cnx = DB(dbname, address, port=port, user=user, passwd=password)
+#cnx.query("UPDATE planetlab$jp$osaka_sr SET pubkey = '"+pkey+"' WHERE hrn = 'usersoner'")
+
+#print pkey
+
+
+planetlab_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('planetlab.cert').read())
+planetlab_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('planetlab.pkey').read())
+planetlab_acc = create_acc(planetlab_cert, planetlab_pkey, planetlab_cert.get_pubkey(), 'planetlab', '28698598650165084658569185050284587399', 3)
+ac1 = crypto.dump_certificate(crypto.FILETYPE_PEM, planetlab_acc)
+open('planetlab_acc_file', 'w').write(ac1)
+
+##
+##res = c1_pem2.verify(c3_pem2.get_pubkey()) 
diff --git a/util/sec/certs/gen.py b/util/sec/certs/gen.py
new file mode 100644 (file)
index 0000000..4db2307
--- /dev/null
@@ -0,0 +1,57 @@
+import sys
+from OpenSSL import crypto
+sys.path.append('../')
+sys.path.append('../..')
+from sec import *
+
+#id certificates
+
+create_self_cert('planetlab')
+create_self_cert('jp')
+create_self_cert('osaka')
+create_self_cert('usersoner')
+
+planetlab_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('planetlab.cert').read())
+jp_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('jp.cert').read())
+osaka_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('osaka.cert').read())
+usersoner_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('usersoner.cert').read())
+
+planetlab_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('planetlab.pkey').read())
+jp_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('jp.pkey').read())
+osaka_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('osaka.pkey').read())
+usersoner_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('usersoner.pkey').read())
+
+#accounting certificates
+
+planetlab_acc = create_acc(planetlab_cert, planetlab_pkey, planetlab_cert.get_pubkey(), 'planetlab', '77059b82-e826-11dc-9dc2-001ec2091968')
+jp_acc = create_acc(planetlab_cert, planetlab_pkey, jp_cert.get_pubkey(), 'planetlab.jp', '3fd66a4c-d574-4aa0-9ddd-3904af595bd2')
+osaka_acc = create_acc(jp_cert, jp_pkey, osaka_cert.get_pubkey(), 'planetlab.jp.osaka', '05b3c29b-0dae-4a95-b92b-0e01548f61e0')
+usersoner_acc = create_acc(osaka_cert, osaka_pkey, usersoner_cert.get_pubkey(), 'planetlab.jp.osaka.usersoner', '220828220198687580431599291716859620971')
+
+#credential certificates
+
+planetlab_cred = create_cred(planetlab_cert, planetlab_pkey, planetlab_cert.get_pubkey(), 'Registry credentials', '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)#0:reg:planetlab')
+jp_cred = create_cred(planetlab_cert, planetlab_pkey, jp_cert.get_pubkey(), 'Registry credentials', '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:planetlab#1:reg:planetlab.jp')
+osaka_cred = create_cred(jp_cert, jp_pkey, osaka_cert.get_pubkey(), 'Registry credentials', '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:planetlab.jp#1:reg:planetlab.jp.osaka')
+usersoner_cred = create_cred(osaka_cert, osaka_pkey, usersoner_cert.get_pubkey(), 'Registry credentials', '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)#0:reg:planetlab.jp.osaka')
+
+#acc and cred files
+
+ac1 = crypto.dump_certificate(crypto.FILETYPE_PEM, planetlab_acc)
+ac2 = crypto.dump_certificate(crypto.FILETYPE_PEM, jp_acc)
+ac3 = crypto.dump_certificate(crypto.FILETYPE_PEM, osaka_acc)
+ac4 = crypto.dump_certificate(crypto.FILETYPE_PEM, usersoner_acc)
+#open('planetlab_acc_file', 'w').write(ac1)
+#open('jp_acc_file', 'w').write(ac2+ac1)
+open('osaka_acc_file', 'w').write(ac3+ac2+ac1)
+open('usersoner_acc_file', 'w').write(ac4+ac3+ac2+ac1)
+
+cred1 = crypto.dump_certificate(crypto.FILETYPE_PEM, planetlab_cred)
+cred2 = crypto.dump_certificate(crypto.FILETYPE_PEM, jp_cred)
+cred3 = crypto.dump_certificate(crypto.FILETYPE_PEM, osaka_cred)
+cred4 = crypto.dump_certificate(crypto.FILETYPE_PEM, usersoner_cred)
+#open('planetlab_cred_file', 'w').write(cred1)
+#open('jp_cred_file', 'w').write(cred2+cred1)
+open('osaka_cred_file', 'w').write(cred3+cred2+cred1)
+open('usersoner_cred_file', 'w').write(cred4+cred3+cred2+cred1)
+
diff --git a/util/sec/certs/jp.cert b/util/sec/certs/jp.cert
new file mode 100644 (file)
index 0000000..5e8418d
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJqcDAeFw0wODAz
+MDMwMzQ0NTBaFw0xMzAzMDIwMzQ0NTBaMA0xCzAJBgNVBAMTAmpwMIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQC5fCqy5k2JzHNLBOBf2Ptw25iyMBNu787yf0S/
+NrI9iesdV7cD2C0Jwrrn2nuur8J8CKR4gb1EKm3U6gSMnPSHM5dZ+XQN4RuGWciu
+nrVQ3RdEPccvVufrzd1sB8OFeT92DPlHT85GZ4WoijH3lupaXBq9IpiQ2sC74WID
+kA28ZwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFiJpvDxCK7MdCMaedh8mN6i4FVE
+GKk/nES7cc5MxH3F3nvYuluew0A7l83tYwq98E9yZz593mjQHxyIAGsNFaVALkWx
+ZEmK7afYTnXInTLRRZv00PuhRp+12zQ7gY2fkjYVMpgGdPB/n0NrP9pirBzEmht+
+FIudlteVKYY+VVm2
+-----END CERTIFICATE-----
diff --git a/util/sec/certs/jp.pkey b/util/sec/certs/jp.pkey
new file mode 100644 (file)
index 0000000..d3273ff
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC5fCqy5k2JzHNLBOBf2Ptw25iyMBNu787yf0S/NrI9iesdV7cD
+2C0Jwrrn2nuur8J8CKR4gb1EKm3U6gSMnPSHM5dZ+XQN4RuGWciunrVQ3RdEPccv
+Vufrzd1sB8OFeT92DPlHT85GZ4WoijH3lupaXBq9IpiQ2sC74WIDkA28ZwIDAQAB
+AoGBALdJMwhE+ynHlcXzs6QCzbPfyyuIxitBXMXTbSNl8QtOVb5RBtANtbOHcRna
+k40ysIPQJnXN/jB1nMJf3M716cpgOeBwECVLkGVpq7zTYsWdeh7lTEOh/aUbDgKZ
+nOnGqogKGaiQ92Fhs7ImyCHyb6e8SdFFHi1BAGGXQ5P0QXHBAkEA6fWvv/5fn7Jy
+2UyKMqO6LxGL08nzIzJNLU36WCTFfuFlXeQpoSZ7QqDCkZUY3zHNo4p5nBSzju4+
+lmczfIWhiwJBAMr1b317SeV8viOpn8rpfB0/IhLZ8EdPwsVsEMpIDcqpJZHCiLBl
+HrEQtu+PJGBN93gznR8rJgEKK3tYQBc99BUCQQDgwpbE66sR0G1lNJLPc1s6PLEI
+Fcru1TQvgeovI6RX8FFhkgAsQLvJlodVNNdgFIhpxG5v87NMbLTT6PEdf4NhAkAE
+QIIWcefJbASbwKj9WkjkX/c5x+EVzWD6O9paMoo/ba3A0P+GGog7E2uRt0D+14NQ
+vFwVVBUWvnzMt7uYAQ9FAkA7XNbDWBeW/7zIt9yrTx+dM+xN2fftV7RxMB1pSSEP
+Ugsm2nyCj6ZuEhHn8PjB9+bNfK/PrGC/qjTDyPH+zvYp
+-----END RSA PRIVATE KEY-----
diff --git a/util/sec/certs/planetlab.cert b/util/sec/certs/planetlab.cert
new file mode 100644 (file)
index 0000000..4fd627f
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi
+MB4XDTA4MDMyMTIyMDE0MVoXDTEzMDMyMDIyMDE0MVowFDESMBAGA1UEAxMJcGxh
+bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4nsgYgX1n8mUs0dPb
+krTFtThw5ULBPr45s7Al0tsaG80I/UpjZG07Q4QnaEfFu/2xWBsAC0S5HopbSS3w
+Ykr+OkQO4DNV0+RwRhGqHamhnjSl7Ar9svHzzgIFujl9vQdqoWzWXzW2eDkbtqb8
+elDnit1bwCC2yrRNoivuAFFSsQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAKWSfdwa
+bMWqViR5/aRR8tD6mQ7jwhKA6glr7vSCWvdKsHhKSZd2NrpCnyP5ew1c4E0XKwU0
+TPLwLDsIMUcy0lSojjAETy7mrIHlqPxCL8WP9Wp7U9No8jVbe1E/i89a/qahhL7v
+fvA5Nb91VeJXaE2hr7bG6so6aG8WIMm90d4A
+-----END CERTIFICATE-----
diff --git a/util/sec/certs/planetlab.pkey b/util/sec/certs/planetlab.pkey
new file mode 100644 (file)
index 0000000..c292395
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC4nsgYgX1n8mUs0dPbkrTFtThw5ULBPr45s7Al0tsaG80I/Upj
+ZG07Q4QnaEfFu/2xWBsAC0S5HopbSS3wYkr+OkQO4DNV0+RwRhGqHamhnjSl7Ar9
+svHzzgIFujl9vQdqoWzWXzW2eDkbtqb8elDnit1bwCC2yrRNoivuAFFSsQIDAQAB
+AoGAR6gxZ/mSkC7wACZtAXN+wKInBwKlF1ZgBQtuWi/uJMMXoN6W6d8H2pHJEHaU
+LPZbcGMPD8RP5z4oW2ga8YtlKYD2tKqulXm07yMIpbLs4+3FgFHzN4H5lCb511Zq
+EdVKtXAxp2X+H0wGB4g26UqvSp8/Kp4x2u63X48+5aRjODECQQDZ5WGrJFDLmHWt
+6NcvYYiJJ0jGwve8iRsVBOqT8wiAQ+7QFfnlnrwLxOsm2qCZokFrFmx0YnYmZ27y
+uaAI9TydAkEA2Oe7op+wcN5Xpa19yGy4/mnsGfGbxkWucBWmMTiJbq0NtSYdbAnL
+4DUnG+0SdtpA5OoXBnUQs2nXcWq/YCDQJQJAZCEIdMDHcAerbDNnTxqex4gJ5WyK
+s1S94TbVJQ+1hFuzTmQK5f2/pBjlhoFI89CgBznStNjaOmOllFzAsd0f8QJBAJ80
+X/W6bkA6Am0ZzVQZ8SLTzjcwrpy2MpYUXdqM29r/bCtFIZ1WB222tdD6jm3sPmuH
+IoVb0XlOu5KEvpkpHH0CQHnzGFbx4gj5fGanVgyMjd6FY0vJO15vpsrmAeYDbVfT
+4FeaALZcN5oA6xaD5xxL2+tvw7j/oy9UtMQRrcKYmcM=
+-----END RSA PRIVATE KEY-----
diff --git a/util/sec/certs/usersoner.cert b/util/sec/certs/usersoner.cert
new file mode 100644 (file)
index 0000000..7197504
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJdXNlcnNvbmVy
+MB4XDTA4MDMwMzAzNDQ1MVoXDTEzMDMwMjAzNDQ1MVowFDESMBAGA1UEAxMJdXNl
+cnNvbmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9ax+M8gWEr1PsgPJM
+KP8nHWRJBnevXxMLmpFfz8kzC2CY1PQ3VzGClyp6v3ryv/Tp9W+otE7M9SCMx+aG
+ibTRMJFnYag1VJyIywX72fDuMTlvS3SMz1NPsda7PzqhmyRiE8c5wlgQWSNktker
+/wmEN2qfIC+ufBVsslsehkpkQQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGT7dqbw
+wHNi33eT33qneUdbfYWH+fDM2sTIdiQXYhcBEyXXWwHNlW46sq/aCol8uSNhEjbK
+rDzAfGsIqNAeBHBeuG5FgEqt0mOtglyjqQ82v6keayIOYIUJ3f7Vw7YorPyGs8x7
+SxYqbGOvuPHnItV507Orj/fQOXW1ZerYFhrk
+-----END CERTIFICATE-----
diff --git a/util/sec/sec.py b/util/sec/sec.py
new file mode 100644 (file)
index 0000000..b7261de
--- /dev/null
@@ -0,0 +1,658 @@
+import os, sys
+from OpenSSL import crypto
+from M2Crypto import X509
+from M2Crypto import SSL
+sys.path.append('../')
+from certgen import *
+from util import *
+from db import *
+from tree import *
+
+CRED_GRANT_TIME = 3600000 #in seconds
+ACC_GRANT_TIME = 10000000
+TOP_LEVEL_CERTS_DIR = "trusted_certs"
+MAX_CERT_SIZE = 1024
+MAX_CERT_CHAIN = 9
+
+creds= ["","","","","","","","","","","","","","","","","","","","","","","","",""]
+creds[0] = "register"
+creds[1] = "remove"
+creds[2] = "remove_self"
+creds[3] = "update"
+creds[4] = "update_self"
+creds[5] = "lookup"
+creds[6] = "lookup_self"
+creds[7] = "list"
+creds[8] = "getCredential"
+creds[9] = "getAccounting"
+creds[10] = "getTicket"      # = embed privilege in the docs
+creds[11] = "splitTicket"
+creds[12] = "redeemTicket"
+creds[13] = "stop"
+creds[14] = "start"
+creds[15] = "delete"
+creds[16] = "listSlices"
+creds[17] = "getStatus"
+creds[18] = "getSlice"
+creds[19] = "refresh"
+creds[20] = "delegate"
+creds[21] = "instantiate"
+creds[22] = "bind"
+creds[23] = "control"
+
+class PeerInfo :
+    def __init__(self):
+        self.cert = None
+        self.acc = Accounting()   #accounting information
+        self.cred = Credential()  #credential information
+
+#info_certs looks like: [{'hrn':None, 'uuid':0}]
+class Accounting:
+    def __init__(self):
+        self.info_certs = []
+        self.cert_chain = []
+    def get_hrn(self):
+        return self.info_certs[0]['hrn']
+    def get_uuid(self):
+        return self.info_certs[0]['uuid']
+
+#info_certs looks like: [{'operation_set':None, 'on_interfaces':None}]
+#operation_set looks like: [0:['register','update','update_self',..], 1:['getTicket', 'splitTicket',..],..]
+#on_interfaces looks like: [{'lbl':0, 'name':'planetlab.jp.jaist', 'type':'registry'},..{}]
+class Credential: 
+    def __init__(self):
+        self.info_certs = [] #list of operations and list of sites on which operations can be performed
+        self.cert_chain = []
+    def get_cred(self):
+        return self.info_certs[0]
+        
+#type: 'accounting' or 'credential' 
+#folder: directory of that the certificate should reside
+#reg_type: 'slice' or 'component'
+#hrn: name of the object to get certificates for
+#server: the server instance to do operations calls with in the internal tree
+#internal_tree: tree for internal cert renewals
+#auth_addr: authority to ask for certificates
+#sec: security module to perform auth. protocol with the remote peer
+#return 0: no renewal done, 1: renewal done, None: error
+def renew_cert(type, folder, reg_type, hrn, server, internal_tree, auth_addr, sec):
+    #check if necessary to renew
+    if type == 'accounting':
+        fname = folder+'/acc_file'
+    else:
+        fname = folder+'/cred_file'
+    if os.path.exists(fname) and is_valid_chain(fname):
+        return 0
+    else:
+        parent_hrn = obtain_authority(hrn)
+        hrn_suffix = get_leaf(hrn)
+        id_file = folder+'/'+hrn_suffix+'.cert'
+        #check the id file
+        if not os.path.exists(folder) or not os.path.exists(id_file):
+            print 'Id file for '+hrn+' does not exist.\n'
+            return None
+        #decide if remote call
+        remote = True
+        if internal_tree:
+            dbinfo = determine_dbinfo(parent_hrn, internal_tree)
+            if dbinfo:
+                remote = False
+        if not remote:
+            if type == 'accounting':
+                #obtain the accounting from parent, write to file
+                g = {"hrn":""}
+                g["hrn"] = parent_hrn
+                g['registry'] = reg_type
+                g["account_name"] = hrn 
+                p = {}
+                record = {'g_params':g, 'p_params':p}
+                dbinfo = determine_dbinfo(parent_hrn, internal_tree)
+                parentkeyinfo = internal_tree.determine_keyinfo(parent_hrn, server, type)
+                open(fname, 'w').write(server.getAccounting(record, dbinfo, parentkeyinfo, X509.load_cert(id_file)))
+            else:
+                #obtain the credential from parent, write to file
+                g = {"hrn":""}
+                g["hrn"] = parent_hrn
+                if reg_type == 'slice':
+                    g['cred_name'] = 'registry:slc'
+                else:
+                    g['cred_name'] = 'registry:comp'
+                p = {}
+                record = {'g_params':g, 'p_params':p}
+                dbinfo = determine_dbinfo(parent_hrn, internal_tree)
+                id = crypto.load_certificate(crypto.FILETYPE_PEM, open(id_file).read())
+                peerinfo = [hrn, id]
+                parentkeyinfo = internal_tree.determine_keyinfo(parent_hrn, server, type)
+                open(fname, 'w').write(server.getCredential(record, dbinfo, parentkeyinfo, peerinfo))
+        else: #if not local call
+            if obtain_authority(hrn) == '':  #we are at the root
+                id_key_file = folder+'/'+hrn_suffix+'.pkey'
+                id_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open(id_file).read())
+                id_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open(id_key_file).read())
+                peer_cred_str = open(fname).read()
+                c_pem = X509.load_cert_string("-----BEGIN CERTIFICATE-----"+peer_cred_str.split("-----BEGIN CERTIFICATE-----")[1])
+                if type == 'accounting':
+                    cert_uuid = c_pem.get_ext("subjectAltName").get_value().split('http://')[1].split('#')[2].split('uuid:')[1]
+                    acc = create_acc(id_cert, id_pkey, id_cert.get_pubkey(), hrn, cert_uuid)
+                    open(fname, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, acc))
+                else:
+                    rights = c_pem.get_ext("subjectAltName").get_value().split('http://')[1].split('credential_set:')[1]
+                    cred = create_cred(id_cert, id_pkey, id_cert.get_pubkey(), 'Registry credentials', rights)
+                    open(fname, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, cred))
+            else:
+                operation = ''                    
+                g = {"hrn":obtain_authority(hrn)}
+                if type == 'accounting':
+                    operation = "getAccounting";
+                    #geni parameters
+                    g['registry'] = reg_type
+                    g["account_name"] = hrn
+                else:
+                    operation = "getCredential"
+                    #geni parameters
+                    if reg_type == 'slice':
+                        g['cred_name'] = 'registry:slc'
+                    else:
+                        g['cred_name'] = 'registry:comp'
+                p = {}
+                message = {'opname':operation, 'g_params':g, 'p_params':p}
+                #connect to authority
+                server = SSL.Connection(sec.ctx)
+                server.connect(auth_addr)
+                peer = sec.auth_protocol(server)
+                #do the query and get the result
+                server.write(str(message))
+                result = server.read(MAX_CERT_SIZE*MAX_CERT_CHAIN)
+                open(fname, 'w').write(result)
+        return 1
+        
+#obtains a data structure for credentials out of a given credential string
+#return info_cert: {'operation_set':{'register','remove',..}, 'on_interfaces':{{'lbl':'0', 'type':'registry:slc','name':'planetlab.jp'}, ..}}
+def get_cred_info(credstr):
+    info_cert = {'operation_set':{}, 'on_interfaces':{}}
+    set = credstr.split('#')[1].split('credential_set:')[1]
+    set_arr = set.split(')')
+    for item in set_arr[0:len(set_arr)-1]:
+        item = item.split('(')[1].split('-')
+        if info_cert['operation_set'].has_key(item[1]):
+            info_cert['operation_set'][item[1]].append(creds[int(item[0])])
+        else:
+            info_cert['operation_set'][item[1]] = [creds[int(item[0])]]
+    interface_list = []
+    arr = credstr.split('#')
+    intlist = arr[2:len(arr)]
+    for interface in intlist:
+        iarr = interface.split(':')
+        newint = {'lbl':iarr[0]}
+        if iarr[1] == 'reg':
+            if iarr[2] == 'slc':
+                newint['type'] ='registry:slc'
+            else:
+                newint['type'] ='registry:comp'
+            newint['name'] = iarr[3]
+        elif iarr[1] == 'comp':
+            newint['type'] ='component'
+            newint['name'] = iarr[2]
+        interface_list.append(newint)
+    info_cert['on_interfaces'] = interface_list
+    return info_cert
+
+#given two credential statements, check if the first one can delegate the second one
+#example: "'register' right on 'planetlab.jp' registry interface" is able to delegate a right called "'register' right on 'planetlab.jp.jaist' registry interface" 
+def check_delegation(info_cert1, info_cert2):
+    passed = False
+    for interface in info_cert1['on_interfaces']:
+        is_reg = interface['type'] == 'registry:slc' or interface['type'] == 'registry:comp'
+        if is_reg and 'register' in info_cert1['operation_set'][interface['lbl']]:
+            found = True
+            for child_int in info_cert2['on_interfaces']:
+                if child_int['type'] == interface['type'] and not check_authority(child_int['name'],interface['name']):
+                    found = False
+            if found:
+                passed = True
+                break
+    return passed
+
+    """
+Create a credential certificate given the parameters: 
+    'authcert': the authority certificate
+    'authkey': the authority key
+    'pubkey': the public key belonging to the object to which the credential will be granted
+    'cname': the name of the credential being generated. It should be 'registry credentials' or a silce name like 'planetlab.jp.slice1'
+    'rights':  - the sequence representing the set of operations/rights on specific interfaces
+                                            ex: (2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-0)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:planetlab.jp#1:reg:planetlab.jp.jaist
+    'time': time in seconds how long the life of credential is
+"""
+def create_cred(authcert, authkey, pubkey, cname, rights, time=CRED_GRANT_TIME):
+    #calculate the credset
+    if rights == "slice":
+        rights = "(10-1)(11-1)(12-1)(13-1)(14-1)(15-1)(16-1)(17-1)(18-1)(23-1)"
+    elif rights == "SA":
+        rights = "(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)(16-1)(17-1)(18-1)(19-1)"
+    elif rights == "MA":
+        rights = "(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)(16-1)(17-1)(18-1)"
+    else:
+        # check if the rights is in correct format ######################
+        rights = rights
+        #create the CSR for the credential certificate
+        key = createKeyPair(TYPE_RSA, 1024)
+        certReq = createCertRequest(key, {"CN" : cname})
+        certReq.set_pubkey(pubkey)
+        #create the credential certificate, return
+        content = "#credential_set:"+rights 
+        ext = ("subjectAltName", 1, "URI:http://"+content)
+        exts = [ext]
+        cert = createCertificate(certReq, (authcert, authkey), 0, (0, int(time)), exts)
+        return cert
+
+"""
+Create an accountability certificate given the parameters: 
+    'authc': the name of the authority certificate file
+    'authk': the name of the authority key file
+    'pubkey': the name of the GID file belonging to the object to which the accountability will be assigned
+    'name': the name of the object, which is the accountability information itself
+    'uuid': the uuid of the object
+    'time': the date and time when the life of accounting information
+"""
+def create_acc(authcert, authkey, pubkey, name, uuid, time=ACC_GRANT_TIME): 
+    #create the CSR for the credential certificate
+    key = createKeyPair(TYPE_RSA, 1024)
+    certReq = createCertRequest(key, {"CN" : "GENI Accounting"})
+    certReq.set_pubkey(pubkey)
+    #create the accountability certificate, write into file
+    content = "#hrn:"+name+"#uuid:"+uuid
+    ext = ("subjectAltName", 1, "URI:http://"+content)
+    exts = [ext]
+    cert = createCertificate(certReq, (authcert, authkey), 0, (0, int(time)), exts)
+    return cert
+    
+"""
+Create self signed certificate and private key.
+"""
+def create_self_cert(name):
+    key = createKeyPair(TYPE_RSA, 1024)
+    certReq = createCertRequest(key, {"CN":name})
+    cert = createCertificate(certReq, (certReq, key), 0, (0, 60*60*24*365*5)) # five years
+    open(name+'.pkey', 'w').write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key))
+    open(name+'.cert', 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
+
+def verify_callback(preverify_ok, ctx):
+    return 1
+    
+class Sec: 
+    def __init__(self, mode, id_file, id_key_file, acc_file, cred_file):
+        self.top_level_certs = []
+        self.mode = mode
+        file_list = os.listdir(TOP_LEVEL_CERTS_DIR)
+        for auth_file in file_list:
+            self.top_level_certs.append(X509.load_cert(TOP_LEVEL_CERTS_DIR+"/"+auth_file))
+            
+        self.id_file = id_file
+        self.id_key_file = id_key_file
+        self.my_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open(id_file).read())
+        self.my_key = crypto.load_privatekey(crypto.FILETYPE_PEM, open(id_key_file).read())
+        self.acc_file = acc_file
+        self.cred_file = cred_file
+        #ssl parameters
+        self.ctx = SSL.Context()
+        self.ctx.load_cert(self.id_file,self.id_key_file)
+        self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback)
+
+    #   - exchange the accounting chains, store peer's accounting in peer.acc
+    #   - check TTLs in certificates
+    #   - check validity of the chain, but do not check top level's trustedness
+    #return 1: means there is a structural error in the chain
+    #return 2: one of the TTLs in the chain not valid
+    #return 3: public keys do not form a valid chain
+    def exchange_accounting(self, conn, peer):
+        peer_acc_str=None
+        if self.mode == 'server':
+            #receive acc chain
+            peer_acc_str = conn.read(MAX_CERT_SIZE*MAX_CERT_CHAIN)
+            #send the acc chain
+            acc_str = open(self.acc_file).read()  #read the certificate chain from file
+            conn.write(acc_str) 
+        elif self.mode == 'client':
+            #send the acc chain
+            acc_str = open(self.acc_file).read()  #read the certificate chain from file
+            conn.write(acc_str)
+            #receive acc chain
+            peer_acc_str = conn.read(MAX_CERT_SIZE*MAX_CERT_CHAIN) 
+            
+        #construct peer_acc data structure
+        peer_acc = peer.acc
+        if peer_acc_str[0:27] != "-----BEGIN CERTIFICATE-----":
+            peer_acc.info_certs = "anonymous"
+        else:
+            try: 
+                #divide the received chain into certificates
+                arr = peer_acc_str.split("-----BEGIN CERTIFICATE-----")
+                arr = arr[1:len(arr)]
+                for i in range(len(arr)):
+                    arr[i] = "-----BEGIN CERTIFICATE-----"+arr[i]
+                for c_str in arr:
+                    c_pem = X509.load_cert_string(c_str)
+                    hrn = c_pem.get_ext("subjectAltName").get_value().split('http://')[1].split('#')[1].split('hrn:')[1]
+                    uuid = c_pem.get_ext("subjectAltName").get_value().split('http://')[1].split('#')[2].split('uuid:')[1]
+                    peer_acc.info_certs.append({'hrn':hrn, 'uuid':uuid})
+                    peer_acc.cert_chain.append(c_pem)
+            except: 
+                print "No valid chain received.\n"
+                return 1
+            #if structure is ok, go on with other checks
+            ttl_ok = True
+            chain_ok = True
+            #check ttl for the first certificate in the chain:
+            if not (check_valid(peer_acc.cert_chain[0])):
+                ttl_ok = False
+            prevCert = None
+            curCert = None
+            for i in range(1, len(peer_acc.cert_chain)):
+                prevCert = peer_acc.cert_chain[i-1] 
+                curCert = peer_acc.cert_chain[i] 
+                #check ttl
+                if not check_valid(curCert):
+                    ttl_ok = False
+                #chain validity checks
+                if not prevCert.verify(curCert.get_pubkey()) :
+                    chain_ok = False
+            if ttl_ok == False:
+                return 2
+            elif chain_ok == False:
+                return 3
+        return 0
+
+    #   - check the pubkey of first certificate if it matches the peer public key
+    #   - check the name hierarchy
+    #   - check the top level authority's trustedness
+    # return 0: accounting verified
+    # return 1: pubkey does not match peer pubkey
+    # return 2: name hierarch does not imply hrn
+    # return 3: top level authority is unknown
+    # return 4: unidentified error
+    def verify_accounting(self, peer):
+        pubkey_ok = True
+        hierarchy_ok = True
+        trusted_auth = True
+        
+        if peer.acc.info_certs == 'anonymous':
+            return 0
+        try:
+            #check the pubkey of the peer
+            if peer.acc.cert_chain[0].get_pubkey().as_pem(cipher=None) != peer.cert.get_pubkey().as_pem(cipher=None):
+                    pubkey_ok = False
+            else:
+                #check the name hierarchy
+                for i in range(len(peer.acc.info_certs)-1):
+                    if check_authority(peer.acc.info_certs[i]['hrn'], peer.acc.info_certs[i+1]['hrn']) == False:
+                        hierarchy_ok = False
+                            
+                #check if the certificate ends with a sign of a trusted top level authority
+                if hierarchy_ok:
+                    found = False
+                    last_cert_pubkey_pem = peer.acc.cert_chain[len(peer.acc.cert_chain)-1].get_pubkey().as_pem(cipher=None)
+                    for cert in self.top_level_certs:
+                        auth_pubkey_pem = cert.get_pubkey().as_pem(cipher=None)
+                        if last_cert_pubkey_pem == auth_pubkey_pem:
+                            found = True 
+                            break
+                    if not found:
+                        trusted_auth = False
+                        
+            if pubkey_ok == False:
+                return 1
+            elif hierarchy_ok == False:
+                return 2
+            elif trusted_auth == False:
+                return 3
+            return 0
+        except:
+            return 4
+     
+    #   - exchange the credential chains, store peer's credential in peer.cred
+    #   - check TTLs in certificates
+    #   - check validity of the chain, but do not check top level's trustedness
+    #return 1: means there is a structural error in the chain
+    #return 2: one of the TTLs in the chain not valid
+    #return 3: public keys do not form a valid chain
+    def exchange_credential(self, conn, peer):
+        peer_cred_str = None
+        if self.mode == 'server':
+            #receive cred chain
+            peer_cred_str = conn.read(MAX_CERT_SIZE*MAX_CERT_CHAIN)
+            #send the cred chain
+            cred_str = open(self.cred_file).read()  #read the certificate chain from file
+            conn.write(cred_str)
+        elif self.mode == 'client':
+            #send the cred chain
+            cred_str = open(self.cred_file).read()  #read the certificate chain from file
+            conn.write(cred_str)
+            #receive cred chain
+            peer_cred_str = conn.read(MAX_CERT_SIZE*MAX_CERT_CHAIN)
+            
+        #construct peer_cred data structure
+        peer_cred = peer.cred
+        if peer_cred_str[0:27] != "-----BEGIN CERTIFICATE-----":
+            peer_cred.info_certs = "no_credential"
+        else:
+            try:
+                #divide the received chain into certificates
+                arr = peer_cred_str.split("-----BEGIN CERTIFICATE-----")
+                arr = arr[1:len(arr)]
+                for i in range(len(arr)):
+                    arr[i] = "-----BEGIN CERTIFICATE-----"+arr[i]
+                for c_str in arr:
+                    c_pem = X509.load_cert_string(c_str)
+                    credstr = c_pem.get_ext("subjectAltName").get_value().split('http://')[1]
+                    peer_cred.info_certs.append(get_cred_info(credstr))
+                    peer_cred.cert_chain.append(c_pem)
+            except:
+                print "No valid chain received.\n"
+                return 1
+            #if structure is ok, go on with other checks
+            ttl_ok = True
+            chain_ok = True
+            #check ttl for the first certificate in the chain:
+            if not (check_valid(peer_cred.cert_chain[0])):
+                ttl_ok = False
+            prevCert = None
+            curCert = None
+            for i in range(1, len(peer_cred.cert_chain)):
+                prevCert = peer_cred.cert_chain[i-1] 
+                curCert = peer_cred.cert_chain[i] 
+                #check ttl
+                if not check_valid(curCert):
+                    ttl_ok = False
+                #chain validity check
+                if not prevCert.verify(curCert.get_pubkey()) :
+                    chain_ok = False
+            if ttl_ok == False:
+                return 2
+            elif chain_ok == False:
+                return 3
+        return 0
+        
+    #   - check the pubkey of first certificate if it matches the peer public key
+    #   - check the delegation hierarchy: the delegated rights must be granted by an authority of the entity
+    #   - check the top level authority's trustedness
+    # return 0: credential verified
+    # return 1: pubkey does not match peer pubkey
+    # return 2: delegation hierarchy is invalid
+    # return 3: top level authority is unknown
+    # return 4: unidentified error
+    def verify_credential(self, peer):
+        pubkey_ok = True
+        hierarchy_ok = True
+        trusted_auth = True
+        
+        if peer.cred.info_certs == 'no_credential':
+            return 0
+        try:
+            #check the pubkey of the peer
+            if peer.cred.cert_chain[0].get_pubkey().as_pem(cipher=None) != peer.cert.get_pubkey().as_pem(cipher=None):
+                    pubkey_ok = False
+            else:
+                #check the delegation hierarchy
+                for i in range(len(peer.cred.info_certs)-1):
+                    if not check_delegation(peer.cred.info_certs[i+1], peer.cred.info_certs[i]) :
+                        hierarchy_ok = False
+                            
+                #check if the certificate ends with a sign of a trusted top level authority
+                if hierarchy_ok:
+                    found = False
+                    last_cert_pubkey_pem = peer.cred.cert_chain[len(peer.cred.cert_chain)-1].get_pubkey().as_pem(cipher=None)
+                    for cert in self.top_level_certs:
+                        auth_pubkey_pem = cert.get_pubkey().as_pem(cipher=None)
+                        if last_cert_pubkey_pem == auth_pubkey_pem:
+                            found = True 
+                            break
+                    if not found:
+                        trusted_auth = False
+                        
+            if pubkey_ok == False:
+                return 1
+            elif hierarchy_ok == False:
+                return 2
+            elif trusted_auth == False:
+                return 3
+            return 0
+        except:
+            return 4
+
+    def check_authorization(self, acc, cred, op_request):
+        allow = False
+        allow_self = False #admission for ops on only the caller  itself
+        try:
+            opname = op_request['opname']
+            #anonymously callable functions are allowed always
+            if opname == 'getCredential' or opname == 'getAccounting':
+                allow = True
+            else:
+                g_params = op_request['g_params']
+                p_params = op_request['p_params']
+                target_hrn = g_params['hrn']
+                reg_type = ''
+                rec_type = g_params['type']
+                #determine which registry the call is on (slice or component)
+                if rec_type == 'user' or rec_type == 'slice' or rec_type == 'SA':
+                    reg_type = 'slc'
+                else:
+                    reg_type = 'comp'
+                operation_set = cred.get_cred()['operation_set']
+                on_interfaces = cred.get_cred()['on_interfaces'] 
+                is_self_op = False
+                if opname == "update" or opname == "remove" or opname == "lookup":
+                    is_self_op = True
+                #check callable operations within the credential
+                for interface in on_interfaces:
+                    if interface['type'] == 'registry:'+reg_type and check_authority(target_hrn, interface['name']) and operation_set.has_key(interface['lbl']):
+                        if opname in operation_set[interface['lbl']]:
+                            allow = True
+                            break
+                        elif is_self_op and opname + '_self' in operation_set[interface['lbl']] and acc.get_hrn() == target_hrn:
+                            allow_self = true
+                #if operation is allowed in name, perform additional checks for parameters
+                if allow or allow_self:
+                    if opname == 'update':
+                        if  'ttl' in g_params or 'uuid' in g_params or 'pointer' in g_params or (not allow and 'rights' in g_params):
+                            allow = False
+                            allow_self = False
+            #return result
+            if allow or allow_self:
+                return True
+            else:
+                return False
+        except:
+            return False
+
+    def auth_protocol(self, conn):
+        if not conn.verify_ok():
+            v = conn.get_verify_result()
+            print "peer verification failed\n"
+            
+        peer = PeerInfo()    #keep the peer data who is currently logged in
+        #set the gid field
+        peer_pem = conn.get_peer_cert()
+        peer.cert = peer_pem
+        #set the acc field and check it
+        result1 = result2 = -1
+        result1 = self.exchange_accounting(conn, peer)
+        peer_decision = None
+        if self.mode == 'server':
+            peer_decision = conn.read()
+        if result1 == 1:
+            conn.write("ACC CHAIN_STRUCTURE_ERROR")
+        elif result1 == 2:
+            conn.write("ACC TTL_EXPIRED")
+        elif result1 == 3:
+            conn.write("ACC CHAIN_VERIFY_ERROR")
+        else:   #result = 0
+            result2 = self.verify_accounting(peer)
+            if result2 == 1:
+                conn.write("ACC SSL_PUBKEY_MISMATCH")
+            elif result2 == 2:
+                conn.write("ACC HRN_HIERARCHY_MISMATCH")
+            elif result2 == 3:
+                conn.write("ACC UNKNOWN_AUTHORITY")
+            elif result2 == 4:
+                conn.write("ACC UN-IDENTIFIED_ERROR")
+            else:
+                conn.write("ACC OK")
+        if self.mode == 'client':
+            peer_decision = conn.read()
+        if (result1 != 0)  or (result2 != 0) or peer_decision != "ACC OK" : 
+            #close the connection and exit
+            conn.close()
+            return None
+        
+        #set the credential field and check it
+        result1 = result2 = -1
+        result1 = self.exchange_credential(conn,peer)
+        peer_decision = None
+        if self.mode == 'server':
+            peer_decision = conn.read()
+        if result1 == 1:
+            conn.write("CRED CHAIN_STRUCTURE_ERROR")
+        elif result1 == 2:
+            conn.write("CRED TTL_EXPIRED")
+        elif result1 == 3:
+            conn.write("CRED CHAIN_VERIFY_ERROR")
+        else:   #result1 = 0
+            result2 = self.verify_credential(peer)
+            if result2 == 1:
+                conn.write("CRED SSL_PUBKEY_MISMATCH")
+            elif result2 == 2:
+                conn.write("CRED INVALID_DELEGATION")
+            elif result2 == 3:
+                conn.write("CRED UNKNOWN_AUTHORITY")
+            elif result2 == 4:
+                conn.write("CRED UN-IDENTIFIED_ERROR")
+            else:
+                conn.write("CRED OK")
+        if self.mode == 'client':
+            peer_decision = conn.read()
+        if (result1 != 0)  or (result2 != 0) or peer_decision != "CRED OK" : 
+            #close the connection and exit
+            conn.close()
+            return None
+        return peer
+        
+def is_valid_chain(chain_file):
+    chain_str = open(chain_file).read()    
+    if chain_str[0:27] != "-----BEGIN CERTIFICATE-----":
+        return False
+    try:
+        #divide the received chain into certificates
+        arr = chain_str.split("-----BEGIN CERTIFICATE-----")
+        arr = arr[1:len(arr)]
+        for i in range(len(arr)):
+            arr[i] = "-----BEGIN CERTIFICATE-----"+arr[i]
+        arr2 = []
+        for c_str in arr:
+            c_pem = X509.load_cert_string(c_str)
+            if not check_valid(c_pem):
+                return False
+        return True
+    except:
+        return False
+
diff --git a/util/sec/sec.pyc b/util/sec/sec.pyc
new file mode 100644 (file)
index 0000000..fd2b7be
Binary files /dev/null and b/util/sec/sec.pyc differ
diff --git a/util/tree.py b/util/tree.py
new file mode 100644 (file)
index 0000000..5f906e7
--- /dev/null
@@ -0,0 +1,447 @@
+import os, sys
+import uuid
+sys.path.append('./sec')
+from util import *
+from excep import *
+from sec import *
+from db import *
+from pl_to_geni import *
+
+ROOT_AUTH = 'planetlab' #need to know the higher most node
+
+class TreeNodeInfo:
+    def __init__(self):
+        self.name = '' # hrn
+        self.login_base = None
+        self.node_data = None
+    def serial(self):
+        dic = {'name':self.name, 'login_base':self.login_base, 'node_data':None}
+        if self.node_data:
+            dic['node_data'] = {}
+            if self.node_data.has_key('key_info'):
+                dic['node_data']['key_info'] = self.node_data['key_info'].serial()
+            if self.node_data.has_key('db_info'):
+                dic['node_data']['db_info'] = self.node_data['db_info'].serial()
+        return dic
+        
+class KeyInfo:
+    def __init__(self):
+        self.folder = ''
+        self.id_file = ''
+        self.id_key_file = ''
+        self.acc_file = ''
+        self.cred_file = ''
+        self.last_update = ''
+    def serial(self):
+        return {'folder': self.folder, 'id_file': self.id_file, 'id_key_file': self.id_key_file, 'acc_file': self.acc_file, 'cred_file': self.cred_file, 'last_update': self.last_update}
+    
+class DbInfo:
+    def __init__(self):
+        self.table_name = ''  #ex: planetlab.br_sr
+        self.db_name = '' #ex: plDB 
+        self.address = ''
+        self.port = 0
+        self.user = ''
+        self.password = ''
+    def serial(self):
+        return {'table_name':self.table_name, 'db_name':self.db_name, 'address':self.address, 'port':self.port, 'user':self.user, 'password':self.password}
+
+class TreeNode:
+    def __init__(self):
+        self.info = None
+        self.children = []
+    def serial(self):
+        children = []
+        if len(self.children)>0:
+            for c in self.children:
+                children.append(c.serial())
+        if self.info:
+            return {'children':children, 'info':self.info.serial()}
+        else:
+            return {'children':children, 'info':None}
+        
+class InterfaceTree:
+    def __init__(self, type, filename, auth_addr):
+        #the tree for keeping the site names managed by this interface instance
+        self.my_tree = None
+        self.type = type
+        self.filename = filename
+        self.auth_addr = auth_addr
+        self.tree_init()
+        
+    #check a hrn if exists in the tree, return the info of it, if not found return None
+    #hrn:string
+    def tree_lookup(self, hrn) :
+        tree= self.my_tree
+        if not tree: #tree empty
+            return None
+        found = True
+        hrn_arr = geni_to_arr(hrn)
+        tmp_tree = tree
+        if tmp_tree.info.name != hrn_arr[0] :
+            found = False
+        else : 
+            cur_name = hrn_arr[0] + ''
+            for i in range(1, len(hrn_arr)):
+                cur_name = cur_name + '.' + hrn_arr[i]
+                child_found = False
+                child = {}
+                for j in range(len(tmp_tree.children)) : 
+                    if tmp_tree.children[j].info.name == cur_name :
+                        child_found = True
+                        child = tmp_tree.children[j]
+                        break
+                if child_found == False:
+                    found = False
+                    break
+                else:
+                    tmp_tree = child
+        if found == True:
+            return tmp_tree.info
+        else:
+            return  None
+
+    def is_leaf(self, hrn):
+        tree= self.my_tree
+        if not tree: #tree empty
+            return None
+        found = True
+        hrn_arr = geni_to_arr(hrn)
+        tmp_tree = tree
+        if tmp_tree.info.name != hrn_arr[0] :
+            found = False
+        else : 
+            cur_name = hrn_arr[0] + ''
+            for i in range(1, len(hrn_arr)):
+                cur_name = cur_name + '.' + hrn_arr[i]
+                child_found = False
+                child = {}
+                for j in range(len(tmp_tree.children)) : 
+                    if tmp_tree.children[j].info.name == cur_name :
+                        child_found = True
+                        child = tmp_tree.children[j]
+                        break
+                if child_found == False:
+                    found = False
+                    break
+                else:
+                    tmp_tree = child
+        if found == True:
+            return tmp_tree.children == []
+        else:
+            return  None
+    
+    #add a new branch into the tree, branch is indicated by info
+    #info: TreeNodeInfo
+    def tree_add(self, info):
+        tree= self.my_tree
+        inserted = False
+        hrn_arr = geni_to_arr(info.name)
+        tmp_tree = tree
+        
+        if hrn_arr == []:
+            raise TreeException("Wrong input hrn: "+info.name)
+        else:
+            if tree == None:
+                if len(hrn_arr) == 1:
+                    #insert the node
+                    tree = TreeNode()
+                    tree.info = info
+                    inserted = True
+            else:
+                cur_name = hrn_arr[0] + ''
+                if tmp_tree.info.name == cur_name:
+                    for i in range(1, len(hrn_arr)):
+                        cur_name = cur_name + '.' + hrn_arr[i]
+                        child_found = False
+                        child = {}
+                        for j in range(len(tmp_tree.children)) : 
+                            if tmp_tree.children[j].info.name == cur_name :
+                                child_found = True
+                                child = tmp_tree.children[j]
+                                break
+                        if child_found == False:
+                            if len(hrn_arr) - i == 1:
+                                #insert the remaining of hrn
+                                new_child = TreeNode()
+                                new_child.info = info
+                                tmp_tree.children.append(new_child)
+                                inserted = True
+                            break
+                        else:
+                            tmp_tree = child
+                    if inserted == False:
+                        print "The hrn '"+info.name+"' should be at leaf position to be inserted.\n"
+            return inserted
+                
+    #remove the branch indicated by hrn from the tree
+    #hrn: string
+    def tree_remove(self, hrn):
+        tree= self.my_tree
+        removed = False
+        hrn_arr = geni_to_arr(hrn)
+        tmp_tree = tree
+        if tmp_tree.info.name == hrn_arr[0] :
+            cur_name = hrn_arr[0] + ''
+            for i in range(1, len(hrn_arr)):
+                cur_name = cur_name + '.' + hrn_arr[i]
+                child_found = False
+                child = {}
+                for j in range(len(tmp_tree.children)) : 
+                    if tmp_tree.children[j].info.name == cur_name :
+                        child_found = True
+                        child = tmp_tree.children[j]
+                        break
+                if child_found == False:
+                    break
+                else:
+                    if i == len(hrn_arr)-1:
+                        tmp_tree.children.remove(child)
+                        removed = True
+                    else:
+                        tmp_tree = child
+        return removed
+                
+    #initialize the tree with the file data
+    def tree_init(self):
+        filename = self.filename
+        type = self.type
+        try:
+            #check if dict file exists 
+            if not os.path.exists(filename+'_dict'):
+                if not os.path.exists(filename):
+                    print 'Error: File not found.\n'
+                    raise NonExistingFile(filename)
+                else:
+                    self.__file_to_treedict(filename)
+                    self.my_tree = self.__deserialize_tree(eval(open(filename+'_dict').read()))
+            else:
+                self.my_tree = self.__deserialize_tree(eval(open(filename+'_dict').read()))
+            #create the tables and key folders if they do not exist already
+            self.__sync_with_db_rec(type, self.my_tree)
+        except:
+            print 'Error in initialzing the tree.\n'
+            os._exit(1)
+            
+    def save_tree(self):
+        open(self.filename+'_dict', 'w').write(str(self.my_tree.serial()))
+
+    def __sync_with_db_rec(self, type, treenode):
+        self.__sync_with_db(type, treenode)
+        for child in treenode.children:
+            self.__sync_with_db_rec(type, child)
+        
+    #if do not exist, creates the (key folder, private key and self signed cert) and the db table for the node, fills the table with the children info
+    #type: 'slice' or 'component' indicating the registry type
+    #hierarchy:hrn so far
+    #treenode: node to be synched
+    def __sync_with_db(self, type, treenode):
+        curdir = os.getcwd()
+        key_req = False
+        table_req = False
+        if not treenode.info.node_data:
+            treenode.info.node_data = {}
+            #create key folder, private key and self signed cert
+            hrn = treenode.info.name
+            dirname = type+'/'+(hrn).replace('.','/')
+            hrn_suffix = get_leaf(hrn)
+            if os.path.exists(dirname):
+                os.system('rm -rf '+dirname)
+            os.makedirs(dirname)
+            os.chdir(dirname)
+            create_self_cert(hrn_suffix)
+            k = KeyInfo()
+            k.folder = dirname
+            k.id_file = hrn_suffix+'.cert'
+            k.id_key_file = hrn_suffix +'.pkey'
+            #for the top authority create the acc and cred files
+            if obtain_authority(hrn) == '':
+                id_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open(k.id_file).read())
+                id_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open(k.id_key_file).read())
+                uu_id = str(uuid.uuid4().int)
+                regtype = ''
+                if type == 'slice':
+                    regtype = 'slc'
+                else:
+                    regtype = 'comp'
+                rights = '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)'
+                rights = rights + '#0:reg:'+regtype+':'+hrn
+                k.acc_file = 'acc_file'
+                k.cred_file = 'cred_file'
+                acc = create_acc(id_cert, id_pkey, id_cert.get_pubkey(), hrn, uu_id)
+                cred = create_cred(id_cert, id_pkey, id_cert.get_pubkey(), 'Registry credentials', rights)
+                open(k.acc_file, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, acc))
+                open(k.cred_file, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, cred))
+            treenode.info.node_data['key_info'] = k
+            os.chdir(curdir)
+            #create the table and set in the treenode data structure
+            suffix = ''
+            if type == 'slice':
+                suffix = SR_SUFFIX
+            else:
+                suffix = CR_SUFFIX
+            tablename = hrn.replace('.','$') + suffix
+            cnx = get_plDB_conn()
+            querystr = "CREATE TABLE "+tablename+" ( \
+                    hrn text, \
+                    type text, \
+                    uuid text, \
+                    userlist text, \
+                    rights text, \
+                    description text, \
+                    pubkey text, \
+                    wrapperURL text, \
+                    disabled text, \
+                    pointer integer);"
+
+            cnx.query('DROP TABLE IF EXISTS '+tablename) #drop the table if it exists
+            cnx.query(querystr)
+            d = DbInfo()
+            d.table_name = tablename
+            get_plDB_info(d)
+            treenode.info.node_data['db_info'] = d
+            #if the authority resides in PL as site, then fill it with the PL data
+            if treenode.children == []:
+                populate_pl_data(hrn_suffix, tablename, type)
+                treenode.info.login_base = hrn_suffix
+            #insert the record into parent's table
+            if obtain_authority(hrn) != '':
+                rectype = ''
+                regtype = ''
+                if type == 'slice':
+                    rectype = 'SA'
+                    regtype = 'slc'
+                else:
+                    rectype = 'MA'
+                    regtype = 'comp'
+                uu_id = ''
+                if treenode.children != []:
+                    uu_id = str(uuid.uuid4().int)
+                rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)'
+                rights = rights + '#0:reg:'+regtype+':'+obtain_authority(hrn)+'#1:reg:'+regtype+':'+hrn
+                id_file = treenode.info.node_data['key_info'].folder+'/'+ treenode.info.node_data['key_info'].id_file
+                pubkey = X509.load_cert(id_file).get_pubkey().as_pem(cipher=None)
+                wrapper = 'local'
+                pointer = -1
+                if treenode.children == []: #get pointer if authority resides in PL as site
+                    pointer = cnx.query("SELECT site_id FROM sites WHERE login_base='"+hrn_suffix+"'").dictresult()[0]['site_id']
+                disabled = 'f'
+                record = {'hrn':get_leaf(hrn), 'type':rectype, 'uuid':uu_id, 'rights':rights, 'pubkey':pubkey, 'wrapperURL':wrapper, 'pointer':pointer, 'disabled':disabled}
+                querystr = generate_querystr('INSERT', obtain_authority(hrn).replace('.','$')+suffix, record)
+                cnx.query(querystr)
+    
+    #gets a tree in the form of a dictionary, 
+    #                ex:  {'info':{'name':'planetlab', 'node_data':{'key_info':{...}, 'db_info':{...}}}, 'children':[x1, x2, ..]}
+    #returns the tree in the TreeNode class format
+    def __deserialize_tree(self, treenode_dict):
+        node = TreeNode()        
+        node.info = TreeNodeInfo()
+        node.info.name = treenode_dict['info']['name']
+        node.info.login_base = treenode_dict['info']['login_base']
+        if treenode_dict['info']['node_data']:
+            node.info.node_data = {}
+            if treenode_dict['info']['node_data'].has_key('key_info'):
+                node.info.node_data['key_info'] = KeyInfo()
+                keyinf = treenode_dict['info']['node_data']['key_info']
+                node.info.node_data['key_info'].folder = keyinf['folder']
+                node.info.node_data['key_info'].id_file = keyinf['id_file']
+                node.info.node_data['key_info'].id_key_file = keyinf['id_key_file']
+                node.info.node_data['key_info'].acc_file = keyinf['acc_file']
+                node.info.node_data['key_info'].cred_file = keyinf['cred_file']
+                node.info.node_data['key_info'].last_update = keyinf['last_update']
+            if treenode_dict['info']['node_data'].has_key('db_info'):
+                node.info.node_data['db_info'] = DbInfo()
+                dbinf = treenode_dict['info']['node_data']['db_info']
+                node.info.node_data['db_info'].table_name = dbinf['table_name']
+                node.info.node_data['db_info'].db_name = dbinf['db_name']
+                node.info.node_data['db_info'].address = dbinf['address']
+                node.info.node_data['db_info'].port = dbinf['port']
+                node.info.node_data['db_info'].user = dbinf['user']
+                node.info.node_data['db_info'].password = dbinf['password']
+        for child in treenode_dict['children']:
+            node.children.append(self.__deserialize_tree(child))
+        return node 
+
+    #gets a file name for tree and constructs an output file which contains the tree in dictionary format
+    #write to file:  ex:  {'info':{'name':'planetlab', 'node_data':{'key_info':{...}, 'db_info':{...}}}, 'children':[x1, x2, ..]}
+    def __file_to_treedict(self, filename):
+        lines = open(filename).readlines()
+        hierarchy = ''
+        (node, line) = self.__file_to_treedict_rec(lines, 0, hierarchy, 0)
+        open(filename+'_dict', 'w').write(str(node))
+        
+    #helper function
+    #return: (node, line)
+    def __file_to_treedict_rec(self, lines, indent, hierarchy, line):
+        node = {'info':{'name':'', 'login_base':'', 'node_data':None}, 'children':[]}
+        #count #tabs
+        j = 0
+        while lines[line][j] == '\t':
+            j = j+1
+        if indent != j:
+            print 'Error in file to dictionary conversion.\n'
+            return None
+        name = lines[line].split(' ')[0]
+        name = name[j:len(name)]
+        if hierarchy == '':
+            node['info']['name'] = name
+        else:
+            node['info']['name'] = hierarchy + '.' + name
+        node['info']['login_base'] = name
+        #next indent count
+        j = 0
+        if line+1 != len(lines):        
+            while lines[line+1][j] == '\t':
+                j = j+1
+        if j > indent+1:
+            print 'Error in file to dictionary conversion.\n'
+            return None
+        indent2 = j
+        line = line+1
+        while indent2 > indent: 
+            (child, line) = self.__file_to_treedict_rec(lines, indent2, node['info']['name'], line)
+            node['children'].append(child)
+            j = 0
+            if line != len(lines):    
+                while lines[line][j] == '\t':
+                    j = j+1
+            indent2 = j
+        return (node, line)
+
+
+    #determines the key info of a given hrn within the tree, performs calls back to 'server' to obtain updated certs
+    #if the hrn does not exist in the tree hierarchy None is returned
+    #server: the server instance is passed for calls to getCredential/getAccounting if necessary
+    #type is credential or accounting; one of them at a time is determined by the function
+    #returns an array containing the self-signed certificate, private key, and acc or cred chain in string
+    def determine_keyinfo(self, hrn, server, type):
+        tree = self
+        reg_type = self.type
+        info = tree.tree_lookup(hrn)
+        if info == None:
+            return None
+        else:
+            keyinfo = info.node_data['key_info']
+            folder = keyinfo.folder
+            id_file = folder+'/'+keyinfo.id_file
+            id_key_file = folder+'/'+keyinfo.id_key_file
+            #check the id file
+            if not os.path.exists(folder) or not os.path.exists(id_file):
+                print 'Id file for '+hrn+' does not exist.\n'
+                return None
+            else:
+                #check acc or cred
+                acc_str = None
+                cred_str = None
+                renew_res = renew_cert(type, folder, reg_type, hrn, server, tree, tree.auth_addr, server.sec)
+                if renew_res == None:
+                    return None
+                if type == 'accounting':
+                    keyinfo.acc_file = 'acc_file'
+                    acc_str = open(keyinfo.folder+'/'+keyinfo.acc_file).read()
+                else:
+                    keyinfo.cred_file = 'cred_file'
+                    cred_str = open(keyinfo.folder+'/'+keyinfo.cred_file).read()
+                id = crypto.load_certificate(crypto.FILETYPE_PEM, open(id_file).read())
+                id_key = crypto.load_privatekey(crypto.FILETYPE_PEM, open(id_key_file).read())
+                return [id, id_key, acc_str, cred_str]
diff --git a/util/tree.pyc b/util/tree.pyc
new file mode 100644 (file)
index 0000000..1a58467
Binary files /dev/null and b/util/tree.pyc differ
diff --git a/util/util.py b/util/util.py
new file mode 100644 (file)
index 0000000..f18fdac
--- /dev/null
@@ -0,0 +1,69 @@
+from excep import *
+SR_SUFFIX = '_srr'
+CR_SUFFIX = '_crr'
+
+global_sr_tree = None
+global_cr_tree = None
+
+def set_tree_globals(tree1, tree2):
+    global global_sr_tree
+    global global_cr_tree
+    global_sr_tree = tree1
+    global_cr_tree = tree2
+
+def get_tree_globals():
+    return (global_sr_tree, global_cr_tree)
+    
+#function converts a hierarchical name from geni format to array of strings
+def geni_to_arr(name):        
+    arrayName = []
+    try:
+        parts = name.split(".")
+        for i in range(len(parts)):
+            arrayName.append(parts[i])
+        return arrayName
+    except:
+        raise MalformedHrnException(name)
+
+#used to parse the function name and the parameters specified in "operation_request"
+def msg_to_params(str):        
+    try:
+        return eval(str)
+    except:
+        raise InvalidRPCParams(str)
+
+#returns the authority hrn of a given 'hrn'
+def obtain_authority(hrn):
+       parts = hrn.split(".")
+       auth_str = ''
+       if len(parts) > 1:
+               auth_str = parts[0]+''
+               for i in range(1, len(parts)-1):
+                       auth_str = auth_str + '.' + parts[i]
+       return auth_str
+
+#returns the last element of an hrn
+def get_leaf(hrn):
+    parts = hrn.split(".")
+    return parts[len(parts)-1]
+
+#checks whether the 'hrn_auth' is an authority of 'hrn'
+def check_authority(hrn, hrn_auth):
+    arr = geni_to_arr(hrn)
+    arr_auth = geni_to_arr(hrn_auth)
+    try:
+        for i in range(len(arr_auth)):
+            if arr[i] != arr_auth[i]:
+                return False
+    except: 
+        return False
+    return True
+    
+def hrn_to_tablename(hrn,type):
+    hrn = hrn.replace(".","$")
+    if type == 'slc':
+        hrn = hrn + SR_SUFFIX
+    else:
+        hrn = hrn + CR_SUFFIX
+    return  hrn
+    
diff --git a/util/util.pyc b/util/util.pyc
new file mode 100644 (file)
index 0000000..72417b3
Binary files /dev/null and b/util/util.pyc differ