]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Refactor / rename
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 7 Jan 2010 14:31:12 +0000 (14:31 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 7 Jan 2010 14:31:12 +0000 (14:31 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3253 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

35 files changed:
eclipse/features/org.argeo.slc.ide/.project [new file with mode: 0644]
eclipse/features/org.argeo.slc.ide/feature.xml [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/.classpath [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/.project [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/META-INF/MANIFEST.MF [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/build.properties [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-logo-100104.xpm [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/org.argeo.slc.ide.product [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/plugin.xml [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/plugin_customization.ini [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.branding/splash.bmp [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/.classpath [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/.project [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/META-INF/MANIFEST.MF [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/build.properties [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/icons/argeo-icon-100104-256.png [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/icons/slc-launch.gif [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/plugin.xml [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/slc-sdk-dev.target [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/DeployedSlcSystem.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/EmbeddedSlcSystem.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcIdeUiPlugin.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcMainPreferencePage.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcPerspectiveFactory.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcSystem.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/preferences/SlcLaunchPreferencePage.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchConfigurationTab.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchConfigurationTabGroup.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchDelegate.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchShortcut.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchShortcutWithDialog.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptUtils.java [new file with mode: 0644]

diff --git a/eclipse/features/org.argeo.slc.ide/.project b/eclipse/features/org.argeo.slc.ide/.project
new file mode 100644 (file)
index 0000000..bcaa481
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.slc.ide</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.pde.FeatureBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.FeatureNature</nature>
+       </natures>
+</projectDescription>
diff --git a/eclipse/features/org.argeo.slc.ide/feature.xml b/eclipse/features/org.argeo.slc.ide/feature.xml
new file mode 100644 (file)
index 0000000..9507dac
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.argeo.slc.ide"
+      label="Argeo Java IDE"
+      version="0.12.1.D20100107_1516"
+      provider-name="Argeo">
+
+   <description url="http://www.argeo.org/projects/slc/org.argeo.slc.ui.launch.feature/0.11.3-SNAPSHOT/org.argeo.slc.ui.launch.feature">
+      Simplify running scripts based on Argeo SLC
+   </description>
+
+   <copyright url="http://www.argeo.org">
+      Copyright 2008 Mathieu Baudier
+   </copyright>
+
+   <license url="http://www.apache.org/licenses/LICENSE-2.0.txt">
+      SLC - Software LifeCycle framework
+      
+Copyright 2008 Mathieu Baudier - Argeo e.U.
+
+Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+   </license>
+
+   <url>
+      <update url="http://www.argeo.org/projects/SLC/update"/>
+   </url>
+
+   <plugin
+         id="org.argeo.slc.ide.ui"
+         download-size="0"
+         install-size="0"
+         version="0.12.1.D20100107_1516"
+         unpack="false"/>
+
+   <plugin
+         id="org.argeo.slc.ide.branding"
+         download-size="0"
+         install-size="0"
+         version="0.12.1.D20100107_1516"
+         unpack="false"/>
+
+</feature>
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/.classpath b/eclipse/plugins/org.argeo.slc.ide.branding/.classpath
new file mode 100644 (file)
index 0000000..6cf1a3b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/.project b/eclipse/plugins/org.argeo.slc.ide.branding/.project
new file mode 100644 (file)
index 0000000..c757652
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.slc.ide.branding</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.ide.branding/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..baedb4a
--- /dev/null
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Argeo IDE
+Bundle-SymbolicName: org.argeo.slc.ide.branding;singleton:=true
+Bundle-Version: 0.12.1.D20100107_1516
+Bundle-Vendor: Argeo.org
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.1",
+ org.eclipse.osgi;bundle-version="3.5.1",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.jdt.ui;bundle-version="3.5.1",
+ org.eclipse.ui.console;bundle-version="3.4.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/build.properties b/eclipse/plugins/org.argeo.slc.ide.branding/build.properties
new file mode 100644 (file)
index 0000000..b06e874
--- /dev/null
@@ -0,0 +1,7 @@
+bin.includes = META-INF/,\
+               plugin_customization.ini,\
+               plugin.xml,\
+               icons/,\
+               splash.bmp,\
+               .
+source.. = src/main/java/
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png b/eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png
new file mode 100644 (file)
index 0000000..a9af088
Binary files /dev/null and b/eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png differ
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-logo-100104.xpm b/eclipse/plugins/org.argeo.slc.ide.branding/icons/argeo-logo-100104.xpm
new file mode 100644 (file)
index 0000000..ed41e79
--- /dev/null
@@ -0,0 +1,571 @@
+/* XPM */
+static char * argeo_logo_100104_xpm[] = {
+"600 183 385 2",
+"      c None",
+".     c #0066D0",
+"+     c #0664C5",
+"@     c #0664C6",
+"#     c #FE8F00",
+"$     c #0564C8",
+"%     c #0465C9",
+"&     c #0365CB",
+"*     c #0265CD",
+"=     c #245A93",
+"-     c #4D4D4D",
+";     c #0166CF",
+">     c #30567E",
+",     c #0E62B9",
+"'     c #0266CD",
+")     c #44505D",
+"!     c #1E5C9C",
+"~     c #43505D",
+"{     c #FC8E01",
+"]     c #0066CF",
+"^     c #1E5C9D",
+"/     c #FD8F00",
+"(     c #0166CE",
+"_     c #43505E",
+":     c #FB8E01",
+"<     c #1D5C9E",
+"[     c #0D62B9",
+"}     c #375473",
+"|     c #F58C04",
+"1     c #355577",
+"2     c #42505F",
+"3     c #1F5C9B",
+"4     c #4A4E52",
+"5     c #F78C03",
+"6     c #0265CC",
+"7     c #0564C7",
+"8     c #155FAD",
+"9     c #1D5D9F",
+"0     c #345577",
+"a     c #FA8E02",
+"b     c #0C62BB",
+"c     c #425160",
+"d     c #1260B2",
+"e     c #44505C",
+"f     c #F98D02",
+"g     c #1360AF",
+"h     c #1C5DA0",
+"i     c #255A90",
+"j     c #4C4D4F",
+"k     c #0365CA",
+"l     c #195EA6",
+"m     c #425161",
+"n     c #0863C3",
+"o     c #39536E",
+"p     c #1B5DA1",
+"q     c #175FA9",
+"r     c #474F57",
+"s     c #F38B05",
+"t     c #155FAC",
+"u     c #415162",
+"v     c #2B5886",
+"w     c #E5860B",
+"x     c #0863C2",
+"y     c #2D5783",
+"z     c #1B5DA2",
+"A     c #0B62BC",
+"B     c #3E5266",
+"C     c #CC7C16",
+"D     c #1061B5",
+"E     c #0864C3",
+"F     c #494E53",
+"G     c #B8751E",
+"H     c #175EA9",
+"I     c #27598E",
+"J     c #1A5DA3",
+"K     c #FA8D02",
+"L     c #4A4E51",
+"M     c #405163",
+"N     c #E4850B",
+"O     c #1A5EA4",
+"P     c #165FAA",
+"Q     c #225B95",
+"R     c #0F61B6",
+"S     c #0764C4",
+"T     c #365575",
+"U     c #E3850C",
+"V     c #D47F12",
+"W     c #CE7D15",
+"X     c #C97B17",
+"Y     c #C47919",
+"Z     c #BF771B",
+"`     c #CB7C16",
+" .    c #ED8907",
+"..    c #B17221",
+"+.    c #0A63C0",
+"@.    c #1B5DA3",
+"#.    c #28598C",
+"$.    c #2F5780",
+"%.    c #32567B",
+"&.    c #355575",
+"*.    c #39536F",
+"=.    c #3C5269",
+"-.    c #3D5268",
+";.    c #355576",
+">.    c #31567D",
+",.    c #2D5784",
+"'.    c #28598B",
+").    c #185EA8",
+"!.    c #0E61B8",
+"~.    c #175EA8",
+"{.    c #205C99",
+"].    c #29598A",
+"^.    c #3B536C",
+"/.    c #3B536B",
+"(.    c #365474",
+"_.    c #145FAE",
+":.    c #405164",
+"<.    c #195EA5",
+"[.    c #2E5781",
+"}.    c #415161",
+"|.    c #2B5887",
+"1.    c #F18A06",
+"2.    c #A46E27",
+"3.    c #7E5F38",
+"4.    c #585148",
+"5.    c #5E5346",
+"6.    c #806037",
+"7.    c #A36D28",
+"8.    c #D88111",
+"9.    c #3F5265",
+"0.    c #4D4D4E",
+"a.    c #31567C",
+"b.    c #185EA6",
+"c.    c #32567C",
+"d.    c #494E54",
+"e.    c #2E5782",
+"f.    c #385471",
+"g.    c #185EA7",
+"h.    c #4B4D50",
+"i.    c #4C4D4E",
+"j.    c #2F577F",
+"k.    c #484F55",
+"l.    c #F88D02",
+"m.    c #C0781B",
+"n.    c #7A5E39",
+"o.    c #4E4D4D",
+"p.    c #725B3D",
+"q.    c #D68011",
+"r.    c #1161B3",
+"s.    c #2C5885",
+"t.    c #464F58",
+"u.    c #0565C8",
+"v.    c #265A90",
+"w.    c #3A536D",
+"x.    c #4B4E50",
+"y.    c #0465CA",
+"z.    c #2A5889",
+"A.    c #0963C0",
+"B.    c #DD830E",
+"C.    c #98692C",
+"D.    c #595148",
+"E.    c #A76F26",
+"F.    c #A26D28",
+"G.    c #1460AF",
+"H.    c #335579",
+"I.    c #45505B",
+"J.    c #1E5C9E",
+"K.    c #715A3D",
+"L.    c #6E593F",
+"M.    c #E2850C",
+"N.    c #EE8907",
+"O.    c #33567A",
+"P.    c #215B97",
+"Q.    c #385470",
+"R.    c #2F5781",
+"S.    c #4A4E53",
+"T.    c #3F5266",
+"U.    c #255A91",
+"V.    c #3C526A",
+"W.    c #7C5F38",
+"X.    c #565049",
+"Y.    c #B9751E",
+"Z.    c #A46D27",
+"`.    c #484F56",
+" +    c #EB8808",
+".+    c #906630",
+"++    c #4E4E4C",
+"@+    c #896333",
+"#+    c #F68C04",
+"$+    c #F28A05",
+"%+    c #0D62BA",
+"&+    c #464F59",
+"*+    c #BC761D",
+"=+    c #54504A",
+"-+    c #7F6037",
+";+    c #F88D03",
+">+    c #A86F25",
+",+    c #1260B1",
+"'+    c #205C9A",
+")+    c #1360B0",
+"!+    c #FB8E02",
+"~+    c #625544",
+"{+    c #345578",
+"]+    c #3A536E",
+"^+    c #265A8F",
+"/+    c #775D3B",
+"(+    c #99692C",
+"_+    c #A16C28",
+":+    c #0C62BC",
+"<+    c #0B62BD",
+"[+    c #DF830E",
+"}+    c #605445",
+"|+    c #9C6B2A",
+"1+    c #FD8E01",
+"2+    c #E1840D",
+"3+    c #0764C3",
+"4+    c #0764C5",
+"5+    c #39546F",
+"6+    c #BB761D",
+"7+    c #705A3E",
+"8+    c #1C5DA1",
+"9+    c #235B94",
+"0+    c #1161B4",
+"a+    c #B07222",
+"b+    c #0F61B7",
+"c+    c #215B98",
+"d+    c #504E4C",
+"e+    c #2C5886",
+"f+    c #9F6C29",
+"g+    c #D37F13",
+"h+    c #235B95",
+"i+    c #504E4B",
+"j+    c #DF840D",
+"k+    c #215B99",
+"l+    c #836135",
+"m+    c #E88709",
+"n+    c #D17E14",
+"o+    c #635543",
+"p+    c #3E5267",
+"q+    c #165FAB",
+"r+    c #8F6630",
+"s+    c #D58012",
+"t+    c #2B5888",
+"u+    c #28598D",
+"v+    c #4B4E51",
+"w+    c #9B6A2B",
+"x+    c #E6860A",
+"y+    c #454F5A",
+"z+    c #3D5269",
+"A+    c #635544",
+"B+    c #0A63BF",
+"C+    c #DB820F",
+"D+    c #8C6532",
+"E+    c #1F5C9C",
+"F+    c #1061B4",
+"G+    c #C1781B",
+"H+    c #0963C1",
+"I+    c #675742",
+"J+    c #524F4B",
+"K+    c #BD771C",
+"L+    c #6B5840",
+"M+    c #F68C03",
+"N+    c #B17222",
+"O+    c #A56E27",
+"P+    c #5A5247",
+"Q+    c #474F58",
+"R+    c #8D6531",
+"S+    c #816036",
+"T+    c #C87B18",
+"U+    c #755C3C",
+"V+    c #D98110",
+"W+    c #6A5840",
+"X+    c #3C536A",
+"Y+    c #30577F",
+"Z+    c #EF8A06",
+"`+    c #595248",
+" @    c #E8870A",
+".@    c #97692D",
+"+@    c #534F4A",
+"@@    c #DE830E",
+"#@    c #8B6432",
+"$@    c #4F4E4C",
+"%@    c #D27F13",
+"&@    c #AC7024",
+"*@    c #C67A18",
+"=@    c #735B3C",
+"-@    c #0465C8",
+";@    c #BA761E",
+">@    c #695741",
+",@    c #EA8709",
+"'@    c #AA7025",
+")@    c #AE7123",
+"!@    c #EF8907",
+"~@    c #96682D",
+"{@    c #534F4B",
+"]@    c #484E55",
+"^@    c #29598B",
+"/@    c #8A6432",
+"(@    c #C57A19",
+"_@    c #42515F",
+":@    c #F48B04",
+"<@    c #AD7123",
+"[@    c #5E5345",
+"}@    c #575148",
+"|@    c #E6860B",
+"1@    c #94682E",
+"2@    c #0B63BE",
+"3@    c #3F5164",
+"4@    c #CF7E14",
+"5@    c #2A5888",
+"6@    c #C3791A",
+"7@    c #B7751F",
+"8@    c #665642",
+"9@    c #F48B05",
+"0@    c #AB7024",
+"a@    c #ED8908",
+"b@    c #575149",
+"c@    c #93672F",
+"d@    c #DA8210",
+"e@    c #876334",
+"f@    c #7B5E39",
+"g@    c #C2781A",
+"h@    c #6F5A3E",
+"i@    c #655642",
+"j@    c #AF7122",
+"k@    c #1460AE",
+"l@    c #225B97",
+"m@    c #7C5E39",
+"n@    c #255A92",
+"o@    c #375472",
+"p@    c #2C5884",
+"q@    c #D48012",
+"r@    c #C77B18",
+"s@    c #D78111",
+"t@    c #45505A",
+"u@    c #F28B05",
+"v@    c #DC820F",
+"w@    c #514F4B",
+"x@    c #0365CC",
+"y@    c #EA8809",
+"z@    c #B47420",
+"A@    c #6C5840",
+"B@    c #B47320",
+"C@    c #B27321",
+"D@    c #B7741F",
+"E@    c #5C5346",
+"F@    c #CF7D14",
+"G@    c #C77A18",
+"H@    c #0E61B7",
+"I@    c #AA7024",
+"J@    c #2D5884",
+"K@    c #9E6B2A",
+"L@    c #7D5F38",
+"M@    c #1160B3",
+"N@    c #EC8808",
+"O@    c #896433",
+"P@    c #245A92",
+"Q@    c #5F5445",
+"R@    c #335578",
+"S@    c #4E4D4C",
+"T@    c #9C6B2B",
+"U@    c #55504A",
+"V@    c #225B96",
+"W@    c #205B99",
+"X@    c #A76E26",
+"Y@    c #E98709",
+"Z@    c #A06C29",
+"`@    c #5B5247",
+" #    c #615444",
+".#    c #CF7D15",
+"+#    c #856235",
+"@#    c #0B62BE",
+"##    c #27598D",
+"$#    c #97682D",
+"%#    c #A96F25",
+"&#    c #6D593F",
+"*#    c #6C593F",
+"=#    c #B57420",
+"-#    c #92672F",
+";#    c #695841",
+">#    c #95682E",
+",#    c #BE771C",
+"'#    c #5C5247",
+")#    c #395470",
+"!#    c #43505F",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                . . .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                . . . .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              . . . . . . +                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            . . . . . . . . +                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          . . . . . . . . . . @                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        . . . . . . . . . . . . @                                                                                                                                                             # # # # # # # # # # # # # # #                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                . . . . . . . . . . . . . .                                                                                                                                                                                                                                                                                 . . . . . . . . . . . .                                                                                                                                   . . . . . . . . . . . . . . . . .                                               . . . . . . . . . . . . . . $                                                                                                                                                 # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                                                                                   . . . . . . . . . . . . . . .                                                                                                           ",
+"                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                                                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                 . . . . . . . . . . . . . . . . %                                                                                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                             ",
+"                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                           . . . . . . . . . . . . . . . . . &                                                                                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                     ",
+"                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . .                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 . . . . . . . . . . . . . . . . . . . *                                                                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                               ",
+"                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           . . . . . . . . . . . . . . . . . . . . . ;                                                                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                         ",
+"                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     . . . . . . . . . . . . . . . . . . . . . . . . @                                                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                   ",
+"                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ) -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +                                                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                               ",
+"                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! - -                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +                                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                           ",
+"                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ~ - -                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @                                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # {                                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ]                                                         ",
+"                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^ - -                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @                                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # /                                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                     ",
+"                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( _ - -                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # :                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;                                                   ",
+"                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < - -                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [ }                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # |                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (                                               ",
+"                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( 2 - -                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 - -                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 5                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6                                             ",
+"                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - -                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 0 - - - -                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # a                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *                                           ",
+"                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( c - -                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . d e - - -                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # f                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . &                                         ",
+"                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h - -                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; i j - - -                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 5                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k                                       ",
+"                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( m - -                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n o - - - -                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # |                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . &                                     ",
+"                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p - -                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q r - - -                                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # s                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . &                                   ",
+"                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; u - -                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * v - - - -                                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # w                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x                                 ",
+"                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z - -                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A B - - -                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # C                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D                               ",
+"                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; u - -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 F - - -                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # G                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H                             ",
+"                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J - -                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; u - - -                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # K                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . !                           ",
+"                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x L                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] M - -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q -                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $                           ",
+"                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O - -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x D P h Q = 9 P R S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / U V W X Y Z `  .# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ..                                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * +.d O 9 P R x ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P                         ",
+"                                    . . . . . . . . . . . . . . . . . $ D @.= #.v $.%.&.*.=.-.*.;.>.,.'.= ).+.] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . !.-                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ ~.{.].%.^./.(.>.v = _.% . . . . . . . . . . . ] :.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ <.[._ - - - - - - - - - - }.|._.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R                                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 1.` 2.3.4.- - - - - - - - 5.6.7.8.# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # K 6.                                                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( t > 9.r - - - - - - - - 0.r M a.b.& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v                       ",
+"                                    . . . . . . . . . . . & 8 I c.=.r - - - - - - - - - - - - - - - - - - - - d./.e.z & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' g.;.h.- - - - - - - - - - - i.M $.8 ; . . . . . . . <.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +.j.j - - - - - - - - - - - - - - - - k.= 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [.                                                                # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # l.m.n.o.- - - - - - - - - - - - - - - - p.Z K # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # q.                                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r.s.t.- - - - - - - - - - - - - - - - - 4 0 p u.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +                       ",
+"                                    . . . . . . . ( d v.w.x.- - - - - - - - - - -                         - - - - - - F > _.; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y.z.r - - - - - - -               - - - - ) I A.. . . . ] 9.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x e.h.- - - - -                           - - ) z ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.                                                              # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # B.C.D.- - - - - -                           - - 5.E.f # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # F.                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b._ - - - - - -                             - - - x.v % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z                     ",
+"                                    . . . . . G.H.F - - - - - - -                                                     - - - I.J.] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 j                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ) - - - - -                               - - i.j.E . . b.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ~.d.- - - -                                       - } y.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H.                                                          # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ` K.- - - - - -                                       - L.M.# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N.                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + O.- - - - -                                           - I.l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; w.                  ",
+"                                      . $ P.u - - - - - -                                                                   - - /., . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q.                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % R.- - - -                                           - S.v.& T.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U.0.- - -                                               V.S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <.-                                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # B.W.- - - - -                                                 X.Y.# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Z.                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J r - - -                                                     - (.A.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <.                  ",
+"                                        4 - - - - -                                                                               j ].; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b e - - - -                                                 - `.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' H.- - -                                                     T.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 `.                                                      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  +.+++- - - -                                                         @+#+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # $+5.                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & 1 - - - -                                                           S.P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] /.                ",
+"                                        - - -                                                                                         > ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S i.                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+&+- - -                                                         - -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [.- - -                                                         -.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.                                                      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # *+=+- - - -                                                               -+;+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # >+                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * f.- - -                                                                 k.,+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q                 ",
+"                                                                                                                                        z.] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /.                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+t.- - -                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '+- - -                                                             v.] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )+-                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # !+C.- - - -                                                                     .+K # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # | ~+                                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; {+- - -                                                                       !.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ]+              ",
+"                                                                                                                                          ^+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].-                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [ t.- - -                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )+h.- -                                                                 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] )                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N./+- - -                                                                           (+: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # _+                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.- - -                                                                           :+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9               ",
+"                                                                                                                                            R . . . . . . . . . . . . . . . . . . . . . . . . . . . . g.-                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n t.- - -                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ~ - -                                                                     <+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # [+}+- - -                                                                               |+1+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 2+-                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z.- - -                                                                               3+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & `.            ",
+"                                                                                                                                              ; . . . . . . . . . . . . . . . . . . . . . . . . . . . 4+-                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] 5+- - -                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - -                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . {.-                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # #  +}+- - -                                                                                   6+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 7+                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h - - -                                                                                 8+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e.            ",
+"                                                                                                                                              S . . . . . . . . . . . . . . . . . . . . . . . . . . . . _                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9+- - -                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 I.- -                                                                         y.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0+-                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # #+L.- - -                                                                                       U # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # a+                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u.&+- -                                                                                     S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D -           ",
+"                                                                                                                                                ; . . . . . . . . . . . . . . . . . . . . . . . . . . . a.-                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+x.- -                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c+- -                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 j                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # { 6.- - -                                                                                           ;+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N.d+                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e+- -                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B           ",
+"                                                                                                                                                ' . . . . . . . . . . . . . . . . . . . . . . . . . . . '+-                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & u - -                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . =.- -                                                                             ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T.                                          # # # # # # # # # # # # # # # # # # # # # # # # # # # # f+- - -                                                                                             g+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 6.                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , j - -                                                                                         4+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h+          ",
+"                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . ,+-                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U.- -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 j -                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.-                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # N i+- -                                                                                                 j+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # *+-                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.- -                                                                                             ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+-         ",
+"                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . S -                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 &+- -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <.- -                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k+-                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # l+- -                                                                                                   / # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # m+-                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p - -                                                                                               $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e         ",
+"                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . d.                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J.- -                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R.- -                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @.-                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # n+- - -                                                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # o+                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M - -                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.        ",
+"                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . p+-                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] M - -                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -.-                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q+-                                       # # # # # # # # # # # # # # # # # # # # # # # # # # / L.- -                                                                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # r+-                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+- -                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <.-       ",
+"                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . O.-                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P - -                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ) -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r.-                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # s+- -                                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 6+-                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t+- -                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ j       ",
+"                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . u+-                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (.- -                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+-                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b -                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # w+- -                                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # x+-                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( y+-                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z+      ",
+"                                                                                                                . . . . . . . . . .                 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 -                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' S.-                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . % - -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E -                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # A+-                                                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # }+                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - -                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e.-     ",
+"                                                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . .     . . . . . . . . . . . . . . . . . . . . . . . . . . . _.-                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . d - -                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . B+- -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & -                                     # # # # # # # # # # # # # # # # # # # # # # # # # # C+- -                                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # D+-                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.- -                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E+-     ",
+"                                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F+-                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U.- -                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . S - -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # F.- -                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # G -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & F -                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F+-     ",
+"                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b -                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5+-                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . * -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & - -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # -+-                                                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # G+-                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )+- -                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & j     ",
+"                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H+-                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . * 4 -                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H+- -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # I+-                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / X /+- -                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P.- -                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M     ",
+"                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ -                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . , - -                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R - -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # 1+J+-                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # : K+L+- - - -                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c.-   ",
+"                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( - -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.- -                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q+- -                               # # # # # # # # # # # # # # # # # # # # # # # # # # #  +- -                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # M+N+~+- - - - -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.-                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u+-   ",
+"                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . <.-                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.-                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # g+- -                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 1.O+P+- - - - -                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * h.-                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -   ",
+"                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q+-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^ -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # Y - -                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # m+(+=+- - - -                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+- -                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ~.-   ",
+"                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _ -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . U.-                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <+-                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '.-                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # X -                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # [+R+d+- - - -                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < - -                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R -   ",
+"                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . t+-                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . &+                                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.-                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # W -                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # V S+o.- - - -                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e+-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S -   ",
+"                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /.-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . j.-                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a.                                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;.-                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # V -                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / T+U+- - - - -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] h.  ",
+"                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D -                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . =.-                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # V+-                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # !+6+W+- - - - -                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.- ",
+"                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . {+-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *.                                                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & x.-                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # [+-                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #+a+}+- - - - -                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X+-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u - ",
+"                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y+-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q+                                                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P - -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # #  +-                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Z+Z.`+- - - -                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B - ",
+"                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s.-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V.                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |.- -                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # X.                      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  @.@+@- - - -                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /.- ",
+"                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #.-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :.-                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # p.-                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @@#@$@- - - -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . d.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5+- ",
+"                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U.-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S - -                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # .+-             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # %@6.- - - - -                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] 0.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (.- ",
+"                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^+                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8+- -                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # &@-         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / *@=@- - - - -                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % - -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . {+- ",
+"                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -@                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.- -                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # X -     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # K ;@>@- - - - -                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x - -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.- ",
+"                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y+-                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # ,@'@{ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # | )@}+- - - - -                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4+- -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %.- ",
+"              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+- -                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # !@F.4.- - - -                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & - -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;.- ",
+"            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] H+8 '+^+z.e.a.;.Q.V.:.w.Y+U.@.D @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H.- -                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # x+~@{@- - - -                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.- ",
+"            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & ).#.{+9.4 - - - - - - - - - - - - - - - - - ]@p+H.^@z . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , 0.-                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # B./@$@- - - -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ]@-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w.- ",
+"          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H+'+} v+- - - - - - - - - -                     - - - - - - ~ . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     -@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 - -                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # n+3.- - - - -                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -.- ",
+"          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' E+9.- - - - - - -                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                       ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+0.-                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 1+(@p.- - - - -                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :.- ",
+"        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( < _ - - - - - -                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                       :+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T - -                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # K Y.I+- - - - -                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -.-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - ",
+"        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z _@- - - -                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                         + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D - -                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # :@<@[@- - - - -                                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k.- ",
+"      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( y - - - -                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                           ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . } - -                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N._+}@- - - -                                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T -                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y.- - ",
+"      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % f.- - -                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                           8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - -                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # |@1@{@- - - -                                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y+-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b - - ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +.M - - -                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                             g.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2@`.- -                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # C+@+++- - - -                                                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9+-                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - - ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3@- - -                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                               d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % M - -                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 4@W.- - - - -                                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P -                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < -   ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5@- - -                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                 :+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; (.- - -                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 1+6@7+- - - - -                                                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +.-                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v.-   ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g 0.- -                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                   b+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z.- - -                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # f 7@8@- - - - -                                                                                           # # #                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] F                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R.-   ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k e - -                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                     g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h - - -                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 9@0@5.- - - - -                                                                                               # # # ;+                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -.                                                                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /.-   ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h - -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                       H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r.v+- -                                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # a@f+b@- - - -                                                                                                   # # # # # a                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; S.-   ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.- -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                         h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r.t.- -                                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N c@J+- - - -                                                                                                       # # # # # # # {                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9+-                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A - -   ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4+j -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                           e.& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < v+- -                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # d@e@++- - - -                                                                                                         # # # # # # # # # f                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t -                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J - -   ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . k+- -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                             :.!.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( e+- - - -                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # W f@- - - - -                                                                                                             # # # # # # # # # # f                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 d.                                                                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^@-     ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . (.- -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                               4 c+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ *.- - -                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # { g@h@- - - - -                                                                                                               # # # # # # # # # # # # {                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %.                                                                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.-     ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.-                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                                   R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , _ - - -                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # *+i@- - - - -                                                                                                                 # # # # # # # # # # # # # # # a                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l -                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( `.-     ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q+-                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J S.- - -                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # j@- - - -                                                                                                                   # # # # # # # # # # # # # # # # # l.                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & 4                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . d - -     ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . ' 0.-                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k@/.- - - -                                                                             { # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # { p.                                                                                                                      # # # # # # # # # # # # # # # # # # # K                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . {+                                                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '.- -     ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . H+- -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,+]+- - - -                                                                                 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @@                                                                                                                      # # # # # # # # # # # # # # # # # # # # /                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @.-                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.-       ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . R - -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l@-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F+f.- - - - -                                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # '@                                                                                                                  # # # # # # # # # # # # # # # # # # # # # # # f                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % d.                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x - -       ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . <+- -                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( ,+T - - - - -                                                                                         : # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # l.m@                                                                                                            # # # # # # # # # # # # # # # # # # # # # # # # # # l.                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n@                                                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^ - -       ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 -                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B+3 1 ]@- - - - -                                                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # V                                                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # :                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3@                                                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o@- -       ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . ; i.                                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; 8 ).b * . . . . . . . . . . . . . . . . . . . % ).,._@- - - - - - -                                                                                                   f # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # T+                                                                                                      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H+i.-         ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.-                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F+-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S U.~ - - - i._ Q.%.p@I l@8+P r.A !.8 p Q ].Y+(.-.e j - - - - - - -                                                                                                           # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # q@                                                                                                  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # r@-                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] f.                                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I - -         ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.-                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :+-                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] t 0 j - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                   | # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # s@                                                                                            # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # !+I+- -                               ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,+                                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; e - -         ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . h -                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . r.9.- - - - -                     - - - - - - - - - -                                                                                                                                   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # s+                                                                                        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # a+- -                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].                                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P - -           ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . E i.                                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k -                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . % y i.- - - -                                                                                                                                                                               | # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / B.                                                                                  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Z+D.- -                                   ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; c+                                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 - -           ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.                                                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j -                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . k@t@- - - -                                                                                                                                                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # |                                                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # S+- -                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b i.-             ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B+4                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . `.-                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . 2@]@- - -                                                                                                                                                                                         u@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # {                                                                       # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # a+- - -                                       * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . &                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H.- -             ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^@                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ) -                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . '.- - -                                                                                                                                                                                             { # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # /                                                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # v@w@- -                                         ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . !.0.-               ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( ].                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^.-                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . $.- -                                                                                                                                                                                                @# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / #                                                     # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #+I+- -                                             * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( 6                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . &.- -               ",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x@                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t+-                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . J.-                                                             . . . . . .                                                                                                                           u@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                                             # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # : 3.- - -                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ]                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F+- -                 ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * 7                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @.-                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . @ M                                             . . . . . . . . . . . . . . . . . . . . . . . .                                                                                                         # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #                               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # r+- - -                                                 % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; /.- -                 ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B+-                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                               y@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # F.- - -                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c+- -                   ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . `.                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                           :@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # z@- - -                                                       <+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +.S.- -                   ",
+"    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f.                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                       / # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N+o.- -                                                           $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q.- -                     ",
+"      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u+-                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                   %@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Z.- - -                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J.- - -                     ",
+"      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ).-                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                                   N # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / .@- - -                                                                 D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b d.- -                       ",
+"        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S -                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ]                                                                                 | # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # l.#@- - -                                                                     b+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ c - -                         ",
+"        7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -.                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                               { # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # j+A@- - -                                                                         x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( f.- - -                         ",
+"          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E+-                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *                                                                             B@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # C@{@- - -                                                                             6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5@- - -                           ",
+"          @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % d.                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x                                                                             D@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N.6.- - - -                                                                               '+; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < - - -                             ",
+"            ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R.                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <+                                                                            Y # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ` E@- - -                                                                                     I ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 i.- -                               ",
+"            + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x k.                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <+                                                                            F@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # l.C.- - - -                                                                                         5@; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! 0.- -                                 ",
+"              D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v.                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+                                                                            G@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # [+A@- - -                                                                                               z.; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '+0.- -                                   ",
+"                d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k@j H@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . k -.                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                       ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^+                                                                            7@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # / C@J+- - -                                                                                                   |.* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h+- - -                                     ",
+"                  , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S &+- H.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+                                                                              I@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 4@K.- - - -                                                                                                       o@E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & >.- - -                                       ",
+"                    B+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % /.- -   6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )+                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                         <+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J@                                                                              K@1+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # C+L@- - - -                                                                                                             _ M@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B+T.- - -                                         ",
+"                      S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + p+- - -     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                           u.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E                                                                                 S+N@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # w O@o.- - - -                                                                                                                 S.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P `.- - -                                           ",
+"                        )+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.m - - -       & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                             S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P@                                                                                Q@` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  .~@i+- - - -                                                                                                                         R@x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % v i.- - -                                             ",
+"                          ].* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q y+- - -           7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                               2@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & Q+                                                                                S@T@!+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # :@F.U@- - - -                                                                                                                               d.V@( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @.y+- - -                                                 ",
+"                            B %+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 >.- - - -               k . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( /.- -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                               M H@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;.                                                                                    =@8.# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # f j@P+- - - -                                                                                                                                     - 9.r.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :+5+- - - -                                                   ",
+"                              4 V@] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] O &+- - -                   P@( . . . . . . . . . . . . . . . . . . . . . . . . . . . 5@- - -                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                   |.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E+-                                                                                     o.R+ +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # f Y.~+- - - -                                                                                                                                             0.{+D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B+e.x.- - -                                                       ",
+"                                  ]+t ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; J 3@- - - -                       W@. . . . . . . . . . . . . . . . . . . . . . . . . . ).- - -                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                     k.9+6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H+-                                                                                         =+X@;+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Y@Z@`@- - - -                                                                                                                                                     - 5+8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , %.j - - - -                                                         ",
+"                                    - }.k+y.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' h }.- - - -                             k+] . . . . . . . . . . . . . . . . . . . . . . . B+`.- -                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                       - e #.H@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :.                                                                                          -  #<@s # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # .#+#$@- - - -                                                                                                                                                           - - p+h % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( 8 (.0.- - - -                                                             ",
+"                                        - d.v @#. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0+,.r - - - - -                                 O.$ . . . . . . . . . . . . . . . . . . . . . M@y+- -                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . > -                                                                                                                                                           - - _@^@R ( . . . . . . . . . . . . . . . . . . . . . . . . . . . & H+R t z P.##y H.o 3@y+h.- h.I.p+o@> z.h+<.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].-                                                                                             - U@$#U # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # N %#>@- - - - -                                                                                                                                                                     - v+{+<.& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( _.[.r - - - - -                                                                 ",
+"                                            - 0.(.! [ ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; b+v.c - - - - -                                         M P . . . . . . . . . . . . . . . . . . y.= x.- - -                                               . P J J J J J J J J J J J J J J J J J J J J J J J J J J w.-                                                                                                                                                               - - - v+9.%.U.b.A $ ' . . . . . . . ; @ b ,+b.E+U.|.c.f.p+e 4 - - - - - - - - - - - - - - - - - - - - - - i.-.U.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g -                                                                                                 - o.6.6@:@# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # U >+&#- - - - - -                                                                                                                                                                             - - d.a.h <+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n O e.Q+- - - - - -                                                                     ",
+"                                                - - - d.Q.I t u.. . . . . . . . . . . . . . . . . . . . ; [ c+1 `.- - - - - -                                               - w.)+] . . . . . . . . . . . . % t z.`.- - - -                                                   - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                     - - - - - - - - x.`.e u p+u Q+i.- - - - - - - - - - - - - - - - - - - -                           - - - - S.t+% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & -                                                                                                     - - w@3.B@Y@# # # # # # # # # # # # # # # # # # # # # # # # # # # 1.X Z@*#- - - - - -                                                                                                                                                                                         - - - r (.U.k@4+. . . . . . . . . . . . . . . . . . . . . . . . 6 !.'+c.~ - - - - - - -                                                                           ",
+"                                                      - - - - 0.M %.p@##V@9 g.)+, x y.@ +.!.,+P ! z.;.M v+- - - - - - -                                                         - &+Y+p d B+% n [ )+g.^ s.B j - - - - -                                                       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                               - - - - - - - - - - - - - - - - - - -                                                             - m [ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F                                                                                                           - - - &#c@=#8.;+# # # # # # # # # # # # # # # # # #+[+6+-#;#o.- - - - - -                                                                                                                                                                                                     - - - - - S.:.&.|.P.g.8 M@!.@#n u.k + +.%+F+g q ^ #.%./.y+0.- - - - - - - -                                                                                 ",
+"                                                              - - - - - - - - - - - - - - - - - - - - - - - - - -                                                                   - - - - - - - - - - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                                         k.[ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _ -                                                                                                               - - - - $@A@e@>#7.a+,#` .#X Y ,#G C@F./@p.'#- - - - - - - - -                                                                                                                                                                                                                   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                                                                                         ",
+"                                                                          - - - - - - - - - - - - - -                                                                                   - - - - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                   {+& . . . . . . . . . . . . . . . . . . . . . . . . . . . . =.-                                                                                                                       - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                                                                                       - - - - - - - - - - - - - - - - -                                                                                                       ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !.. . . . . . . . . . . . . . . . . . . . . . . . . . . . (.-                                                                                                                                   - - - - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                             ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y+-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . h+-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . P.-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .                                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . i -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    . . .                                                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . z.-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . 6                                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . e.-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                . . . . . . . &                                                                                                                   . . . . . . . . . . . . . . . . . . . . . . . . . . . . H.-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              . . . . . . . . . *                                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              . . . . . . . . . . ]                                                                                                           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 j -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            . . . . . . . . . . . . . (                                                                                                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          . . . . . . . . . . . . . . . . .                                                                                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E+- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        . . . . . . . . . . . . . . . . . . . .                                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . {+-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      . . . . . . . . . . . . . . . . . . . . . . .                                                                                 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & 4 -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      . . . . . . . . . . . . . . . . . . . . . . . . .                                                                         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %.- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S v+-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z.- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 F - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                              . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u+- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+v+- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( -.- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )+x.- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . %+k.- -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n e - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + 9.- - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                      S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2@_@- - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d.'+] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D Q+- - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - )#H+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l S.- - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                            k.9+* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & [.- - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                              - !#l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b+u - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  - w.b+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % u+x.- - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      i.Y++.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 h+r - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          j c., . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( ^ I.- - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            - 0.(.,+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ] O m - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                - - /.@.& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t p+- - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - d.$.,+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b ^+u - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - - _ ^+A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2@U.9.- - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              - - - _ y ~.y.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H+9+-.- - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - - - x.o = ,+y.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( %+z z.V.0.- - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - - - - i.}.%.h+g 7 . . . . . . . . . . . . . . . . . . . . . . . . . . & 0+3 e.z+4 - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  - - - - - - d.M o@[.i h t ,+R %+B+S u.y.E b 0+8 <.^ Q I |.Y+1 M j - - - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ",
+"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - - - - - - - - - - - - - - - - - -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "};
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/org.argeo.slc.ide.product b/eclipse/plugins/org.argeo.slc.ide.branding/org.argeo.slc.ide.product
new file mode 100644 (file)
index 0000000..ec3e831
--- /dev/null
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Argeo SLC IDE" uid="org.argeo.slc.ide" id="org.argeo.slc.ide.branding.product" application="org.eclipse.ui.ide.workbench" version="0.12.1.D20100107_1317" useFeatures="true" includeLaunchers="false">
+
+   <aboutInfo>
+      <image path="eclipse_lg.gif"/>
+      <text>
+         %productBlurb
+      </text>
+   </aboutInfo>
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+   </launcherArgs>
+
+   <windowImages i16="/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png" i32="/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png" i48="/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png" i64="/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png" i128="/org.argeo.slc.ide.branding/icons/argeo-icon-100104-256.png"/>
+
+   <splash
+      location="org.argeo.slc.ide.branding"
+      startupProgressRect="0,280,455,15"
+      startupMessageRect="7,220,441,20"
+      startupForegroundColor="0066D0" />
+   <launcher name="ArgeoSLC">
+      <linux icon="/org.argeo.slc.ide.branding/icons/argeo-logo-100104.xpm"/>
+      <solaris/>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+
+   <vm>
+      <linux>org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6</linux>
+   </vm>
+
+   <license>
+        <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        <text>
+   Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT&apos;S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+&quot;Contribution&quot; means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution &apos;originates&apos; from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor&apos;s behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+&quot;Contributor&quot; means any person or entity that distributes the Program.
+
+&quot;Licensed Patents&quot; mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+&quot;Program&quot; means the Contributions distributed in accordance with this Agreement.
+
+&quot;Recipient&quot; means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient&apos;s responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (&quot;Commercial Contributor&quot;) hereby agrees to defend and indemnify every other Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor&apos;s responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), 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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient&apos;s patent(s), then such Recipient&apos;s rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient&apos;s rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient&apos;s rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient&apos;s obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+         </text>
+   </license>
+
+   <plugins>
+   </plugins>
+
+   <features>
+      <feature id="org.argeo.slc.ide" version="0.12.1.D20100107_1516"/>
+      <feature id="org.eclipse.jdt" version="3.5.1.r351_v20090810-0600-7r88FEoFI0WTo6Az-1qFRHm37ChJ"/>
+      <feature id="org.eclipse.pde" version="3.5.1.R35x_v20090811-7Z7_F9zFDX-aT6Ywvh8_S93"/>
+      <feature id="org.eclipse.platform" version="3.5.1.R35x_v20090910-9gEeG1_FthkNDSP2odXdThaOu9GFDPn83DGB7"/>
+      <feature id="org.eclipse.mylyn.wikitext_feature" version="1.2.0.v20091215-0000-e3x"/>
+   </features>
+
+
+</product>
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/plugin.xml b/eclipse/plugins/org.argeo.slc.ide.branding/plugin.xml
new file mode 100644 (file)
index 0000000..19b35d1
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         id="product"
+         point="org.eclipse.core.runtime.products">
+      <product
+            application="org.eclipse.ui.ide.workbench"
+            name="Argeo SLC IDE">
+         <property
+               name="windowImages"
+               value="icons/argeo-icon-100104-256.png,icons/argeo-icon-100104-256.png,icons/argeo-icon-100104-256.png,icons/argeo-icon-100104-256.png,icons/argeo-icon-100104-256.png">
+         </property>
+         <property
+               name="aboutText"
+               value="%productBlurb">
+         </property>
+         <property
+               name="aboutImage"
+               value="eclipse_lg.gif">
+         </property>
+         <property
+               name="startupForegroundColor"
+               value="0066D0">
+         </property>
+         <property
+               name="startupProgressRect"
+               value="0,280,455,15">
+         </property>
+         <property
+               name="startupMessageRect"
+               value="7,220,441,20">
+         </property>
+         <property
+               name="appName"
+               value="Argeo SLC IDE">
+         </property>
+         <property
+               name="preferenceCustomization"
+               value="plugin_customization.ini">
+         </property>
+      </product>
+   </extension>
+</plugin>
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/plugin_customization.ini b/eclipse/plugins/org.argeo.slc.ide.branding/plugin_customization.ini
new file mode 100644 (file)
index 0000000..9c412a4
--- /dev/null
@@ -0,0 +1,2 @@
+org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP=true
+org.eclipse.ui/defaultPerspectiveId=org.argeo.slc.ide.ui.slcPerspective
\ No newline at end of file
diff --git a/eclipse/plugins/org.argeo.slc.ide.branding/splash.bmp b/eclipse/plugins/org.argeo.slc.ide.branding/splash.bmp
new file mode 100644 (file)
index 0000000..ee502f3
Binary files /dev/null and b/eclipse/plugins/org.argeo.slc.ide.branding/splash.bmp differ
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/.classpath b/eclipse/plugins/org.argeo.slc.ide.ui/.classpath
new file mode 100644 (file)
index 0000000..6cf1a3b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/.project b/eclipse/plugins/org.argeo.slc.ide.ui/.project
new file mode 100644 (file)
index 0000000..ad44979
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>org.argeo.slc.ide.ui</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.ManifestBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.SchemaBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.pde.PluginNature</nature>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/org.argeo.slc.ide.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..05eb256
--- /dev/null
@@ -0,0 +1,12 @@
+#Fri Aug 29 11:26:23 CEST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.ide.ui/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..2d86f2d
--- /dev/null
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SLC IDE UI
+Bundle-SymbolicName: org.argeo.slc.ide.ui;singleton:=true
+Bundle-Version: 0.12.1.D20100107_1516
+Bundle-Activator: org.argeo.slc.ide.ui.SlcIdeUiPlugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.debug.core,
+ org.eclipse.jdt.launching,
+ org.eclipse.debug.ui,
+ org.eclipse.jdt.core,
+ org.eclipse.ui.console,
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.ui.ide,
+ org.eclipse.core.variables,
+ org.eclipse.pde.build,
+ org.eclipse.pde.ui;bundle-version="3.4.0",
+ org.eclipse.jdt.ui;bundle-version="3.4.2"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: Argeo
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/build.properties b/eclipse/plugins/org.argeo.slc.ide.ui/build.properties
new file mode 100644 (file)
index 0000000..739511c
--- /dev/null
@@ -0,0 +1,6 @@
+source.. = src/main/java/\r
+bin.includes = META-INF/,\\r
+               .,\\r
+               plugin.xml,\\r
+               icons/,\\r
+               slc-sdk-dev.target\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/icons/argeo-icon-100104-256.png b/eclipse/plugins/org.argeo.slc.ide.ui/icons/argeo-icon-100104-256.png
new file mode 100644 (file)
index 0000000..a9af088
Binary files /dev/null and b/eclipse/plugins/org.argeo.slc.ide.ui/icons/argeo-icon-100104-256.png differ
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/icons/slc-launch.gif b/eclipse/plugins/org.argeo.slc.ide.ui/icons/slc-launch.gif
new file mode 100644 (file)
index 0000000..b8ca14a
Binary files /dev/null and b/eclipse/plugins/org.argeo.slc.ide.ui/icons/slc-launch.gif differ
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/plugin.xml b/eclipse/plugins/org.argeo.slc.ide.ui/plugin.xml
new file mode 100644 (file)
index 0000000..cce27f9
--- /dev/null
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?eclipse version="3.2"?>\r
+<plugin>\r
+<extension \r
+       point="org.eclipse.ui.preferencePages"> \r
+      <page \r
+         id="org.argeo.slc.ide.ui.mainPreferencePage" \r
+         name="SLC" \r
+         class="org.argeo.slc.ide.ui.SlcMainPreferencePage"> \r
+       </page> \r
+</extension> \r
+<extension\r
+      point="org.eclipse.ui.perspectives">\r
+   <perspective\r
+         class="org.argeo.slc.ide.ui.SlcPerspectiveFactory"\r
+         icon="icons/argeo-icon-100104-256.png"\r
+         id="org.argeo.slc.ide.ui.slcPerspective"\r
+         name="SLC">\r
+   </perspective>\r
+</extension>\r
+<extension\r
+      point="org.eclipse.pde.core.targets">\r
+   <target\r
+         definition="slc-sdk-dev.target"\r
+         id="org.argeo.slc.ide.ui.targetSlcSdkDev"\r
+         name="SLC SDK (devpt)">\r
+   </target>\r
+</extension> \r
+<extension\r
+      point="org.eclipse.debug.ui.launchShortcuts">\r
+   <shortcut\r
+         class="org.argeo.slc.ide.ui.launch.osgi.SlcLaunchShortcut"\r
+         icon="icons/slc-launch.gif"\r
+         id="org.argeo.slc.ide.ui.slcOsgiLaunchShortcut"\r
+         label="SLC"\r
+         modes="run,debug">\r
+    \r
+         <contextualLaunch>\r
+            <enablement>\r
+               <with variable="selection">\r
+                         <iterate>\r
+                               <and>\r
+                                       <test property="org.eclipse.debug.ui.projectNature" value="org.eclipse.pde.PluginNature"/>\r
+                                       <or>\r
+                                       <adapt type="org.eclipse.core.resources.IProject"/>\r
+                                       <test property="org.eclipse.debug.ui.matchesPattern" value="MANIFEST.MF"/>\r
+                                       </or>\r
+                                </and>\r
+                             </iterate>\r
+               </with>\r
+           </enablement>\r
+         </contextualLaunch>         \r
+   </shortcut>\r
+   <!--\r
+   <shortcut\r
+         class="org.argeo.slc.ui.launch.script.SlcScriptLaunchShortcut"\r
+         icon="icons/slcScriptLaunch.gif"\r
+         id="org.argeo.slc.ui.launch.slcScriptLaunchShortcut"\r
+         label="SLC script"\r
+         modes="run,debug">\r
+    \r
+        <contextualLaunch>\r
+           <enablement>\r
+             <with variable="selection">\r
+                <count value="1"/>\r
+               <iterate>\r
+               <or>\r
+                   <test property="org.eclipse.debug.ui.matchesPattern" value="*.xml"/>\r
+                   </or>\r
+                </iterate>\r
+             </with>\r
+           </enablement>\r
+                </contextualLaunch>\r
+   </shortcut>\r
+   <shortcut
+         class="org.argeo.slc.ui.launch.script.SlcScriptLaunchShortcutWithDialog"
+         icon="icons/slcScriptLaunch.gif"
+         id="org.argeo.slc.ui.launch.slcScriptLaunchShortcutWithDialog"
+         label="SLC script..."
+         modes="run,debug">
+    
+        <contextualLaunch>
+           <enablement>
+             <with variable="selection">
+                <count value="1"/>
+               <iterate>
+               <or>
+                   <test property="org.eclipse.debug.ui.matchesPattern" value="*.xml"/>
+                   </or>
+                </iterate>
+             </with>
+           </enablement>
+                </contextualLaunch>
+   </shortcut>\r
+-->
+</extension>\r
+<!--\r
+<extension point = "org.eclipse.debug.core.launchConfigurationTypes">\r
+   <launchConfigurationType\r
+          id="org.argeo.slc.ide.ui.slcScriptLaunchType"\r
+          name="SLC Script"\r
+          delegate="org.argeo.slc.ide.ui.launch.script.SlcScriptLaunchDelegate"\r
+          modes= "run, debug">\r
+   </launchConfigurationType>\r
+</extension>\r
+<extension\r
+      point="org.eclipse.debug.ui.launchConfigurationTabGroups">\r
+   <launchConfigurationTabGroup\r
+         class="org.argeo.slc.ui.launch.script.SlcScriptLaunchConfigurationTabGroup"\r
+         id="org.argeo.slc.ui.launch.slcScriptLaunchConfigurationTabGroup1"\r
+         type="org.argeo.slc.launch.slcScriptLaunchType">\r
+   </launchConfigurationTabGroup>\r
+</extension>\r
+-->\r
+<!-- See http://www.eclipseplugincentral.com/PNphpBB2-printview-t-4335-start-0.html\r
+<extension point="org.eclipse.core.runtime.adapters">\r
+<factory adaptableType="org.eclipse.core.resources.IResource" class="">\r
+<adapter type="org.eclipse.debug.ui.actions.ILaunchable"/>\r
+</factory>\r
+</extension> -->\r
+<!--\r
+<extension\r
+      point="org.eclipse.ui.preferencePages">\r
+   <page\r
+         class="org.argeo.slc.ui.launch.preferences.SlcPreferencePage"\r
+         id="org.argeo.slc.ui.slcPreferencePage"\r
+         name="SLC">\r
+   </page>\r
+</extension>\r
+<extension\r
+      point="org.eclipse.debug.ui.launchConfigurationTypeImages">\r
+   <launchConfigurationTypeImage\r
+         configTypeID="org.argeo.slc.launch.slcScriptLaunchType"\r
+         icon="icons/slcScriptLaunch.gif"\r
+         id="org.argeo.slc.launch.slcScriptLaunchTypeImage">\r
+   </launchConfigurationTypeImage>\r
+</extension>\r
+-->\r
+</plugin>\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/slc-sdk-dev.target b/eclipse/plugins/org.argeo.slc.ide.ui/slc-sdk-dev.target
new file mode 100644 (file)
index 0000000..273cc60
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.5"?>
+
+<target name="SLC SDK (devpt)">
+<locations>
+<location includeAllPlatforms="true" includeMode="slicer" type="InstallableUnit">
+<unit id="org.argeo.server.jackrabbit" version="0.1.2.r3231"/>
+<unit id="com.springsource.javax.activation" version="1.1.1"/>
+<unit id="com.springsource.net.sf.cglib" version="2.1.3"/>
+<unit id="org.argeo.slc.server.hibernate" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.slc.dep.server" version="0.12.1.SNAPSHOT"/>
+<unit id="org.springframework.jms" version="2.5.6.SEC01"/>
+<unit id="com.springsource.javax.xml.stream" version="1.0.1"/>
+<unit id="org.springframework.context" version="2.5.6.SEC01"/>
+<unit id="org.argeo.slc.support.ant" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.log4j" version="1.2.15"/>
+<unit id="com.springsource.javax.xml.soap" version="1.3.0"/>
+<unit id="org.springframework.oxm" version="1.5.8.A"/>
+<unit id="org.springframework.osgi.io" version="1.2.0"/>
+<unit id="org.argeo.dep.osgi.springframework.ldap" version="1.3.0.0003"/>
+<unit id="com.springsource.org.apache.commons.httpclient" version="3.1.0"/>
+<unit id="com.springsource.javax.servlet" version="2.5.0"/>
+<unit id="com.springsource.org.apache.directory.server.changepw" version="1.0.2"/>
+<unit id="com.springsource.org.apache.commons.fileupload" version="1.2.1"/>
+<unit id="org.argeo.slc.sdk.feature.jar" version="0.12.1.qualifier"/>
+<unit id="org.argeo.slc.dep.agent" version="0.12.1.SNAPSHOT"/>
+<unit id="com.springsource.javax.xml.rpc" version="1.1.0"/>
+<unit id="org.argeo.server.hsqldb" version="0.1.2.r3231"/>
+<unit id="org.argeo.security.mvc" version="0.1.2.r3231"/>
+<unit id="org.argeo.slc.server.hsqldb" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.springframework.transaction" version="2.5.6.SEC01"/>
+<unit id="com.springsource.org.dom4j" version="1.6.1"/>
+<unit id="com.springsource.org.apache.catalina.springsource" version="6.0.20.S2-r5956"/>
+<unit id="org.argeo.server.jdbc" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.apache.oro" version="2.0.8"/>
+<unit id="org.argeo.dep.osgi.mina.filter.ssl" version="1.0.2.0001"/>
+<unit id="com.springsource.org.apache.coyote.springsource" version="6.0.20.S2-r5956"/>
+<unit id="com.springsource.edu.oswego.cs.dl.util.concurrent" version="1.3.4"/>
+<unit id="com.springsource.org.apache.directory.server.core" version="1.0.2"/>
+<unit id="com.springsource.org.hsqldb" version="1.8.0.10"/>
+<unit id="org.eclipse.osgi" version="3.5.1.R35x_v20090827"/>
+<unit id="com.springsource.org.apache.jasper.springsource" version="6.0.20.S2-r5956"/>
+<unit id="com.springsource.com.lowagie.text" version="2.0.8"/>
+<unit id="com.springsource.javax.servlet.jsp" version="2.1.0"/>
+<unit id="org.argeo.osgi.boot" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.apache.xalan" version="2.7.1"/>
+<unit id="com.springsource.org.apache.commons.lang" version="2.4.0"/>
+<unit id="com.springsource.org.apache.directory.server.ntp" version="1.0.2"/>
+<unit id="org.argeo.slc.support.castor" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.slc.agent.ext.xalan" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.server.ads.server" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.antlr" version="3.0.1"/>
+<unit id="org.argeo.slc.lib.detached" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.springframework.jdbc" version="2.5.6.SEC01"/>
+<unit id="org.argeo.security.manager.ldap" version="0.1.2.r3231"/>
+<unit id="com.springsource.antlr" version="2.7.6"/>
+<unit id="org.argeo.dep.osgi.commons.cli" version="1.1.0.0002"/>
+<unit id="org.argeo.dep.osgi.activemq" version="5.2.0.0006"/>
+<unit id="org.argeo.dep.osgi.catalina.start" version="1.0.0.argeo4"/>
+<unit id="com.springsource.org.apache.directory.server.kerberos.shared" version="1.0.2"/>
+<unit id="com.springsource.json" version="1.0.1.RELEASE"/>
+<unit id="com.springsource.org.apache.bsf" version="2.4.0"/>
+<unit id="org.argeo.slc.server.activemq" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.commons.logging" version="1.1.1"/>
+<unit id="org.argeo.server.mysql" version="0.1.2.r3231"/>
+<unit id="org.argeo.security.webapp" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.quartz" version="1.6.2"/>
+<unit id="com.springsource.javax.annotation" version="1.0.0"/>
+<unit id="org.argeo.slc.server.jms" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.slf4j.log4j" version="1.5.6"/>
+<unit id="com.springsource.org.hibernate" version="3.3.1.GA"/>
+<unit id="com.springsource.javax.management.j2ee" version="1.0.1"/>
+<unit id="org.argeo.slc.webapp" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.jasper.org.eclipse.jdt.springsource" version="6.0.20.S2-r5956"/>
+<unit id="org.springframework.osgi.core" version="1.2.0"/>
+<unit id="com.springsource.javax.xml.ws" version="2.1.1"/>
+<unit id="com.springsource.org.aopalliance" version="1.0.0"/>
+<unit id="org.argeo.slc.agent.jms" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.directory.server.jndi" version="1.0.2"/>
+<unit id="org.argeo.server.core" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.apache.commons.net" version="1.4.1"/>
+<unit id="com.springsource.jxl" version="2.6.6"/>
+<unit id="com.springsource.javax.transaction" version="1.1.0"/>
+<unit id="com.springsource.org.codehaus.jackson.mapper" version="1.0.0"/>
+<unit id="com.springsource.javax.ejb" version="3.0.0"/>
+<unit id="org.springframework.web" version="2.5.6.SEC01"/>
+<unit id="com.springsource.net.sourceforge.jtds" version="1.2.2"/>
+<unit id="com.springsource.org.apache.ws.commons.schema" version="1.3.2"/>
+<unit id="com.springsource.org.apache.commons.io" version="1.4.0"/>
+<unit id="org.argeo.slc.dep.detached" version="0.12.1.SNAPSHOT"/>
+<unit id="com.springsource.org.apache.directory.shared.ldap" version="0.9.5.5"/>
+<unit id="com.springsource.javax.el" version="1.0.0"/>
+<unit id="com.springsource.org.apache.juli.extras.springsource" version="6.0.20.S2-r5956"/>
+<unit id="com.springsource.slf4j.org.apache.commons.logging" version="1.5.6"/>
+<unit id="com.springsource.org.aspectj.runtime" version="1.6.3.RELEASE"/>
+<unit id="com.springsource.javassist" version="3.3.0.ga"/>
+<unit id="org.argeo.server.ads" version="0.1.2.r3231"/>
+<unit id="org.argeo.slc.agent" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.xmlpull" version="1.1.3.4-O"/>
+<unit id="org.argeo.server.catalina" version="0.1.2.r3231"/>
+<unit id="org.argeo.slc.support.hibernate" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.jcifs" version="1.2.15"/>
+<unit id="com.springsource.com.jcraft.jsch" version="0.1.31"/>
+<unit id="org.argeo.server.jackrabbit.webdav" version="0.1.2.r3231"/>
+<unit id="org.argeo.slc.support.simple" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.directory.server.core.shared" version="1.0.2"/>
+<unit id="org.argeo.slc.specs" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.mortbay.util" version="6.1.9"/>
+<unit id="com.springsource.javax.jms" version="1.1.0"/>
+<unit id="com.springsource.org.aspectj.weaver" version="1.6.3.RELEASE"/>
+<unit id="org.springframework.context.support" version="2.5.6.SEC01"/>
+<unit id="com.springsource.org.apache.lucene" version="2.4.1"/>
+<unit id="com.springsource.com.mysql.jdbc" version="5.1.6"/>
+<unit id="com.springsource.org.apache.tools.ant" version="1.7.1"/>
+<unit id="com.springsource.org.mortbay.jetty.server" version="6.1.9"/>
+<unit id="com.springsource.org.apache.taglibs.standard" version="1.1.2"/>
+<unit id="org.argeo.slc.server.agentproxy" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.slc.server.services" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.springframework.core" version="2.5.6.SEC01"/>
+<unit id="org.argeo.slc.server.main" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.slf4j.api" version="1.5.6"/>
+<unit id="org.springframework.security" version="2.0.4.A"/>
+<unit id="org.argeo.basic.nodeps" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.objectweb.asm.attrs" version="2.2.3"/>
+<unit id="com.springsource.org.codehaus.jackson" version="1.0.0"/>
+<unit id="org.springframework.osgi.web" version="1.2.0"/>
+<unit id="org.argeo.slc.support.activemq" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.springframework.web.servlet" version="2.5.6.SEC01"/>
+<unit id="com.springsource.javax.xml.bind" version="2.1.7"/>
+<unit id="com.springsource.org.apache.tools.ant.launch" version="1.7.1"/>
+<unit id="com.springsource.net.sf.ehcache" version="1.6.2"/>
+<unit id="org.argeo.server.webextender" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.apache.regexp" version="1.5.0"/>
+<unit id="com.springsource.org.apache.derby" version="10.5.1000001.764942"/>
+<unit id="com.springsource.org.apache.directory.server.kerberos" version="1.0.2"/>
+<unit id="com.springsource.com.thoughtworks.xstream" version="1.2.2"/>
+<unit id="org.argeo.server.jackrabbit.repo" version="0.1.2.r3231"/>
+<unit id="com.springsource.javax.servlet.jsp.jstl" version="1.1.2"/>
+<unit id="com.springsource.javax.persistence" version="1.0.0"/>
+<unit id="org.argeo.slc.agent.ext.bsf" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.slc.detached" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.slc.server.mysql" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.springframework.osgi.extender" version="1.2.0"/>
+<unit id="com.springsource.org.apache.commons.pool" version="1.5.3"/>
+<unit id="com.springsource.org.apache.commons.codec" version="1.3.0"/>
+<unit id="com.springsource.org.tmatesoft.svn" version="1.3.1.6109"/>
+<unit id="org.springframework.osgi.web.extender" version="1.2.0"/>
+<unit id="com.springsource.org.apache.xmlbeans" version="2.4.0"/>
+<unit id="com.springsource.org.apache.xml.serializer" version="2.7.1"/>
+<unit id="org.argeo.slc.server.castor" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.xml.resolver" version="1.2.0"/>
+<unit id="com.springsource.org.jgroups" version="2.2.8"/>
+<unit id="com.springsource.org.objectweb.asm" version="2.2.3"/>
+<unit id="com.springsource.org.apache.commons.dbcp" version="1.2.2.osgi"/>
+<unit id="com.springsource.javax.mail" version="1.4.1"/>
+<unit id="com.springsource.org.apache.mina" version="1.0.2"/>
+<unit id="org.springframework.beans" version="2.5.6.SEC01"/>
+<unit id="org.springframework.xml" version="1.5.8.A"/>
+<unit id="com.springsource.junit" version="3.8.2"/>
+<unit id="com.springsource.org.apache.directory.server.ldap" version="1.0.2"/>
+<unit id="org.argeo.dep.osgi.jcr" version="1.0.0.0001"/>
+<unit id="com.springsource.jdbm" version="1.0.0"/>
+<unit id="org.springframework.orm" version="2.5.6.SEC01"/>
+<unit id="com.springsource.org.apache.el.springsource" version="6.0.20.S2-r5956"/>
+<unit id="org.argeo.server.json" version="0.1.2.r3231"/>
+<unit id="org.argeo.slc.agent.ext.jdbc" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.edu.emory.mathcs.backport" version="2.2.0"/>
+<unit id="org.argeo.dep.osgi.activemq.optional" version="5.2.0.0001"/>
+<unit id="org.argeo.dep.osgi.commons.exec" version="1.0.0.0002"/>
+<unit id="com.springsource.com.sun.xml.messaging.saaj" version="1.3.0"/>
+<unit id="com.springsource.org.apache.directory.server.protocol.shared" version="1.0.2"/>
+<unit id="org.argeo.slc.support.osgi" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.springframework.aop" version="2.5.6.SEC01"/>
+<unit id="org.argeo.slc.core" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.apache.bcel" version="5.1.0"/>
+<unit id="com.springsource.org.apache.xerces" version="2.9.1"/>
+<unit id="org.argeo.dep.osgi.directory.shared.asn.codec" version="0.9.5.0001"/>
+<unit id="org.argeo.slc.support.equinox" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="com.springsource.org.postgresql.jdbc3" version="8.3.603"/>
+<unit id="com.springsource.org.apache.directory.shared.asn1" version="0.9.5.5"/>
+<unit id="org.argeo.dep.osgi.jackrabbit" version="1.6.0.0003"/>
+<unit id="org.argeo.server.tomcat" version="0.1.2.r3231"/>
+<unit id="com.springsource.org.castor" version="1.2.0"/>
+<unit id="com.springsource.org.apache.activemq.pool" version="5.2.0"/>
+<unit id="com.springsource.org.apache.xmlcommons" version="1.3.4"/>
+<unit id="org.argeo.slc.ria" version="0.12.1.SNAPSHOT-r3239"/>
+<unit id="org.argeo.security.core" version="0.1.2.r3231"/>
+<unit id="org.argeo.server.activemq.broker" version="0.1.2.r3231"/>
+<unit id="org.argeo.slc.server" version="0.12.1.SNAPSHOT-r3239"/>
+<repository location="http://www.argeo.org/projects/slc/sdk-dev/"/>
+</location>
+<location path="${system_property:user.home}/.m2/repository/org/apache/commons/com.springsource.org.apache.commons.collections/3.2.1" type="Directory"/>
+</locations>
+</target>
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/DeployedSlcSystem.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/DeployedSlcSystem.java
new file mode 100644 (file)
index 0000000..8992432
--- /dev/null
@@ -0,0 +1,50 @@
+package org.argeo.slc.ide.ui;\r
+\r
+import java.io.File;\r
+import java.io.IOException;\r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.jdt.launching.IVMInstall;\r
+import org.eclipse.jdt.launching.JavaRuntime;\r
+\r
+public class DeployedSlcSystem implements SlcSystem {\r
+       private File baseDir;\r
+       private String relLibDir = "lib";\r
+\r
+       public DeployedSlcSystem(String baseDirPath) {\r
+               try {\r
+                       this.baseDir = new File(baseDirPath).getCanonicalFile();\r
+               } catch (IOException e) {\r
+                       throw new RuntimeException("Cannot get path for " + baseDirPath, e);\r
+               }\r
+       }\r
+\r
+       public String[] getClasspath() throws CoreException {\r
+               List<String> classpath = new Vector<String>();\r
+               File libDir = new File(baseDir.getPath() + File.separator + relLibDir);\r
+               File[] files = libDir.listFiles();\r
+               for (File file : files) {\r
+                       try {\r
+                               classpath.add(file.getCanonicalPath());\r
+                       } catch (IOException e) {\r
+                               throw new RuntimeException("Cannot get path for " + file, e);\r
+                       }\r
+               }\r
+               return classpath.toArray(new String[classpath.size()]);\r
+       }\r
+\r
+       public IVMInstall getVmInstall() throws CoreException {\r
+               return JavaRuntime.getDefaultVMInstall();\r
+       }\r
+\r
+       public String getAntHome() {\r
+               return baseDir.getPath();\r
+       }\r
+\r
+       public String getJavaLibraryPath() {\r
+               return baseDir.getPath() + File.separator + "bin";\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/EmbeddedSlcSystem.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/EmbeddedSlcSystem.java
new file mode 100644 (file)
index 0000000..e2414e0
--- /dev/null
@@ -0,0 +1,34 @@
+package org.argeo.slc.ide.ui;
+
+import org.argeo.slc.ide.ui.launch.preferences.SlcLaunchPreferencePage;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+
+public class EmbeddedSlcSystem implements SlcSystem {
+       private final IJavaProject project;
+
+       public EmbeddedSlcSystem(IJavaProject project) {
+               this.project = project;
+       }
+
+       public String[] getClasspath() throws CoreException {
+               return JavaRuntime.computeDefaultRuntimeClassPath(project);
+       }
+
+       public String getJavaLibraryPath() {
+               String javaLibPath = SlcIdeUiPlugin.getDefault()
+                               .getPreferenceStore().getString(
+                                               SlcLaunchPreferencePage.PREF_SLC_RUNTIME_LOCATION);
+               if (javaLibPath == null || javaLibPath.equals(""))
+                       return null;
+               else
+                       return javaLibPath;
+       }
+
+       public IVMInstall getVmInstall() throws CoreException {
+               return JavaRuntime.getVMInstall(project);
+       }
+
+}
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcIdeUiPlugin.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcIdeUiPlugin.java
new file mode 100644 (file)
index 0000000..c9ddd4b
--- /dev/null
@@ -0,0 +1,44 @@
+package org.argeo.slc.ide.ui;\r
+\r
+import org.eclipse.ui.plugin.AbstractUIPlugin;\r
+import org.osgi.framework.BundleContext;\r
+\r
+/**\r
+ * The activator class controls the plug-in life cycle\r
+ */\r
+public class SlcIdeUiPlugin extends AbstractUIPlugin {\r
+\r
+       // The plug-in ID\r
+       public static final String ID = "org.argeo.slc.ide.ui";\r
+\r
+       // The shared instance\r
+       private static SlcIdeUiPlugin plugin;\r
+\r
+       /**\r
+        * The constructor\r
+        */\r
+       public SlcIdeUiPlugin() {\r
+       }\r
+\r
+       @Override\r
+       public void start(BundleContext context) throws Exception {\r
+               super.start(context);\r
+               plugin = this;\r
+       }\r
+\r
+       @Override\r
+       public void stop(BundleContext context) throws Exception {\r
+               plugin = null;\r
+               super.stop(context);\r
+       }\r
+\r
+       /**\r
+        * Returns the shared instance\r
+        * \r
+        * @return the shared instance\r
+        */\r
+       public static SlcIdeUiPlugin getDefault() {\r
+               return plugin;\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcMainPreferencePage.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcMainPreferencePage.java
new file mode 100644 (file)
index 0000000..d091715
--- /dev/null
@@ -0,0 +1,26 @@
+package org.argeo.slc.ide.ui;\r
+\r
+import org.eclipse.jface.preference.FieldEditorPreferencePage;\r
+import org.eclipse.ui.IWorkbench;\r
+import org.eclipse.ui.IWorkbenchPreferencePage;\r
+\r
+public class SlcMainPreferencePage extends FieldEditorPreferencePage implements\r
+               IWorkbenchPreferencePage {\r
+       public SlcMainPreferencePage() {\r
+//             IPreferenceStore store = SlcIdePlugin.getDefault().getPreferenceStore();\r
+//             setPreferenceStore(store);\r
+               setDescription("Argeo SLC Preferences");\r
+       }\r
+\r
+       @Override\r
+       protected void createFieldEditors() {\r
+//             addField(new DirectoryFieldEditor(PREF_SLC_RUNTIME_LOCATION,\r
+//                             "SLC Runtime", getFieldEditorParent()));\r
+//             addField(new DirectoryFieldEditor(PREF_EMBEDDED_JAVA_LIBRARY_PATH,\r
+//                             "Embedded Java Library Path", getFieldEditorParent()));\r
+       }\r
+\r
+       public void init(IWorkbench workbench) {\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcPerspectiveFactory.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcPerspectiveFactory.java
new file mode 100644 (file)
index 0000000..7c0084e
--- /dev/null
@@ -0,0 +1,27 @@
+package org.argeo.slc.ide.ui;\r
+\r
+import org.eclipse.jdt.ui.JavaUI;\r
+import org.eclipse.ui.IFolderLayout;\r
+import org.eclipse.ui.IPageLayout;\r
+import org.eclipse.ui.IPerspectiveFactory;\r
+import org.eclipse.ui.console.IConsoleConstants;\r
+\r
+public class SlcPerspectiveFactory implements IPerspectiveFactory {\r
+\r
+       public void createInitialLayout(IPageLayout layout) {\r
+               // Get the editor area.\r
+               String editorArea = layout.getEditorArea();\r
+\r
+               IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.LEFT, 0.25f,\r
+                       editorArea);\r
+               topLeft.addView(JavaUI.ID_PACKAGES);\r
+\r
+               IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, 0.66f,\r
+                               editorArea);\r
+               bottom.addView(IConsoleConstants.ID_CONSOLE_VIEW);\r
+               bottom.addView(IPageLayout.ID_TASK_LIST);\r
+               \r
+               layout.addActionSet("org.eclipse.debug.ui.launchActionSet");\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcSystem.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/SlcSystem.java
new file mode 100644 (file)
index 0000000..ff797c6
--- /dev/null
@@ -0,0 +1,10 @@
+package org.argeo.slc.ide.ui;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.jdt.launching.IVMInstall;\r
+\r
+public interface SlcSystem {\r
+       public String[] getClasspath() throws CoreException;\r
+       public String getJavaLibraryPath();\r
+       public IVMInstall getVmInstall() throws CoreException;\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java
new file mode 100644 (file)
index 0000000..fb34e27
--- /dev/null
@@ -0,0 +1,283 @@
+package org.argeo.slc.ide.ui.launch.osgi;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.IVMInstall2;
+import org.eclipse.jdt.launching.IVMInstallType;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.PluginRegistry;
+import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
+import org.eclipse.pde.ui.launcher.OSGiLaunchShortcut;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+public class SlcLaunchShortcut extends OSGiLaunchShortcut {
+       public final static String VMS_PROPERTY_PREFIX = "slc.launch.vm";
+
+       private Boolean debug = false;
+
+       private String springOsgiExtenderId = "org.springframework.osgi.extender";
+       private String slcSupportEquinoxId = "org.argeo.slc.support.equinox";
+       // private String slcAgentId = "org.argeo.slc.agent";
+       // private String osgiBootId = "org.argeo.slc.osgiboot";
+
+       private ISelection selection = null;
+       private StringBuffer name = null;
+
+       private final List<String> defaultBundlesToStart = new ArrayList<String>();
+       private List<String> bundlesToStart = new ArrayList<String>();
+
+       public SlcLaunchShortcut() {
+               super();
+               defaultBundlesToStart.add(springOsgiExtenderId);
+               defaultBundlesToStart.add(slcSupportEquinoxId);
+               // defaultBundlesToStart.add(slcAgentId);
+       }
+
+       public void launch(ISelection selection, String mode) {
+               this.selection = selection;
+               this.name = new StringBuffer();
+
+               bundlesToStart = new ArrayList<String>();
+               bundlesToStart.addAll(defaultBundlesToStart);
+               // Evaluate selection
+               if (selection != null) {
+                       addSelectedProjects(bundlesToStart);
+               }
+
+               super.launch(selection, mode);
+
+               // Reset
+               this.selection = null;
+               this.name = null;
+               bundlesToStart = null;
+       }
+
+       protected void initializeConfiguration(
+                       ILaunchConfigurationWorkingCopy configuration) {
+               try {
+                       super.initializeConfiguration(configuration);
+
+                       // Convert bundle lists
+                       String targetBundles = configuration.getAttribute(
+                                       IPDELauncherConstants.TARGET_BUNDLES, "");
+                       configuration.setAttribute(IPDELauncherConstants.TARGET_BUNDLES,
+                                       convertBundleList(bundlesToStart, targetBundles));
+
+                       String wkSpaceBundles = configuration.getAttribute(
+                                       IPDELauncherConstants.WORKSPACE_BUNDLES, "");
+                       configuration.setAttribute(IPDELauncherConstants.WORKSPACE_BUNDLES,
+                                       convertBundleList(bundlesToStart, wkSpaceBundles));
+
+                       // Update other default information
+                       configuration.setAttribute(
+                                       IPDELauncherConstants.DEFAULT_AUTO_START, false);
+                       configuration.setAttribute(IPDELauncherConstants.CONFIG_CLEAR_AREA,
+                                       true);
+                       String defaultVmArgs = configuration.getAttribute(
+                                       IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "");
+                       StringBuffer vmArgs = new StringBuffer(defaultVmArgs);
+                       vmArgs.append(" -Xmx256m");
+
+                       // Add locations of JVMs
+                       addVmSysProperty(vmArgs, "default", JavaRuntime
+                                       .getDefaultVMInstall());
+                       IVMInstallType[] vmTypes = JavaRuntime.getVMInstallTypes();
+                       for (IVMInstallType vmType : vmTypes) {
+                               // System.out.println("vmType: id=" + vmType.getId() + ", name="
+                               // + vmType.getName() + ", toString=" + vmType);
+                               for (IVMInstall vmInstall : vmType.getVMInstalls()) {
+                                       // printVm("", vmInstall);
+                                       // properties based on name
+                                       addVmSysProperty(vmArgs, vmInstall.getName(), vmInstall);
+                                       if (vmInstall instanceof IVMInstall2) {
+                                               // properties based on version
+                                               IVMInstall2 vmInstall2 = (IVMInstall2) vmInstall;
+                                               String version = vmInstall2.getJavaVersion();
+                                               addVmSysProperty(vmArgs, version, vmInstall);
+
+                                               List<String> tokens = new ArrayList<String>();
+                                               StringTokenizer st = new StringTokenizer(version, ".");
+                                               while (st.hasMoreTokens())
+                                                       tokens.add(st.nextToken());
+                                               if (tokens.size() >= 2)
+                                                       addVmSysProperty(vmArgs, tokens.get(0) + "."
+                                                                       + tokens.get(1), vmInstall);
+                                       }
+                               }
+                       }
+                       configuration.setAttribute(
+                                       IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, vmArgs
+                                                       .toString());
+
+                       // Choose working directory
+                       Shell shell = Display.getCurrent().getActiveShell();
+                       DirectoryDialog dirDialog = new DirectoryDialog(shell);
+                       dirDialog.setText("Working Directory");
+                       dirDialog.setMessage("Choose the working directory");
+                       String dir = dirDialog.open();
+                       if (dir != null)
+                               configuration
+                                               .setAttribute(
+                                                               IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
+                                                               dir);
+
+               } catch (CoreException e) {
+                       Shell shell = Display.getCurrent().getActiveShell();
+                       ErrorDialog.openError(shell, "Error",
+                                       "Cannot execute SLC launch shortcut", e.getStatus());
+               }
+
+       }
+
+       protected void addVmSysProperty(StringBuffer vmArgs, String suffix,
+                       IVMInstall vmInstall) {
+               addSysProperty(vmArgs, VMS_PROPERTY_PREFIX + "." + suffix, vmInstall
+                               .getInstallLocation().getPath());
+       }
+
+       protected void addSysProperty(StringBuffer vmArgs, String key, String value) {
+               String str = "-D" + key + "=" + value;
+               if (str.contains(" "))
+                       str = "\"" + str + "\"";
+               vmArgs.append(" " + str);
+       }
+
+       protected void printVm(String prefix, IVMInstall vmInstall) {
+               System.out.println(prefix + " vmInstall: id=" + vmInstall.getId()
+                               + ", name=" + vmInstall.getName() + ", installLocation="
+                               + vmInstall.getInstallLocation() + ", toString=" + vmInstall);
+               if (vmInstall instanceof IVMInstall2) {
+                       IVMInstall2 vmInstall2 = (IVMInstall2) vmInstall;
+                       System.out.println("  vmInstall: javaVersion="
+                                       + vmInstall2.getJavaVersion());
+               }
+               // printVm("Default", JavaRuntime.getDefaultVMInstall());
+               // IExecutionEnvironment[] execEnvs = JavaRuntime
+               // .getExecutionEnvironmentsManager()
+               // .getExecutionEnvironments();
+               // for (IExecutionEnvironment execEnv : execEnvs) {
+               // System.out.println("execEnv: id=" + execEnv.getId() + ", desc="
+               // + execEnv.getDescription());
+               // if (execEnv.getId().startsWith("J2SE")
+               // || execEnv.getId().startsWith("Java")) {
+               // IVMInstall vmInstall = execEnv.getDefaultVM();
+               // printVm("", vmInstall);
+               // }
+               // }
+
+       }
+
+       protected String convertBundleList(List<String> bundlesToStart,
+                       String original) {
+               StringBuffer bufBundles = new StringBuffer(1024);
+               StringTokenizer stComa = new StringTokenizer(original, ",");
+               boolean first = true;
+               while (stComa.hasMoreTokens()) {
+                       if (first)
+                               first = false;
+                       else
+                               bufBundles.append(',');
+
+                       String tkComa = stComa.nextToken();
+                       int indexAt = tkComa.indexOf('@');
+                       boolean modified = false;
+                       if (indexAt >= 0) {
+                               String bundelId = tkComa.substring(0, indexAt);
+
+                               if (bundlesToStart.contains(bundelId)) {
+                                       bufBundles.append(bundelId).append('@').append(
+                                                       "default:true");
+                                       modified = true;
+                                       if (debug)
+                                               System.out.println("Will start " + bundelId);
+                               }
+                       }
+
+                       if (!modified)
+                               bufBundles.append(tkComa);
+               }
+               String output = bufBundles.toString();
+               return output;
+       }
+
+       protected void addSelectedProjects(List<String> bundlesToStart) {
+               Assert.isNotNull(selection);
+
+               Map<String, IPluginModelBase> bundleProjects = new HashMap<String, IPluginModelBase>();
+               for (IPluginModelBase modelBase : PluginRegistry.getWorkspaceModels()) {
+                       IProject bundleProject = modelBase.getUnderlyingResource()
+                                       .getProject();
+                       bundleProjects.put(bundleProject.getName(), modelBase);
+               }
+
+               IStructuredSelection sSelection = (IStructuredSelection) selection;
+               for (Iterator<?> it = sSelection.iterator(); it.hasNext();) {
+                       Object obj = it.next();
+                       if (obj instanceof IProject) {
+                               IProject project = (IProject) obj;
+                               if (bundleProjects.containsKey(project.getName())) {
+                                       IPluginModelBase modelBase = bundleProjects.get(project
+                                                       .getName());
+
+                                       BundleDescription bundleDescription = null;
+                                       if (modelBase.isFragmentModel()) {
+                                               BundleDescription[] hosts = modelBase
+                                                               .getBundleDescription().getHost().getHosts();
+                                               for (BundleDescription bd : hosts) {
+                                                       if (debug)
+                                                               System.out.println("Host for "
+                                                                               + modelBase.getBundleDescription()
+                                                                                               .getSymbolicName() + ": "
+                                                                               + bd.getSymbolicName());
+                                                       bundleDescription = bd;
+                                               }
+                                       } else {
+                                               bundleDescription = modelBase.getBundleDescription();
+                                       }
+
+                                       if (bundleDescription != null) {
+                                               String symbolicName = bundleDescription
+                                                               .getSymbolicName();
+                                               String bundleName = bundleDescription.getName();
+
+                                               bundlesToStart.add(symbolicName);
+
+                                               if (name.length() > 0)
+                                                       name.append(" ");
+                                               if (bundleName != null)
+                                                       name.append(bundleName);
+                                               else
+                                                       name.append(symbolicName);
+                                       }
+                               }
+                       }
+               }
+       }
+
+       protected String getName(ILaunchConfigurationType type) {
+               if (name != null && !name.toString().trim().equals(""))
+                       return name.toString();
+               else
+                       return "SLC";
+       }
+
+}
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/preferences/SlcLaunchPreferencePage.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/preferences/SlcLaunchPreferencePage.java
new file mode 100644 (file)
index 0000000..24c6757
--- /dev/null
@@ -0,0 +1,34 @@
+package org.argeo.slc.ide.ui.launch.preferences;\r
+\r
+import org.argeo.slc.ide.ui.SlcIdeUiPlugin;\r
+import org.eclipse.jface.preference.DirectoryFieldEditor;\r
+import org.eclipse.jface.preference.FieldEditorPreferencePage;\r
+import org.eclipse.ui.IWorkbench;\r
+import org.eclipse.ui.IWorkbenchPreferencePage;\r
+\r
+public class SlcLaunchPreferencePage extends FieldEditorPreferencePage implements\r
+               IWorkbenchPreferencePage {\r
+       public final static String PREF_SLC_RUNTIME_LOCATION = SlcIdeUiPlugin.ID\r
+                       + ".slcRuntimeLocation";\r
+       public final static String PREF_EMBEDDED_JAVA_LIBRARY_PATH = SlcIdeUiPlugin.ID\r
+                       + ".embeddedJavaLibraryPath";\r
+\r
+       public SlcLaunchPreferencePage() {\r
+//             IPreferenceStore store = SlcUiLaunchPlugin.getDefault()\r
+//                             .getPreferenceStore();\r
+//             setPreferenceStore(store);\r
+               setDescription("Argeo SLC Launch Preferences");\r
+       }\r
+\r
+       @Override\r
+       protected void createFieldEditors() {\r
+               addField(new DirectoryFieldEditor(PREF_SLC_RUNTIME_LOCATION,\r
+                               "SLC Runtime", getFieldEditorParent()));\r
+               addField(new DirectoryFieldEditor(PREF_EMBEDDED_JAVA_LIBRARY_PATH,\r
+                               "Embedded Java Library Path", getFieldEditorParent()));\r
+       }\r
+\r
+       public void init(IWorkbench workbench) {\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchConfigurationTab.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchConfigurationTab.java
new file mode 100644 (file)
index 0000000..f73a8ca
--- /dev/null
@@ -0,0 +1,191 @@
+package org.argeo.slc.ide.ui.launch.script;\r
+\r
+import org.eclipse.core.resources.IResource;\r
+import org.eclipse.core.resources.ResourcesPlugin;\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.debug.core.ILaunchConfiguration;\r
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;\r
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;\r
+import org.eclipse.jface.window.Window;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.ModifyEvent;\r
+import org.eclipse.swt.events.ModifyListener;\r
+import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.events.SelectionListener;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.swt.widgets.Text;\r
+import org.eclipse.ui.dialogs.ResourceSelectionDialog;\r
+\r
+public class SlcScriptLaunchConfigurationTab extends\r
+               AbstractLaunchConfigurationTab {\r
+\r
+       private Text scriptTF;\r
+       private Text propertiesTF;\r
+       private Text runtimeTF;\r
+       private Text targetsTF;\r
+       private Button pre093B;\r
+\r
+       public void createControl(Composite parent) {\r
+               Composite body = new Composite(parent, SWT.NONE);\r
+               setControl(body);\r
+               body.setLayout(new GridLayout(1, false));\r
+               body.setFont(parent.getFont());\r
+\r
+               createLabel(body, "Script location");\r
+               scriptTF = createSingleText(body);\r
+               createWorkspaceButton(body);\r
+\r
+               createLabel(body, "Runtime");\r
+               runtimeTF = createSingleText(body);\r
+\r
+               createLabel(body, "Targets");\r
+               targetsTF = createSingleText(body);\r
+\r
+               createLabel(body, "Properties");\r
+               propertiesTF = createMultipleText(body, 10);\r
+\r
+               pre093B = createCheckBox(body, "Pre SLC v0.9.3");\r
+       }\r
+\r
+       public String getName() {\r
+               return "SLC";\r
+       }\r
+\r
+       public void initializeFrom(ILaunchConfiguration configuration) {\r
+               try {\r
+                       scriptTF.setText(configuration.getAttribute(\r
+                                       SlcScriptUtils.ATTR_SCRIPT, ""));\r
+\r
+                       boolean pre093 = configuration.getAttribute(\r
+                                       SlcScriptUtils.ATTR_PRE093, false);\r
+\r
+                       propertiesTF.setText(configuration.getAttribute(\r
+                                       SlcScriptUtils.ATTR_PROPERTIES, ""));\r
+                       runtimeTF.setText(configuration.getAttribute(\r
+                                       SlcScriptUtils.ATTR_RUNTIME, ""));\r
+                       targetsTF.setText(configuration.getAttribute(\r
+                                       SlcScriptUtils.ATTR_TARGETS, ""));\r
+                       pre093B.setSelection(pre093);\r
+               } catch (CoreException e) {\r
+                       throw new RuntimeException("Cannot initialize tab", e);\r
+               }\r
+\r
+       }\r
+\r
+       public void performApply(ILaunchConfigurationWorkingCopy configuration) {\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_SCRIPT, scriptTF\r
+                               .getText());\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_PROPERTIES, propertiesTF\r
+                               .getText());\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_RUNTIME, runtimeTF\r
+                               .getText());\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_TARGETS, targetsTF\r
+                               .getText());\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_PRE093, pre093B\r
+                               .getSelection());\r
+       }\r
+\r
+       public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_SCRIPT, "");\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_PROPERTIES, "");\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_RUNTIME, "");\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_TARGETS, "");\r
+               configuration.setAttribute(SlcScriptUtils.ATTR_PRE093, false);\r
+       }\r
+\r
+       // UI Utils\r
+       protected Label createLabel(Composite parent, String text) {\r
+               Label t = new Label(parent, SWT.NONE | SWT.WRAP);\r
+               t.setText(text);\r
+               t.setFont(parent.getFont());\r
+               GridData gd = new GridData(GridData.FILL_HORIZONTAL);\r
+               gd.horizontalSpan = 1;\r
+               t.setLayoutData(gd);\r
+               return t;\r
+       }\r
+\r
+       protected Text createSingleText(Composite parent) {\r
+               Text t = new Text(parent, SWT.SINGLE | SWT.BORDER);\r
+               t.setFont(parent.getFont());\r
+               GridData gd = new GridData(GridData.FILL_HORIZONTAL);\r
+               gd.horizontalSpan = 1;\r
+               t.setLayoutData(gd);\r
+               t.addModifyListener(modifyListener);\r
+               return t;\r
+       }\r
+\r
+       protected Text createMultipleText(Composite parent, int verticalSpan) {\r
+               Text t = new Text(parent, SWT.MULTI | SWT.BORDER);\r
+               t.setFont(parent.getFont());\r
+               GridData gd = new GridData(GridData.FILL, GridData.FILL, true, true);\r
+               gd.horizontalSpan = 1;\r
+               gd.verticalSpan = verticalSpan;\r
+               t.setLayoutData(gd);\r
+               t.addModifyListener(modifyListener);\r
+               return t;\r
+       }\r
+\r
+       protected Button createCheckBox(Composite parent, String label) {\r
+               Button b = new Button(parent, SWT.CHECK);\r
+               b.setFont(parent.getFont());\r
+               b.setText(label);\r
+               b.addSelectionListener(selectionListener);\r
+               return b;\r
+\r
+       }\r
+\r
+       protected Button createWorkspaceButton(Composite parent) {\r
+               Button b = new Button(parent, SWT.PUSH);\r
+               b.setFont(parent.getFont());\r
+               b.setText("Workspace...");\r
+               b.addSelectionListener(new SelectionListener() {\r
+                       public void widgetDefaultSelected(SelectionEvent e) {\r
+                       }\r
+\r
+                       public void widgetSelected(SelectionEvent e) {\r
+                               handleWorkspaceLocationButtonSelected();\r
+                       }\r
+               });\r
+               return b;\r
+       }\r
+\r
+       protected void handleWorkspaceLocationButtonSelected() {\r
+               ResourceSelectionDialog dialog;\r
+               dialog = new ResourceSelectionDialog(getShell(), ResourcesPlugin\r
+                               .getWorkspace().getRoot(), "Select a file");\r
+               if (dialog.open() == Window.OK) {\r
+                       Object[] results = dialog.getResult();\r
+                       if (results == null || results.length < 1) {\r
+                               return;\r
+                       }\r
+                       IResource resource = (IResource) results[0];\r
+                       scriptTF.setText(SlcScriptUtils\r
+                                       .convertToWorkspaceLocation(resource));\r
+                       updateLaunchConfigurationDialog();\r
+               }\r
+       }\r
+\r
+       // LISTENERS\r
+       /**\r
+        * Modify listener that simply updates the owning launch configuration\r
+        * dialog.\r
+        */\r
+       private ModifyListener modifyListener = new ModifyListener() {\r
+               public void modifyText(ModifyEvent evt) {\r
+                       updateLaunchConfigurationDialog();\r
+               }\r
+       };\r
+       private SelectionListener selectionListener = new SelectionListener() {\r
+               public void widgetDefaultSelected(SelectionEvent e) {\r
+               }\r
+\r
+               public void widgetSelected(SelectionEvent e) {\r
+                       updateLaunchConfigurationDialog();\r
+               }\r
+       };\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchConfigurationTabGroup.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchConfigurationTabGroup.java
new file mode 100644 (file)
index 0000000..e7d54a3
--- /dev/null
@@ -0,0 +1,16 @@
+package org.argeo.slc.ide.ui.launch.script;\r
+\r
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;\r
+import org.eclipse.debug.ui.CommonTab;\r
+import org.eclipse.debug.ui.ILaunchConfigurationDialog;\r
+import org.eclipse.debug.ui.ILaunchConfigurationTab;\r
+\r
+public class SlcScriptLaunchConfigurationTabGroup extends\r
+               AbstractLaunchConfigurationTabGroup {\r
+\r
+       public void createTabs(ILaunchConfigurationDialog dialog, String mode) {\r
+               ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {\r
+                               new SlcScriptLaunchConfigurationTab(), new CommonTab() };\r
+               setTabs(tabs);\r
+       }\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchDelegate.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchDelegate.java
new file mode 100644 (file)
index 0000000..75d8ce7
--- /dev/null
@@ -0,0 +1,258 @@
+package org.argeo.slc.ide.ui.launch.script;\r
+\r
+import java.io.ByteArrayInputStream;\r
+import java.io.IOException;\r
+import java.util.List;\r
+import java.util.Properties;\r
+import java.util.Vector;\r
+\r
+import org.argeo.slc.ide.ui.DeployedSlcSystem;\r
+import org.argeo.slc.ide.ui.EmbeddedSlcSystem;\r
+import org.argeo.slc.ide.ui.SlcSystem;\r
+import org.argeo.slc.ide.ui.SlcIdeUiPlugin;\r
+import org.argeo.slc.ide.ui.launch.preferences.SlcLaunchPreferencePage;\r
+import org.eclipse.core.resources.IFile;\r
+import org.eclipse.core.resources.IProject;\r
+import org.eclipse.core.resources.ResourcesPlugin;\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.core.runtime.IPath;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Path;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.core.variables.IStringVariableManager;\r
+import org.eclipse.core.variables.VariablesPlugin;\r
+import org.eclipse.debug.core.DebugPlugin;\r
+import org.eclipse.debug.core.ILaunch;\r
+import org.eclipse.debug.core.ILaunchConfiguration;\r
+import org.eclipse.debug.core.ILaunchManager;\r
+import org.eclipse.jdt.core.IJavaProject;\r
+import org.eclipse.jdt.core.IType;\r
+import org.eclipse.jdt.core.JavaCore;\r
+import org.eclipse.jdt.core.JavaModelException;\r
+import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate;\r
+import org.eclipse.jdt.launching.IVMRunner;\r
+import org.eclipse.jdt.launching.VMRunnerConfiguration;\r
+import org.eclipse.jface.dialogs.ErrorDialog;\r
+import org.eclipse.swt.widgets.Shell;\r
+\r
+public class SlcScriptLaunchDelegate extends\r
+               AbstractJavaLaunchConfigurationDelegate {\r
+       public static final String ID = "org.argeo.slc.launch.slcScriptLaunchType";\r
+\r
+       public final static String ANT_MAIN = "org.apache.tools.ant.Main";\r
+       public final static String SLC_MAIN = "org.argeo.slc.cli.SlcMain";\r
+\r
+       @SuppressWarnings("deprecation")\r
+       public void launch(ILaunchConfiguration configuration, String mode,\r
+                       ILaunch launch, IProgressMonitor monitor) throws CoreException {\r
+               if (!saveBeforeLaunch(configuration, mode, monitor))\r
+                       return;\r
+\r
+               String scriptLocation = configuration.getAttribute(\r
+                               SlcScriptUtils.ATTR_SCRIPT, "");\r
+               if (scriptLocation.equals(""))\r
+                       abort("Script has to be provided", null, 1);\r
+\r
+               IStringVariableManager manager = VariablesPlugin.getDefault()\r
+                               .getStringVariableManager();\r
+               scriptLocation = manager.performStringSubstitution(scriptLocation);\r
+               IPath path = new Path(scriptLocation);\r
+               IFile[] files = ResourcesPlugin.getWorkspace().getRoot()\r
+                               .findFilesForLocation(path);\r
+\r
+               if (files.length == 0)\r
+                       abort("Coulkd not find related file", null, 1);\r
+\r
+               IFile file = (IFile) files[0];\r
+               DebugPlugin\r
+                               .logMessage("Launching " + file.getLocation().toFile(), null);\r
+\r
+               boolean pre093 = configuration.getAttribute(SlcScriptUtils.ATTR_PRE093,\r
+                               false);\r
+\r
+               // Retrieve SLC Runtime\r
+               SlcSystem slcSystem = findSlcSystem(file, pre093);\r
+               if (slcSystem == null)\r
+                       return;\r
+\r
+               IVMRunner vmRunner = slcSystem.getVmInstall().getVMRunner(mode);\r
+               final VMRunnerConfiguration vmConfig;\r
+               if (pre093) {\r
+                       vmConfig = createPre093Config(slcSystem, file, mode);\r
+               } else {\r
+                       vmConfig = createConfig(slcSystem, file, mode, configuration);\r
+               }\r
+               vmRunner.run(vmConfig, launch, monitor);\r
+       }\r
+\r
+       protected SlcSystem findSlcSystem(IFile file, boolean pre093)\r
+                       throws CoreException {\r
+               SlcSystem slcSystem = null;\r
+\r
+               IProject project = file.getProject();\r
+               if (project.getNature("org.eclipse.jdt.core.javanature") != null) {\r
+                       IJavaProject javaProject = JavaCore.create(project);\r
+                       if (checkProjectForEmbedded(javaProject, pre093)) {\r
+                               slcSystem = new EmbeddedSlcSystem(javaProject);\r
+                       }\r
+               }\r
+\r
+               if (slcSystem == null) {\r
+                       String slcRuntimePath = SlcIdeUiPlugin.getDefault()\r
+                                       .getPreferenceStore().getString(\r
+                                                       SlcLaunchPreferencePage.PREF_SLC_RUNTIME_LOCATION);\r
+                       if (slcRuntimePath == null || slcRuntimePath.equals("")) {\r
+                               showError("SLC Runtime path is not set. Set it in Windows > Preferences > SLC");\r
+                               return null;\r
+                       }\r
+\r
+                       slcSystem = new DeployedSlcSystem(slcRuntimePath);\r
+               }\r
+\r
+               return slcSystem;\r
+       }\r
+\r
+       protected boolean checkProjectForEmbedded(IJavaProject project,\r
+                       boolean pre093) {\r
+               try {\r
+                       IType mainType = null;\r
+                       if (pre093)\r
+                               mainType = project.findType(ANT_MAIN);\r
+                       else\r
+                               mainType = project.findType(SLC_MAIN);\r
+\r
+                       if (mainType == null)\r
+                               return false;\r
+                       else\r
+                               return true;\r
+               } catch (JavaModelException e) {\r
+                       e.printStackTrace();\r
+                       return false;\r
+               }\r
+       }\r
+\r
+       // Regular SLC\r
+       protected VMRunnerConfiguration createConfig(SlcSystem deployedSlc,\r
+                       IFile file, String mode, ILaunchConfiguration configuration)\r
+                       throws CoreException {\r
+               VMRunnerConfiguration vmConfig = new VMRunnerConfiguration(SLC_MAIN,\r
+                               deployedSlc.getClasspath());\r
+               vmConfig.setVMArguments(getVmArguments(deployedSlc));\r
+               vmConfig.setWorkingDirectory(file.getLocation().toFile().getParent());\r
+               vmConfig.setProgramArguments(getProgramArguments(deployedSlc, file,\r
+                               mode, configuration));\r
+               return vmConfig;\r
+       }\r
+\r
+       protected String[] getVmArguments(SlcSystem deployedSlc) {\r
+               List<String> list = new Vector<String>();\r
+               if (deployedSlc.getJavaLibraryPath() != null)\r
+                       list.add("-Djava.library.path=" + deployedSlc.getJavaLibraryPath());\r
+               return list.toArray(new String[list.size()]);\r
+       }\r
+\r
+       protected String[] getProgramArguments(SlcSystem deployedSlc, IFile file,\r
+                       String mode, ILaunchConfiguration configuration)\r
+                       throws CoreException {\r
+               List<String> list = new Vector<String>();\r
+\r
+               list.add("--mode");\r
+               list.add("single");\r
+\r
+               // Script\r
+               list.add("--script");\r
+               list.add(file.getLocation().toFile().getAbsolutePath());\r
+\r
+               // Runtime\r
+               String runtime = configuration.getAttribute(\r
+                               SlcScriptUtils.ATTR_RUNTIME, "");\r
+               if (!runtime.equals("")) {\r
+                       list.add("--runtime");\r
+                       list.add(runtime);\r
+               }\r
+\r
+               // Targets\r
+               String targets = configuration.getAttribute(\r
+                               SlcScriptUtils.ATTR_TARGETS, "");\r
+               if (!targets.equals("")) {\r
+                       list.add("--targets");\r
+                       list.add(targets);\r
+               }\r
+\r
+               // Properties\r
+               Properties properties = new Properties();\r
+               String str = configuration.getAttribute(SlcScriptUtils.ATTR_PROPERTIES,\r
+                               "");\r
+               ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());\r
+               try {\r
+                       properties.load(in);\r
+               } catch (IOException e) {\r
+                       throw new RuntimeException("Cannot read properties", e);\r
+               } finally {\r
+                       if (in != null)\r
+                               try {\r
+                                       in.close();\r
+                               } catch (IOException e) {\r
+                                       // silent\r
+                               }\r
+               }\r
+\r
+               for (Object key : properties.keySet()) {\r
+                       list.add("-p");\r
+                       StringBuffer buf = new StringBuffer("");\r
+                       buf.append(key).append('=').append(properties.get(key));\r
+                       list.add(buf.toString());\r
+               }\r
+\r
+               // Debug mode\r
+               if (mode.equals(ILaunchManager.DEBUG_MODE)) {\r
+                       list.add("--property");\r
+                       list.add("log4j.logger.org.argeo.slc=DEBUG");\r
+               }\r
+               return list.toArray(new String[list.size()]);\r
+       }\r
+\r
+       // Pre SLC v0.9.3\r
+       protected VMRunnerConfiguration createPre093Config(SlcSystem deployedSlc,\r
+                       IFile file, String mode) throws CoreException {\r
+               VMRunnerConfiguration vmConfig = new VMRunnerConfiguration(ANT_MAIN,\r
+                               deployedSlc.getClasspath());\r
+               vmConfig.setVMArguments(getPre093VmArguments(deployedSlc));\r
+               vmConfig.setWorkingDirectory(file.getLocation().toFile().getParent());\r
+               vmConfig.setProgramArguments(getPre093ProgramArguments(deployedSlc,\r
+                               file, mode));\r
+               return vmConfig;\r
+       }\r
+\r
+       protected String[] getPre093VmArguments(SlcSystem deployedSlc) {\r
+               List<String> list = new Vector<String>();\r
+               // list.add("-Dant.home=" + deployedSlc.getAntHome());\r
+               if (deployedSlc.getJavaLibraryPath() != null)\r
+                       list.add("-Djava.library.path=" + deployedSlc.getJavaLibraryPath());\r
+               return list.toArray(new String[list.size()]);\r
+       }\r
+\r
+       protected String[] getPre093ProgramArguments(SlcSystem deployedSlc,\r
+                       IFile file, String mode) {\r
+               List<String> list = new Vector<String>();\r
+               list.add("-f");\r
+               list.add(file.getLocation().toFile().getAbsolutePath());\r
+               if (mode.equals(ILaunchManager.DEBUG_MODE)) {\r
+                       list.add("-d");\r
+               }\r
+               return list.toArray(new String[list.size()]);\r
+       }\r
+\r
+       // Utilities\r
+       private static void showError(String message) {\r
+               Shell shell = SlcIdeUiPlugin.getDefault().getWorkbench()\r
+                               .getActiveWorkbenchWindow().getShell();\r
+\r
+               IStatus status = new Status(IStatus.ERROR, SlcIdeUiPlugin.ID,\r
+                               message);\r
+               ErrorDialog.openError(shell, "Error", "Cannot launch SLC script",\r
+                               status);\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchShortcut.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchShortcut.java
new file mode 100644 (file)
index 0000000..dfb0044
--- /dev/null
@@ -0,0 +1,127 @@
+package org.argeo.slc.ide.ui.launch.script;\r
+\r
+import org.argeo.slc.ide.ui.SlcIdeUiPlugin;\r
+import org.eclipse.core.resources.IFile;\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.core.runtime.IPath;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.debug.core.DebugPlugin;\r
+import org.eclipse.debug.core.ILaunchConfiguration;\r
+import org.eclipse.debug.core.ILaunchConfigurationType;\r
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;\r
+import org.eclipse.debug.core.ILaunchManager;\r
+import org.eclipse.debug.ui.DebugUITools;\r
+import org.eclipse.debug.ui.IDebugUIConstants;\r
+import org.eclipse.debug.ui.ILaunchShortcut;\r
+import org.eclipse.jface.dialogs.ErrorDialog;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.swt.widgets.Shell;\r
+import org.eclipse.ui.IEditorPart;\r
+\r
+public class SlcScriptLaunchShortcut implements ILaunchShortcut {\r
+       private boolean showDialog = false;\r
+\r
+       public void launch(ISelection selection, String mode) {\r
+               try {\r
+                       if (!(selection instanceof IStructuredSelection)) {\r
+                               throw new RuntimeException("Unknown selection "\r
+                                               + selection.getClass());\r
+                       }\r
+                       IStructuredSelection sSelection = (IStructuredSelection) selection;\r
+                       if (sSelection.size() != 1) {\r
+                               throw new RuntimeException("Can only launch one SLC script.");\r
+                       }\r
+                       Object obj = sSelection.iterator().next();\r
+                       if (!(obj instanceof IFile)) {\r
+                               throw new RuntimeException("Can only launch files.");\r
+                       }\r
+                       IFile file = ((IFile) obj);\r
+\r
+                       ILaunchManager manager = DebugPlugin.getDefault()\r
+                                       .getLaunchManager();\r
+                       ILaunchConfigurationType type = manager\r
+                                       .getLaunchConfigurationType(SlcScriptLaunchDelegate.ID);\r
+\r
+                       // Find or create config\r
+                       String configLocation = SlcScriptUtils\r
+                                       .convertToWorkspaceLocation(file);\r
+                       ILaunchConfiguration config = findLaunchConfiguration(\r
+                                       configLocation, manager.getLaunchConfigurations(type));\r
+                       if (config == null) {\r
+                               ILaunchConfigurationWorkingCopy wc = type.newInstance(null,\r
+                                               generateName(file));\r
+                               wc.setAttribute(SlcScriptUtils.ATTR_SCRIPT, configLocation);\r
+                               wc.setMappedResources(new IFile[] { file });\r
+                               config = wc.doSave();\r
+                       }\r
+\r
+                       // Launch\r
+                       launch(config, mode);\r
+               } catch (CoreException e) {\r
+                       Shell shell = SlcIdeUiPlugin.getDefault().getWorkbench()\r
+                                       .getActiveWorkbenchWindow().getShell();\r
+                       ErrorDialog.openError(shell, "Error",\r
+                                       "Cannot execute SLC launch shortcut", e.getStatus());\r
+               }\r
+\r
+       }\r
+\r
+       protected String generateName(IFile file) {\r
+               IPath relativePath = file.getProjectRelativePath();\r
+               String name = relativePath.toString();\r
+               int idx = name.lastIndexOf(".xml");\r
+               if (idx > 0)\r
+                       name = name.substring(0, idx);\r
+\r
+               if (name.startsWith("src/main/slc/root/"))\r
+                       name = name.substring("src/main/slc/root/".length());\r
+               else if (name.startsWith("src/main/slc/"))\r
+                       name = name.substring("src/main/slc/".length());\r
+\r
+               name = name.replace('/', '.');// otherwise not properly saved\r
+               return name;\r
+       }\r
+\r
+       protected ILaunchConfiguration findLaunchConfiguration(\r
+                       String configLocation, ILaunchConfiguration[] configs)\r
+                       throws CoreException {\r
+               for (ILaunchConfiguration config : configs) {\r
+                       String loc = config.getAttribute(SlcScriptUtils.ATTR_SCRIPT, "");\r
+                       if (loc.equals(configLocation)) {\r
+                               return config;\r
+                       }\r
+               }\r
+               return null;\r
+       }\r
+\r
+       protected void launch(ILaunchConfiguration configuration, String mode)\r
+                       throws CoreException {\r
+               if (showDialog) {\r
+                       IStatus status = new Status(IStatus.INFO, SlcIdeUiPlugin.ID,\r
+                                       "Configure SLC Launch");\r
+                       String groupId;\r
+                       if (mode.equals(ILaunchManager.DEBUG_MODE)) {\r
+                               groupId = IDebugUIConstants.ID_DEBUG_LAUNCH_GROUP;\r
+                       } else {\r
+                               groupId = IDebugUIConstants.ID_RUN_LAUNCH_GROUP;\r
+                       }\r
+                       DebugUITools.openLaunchConfigurationDialog(SlcIdeUiPlugin\r
+                                       .getDefault().getWorkbench().getActiveWorkbenchWindow()\r
+                                       .getShell(), configuration, groupId, status);\r
+               } else {\r
+                       DebugUITools.launch(configuration, mode);\r
+               }\r
+\r
+       }\r
+\r
+       public void launch(IEditorPart editor, String mode) {\r
+               // not (yet) implemented\r
+       }\r
+\r
+       public void setShowDialog(boolean showDialog) {\r
+               this.showDialog = showDialog;\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchShortcutWithDialog.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptLaunchShortcutWithDialog.java
new file mode 100644 (file)
index 0000000..9e8dd3e
--- /dev/null
@@ -0,0 +1,11 @@
+package org.argeo.slc.ide.ui.launch.script;\r
+\r
+\r
+public class SlcScriptLaunchShortcutWithDialog extends SlcScriptLaunchShortcut {\r
+\r
+       public SlcScriptLaunchShortcutWithDialog() {\r
+               super();\r
+               setShowDialog(true);\r
+       }\r
+\r
+}\r
diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptUtils.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/script/SlcScriptUtils.java
new file mode 100644 (file)
index 0000000..9a5bc42
--- /dev/null
@@ -0,0 +1,23 @@
+package org.argeo.slc.ide.ui.launch.script;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.variables.VariablesPlugin;
+
+public class SlcScriptUtils {
+
+       public final static String ATTR_SCRIPT = "script";
+       public final static String ATTR_PROPERTIES = "properties";
+       public final static String ATTR_RUNTIME = "runtime";
+       public final static String ATTR_TARGETS = "targets";
+       public final static String ATTR_PRE093 = "pre093";
+
+       public static String convertToWorkspaceLocation(IResource resource) {
+               return VariablesPlugin.getDefault().getStringVariableManager()
+                               .generateVariableExpression("workspace_loc",
+                                               resource.getFullPath().toString());
+       }
+
+       private SlcScriptUtils() {
+
+       }
+}