Kaynağa Gözat

6.0.1.2 release

David Benson 8 yıl önce
ebeveyn
işleme
f8a1e09dd8
57 değiştirilmiş dosya ile 30568 ekleme ve 31240 silme
  1. 5 0
      ChangeLog
  2. 1 1
      VERSION
  3. 3 0
      etc/build/build.xml
  4. 4 39
      src/com/mxgraph/online/EmbedServlet2.java
  5. 1 1
      war/WEB-INF/appengine-web.xml
  6. 1 1
      war/cache.manifest
  7. BIN
      war/images/sidebar-electrical.png
  8. 1160 1094
      war/js/app.min.js
  9. 815 771
      war/js/atlas-viewer.min.js
  10. 846 779
      war/js/atlas.min.js
  11. 60 1620
      war/js/diagramly/App.js
  12. 1 2
      war/js/diagramly/Devel.js
  13. 1 0
      war/js/diagramly/Dialogs.js
  14. 1041 0
      war/js/diagramly/Editor.js
  15. 1697 1162
      war/js/diagramly/EditorUi.js
  16. 3 0
      war/js/diagramly/Init.js
  17. 12 1
      war/js/diagramly/Pages.js
  18. 386 28
      war/js/diagramly/sidebar/Sidebar-Electrical.js
  19. 7 3
      war/js/diagramly/sidebar/Sidebar.js
  20. 0 60
      war/js/diagramly/vsdx/mxVsdxModel.js
  21. 11 11
      war/js/embed-static.min.js
  22. 7 0
      war/js/mxgraph/Actions.js
  23. 45 32
      war/js/mxgraph/Dialogs.js
  24. 1 1
      war/js/mxgraph/EditorUi.js
  25. 4 4
      war/js/mxgraph/Graph.js
  26. 3 3
      war/js/mxgraph/Menus.js
  27. 11 11
      war/js/reader.min.js
  28. 20 1
      war/js/shapes.min.js
  29. 830 785
      war/js/viewer.min.js
  30. 19 6
      war/plugins/find.js
  31. 467 0
      war/shapes/mxElectrical.js
  32. 12067 12926
      war/stencils.xml
  33. 381 622
      war/stencils/electrical/abstract.xml
  34. 298 647
      war/stencils/electrical/capacitors.xml
  35. 171 300
      war/stencils/electrical/diodes.xml
  36. 1668 511
      war/stencils/electrical/electro-mechanical.xml
  37. 603 1074
      war/stencils/electrical/iec417.xml
  38. 44 80
      war/stencils/electrical/iec_logic_gates.xml
  39. 992 625
      war/stencils/electrical/inductors.xml
  40. 59 71
      war/stencils/electrical/instruments.xml
  41. 393 662
      war/stencils/electrical/logic_gates.xml
  42. 1648 585
      war/stencils/electrical/miscellaneous.xml
  43. 463 928
      war/stencils/electrical/mosfets1.xml
  44. 410 807
      war/stencils/electrical/mosfets2.xml
  45. 259 497
      war/stencils/electrical/op_amps.xml
  46. 653 982
      war/stencils/electrical/opto_electronics.xml
  47. 59 126
      war/stencils/electrical/plc_ladder.xml
  48. 392 757
      war/stencils/electrical/power_semiconductors.xml
  49. 267 381
      war/stencils/electrical/radio.xml
  50. 616 754
      war/stencils/electrical/resistors.xml
  51. 367 0
      war/stencils/electrical/rot_mech.xml
  52. 413 436
      war/stencils/electrical/signal_sources.xml
  53. 174 360
      war/stencils/electrical/thermionic_devices.xml
  54. 255 447
      war/stencils/electrical/transistors.xml
  55. 297 0
      war/stencils/electrical/transmission.xml
  56. 155 244
      war/stencils/electrical/waveforms.xml
  57. 2 2
      war/styles/grapheditor.css

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+07-NOV-2016: 6.0.1.2
+
+- Adds new electrical shapes
+- Minor improvements for find plugin
+
 04-NOV-2016: 6.0.1.1
 
 - Adds consistent location for insert and sidebar

+ 1 - 1
VERSION

@@ -1 +1 @@
-6.0.1.1
+6.0.1.2

+ 3 - 0
etc/build/build.xml

@@ -155,6 +155,7 @@
 			<sources dir="${war.dir}/js/diagramly">
 				<file name="DrawioFile.js" />
 				<file name="LocalFile.js" />
+				<file name="Editor.js" />
 				<file name="EditorUi.js" />
 				<file name="Pages.js" />
 			</sources>
@@ -243,6 +244,7 @@
 				<file name="StorageFile.js" />
 				<file name="StorageLibrary.js" />
 				<file name="Dialogs.js" />
+				<file name="Editor.js" />
 				<file name="EditorUi.js" />
 				<file name="Settings.js" />
 				<file name="App.js" />
@@ -302,6 +304,7 @@
 				<file name="StorageFile.js" />
 				<file name="StorageLibrary.js" />
 				<file name="Dialogs.js" />
+				<file name="Editor.js" />
 				<file name="EditorUi.js" />
 				<file name="Settings.js" />
 			</sources>

+ 4 - 39
src/com/mxgraph/online/EmbedServlet2.java

@@ -123,45 +123,10 @@ public class EmbedServlet2 extends HttpServlet
 				new String[] { SHAPES_PATH + "/ios7/mxIOS7Ui.js",
 						STENCIL_PATH + "/ios7/misc.xml" });
 		libraries.put("android", new String[] { SHAPES_PATH + "/mxAndroid.js",
-				STENCIL_PATH + "/android/android.xml" });
-		libraries.put("eeLogicGates",
-				new String[] { STENCIL_PATH + "/electrical/logic_gates.xml" });
-		libraries.put("eeResistors",
-				new String[] { STENCIL_PATH + "/electrical/resistors.xml" });
-		libraries.put("eeCapacitors",
-				new String[] { STENCIL_PATH + "/electrical/capacitors.xml" });
-		libraries.put("eeInductors",
-				new String[] { STENCIL_PATH + "/electrical/inductors.xml" });
-		libraries.put("eeSwitchesRelays",
-				new String[] { STENCIL_PATH + "/electrical/switchesRelays.xml",
-						STENCIL_PATH + "/electrical/electro-mechanical.xml" });
-		libraries.put("eeDiodes",
-				new String[] { STENCIL_PATH + "/electrical/diodes.xml" });
-		libraries.put("eeSources", new String[] {
-				STENCIL_PATH + "/electrical/signal_sources.xml" });
-		libraries.put("eeTransistors",
-				new String[] { STENCIL_PATH + "/electrical/mosfets1.xml",
-						STENCIL_PATH + "/electrical/mosfets2.xml",
-						STENCIL_PATH + "/electrical/transistors.xml" });
-		libraries.put("eeMisc",
-				new String[] {
-						STENCIL_PATH + "/electrical/electro-mechanical.xml",
-						STENCIL_PATH + "/electrical/miscellaneous.xml" });
-		libraries.put("eeAudio",
-				new String[] { STENCIL_PATH + "/electrical/radio.xml" });
-		libraries.put("eePlcLadder",
-				new String[] { STENCIL_PATH + "/electrical/plc_ladder.xml" });
-		libraries.put("eeAbstract",
-				new String[] { STENCIL_PATH + "/electrical/abstract.xml",
-						STENCIL_PATH + "/electrical/logic_gates.xml" });
-		libraries.put("eeOptical", new String[] {
-				STENCIL_PATH + "/electrical/opto_electronics.xml" });
-		libraries.put("eeVacuumTubes",
-				new String[] { STENCIL_PATH + "/electrical/vacuum_tubes.xml" });
-		libraries.put("eeWaveforms",
-				new String[] { STENCIL_PATH + "/electrical/waveforms.xml" });
-		libraries.put("eeInstruments",
-				new String[] { STENCIL_PATH + "/electrical/instruments.xml" });
+				STENCIL_PATH + "electrical/transmission" });
+		libraries.put("electrical/transmission",
+				new String[] { SHAPES_PATH + "/mxElectrical.js",
+						STENCIL_PATH + "/electrical/transmission.xml" });
 		libraries.put("mockup/buttons",
 				new String[] { SHAPES_PATH + "/mockup/mxMockupButtons.js" });
 		libraries.put("mockup/containers",

+ 1 - 1
war/WEB-INF/appengine-web.xml

@@ -2,7 +2,7 @@
 <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
 	<application>drawdotio</application>
 	<!-- IMPORTANT! DO NOT CHANGE THIS VALUE IN SOURCE CONTROL! -->
-	<version>6-0-1-1</version>
+	<version>test</version>
 	
 	<!-- Configure java.util.logging -->
 	<system-properties>

+ 1 - 1
war/cache.manifest

@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 11/04/2016 04:13 PM
+# 11/07/2016 11:21 AM
 
 /app.html
 /index.html?offline=1

BIN
war/images/sidebar-electrical.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1160 - 1094
war/js/app.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 815 - 771
war/js/atlas-viewer.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 846 - 779
war/js/atlas.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 60 - 1620
war/js/diagramly/App.js


+ 1 - 2
war/js/diagramly/Devel.js

@@ -77,6 +77,7 @@ mxscript(drawDevUrl + 'js/diagramly/OneDriveClient.js');
 mxscript(drawDevUrl + 'js/diagramly/OneDriveFile.js');
 mxscript(drawDevUrl + 'js/diagramly/OneDriveLibrary.js');
 mxscript(drawDevUrl + 'js/diagramly/Dialogs.js');
+mxscript(drawDevUrl + 'js/diagramly/Editor.js');
 mxscript(drawDevUrl + 'js/diagramly/EditorUi.js');
 mxscript(drawDevUrl + 'js/diagramly/Settings.js');
 mxscript(drawDevUrl + 'js/diagramly/App.js');
@@ -87,5 +88,3 @@ mxscript(drawDevUrl + 'js/diagramly/Pages.js');
 
 mxscript(drawDevUrl + 'js/diagramly/util/mxJsCanvas.js');
 mxscript(drawDevUrl + 'js/diagramly/util/mxAsyncCanvas.js');
-
-mxscript(drawDevUrl + 'js/diagramly/vsdx/mxVsdxModel.js');

+ 1 - 0
war/js/diagramly/Dialogs.js

@@ -2450,6 +2450,7 @@ var CreateGraphDialog = function(editorUi, title, type)
 			var pt = editorUi.editor.graph.getFreeInsertPoint();
 			var cells = editorUi.editor.graph.importCells(
 				graph.getModel().getChildren(graph.getDefaultParent()), pt.x, pt.y);
+			var view = editorUi.editor.graph.view;
 			var temp = view.getBounds(cells);
 			temp.x -= view.translate.x;
 			temp.y -= view.translate.y;

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1041 - 0
war/js/diagramly/Editor.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1697 - 1162
war/js/diagramly/EditorUi.js


+ 3 - 0
war/js/diagramly/Init.js

@@ -4,6 +4,9 @@ window.urlParams = window.urlParams || {};
 // isLocalStorage controls access to local storage
 window.isLocalStorage = window.isLocalStorage || false;
 
+// Checks for SVG support
+window.isSvgBrowser = window.isSvgBrowser || (navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 9);
+
 // CUSTOM_PARAMETERS - URLs for save and export
 window.EXPORT_URL = window.EXPORT_URL || 'https://exp.draw.io/ImageExport4/export';
 window.SAVE_URL = window.SAVE_URL || 'save';

+ 12 - 1
war/js/diagramly/Pages.js

@@ -132,7 +132,9 @@ function SelectPage(ui, page)
  */
 SelectPage.prototype.execute = function()
 {
-	if (this.page != null && mxUtils.indexOf(this.ui.pages, this.previousPage) >= 0)
+	var prevIndex = mxUtils.indexOf(this.ui.pages, this.previousPage);
+	
+	if (this.page != null && prevIndex >= 0)
 	{
 		var page = this.ui.currentPage;
 		var editor = this.ui.editor;
@@ -144,6 +146,12 @@ SelectPage.prototype.execute = function()
 		page.viewState = graph.getViewState();
 		page.root = graph.model.root;
 		
+		// Transitions for switching pages
+//		var curIndex = mxUtils.indexOf(this.ui.pages, page);
+//		mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transition', null);
+//		mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transform',
+//			(curIndex > prevIndex) ? 'translate(-50%,0)' : 'translate(50%,0)');
+		
 		// Removes the previous cells and clears selection
 		graph.view.clear(page.root, true);
 		graph.clearSelection();
@@ -169,6 +177,9 @@ SelectPage.prototype.execute = function()
 		graph.view.validate();
 		graph.sizeDidChange();
 		
+//		mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transition', 'transform 0.2s');
+//		mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transform', 'translate(0,0)');
+		
 		if (this.neverShown)
 		{
 			this.neverShown = false;

+ 386 - 28
war/js/diagramly/sidebar/Sidebar-Electrical.js

@@ -23,6 +23,8 @@
 		var mew = s + '=mxgraph.electrical.waveforms.';
 		var mein = 'perimeter=ellipsePerimeter;' + s + '=mxgraph.electrical.instruments.';
 		var meiecl = s + '=mxgraph.electrical.iec_logic_gates.';
+		var merm = s + '=mxgraph.electrical.rot_mech.';
+		var metr = s + '=mxgraph.electrical.transmission.';
 		var gnmel = 'mxgraph.electrical.logic_gates';
 		var dtmel = 'electrical logic gate ';
 		var gnmeiecl = 'mxgraph.electrical.iec_logic_gates';
@@ -57,8 +59,12 @@
 		var dtmetd = 'electrical thermionic thermo device vacuum tube ';
 		var gnmew = 'mxgraph.electrical.waveforms';
 		var dtmew = 'electrical waveform signal ';
+		var gnmerm = 'mxgraph.electrical.rot_mech';
+		var dtmerm = 'electrical rotating equipment mechanical function functions';
+		var gnmetr = 'mxgraph.electrical.transmission';
+		var dtmetr = 'electrical transmission paths bus buses';
 
-		this.addPaletteFunctions('eeLogicGates', 'Electrical / Logic Gates', false,
+		this.addPaletteFunctions('electrical\LogicGates', 'Electrical / Logic Gates', false,
 		[
 			this.createVertexTemplateEntry(mel + 'and;', 100, 60, '', 'AND', null, null, this.getTagsForStencil(gnmel, 'and', dtmel).join(' ')),
 			this.createVertexTemplateEntry(mel + 'buffer;', 100, 60, '', 'Buffer', null, null, this.getTagsForStencil(gnmel, 'buffer', dtmel).join(' ')),
@@ -87,7 +93,7 @@
 			this.createVertexTemplateEntry(meiecl + 'xor;', 60, 80, '', 'XOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeResistors', 'Electrical / Resistors', false,
+		this.addPaletteFunctions('electrical\Resistors', 'Electrical / Resistors', false,
 		[
 			this.createVertexTemplateEntry(mere + 'resistor_1;', 
 					100, 20, '', 'Resistor', null, null, this.getTagsForStencil(gnmere, 'resistor_1', dtmere).join(' ')),
@@ -111,6 +117,8 @@
 					100, 60, '', 'Resistor (Variable)', null, null, this.getTagsForStencil(gnmere, 'variable_resistor_2', dtmere).join(' ')),
 			this.createVertexTemplateEntry(mere + 'resistor_with_instrument_or_relay_shunt;', 
 					100, 20, '', 'Resistor (Instrument/Relay Shunt)', null, null, this.getTagsForStencil(gnmere, 'resistor_with_instrument_or_relay_shunt', dtmere).join(' ')),
+			this.createVertexTemplateEntry(mere + 'attenuator;', 
+					100, 60, '', 'Attenuator', null, null, this.getTagsForStencil(gnmere, 'attenuator', dtmere).join(' ')),
 			this.createVertexTemplateEntry(mere + 'resistor,_adjustable_contact;', 
 					100, 40, '', 'Resistor (Adjustable Contact)', null, null, this.getTagsForStencil(gnmere, 'resistor,_adjustable_contact', dtmere).join(' ')),
 			this.createVertexTemplateEntry(mere + 'resistor,_shunt;', 
@@ -131,7 +139,7 @@
 					100, 40, '', 'Photoconductive Transducer (Symmetrical)', null, null, this.getTagsForStencil(gnmere, 'symmetrical_photoconductive_transducer', dtmere).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eeCapacitors', 'Electrical / Capacitors', false,
+		this.addPaletteFunctions('electrical\Capacitors', 'Electrical / Capacitors', false,
 		[
 			this.createVertexTemplateEntry(mec + 'capacitor_1;', 
 					100, 60, '', 'Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_1', dtmec).join(' ')),
@@ -167,7 +175,7 @@
 					100, 130, '', 'Multiple Electrolytic Capacitor (Common Positive)', null, null, this.getTagsForStencil(gnmec, 'multiple_electrolytic_capacitor_comm_pos', dtmec).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeInductors', 'Electrical / Inductors', false,
+		this.addPaletteFunctions('electrical\Inductors', 'Electrical / Inductors', false,
 		[
 			this.createVertexTemplateEntry(mei + 'inductor_3;', 
 					100, 8, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_3', dtmei).join(' ')),
@@ -181,31 +189,169 @@
 					64, 4, '', 'Ferrite Core', null, null, this.getTagsForStencil(gnmei, 'ferrite_core', dtmei).join(' ')),
 			this.createVertexTemplateEntry(mei + 'iron_core;', 
 					64, 4, '', 'Iron Core', null, null, this.getTagsForStencil(gnmei, 'iron_core', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'magnetic_core;direction=north;', 
+					64, 3, '', 'Magnetic Core', null, null, this.getTagsForStencil(gnmei, 'magnetic core', dtmei).join(' ')),
 			this.createVertexTemplateEntry(mei + 'transformer_1;', 
 					64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_1', dtmei).join(' ')),
 			this.createVertexTemplateEntry(mei + 'transformer_2;', 
-					64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_2', dtmei).join(' '))
+					64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_2', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'half_inductor;', 
+					32, 23, '', 'Half Inductor', null, null, this.getTagsForStencil(gnmei, 'half inductor', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'transformer;direction=north;', 
+					64, 64, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, 'transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'inductor;', 
+					100, 42, '', 'Inductor', null, null, this.getTagsForStencil(gnmei, 'inductor', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'choke;', 
+					100, 200, '', 'Choke', null, null, this.getTagsForStencil(gnmei, 'choke', dtmei).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.inductors.variometer;', 
+					150, 88, '', 'Variometer', null, null, this.getTagsForStencil(gnmei, 'variometer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'coaxial_choke;', 
+					300, 50, '', 'Coaxial Choke', null, null, this.getTagsForStencil(gnmei, 'coaxial choke', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'transductor;', 
+					200, 100, '', 'Transductor', null, null, this.getTagsForStencil(gnmei, 'transductor', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'saturating_transformer;', 
+					200, 150, '', 'Saturating Transformer', null, null, this.getTagsForStencil(gnmei, 'saturating_transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'potential_transformer_2;', 
+					92, 40, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'pot_trans_3_windings;', 
+					67, 96, '', 'Pot. Trans. 3 Windings', null, null, this.getTagsForStencil(gnmei, 'potential transformer 3 three windings', dtmei).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.signal_sources.current_source;', 
+					40, 60, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, '', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'adjustable_transformer;', 
+					46, 60, '', 'Adjustable Transformer', null, null, this.getTagsForStencil(gnmei, 'adjustable_transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + '1_phase_induction_volt_reg;', 
+					100, 100, '', '1-Phase Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, '1 phase induction voltage regulator monophase', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'triplex_induction_volt_reg;', 
+					100, 100, '', 'Triplex Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'triplex induction voltage regulator', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'induction_voltage_regulator;', 
+					160, 210, '', 'Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'induction voltage regulator', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'current_transformer_1;', 
+					12, 75, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'current_transformer_2;', 
+					125, 175, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'current_transformer_3;', 
+					75, 10, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'potential_transformer;', 
+					100, 50, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'outdoor_metering_device;', 
+					100, 100, '', 'Outdoor Metering Device', null, null, this.getTagsForStencil(gnmei, 'outdoor metering device', dtmei).join(' ')),
+			this.createVertexTemplateEntry(mei + 'linear_coupler;', 
+					80, 20, '', 'Linear Coupler', null, null, this.getTagsForStencil(gnmei, 'linear coupler', dtmei).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeSwitchesRelays', 'Electrical / Switches and Relays', false,
+		this.addPaletteFunctions('electrical\SwitchesRelays', 'Electrical / Switches and Relays', false,
 		[
 			this.createVertexTemplateEntry(meem + '2-way_switch;', 
-					75, 26, '', 'SPDT', null, null, this.getTagsForStencil(gnmeem, '2-way_switch', dtmeem).join(' ')),
+					75, 26, '', 'SPDT', null, null, this.getTagsForStencil(gnmeem, '2-way switch', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(meem + 'push_switch_nc;', 
-					75, 10, '', 'Pushbutton NC', null, null, this.getTagsForStencil(gnmeem, 'push_switch_nc', dtmeem).join(' ')),
+					75, 10, '', 'Pushbutton NC', null, null, this.getTagsForStencil(gnmeem, 'push switch nc', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(meem + 'push_switch_no;', 
-					75, 19, '', 'Pushbutton NO', null, null, this.getTagsForStencil(gnmeem, 'push_switch_no', dtmeem).join(' ')),
+					75, 19, '', 'Pushbutton NO', null, null, this.getTagsForStencil(gnmeem, 'push switch no', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'simple_switch;', 
+					75, 19, '', 'SPST', null, null, this.getTagsForStencil(gnmeem, 'simple switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'switch_disconnector;', 
+					75, 19, '', 'Switch Disconnector', null, null, this.getTagsForStencil(gnmeem, 'switch disconnector', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'fuse;', 
+					75, 16, '', 'Fuse', null, null, this.getTagsForStencil(gnmeem, 'fuse', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'liquid_level_actuated;', 
+					75, 28, '', 'Liquid Level Actuated', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'liquid_level_actuated_2;', 
+					75, 32, '', 'Liquid Level Actuated', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'gas_flow_actuated;', 
+					75, 32, '', 'Gas Flow Actuated', null, null, this.getTagsForStencil(gnmeem, 'gas flow actuated', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'flow_actuated;', 
+					75, 31, '', 'Flow Actuated', null, null, this.getTagsForStencil(gnmeem, 'flow actuated', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'pressure_actuated;', 
+					75, 31, '', 'Pressure Actuated', null, null, this.getTagsForStencil(gnmeem, 'pressure actuated', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'temperature_actuated;', 
+					75, 31, '', 'Temperature Actuated', null, null, this.getTagsForStencil(gnmeem, 'temperature actuated', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'safety_interlock;', 
+					75, 37, '', 'Safety Interlock', null, null, this.getTagsForStencil(gnmeem, 'safety interlock', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'temperature_switch;', 
+					75, 18, '', 'Temperature Switch', null, null, this.getTagsForStencil(gnmeem, 'temperature switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.electro-mechanical.thermostat;fontColor=#000000;fontSize=10;', 
+					75, 7, 'tº', 'Thermostat', null, null, this.getTagsForStencil(gnmeem, 'thermostat', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'limit_switch;', 
+					75, 16, '', 'Limit Switch', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'circuit_breaker;', 
+					75, 20, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmeem, 'circuit breaker', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'selector_switch;', 
+					75, 66, '', 'Selector Switch', null, null, this.getTagsForStencil(gnmeem, 'selector_switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'shorting_selector;', 
+					60, 66, '', 'Shorting Selector', null, null, this.getTagsForStencil(gnmeem, 'shorting selector', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'proximity_limit_switch;', 
+					75, 55, '', 'Proximity Limit Switch', null, null, this.getTagsForStencil(gnmeem, 'proximity limit switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'inertia_switch;', 
+					75, 19, '', 'Inertia Switch', null, null, this.getTagsForStencil(gnmeem, 'inertia switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'pushbutton_break;', 
+					75, 54, '', 'Pushbutton Break', null, null, this.getTagsForStencil(gnmeem, 'pushbutton break', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'manual_switch;', 
+					75, 18, '', 'Manual Switch', null, null, this.getTagsForStencil(gnmeem, 'manual switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'make_contact;', 
+					75, 16, '', 'Make Contact', null, null, this.getTagsForStencil(gnmeem, 'make contact', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'break_contact;', 
+					75, 10, '', 'Break Contact', null, null, this.getTagsForStencil(gnmeem, 'break contact', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'two_way_contact;', 
+					75, 30, '', 'Two Way Contact', null, null, this.getTagsForStencil(gnmeem, 'two way contact', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'passing_make_contact;', 
+					75, 23, '', 'Passing Make-Contact', null, null, this.getTagsForStencil(gnmeem, 'passing make contact', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'stay_put;', 
+					75, 7, '', 'Stay Put', null, null, this.getTagsForStencil(gnmeem, 'stay put', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'dpst;', 
+					75, 26, '', 'DPST', null, null, this.getTagsForStencil(gnmeem, 'dpst', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'spring_return;', 
+					75, 10, '', 'Spring Return', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'spring_return_2;', 
+					75, 19, '', 'Spring Return', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'limit_switch_no;', 
+					75, 24, '', 'Limit Switch NO', null, null, this.getTagsForStencil(gnmeem, 'limit switch no normally open', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'limit_switch_nc;', 
+					75, 13, '', 'Limit Switch NC', null, null, this.getTagsForStencil(gnmeem, 'limit switch nc normally closed', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'dpdt;', 
+					75, 32, '', 'DPDT', null, null, this.getTagsForStencil(gnmeem, 'dpdt', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + '2_position_switch;', 
+					75, 70, '', '2-Position Switch', null, null, this.getTagsForStencil(gnmeem, '2 position switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + '3_position_switch;', 
+					60, 60, '', '3-Position Switch', null, null, this.getTagsForStencil(gnmeem, '3 position switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + '4_position_switch;', 
+					75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'pushbutton_make;', 
+					75, 53, '', 'Pushbutton Make', null, null, this.getTagsForStencil(gnmeem, 'pushbutton make', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'pushbutton_2_circuit;', 
+					75, 73, '', 'Pushbutton 2-Circuit', null, null, this.getTagsForStencil(gnmeem, 'pushbutton 2 circuit', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'time_delay_make;', 
+					75, 31, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'time_delay_break;', 
+					75, 32, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'time_delay_make_2;', 
+					75, 36, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'time_delay_break_2;', 
+					75, 30, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'isolator;', 
+					75, 20, '', 'Isolator', null, null, this.getTagsForStencil(gnmeem, 'isolator', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'changeover_contact;', 
+					75, 20, '', 'Changeover Contact', null, null, this.getTagsForStencil(gnmeem, 'changeover contact', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(meem + 'reed_switch;', 
-					75, 20, '', 'Reed Switch', null, null, this.getTagsForStencil(gnmeem, 'reed_switch', dtmeem).join(' ')),
+					75, 20, '', 'Reed Switch', null, null, this.getTagsForStencil(gnmeem, 'reed switch', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(meem + 'relay_coil;', 
-					70, 35, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay_coil', dtmeem).join(' ')),
+					70, 35, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'relay;', 
+					100, 50, '', 'Relay', null, null, this.getTagsForStencil(gnmeem, 'relay', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'relay_contacts;', 
+					30, 24, '', 'Relay Contacts', null, null, this.getTagsForStencil(gnmeem, 'relay contacts', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(meem + 'resonator;', 
 					100, 50, '', 'Resonator', null, null, this.getTagsForStencil(gnmeem, 'resonator', dtmeem).join(' ')),
-			this.createVertexTemplateEntry(meem + 'simple_switch;', 
-					75, 32, '', 'SPST', null, null, this.getTagsForStencil(gnmeem, 'simple_switch', dtmeem).join(' '))
+			this.createVertexTemplateEntry(meem + 'pilot_light;', 
+					100, 100, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmeem, 'pilot light', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'relay_coil_2;', 
+					100, 70, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'mercury_switch;', 
+					80, 80, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' ')),
+			this.createVertexTemplateEntry(meem + 'mercury_switch_2;', 
+					50, 90, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeDiodes', 'Electrical / Diodes', false,
+		this.addPaletteFunctions('electrical\Diodes', 'Electrical / Diodes', false,
 		[
 			this.createVertexTemplateEntry(med + 'diode;', 
 					100, 60, '', 'PN Diode', null, null, this.getTagsForStencil(gnmed, 'diode', dtmed).join(' ')),
@@ -235,7 +381,7 @@
 					100, 60, '', 'Transorb 2', null, null, this.getTagsForStencil(gnmed, 'transorb_2', dtmed).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eeSources', 'Electrical / Sources', false,
+		this.addPaletteFunctions('electrical\Sources', 'Electrical / Sources', false,
 		[
 			this.createVertexTemplateEntry(mess + 'ac_source;', 
 					60, 60, '', 'AC', null, null, this.getTagsForStencil(gnmess, 'ac_source', dtmess).join(' ')),
@@ -254,10 +400,20 @@
 			this.createVertexTemplateEntry(mess + 'dependent_source_3;', 
 					60, 60, '', 'Dependent', null, null, this.getTagsForStencil(gnmess, 'dependent_source_3', dtmess).join(' ')),
 			this.createVertexTemplateEntry(mess + 'noise_source;', 
-					60, 60, '', 'Noise', null, null, this.getTagsForStencil(gnmess, 'noise_source', dtmess).join(' '))
+					60, 60, '', 'Noise', null, null, this.getTagsForStencil(gnmess, 'noise_source', dtmess).join(' ')),
+			this.createVertexTemplateEntry(mess + 'ideal_source;', 
+					60, 60, '', 'Ideal Source', null, null, this.getTagsForStencil(gnmess, 'ideal source', dtmess).join(' ')),
+			this.createVertexTemplateEntry(mess + 'explosive_squib', 
+					60, 60, '', 'Explosive Squib', null, null, this.getTagsForStencil(gnmess, 'explosive squib', dtmem).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.monocell_battery;', 
+					100, 60, '', 'Accumulator / Monocell Battery', null, null, this.getTagsForStencil(gnmess, 'accumulator monocell battery single cell', dtmem).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery;', 
+					100, 60, '', 'Multicell Battery', null, null, this.getTagsForStencil(gnmess, 'accumulator multicell battery multi multiple cell', dtmem).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery_tapped;', 
+					100, 70, '', 'Multicell Battery Tapped', null, null, this.getTagsForStencil(gnmess, 'accumulator multicell battery tapped multi multiple cell', dtmem).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eeTransistors', 'Electrical / Transistors', false,
+		this.addPaletteFunctions('electrical\Transistors', 'Electrical / Transistors', false,
 		[
 			this.createVertexTemplateEntry(met + 'npn_transistor_1;', 
 					95, 100, '', 'BJT (NPN)', null, null, this.getTagsForStencil(gnmet, 'npn_transistor_1', dtmet).join(' ')),
@@ -287,7 +443,7 @@
 					95, 100, '', 'Dual Gate MOSFET (P)', null, null, this.getTagsForStencil(gnmet, 'dual_gate_mosfet_p', dtmet).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeInstruments', 'Electrical / Instruments', false,
+		this.addPaletteFunctions('electrical\Instruments', 'Electrical / Instruments', false,
 		[
 			this.createVertexTemplateEntry(mein + 'ampermeter;', 
 					90, 90, '', 'Ampermeter', null, null, this.getTagsForStencil(gnmein, 'ampermeter', dtmein).join(' ')),
@@ -301,7 +457,7 @@
 					90, 90, '', 'Voltmeter', null, null, this.getTagsForStencil(gnmein, 'voltmeter', dtmein).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeMisc', 'Electrical / Misc', false,
+		this.addPaletteFunctions('electrical\Misc', 'Electrical / Misc', false,
 		[
 			this.createVertexTemplateEntry(mer + 'aerial_-_antenna_1;', 
 					80, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_1', dtmer).join(' ')),
@@ -309,6 +465,8 @@
 					79, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_2', dtmer).join(' ')),
 			this.createVertexTemplateEntry(mer + 'loop_antenna;', 
 					64.8, 69.78, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmer, 'loop_antenna', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'loop_antenna', 
+					100, 100, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmess, 'loop antenna', dtmem).join(' ')),
 			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_1;html=1;shadow=0;dashed=0;fillColor=#ffffff;align=center;fontSize=30;strokeColor=#000000;strokeWidth=1;', 
 					100, 60, 'M', 'Electrical Motor', null, null, this.getTagsForStencil(gnmeem, 'motor_1', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_2;html=1;shadow=0;dashed=0;fillColor=#ffffff;align=center;fontSize=30;strokeColor=#000000;strokeWidth=1;', 
@@ -333,6 +491,10 @@
 					60, 50, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmem, 'light_bulb', dtmem).join(' ')),
 			this.createVertexTemplateEntry(mem + 'neon_lamp_2;', 
 					60, 50, '', 'Neon Lamp', null, null, this.getTagsForStencil(gnmem, 'neon_lamp_2', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'flourescent_lamp', 
+					80, 30, '', 'Flourescent Lamp', null, null, this.getTagsForStencil(gnmess, 'flourescent lamp', dtmem).join(' ')),
+			this.createVertexTemplateEntry(meoe + 'lamp', 
+					50, 100, '', 'Lamp', null, null, this.getTagsForStencil(gnmess, 'lamp', dtmeoe).join(' ')),
 			this.createVertexTemplateEntry(mem + 'thermocouple;', 
 					80, 81, '', 'Thermocouple', null, null, this.getTagsForStencil(gnmem, 'thermocouple', dtmem).join(' ')),
 			this.createVertexTemplateEntry(mea + 'amplifier;', 
@@ -379,7 +541,7 @@
 					52, 46, '', 'Highpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'highpass_filter', '').join(' ')),
 			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.lowpass_filter;', 
 					52, 46, '', 'Lowpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'lowpass_filter', '').join(' ')),
-			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;align=center;overflow=fill;', 
+			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;align=center;overflow=fill;fontSize=12;', 
 					100, 94.25, 
 					'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;">' +
 					'<tr height="45%">' +
@@ -407,12 +569,104 @@
 			this.createVertexTemplateEntry(mess + 'equipotential;', 
 					90, 90, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'equipotential', dtmess).join(' ')),
 			this.createVertexTemplateEntry(mess + 'protective_earth;', 
-					50, 40, '', 'Protective Earth', null, null, this.getTagsForStencil(gnmess, 'protective_earth', dtmess).join(' ')),
+					25, 20, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'protective_earth', dtmess).join(' ')),
 			this.createVertexTemplateEntry(mess + 'signal_ground;', 
-					90, 60, '', 'Signal Ground', null, null, this.getTagsForStencil(gnmess, 'signal_ground', dtmess).join(' '))
+					45, 30, '', 'Ground', null, null, this.getTagsForStencil(gnmess, 'signal_ground', dtmess).join(' ')),
+			this.createVertexTemplateEntry(mem + 'chassis;', 
+					65, 32, '', 'Chassis', null, null, this.getTagsForStencil(gnmess, 'chassis', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'circuit_breaker;', 
+					100, 13, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmess, 'circuit breaker', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'generic_component', 
+					60, 60, '', 'Generic Component', null, null, this.getTagsForStencil(gnmess, 'generic component', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'permanent_magnet', 
+					20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmess, 'permanent magnet', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'thermal_element', 
+					100, 32, '', 'Thermal Element', null, null, this.getTagsForStencil(gnmess, 'thermal element', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'igniter_plug', 
+					72, 39, '', 'Igniter Plug', null, null, this.getTagsForStencil(gnmess, 'igniter plug', dtmem).join(' ')),
+			this.createVertexTemplateEntry('shape=mxgraph.arrows2.arrow;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;dy=0;dx=10;notch=0;', 
+					100, 30, '', 'Pickup Head', null, null, this.getTagsForStencil(gnmess, 'pickup head', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'squib_ignitor', 
+					100, 100, '', 'Squib Ignitor', null, null, this.getTagsForStencil(gnmess, 'squib ignitor', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'transducer', 
+					70, 60, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'transducer_2', 
+					80, 100, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'thermopile', 
+					80, 82, '', 'Thermopile', null, null, this.getTagsForStencil(gnmess, 'thermopile', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'indicator', 
+					60, 60, '', 'Indicator', null, null, this.getTagsForStencil(gnmess, 'indicator', dtmem).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.surge_protector;', 
+					70, 20, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'surge_protector_2;', 
+					70, 24, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;shape=rect;', 
+					130, 50, '', 'Material', null, null, this.getTagsForStencil(gnmess, 'material', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'sensing_link_squib', 
+					130, 40, '', 'Sensing Link Squib', null, null, this.getTagsForStencil(gnmess, 'sensing link squib', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mem + 'delay_element', 
+					100, 100, '', 'Delay Element', null, null, this.getTagsForStencil(gnmess, 'delay_element', dtmem).join(' ')),
+			this.createVertexTemplateEntry(mer + 'buzzer', 
+					80, 50, '', 'Buzzer', null, null, this.getTagsForStencil(gnmess, 'buzzer', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'adapter', 
+					100, 40, '', 'Adapter', null, null, this.getTagsForStencil(gnmess, 'adapter', dtmer).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;perimeter=ellipsePerimeter;', 
+					15, 15, '', 'Circuit Terminal', null, null, this.getTagsForStencil(gnmess, 'circuit terminal', dtmer).join(' ')),
+			this.createEdgeTemplateEntry('endArrow=open;html=1;strokeColor=#000000;strokeWidth=1;endFill=0;endSize=20;',
+					100, 0, '', 'M/F Contact', null, this.getTagsForStencil(gnmess, '', 'mf contact').join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.mf_contact_2', 
+					100, 10, '', 'MF Contact 2', null, null, this.getTagsForStencil(gnmess, 'mf contact', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'terminal_board', 
+					75, 150, '', 'Terminal Board', null, null, this.getTagsForStencil(gnmess, 'terminal board', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'cable_termination', 
+					100, 50, '', 'Cable Termination', null, null, this.getTagsForStencil(gnmess, 'cable termination', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + '2_conductor_jack', 
+					100, 50, '', '2-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '2 conductor jack two', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + '3_conductor_jack', 
+					100, 50, '', '3-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '3 conductor jack three', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + '2_conductor_plug', 
+					53, 24, '', '2-Conductor Plug', null, null, this.getTagsForStencil(gnmess, '2 conductor plug two', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + '3_conductor_plug', 
+					53, 24, '', '3 Conductor Plug', null, null, this.getTagsForStencil(gnmess, '3 conductor plug', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'normalled_jacks', 
+					230, 65, '', 'Normalled Jacks', null, null, this.getTagsForStencil(gnmess, 'normalled jacks', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'normalled_jack', 
+					110, 65, '', 'Normalled Jack', null, null, this.getTagsForStencil(gnmess, 'normalled jack', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'coaxial_outside_conductor', 
+					300, 150, '', 'Coaxial Outside Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial outside conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'coaxial_center_conductor', 
+					300, 150, '', 'Coaxial Center Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial center conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'large_d_connector', 
+					375, 75, '', 'Large D Connector', null, null, this.getTagsForStencil(gnmess, 'large d connector', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'small_d_connector', 
+					150, 75, '', 'Small D Connector', null, null, this.getTagsForStencil(gnmess, 'small d connector', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'c_header_connector', 
+					200, 75, '', 'C Header Connector', null, null, this.getTagsForStencil(gnmess, 'c header connector', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'ac_out', 
+					200, 100, '', 'AC Out', null, null, this.getTagsForStencil(gnmess, 'ac out alternate current', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'shielded_jack_plug', 
+					50, 100, '', 'Shielded Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'shielded jack plug', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'coaxial_jack_plug', 
+					50, 100, '', 'Coaxial Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'coaxial jack/plug', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_1', 
+					100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_2', 
+					100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_3', 
+					100, 50, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_1', 
+					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_2', 
+					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_3', 
+					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_4', 
+					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_5', 
+					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eeAudio', 'Electrical / Audio', false,
+		this.addPaletteFunctions('electrical\Audio', 'Electrical / Audio', false,
 		[
 			this.createVertexTemplateEntry(mer + 'dipole;', 
 					100, 40, '', 'Dipole', null, null, this.getTagsForStencil(gnmer, 'dipole', dtmer).join(' ')),
@@ -429,10 +683,12 @@
 			this.createVertexTemplateEntry(meem + 'loudspeaker;', 
 					25, 50, '', 'Loudspeaker', null, null, this.getTagsForStencil(gnmeem, 'loudspeaker', dtmeem).join(' ')),
 			this.createVertexTemplateEntry(mer + 'headphones;', 
-					66, 56, '', 'Headphones', null, null, this.getTagsForStencil(gnmer, 'headphones', dtmer).join(' '))
+					66, 56, '', 'Headphones', null, null, this.getTagsForStencil(gnmer, 'headphones', dtmer).join(' ')),
+			this.createVertexTemplateEntry(meem + 'bell;', 
+					47, 60, '', 'Bell', null, null, this.getTagsForStencil(gnmeem, 'bell', dtmeem).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eePlcLadder', 'Electrical / PLC Ladder', false,
+		this.addPaletteFunctions('electrical\PlcLadder', 'Electrical / PLC Ladder', false,
 		[
 			this.createVertexTemplateEntry(mep + 'contact;', 
 					50, 25, '', 'Contact', null, null, this.getTagsForStencil(gnmep, 'contact', dtmep).join(' ')),
@@ -448,7 +704,7 @@
 					50, 25, '', 'Output', null, null, this.getTagsForStencil(gnmep, 'output_2', dtmep).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eeOptical', 'Electrical / Optical', false,
+		this.addPaletteFunctions('electrical\Optical', 'Electrical / Optical', false,
 		[
 			this.createVertexTemplateEntry(meoe + '7_segment_display;', 
 					74.7, 96.1, '', '7 Segment Display', null, null, this.getTagsForStencil(gnmeoe, '7_segment_display', dtmeoe).join(' ')),
@@ -480,7 +736,7 @@
 					100, 70, '', 'Solar Cell', null, null, this.getTagsForStencil(gnmeoe, 'solar_cell', dtmeoe).join(' '))
 		]);
 
-		this.addPaletteFunctions('eeVacuumTubes', 'Electrical / Vacuum Tubes', false,
+		this.addPaletteFunctions('electrical\VacuumTubes', 'Electrical / Vacuum Tubes', false,
 		[
 			this.createVertexTemplateEntry(metd + 'diode;', 
 					70, 77, '', 'Diode', null, null, this.getTagsForStencil(gnmetd, 'diode', dtmetd).join(' ')),
@@ -498,7 +754,7 @@
 					70, 87, '', 'Photocell', null, null, this.getTagsForStencil(gnmetd, 'photocell', dtmetd).join(' '))
 		]);
 		
-		this.addPaletteFunctions('eeWaveforms', 'Electrical / Waveforms', false,
+		this.addPaletteFunctions('electrical\Waveforms', 'Electrical / Waveforms', false,
 		[
 			this.createVertexTemplateEntry(mew + 'pulse_1;', 
 					90, 90, '', 'Pulse', null, null, this.getTagsForStencil(gnmew, 'pulse_1', dtmew).join(' ')),
@@ -517,6 +773,108 @@
 			this.createVertexTemplateEntry(mew + 'step_2;', 
 					90, 90, '', 'Step', null, null, this.getTagsForStencil(gnmew, 'step_2', dtmew).join(' '))
 		]);
+		
+		this.addPaletteFunctions('electrical\RotMech', 'Electrical / Rotating Equipment & Mechanical Functions', false,
+		[
+			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=32;fontColor=#000000;perimeter=ellipsePerimeter;', 
+					100, 100, 'M', 'Rotating Machine', null, null, this.getTagsForStencil(gnmerm, 'rotating machine', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'armature;', 
+					100, 100, '', 'Armature', null, null, this.getTagsForStencil(gnmerm, 'armature', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'field;', 
+					90, 15, '', 'Field', null, null, this.getTagsForStencil(gnmerm, 'field', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(mem + 'permanent_magnet;', 
+					20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmerm, 'permanent magnet', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'winding_connection;', 
+					100, 100, '', 'Winding Connection', null, null, this.getTagsForStencil(gnmerm, 'winding connection', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'synchro;', 
+					80, 100, '', 'Synchro', null, null, this.getTagsForStencil(gnmerm, 'synchro', dtmerm).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;shape=trapezoid;perimeter=none;', 
+					75, 25, '', 'Brake', null, null, this.getTagsForStencil(gnmerm, 'brake', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'gearing;', 
+					100, 64, '', 'Gearing', null, null, this.getTagsForStencil(gnmerm, 'gearing', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.rot_mech.rotation;', 
+					69, 54, '', 'Rotation', null, null, this.getTagsForStencil(gnmerm, 'rotation', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'clutch;', 
+					100, 20, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'clutch_2;', 
+					90, 60, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'delayed_action;', 
+					72, 50, '', 'Delayed Action', null, null, this.getTagsForStencil(gnmerm, 'delayed action', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'manual_control;', 
+					50, 50, '', 'Manual Control', null, null, this.getTagsForStencil(gnmerm, 'manual control', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'blocking_device;', 
+					100, 15, '', 'Blocking Device', null, null, this.getTagsForStencil(gnmerm, 'blocking device', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'latching_device;', 
+					100, 22, '', 'Latching Device', null, null, this.getTagsForStencil(gnmerm, 'latching device', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'mechanical_interlock;', 
+					100, 30, '', 'Mechanical Interlock', null, null, this.getTagsForStencil(gnmerm, 'mechanical interlock', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'automatic_return;', 
+					100, 12, '', 'Automatic Return', null, null, this.getTagsForStencil(gnmerm, 'automatic_return', dtmerm).join(' ')),
+			this.createVertexTemplateEntry(merm + 'detent;', 
+					100, 8, '', 'Detent', null, null, this.getTagsForStencil(gnmerm, 'detent', dtmerm).join(' '))
+		]);
+		
+		var sb = this;
+		
+		var fns =
+		[
+			this.createVertexTemplateEntry(metr + 'bus_width;', 
+					130, 156, '', 'Bus Width', null, null, this.getTagsForStencil(gnmetr, 'bus width', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'line_concentrator;', 
+					130, 130, '', 'Line Concentrator', null, null, this.getTagsForStencil(gnmetr, 'line concentrator', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'cable_group;', 
+					130, 130, '', 'Cable Group', null, null, this.getTagsForStencil(gnmetr, 'cable group', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'overground_enclosure;', 
+					130, 136, '', 'Overground Enclosure', null, null, this.getTagsForStencil(gnmetr, 'overground enclosure', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'optical_fiber;', 
+					130, 80, '', 'Optical Fiber', null, null, this.getTagsForStencil(gnmetr, 'optical fiber', dtmetr).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;', 
+					10, 10, '', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'terminal_3_phase;', 
+					43, 10, '', 'Terminal 3 Phase', null, null, this.getTagsForStencil(gnmetr, 'Terminal 3 Phase', dtmetr).join(' ')),
+			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontColor=#000000;fontSize=50;fontStyle=1;perimeter=ellipsePerimeter;', 
+					130, 130, 'T', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'line_cable;', 
+					130, 60, '', 'Line/Cable', null, null, this.getTagsForStencil(gnmetr, 'line cable', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'anticreepage_device;', 
+					130, 88, '', 'Anticreepage Device', null, null, this.getTagsForStencil(gnmetr, 'anticreepage device', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'testPoint;', 
+					60, 130, '', 'Test Point', null, null, this.getTagsForStencil(gnmetr, 'test point', dtmetr).join(' ')),
+			this.createEdgeTemplateEntry('endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;',
+					100, 0, '', 'Transmission Path', null, this.getTagsForStencil(gnmess, '', 'transmission path').join(' ')),
+			this.createEdgeTemplateEntry('endArrow=classicThin;html=1;strokeColor=#000000;strokeWidth=1;endSize=20;',
+					100, 0, '', 'Direction of Flow', null, this.getTagsForStencil(gnmess, '', 'direction flow').join(' ')),
+			this.createVertexTemplateEntry(metr + 'straightBus;', 
+					90, 130, '', 'Straight Bus', null, null, this.getTagsForStencil(gnmetr, 'straight bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeColor=#000000;strokeWidth=1;fillColor=#FFFFFF;', 
+					130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeColor=#000000;strokeWidth=1;fillColor=#FFFFFF;flipH=1;', 
+					130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + '2_line_bus;', 
+					130, 25, '', '2-Line Bus', null, null, this.getTagsForStencil(gnmetr, '2 two line bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + '3_line_bus;', 
+					130, 30, '', '3-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + '4_line_bus;', 
+					130, 75, '', '4-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + '8_line_bus;', 
+					130, 180, '', '8-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'twoLineBusElbow;notch=25;', 
+					120, 120, '', '2-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '2 two line bus elbow', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'threeLineBusElbow;notch=30;', 
+					120, 120, '', '3-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '3 two line bus elbow', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'fourLineBusElbow;notch=75;', 
+					120, 120, '', '4-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '4 two line bus elbow', dtmetr).join(' ')),
+			this.createVertexTemplateEntry(metr + 'eightLineBusElbow;notch=180;', 
+					200, 200, '', '8-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '8 two line bus elbow', dtmetr).join(' '))
+		];
+
+		this.addPalette('electrical\Transmission', 'Electrical / Transmission Paths', false, mxUtils.bind(this, function(content)
+				{
+					for (var i = 0; i < fns.length; i++)
+					{
+						content.appendChild(fns[i](content));
+					}
+		}));
 	};
 	
 })();

+ 7 - 3
war/js/diagramly/sidebar/Sidebar.js

@@ -84,6 +84,11 @@
 	 */
 	Sidebar.prototype.archimate3 = ['Application', 'Business', 'Composite', 'Implementation and Migration', 'Motivation', 'Physical', 'Relationships', 'Strategy', 'Technology'];
 
+	/**
+	 * 
+	 */
+	Sidebar.prototype.electrical = ['LogicGates', 'Resistors', 'Capacitors', 'Inductors', 'SwitchesRelays', 'Diodes', 'Sources', 'Transistors', 'Misc', 'Audio', 'PlcLadder', 'Abstract', 'Optical', 'VacuumTubes', 'Waveforms', 'Instruments', 'RotMech', 'Transmission'];
+
 	/**
 	 *
 	 */
@@ -103,9 +108,7 @@
 	                                        	                          'Mixers', 'Piping', 'Pumps', 'Pumps DIN', 'Pumps ISO', 'Separators', 'Shaping Machines', 'Valves', 'Vessels']},
            	                           {id: 'signs', prefix: 'signs', libs: Sidebar.prototype.signs},
            	                           {id: 'rack', prefix: 'rack', libs: Sidebar.prototype.rack},
-           	                           {id: 'electrical', prefix: 'ee', libs: ['LogicGates', 'Resistors', 'Capacitors', 'Inductors', 'SwitchesRelays', 'Diodes', 
-           	                                                                    'Sources', 'Transistors', 'Misc', 'Audio', 'PlcLadder', 'Abstract', 'Optical',
-           	                                                                    'VacuumTubes', 'Waveforms', 'Instruments']},
+           	                           {id: 'electrical', prefix: 'electrical', libs: Sidebar.prototype.electrical},
            	                           {id: 'aws2', prefix: 'aws2', libs: Sidebar.prototype.aws2},
            	                           {id: 'pid', prefix: 'pid', libs: Sidebar.prototype.pids},
            	                           {id: 'cisco', prefix: 'cisco', libs: Sidebar.prototype.cisco},
@@ -573,6 +576,7 @@
 		var office = this.office;
 		var veeam = this.veeam;
 		var archimate3 = this.archimate3;
+		var electrical = this.electrical;
 		
 		if (urlParams['createindex'] == '1')
 		{

+ 0 - 60
war/js/diagramly/vsdx/mxVsdxModel.js

@@ -1,60 +0,0 @@
-/**
- * mxVsdxModel
- * 
- */
-
-function mxVsdxModel()
-{
-};
-
-mxVsdxModel.prototype.decode = function(data)
-{
-	var unzipFinished = 0;
-	var srcDocs = new mxDictionary();
-	zip.workerScripts = 'js/deflate/';
-	zip.useWebWorkers = false;
-
-	var unzipBlob = function(blob, callback)
-	{
-		zip.createReader(new zip.BlobReader(blob), function(zipReader)
-		{
-			zipReader.getEntries(function(entries)
-			{
-				for (var i = 0; i < entries.length; i++)
-				{
-					unzipFinished = unzipFinished + 1;
-
-					(function(entry)
-					{
-						entry.getData(new zip.TextWriter(), function(text) {
-							callback(entry, text);
-						}, function()
-						{
-							// console.log('progress', arguments);
-						});
-
-					})(entries[i]);
-				}
-			});
-		}, onerror);
-	}
-
-	var doc;
-	var parser = new DOMParser();
-	
-	unzipBlob(data, function(entry, data)
-	{
-		doc = parser.parseFromString(data, 'text/xml');
-
-		srcDocs.put(entry.filename, doc);
-		unzipFinished = unzipFinished - 1;
-		
-		if (unzipFinished == 0)
-		{
-			//the point when we have a filled array of unzipped DOM documents.
-			//getDocument(srcDocs, "visio/pages/page1.xml");
-		};
-		
-		return null;
-	});
-};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 11 - 11
war/js/embed-static.min.js


+ 7 - 0
war/js/mxgraph/Actions.js

@@ -232,6 +232,13 @@ Actions.prototype.init = function()
 	}, null, null, 'Ctrl+Shift+U');
 	this.addAction('removeFromGroup', function() { graph.removeCellsFromParent(); });
 	// Adds action
+	this.addAction('edit', function()
+	{
+		if (graph.isEnabled())
+		{
+			graph.startEditingAtCell();
+		}
+	}, null, null, 'F2/Enter');
 	this.addAction('editData...', function()
 	{
 		var cell = graph.getSelectionCell() || graph.getModel().getRoot();

+ 45 - 32
war/js/mxgraph/Dialogs.js

@@ -2261,47 +2261,44 @@ var EditDataDialog = function(ui, cell)
 	
 	var addBtn = mxUtils.button(mxResources.get('addProperty'), function()
 	{
-		if (nameInput.value.length > 0)
+		var name = nameInput.value;
+
+		if (name.length > 0 && name != 'label' && name != 'placeholders')
 		{
-			var name = nameInput.value;
-			
-			if (name != null && name.length > 0 && name != 'label' && name != 'placeholders')
+			try
 			{
-				try
+				var idx = mxUtils.indexOf(names, name);
+				
+				if (idx >= 0 && texts[idx] != null)
 				{
-					var idx = mxUtils.indexOf(names, name);
+					texts[idx].focus();
+				}
+				else
+				{
+					// Checks if the name is valid
+					var clone = value.cloneNode(false);
+					clone.setAttribute(name, '');
 					
-					if (idx >= 0 && texts[idx] != null)
+					if (idx >= 0)
 					{
-						texts[idx].focus();
+						names.splice(idx, 1);
+						texts.splice(idx, 1);
 					}
-					else
-					{
-						// Checks if the name is valid
-						var clone = value.cloneNode(false);
-						clone.setAttribute(name, '');
-						
-						if (idx >= 0)
-						{
-							names.splice(idx, 1);
-							texts.splice(idx, 1);
-						}
-
-						names.push(name);
-						var text = form.addTextarea(name + ':', '', 2);
-						text.style.width = '100%';
-						texts.push(text);
-						addRemoveButton(text, name);
 
-						text.focus();
-					}
+					names.push(name);
+					var text = form.addTextarea(name + ':', '', 2);
+					text.style.width = '100%';
+					texts.push(text);
+					addRemoveButton(text, name);
 
-					nameInput.value = '';
-				}
-				catch (e)
-				{
-					mxUtils.alert(e);
+					text.focus();
 				}
+
+				nameInput.value = '';
+			}
+			catch (e)
+			{
+				mxUtils.alert(e);
 			}
 		}
 		else
@@ -2341,6 +2338,7 @@ var EditDataDialog = function(ui, cell)
 			
 			// Clones and updates the value
 			value = value.cloneNode(true);
+			var removeLabel = false;
 			
 			for (var i = 0; i < names.length; i++)
 			{
@@ -2351,9 +2349,17 @@ var EditDataDialog = function(ui, cell)
 				else
 				{
 					value.setAttribute(names[i], texts[i].value);
+					removeLabel = removeLabel || (names[i] == 'placeholder' &&
+						value.getAttribute('placeholders') == '1');
 				}
 			}
 			
+			// Removes label if placeholder is assigned
+			if (removeLabel)
+			{
+				value.removeAttribute('label');
+			}
+			
 			// Updates the value of the cell (undoable)
 			graph.getModel().setValue(cell, value);
 		}
@@ -2773,6 +2779,13 @@ var LayersWindow = function(editorUi, x, y, w, h)
 		evt.stopPropagation();
 		evt.preventDefault();
 	});
+	
+	// Workaround for "element not found" error in FF
+	mxEvent.addListener(div, 'drop', function(evt)
+	{
+		evt.stopPropagation();
+		evt.preventDefault();
+	});
 
 	var layerCount = null;
 	var selectionLayer = null;

+ 1 - 1
war/js/mxgraph/EditorUi.js

@@ -2544,7 +2544,7 @@ EditorUi.prototype.updateActionStates = function()
 	// Updates action states
 	var actions = ['cut', 'copy', 'bold', 'italic', 'underline', 'delete', 'duplicate',
 	               'editStyle', 'editTooltip', 'editLink', 'backgroundColor', 'borderColor',
-	               'toFront', 'toBack', 'lockUnlock', 'solid', 'dashed',
+	               'edit', 'toFront', 'toBack', 'lockUnlock', 'solid', 'dashed',
 	               'dotted', 'fillColor', 'gradientColor', 'shadow', 'fontColor',
 	               'formattedText', 'rounded', 'toggleRounded', 'sharp', 'strokeColor'];
 	

+ 4 - 4
war/js/mxgraph/Graph.js

@@ -4254,10 +4254,10 @@ if (typeof mxVertexHandler != 'undefined')
 			var pt = this.getInsertPoint();
 			
 			// Places at same x-coord and 2 grid sizes below existing graph
-			var x = this.snap(Math.max(pt.x, bds.x / view.scale - view.translate.x +
-				((bds.width == 0) ? this.gridSize : 0)));
-			var y = this.snap(Math.max(pt.y, (bds.y + bds.height) / view.scale - view.translate.y +
-				((bds.height == 0) ? 1 : 2) * this.gridSize));
+			var x = this.snap(Math.round(Math.max(pt.x, bds.x / view.scale - view.translate.x +
+				((bds.width == 0) ? this.gridSize : 0))));
+			var y = this.snap(Math.round(Math.max(pt.y, (bds.y + bds.height) / view.scale - view.translate.y +
+				((bds.height == 0) ? 1 : 2) * this.gridSize)));
 			
 			return new mxPoint(x, y);
 		};

+ 3 - 3
war/js/mxgraph/Menus.js

@@ -432,8 +432,8 @@ Menus.prototype.init = function()
 	this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent)
 	{
 		this.addMenuItems(menu, ['undo', 'redo', '-', 'cut', 'copy', 'paste', 'delete', '-', 'duplicate', '-',
-		                         'editData', 'editTooltip', 'editStyle', '-', 'editLink', 'openLink', '-', 'selectVertices',
-		                         'selectEdges', 'selectAll', 'selectNone', '-', 'lockUnlock']);
+		                         'editData', 'editTooltip', 'editStyle', '-', 'edit', '-', 'editLink', 'openLink', '-',
+		                         'selectVertices', 'selectEdges', 'selectAll', 'selectNone', '-', 'lockUnlock']);
 	})));
 	this.put('extras', new Menu(mxUtils.bind(this, function(menu, parent)
 	{
@@ -1024,7 +1024,7 @@ Menus.prototype.createPopupMenu = function(menu, cell, evt)
 			if (graph.getSelectionCount() == 1)
 			{
 				menu.addSeparator();
-				this.addMenuItems(menu, ['editData', 'editLink'], null, evt);
+				this.addMenuItems(menu, ['edit', '-', 'editData', 'editLink'], null, evt);
 
 				// Shows edit image action if there is an image in the style
 				if (graph.getModel().isVertex(cell) && mxUtils.getValue(state.style, mxConstants.STYLE_IMAGE, null) != null)

Dosya farkı çok büyük olduğundan ihmal edildi
+ 11 - 11
war/js/reader.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 20 - 1
war/js/shapes.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 830 - 785
war/js/viewer.min.js


+ 19 - 6
war/plugins/find.js

@@ -4,6 +4,7 @@
 Draw.loadPlugin(function(ui)
 {
 	var graph = ui.editor.graph;
+	var lastSearch = null;
 	var lastFound = null;
 
 	var div = document.createElement('div');
@@ -32,7 +33,7 @@ Draw.loadPlugin(function(ui)
 			
 			for (var i = 0; i < attrs.length; i++)
 			{
-				if (re.test(attrs[i].nodeValue))
+				if (attrs[i].nodeName != 'label' && re.test(attrs[i].nodeValue.toLowerCase()))
 				{
 					return true;
 				}	
@@ -42,14 +43,21 @@ Draw.loadPlugin(function(ui)
 		return false;
 	};
 	
-	function search(next)
+	function search()
 	{
 		var cells = graph.model.getDescendants(graph.model.getRoot());
 		var search = searchInput.value.toLowerCase();
 		var re = new RegExp(search);
-		var active = !next || lastFound == null;
 		var firstMatch = null;
 		
+		if (lastSearch != search)
+		{
+			lastSearch = search;
+			lastFound = null;
+		}
+
+		var active = lastFound == null;
+		
 		if (graph.isEnabled() && search.length > 0)
 		{
 			for (var i = 0; i < cells.length; i++)
@@ -111,6 +119,7 @@ Draw.loadPlugin(function(ui)
 		searchInput.value = '';
 		searchInput.style.backgroundColor = '';
 		lastFound = null;
+		lastSearch = null;
 		searchInput.focus();
 	});
 	
@@ -125,7 +134,7 @@ Draw.loadPlugin(function(ui)
 
 	var btn = mxUtils.button('Find Again', function()
 	{
-		searchInput.style.backgroundColor = search(true) ? '' : '#ffcfcf';
+		searchInput.style.backgroundColor = search() ? '' : '#ffcfcf';
 	});
 	
 	btn.setAttribute('title', 'Find Again (Enter)');
@@ -144,9 +153,13 @@ Draw.loadPlugin(function(ui)
 			// Workaround for lost focus on show
 			mxEvent.consume(evt);
 		}
-		else
+		else if (evt.keyCode == 27)
+		{
+			findAction.funct();
+		}
+		else if (lastSearch != searchInput.value.toLowerCase() || evt.keyCode == 13)
 		{
-			searchInput.style.backgroundColor = search(evt.keyCode == 13) ? '' : '#ffcfcf';
+			searchInput.style.backgroundColor = search() ? '' : '#ffcfcf';
 		}
 	});
 

+ 467 - 0
war/shapes/mxElectrical.js

@@ -0,0 +1,467 @@
+/**
+ * $Id: mxElectrical.js,v 1.0 2016/10/25 17:05:39 mate Exp $
+ * Copyright (c) 2006-2016, JGraph Ltd
+ */
+
+//**********************************************************************************************************************************************************
+//Test Point
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalTestPoint(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalTestPoint, mxShape);
+
+mxShapeElectricalTestPoint.prototype.cst = {
+		SHAPE_TEST_POINT : 'mxgraph.electrical.transmission.testPoint'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeElectricalTestPoint.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	c.translate(x, y);
+	var strokeColor = mxUtils.getValue(this.style, mxConstants.STYLE_STROKECOLOR, '#000000');
+
+	var size = Math.min(w, h); 
+	
+	c.setFillColor(strokeColor);
+	c.begin();
+	c.ellipse(w * 0.5 - size / 2, 0, size, size);
+	c.fillAndStroke();
+	
+	if (h > w)
+	{
+		c.begin();
+		c.moveTo(w * 0.5, size);
+		c.lineTo(w * 0.5, h);
+		c.stroke();
+	}
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalTestPoint.prototype.cst.SHAPE_TEST_POINT] = mxShapeElectricalTestPoint;
+
+mxShapeElectricalTestPoint.prototype.constraints = [
+                                                  new mxConnectionConstraint(new mxPoint(0.5, 0), true),
+                                                  new mxConnectionConstraint(new mxPoint(0.5, 1), true)
+                                                  ];
+
+//**********************************************************************************************************************************************************
+//Straight Bus
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalStraightBus(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalStraightBus, mxShape);
+
+mxShapeElectricalStraightBus.prototype.cst = {
+		SHAPE_STRAIGHT_BUS : 'mxgraph.electrical.transmission.straightBus'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeElectricalStraightBus.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	c.translate(x, y);
+
+	var size = Math.min(w, h); 
+	var x1 = w * 0.2;
+	var y1 = 0;
+	
+	if (w > h)
+	{
+		y1 = h * 0.5;
+	}
+	else
+	{
+		y1 = w / 2;
+	}
+	
+	c.begin();
+	c.moveTo(w - x1, 0);
+	c.lineTo(w - x1, h - y1);
+	c.lineTo(w, h - y1);
+	c.lineTo(w * 0.5, h);
+	c.lineTo(0, h - y1);
+	c.lineTo(x1, h - y1);
+	c.lineTo(x1, 0);
+	c.fillAndStroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalStraightBus.prototype.cst.SHAPE_STRAIGHT_BUS] = mxShapeElectricalStraightBus;
+
+mxShapeElectricalStraightBus.prototype.constraints = [
+                                                    new mxConnectionConstraint(new mxPoint(0.5, 0), true),
+                                                    new mxConnectionConstraint(new mxPoint(0.5, 1), true)
+                                                    ];
+
+//**********************************************************************************************************************************************************
+//Two-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalTwoLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+	this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalTwoLineBusElbow, mxShape);
+
+mxShapeElectricalTwoLineBusElbow.prototype.cst = {
+		SHAPE_TWO_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.twoLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeElectricalTwoLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+	c.translate(x, y);
+
+	c.begin();
+	c.moveTo(0, h);
+	c.lineTo(w, h);
+	c.lineTo(w, 0);
+	c.stroke();
+	
+	var wn = Math.min(w, notch);
+	var hn = Math.min(h, notch);
+	
+	c.begin();
+	c.moveTo(0, h - hn);
+	c.lineTo(w - wn, h - hn);
+	c.lineTo(w - wn, 0);
+	c.stroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW] = mxShapeElectricalTwoLineBusElbow;
+
+mxShapeElectricalTwoLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW] = function(state)
+{
+	var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+	{
+		var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+		return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+	}, function(bounds, pt)
+	{
+		this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+	})];
+			
+	return handles;
+
+}
+
+//**********************************************************************************************************************************************************
+//Three-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalThreeLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+	this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalThreeLineBusElbow, mxShape);
+
+mxShapeElectricalThreeLineBusElbow.prototype.cst = {
+		SHAPE_THREE_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.threeLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeElectricalThreeLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+	c.translate(x, y);
+
+	c.begin();
+	c.moveTo(0, h);
+	c.lineTo(w, h);
+	c.lineTo(w, 0);
+	c.stroke();
+	
+	var wn = Math.min(w, notch);
+	var hn = Math.min(h, notch);
+	
+	c.begin();
+	c.moveTo(0, h - hn);
+	c.lineTo(w - wn, h - hn);
+	c.lineTo(w - wn, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn / 2);
+	c.lineTo(w - wn / 2, h - hn / 2);
+	c.lineTo(w - wn / 2, 0);
+	c.stroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW] = mxShapeElectricalThreeLineBusElbow;
+
+mxShapeElectricalThreeLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW] = function(state)
+{
+	var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+	{
+		var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+		return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+	}, function(bounds, pt)
+	{
+		this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+	})];
+			
+	return handles;
+
+}
+
+//**********************************************************************************************************************************************************
+//Four-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalFourLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+	this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalFourLineBusElbow, mxShape);
+
+mxShapeElectricalFourLineBusElbow.prototype.cst = {
+		SHAPE_FOUR_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.fourLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeElectricalFourLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+	c.translate(x, y);
+
+	c.begin();
+	c.moveTo(0, h);
+	c.lineTo(w, h);
+	c.lineTo(w, 0);
+	c.stroke();
+	
+	var wn = Math.min(w, notch);
+	var hn = Math.min(h, notch);
+	
+	c.begin();
+	c.moveTo(0, h - hn);
+	c.lineTo(w - wn, h - hn);
+	c.lineTo(w - wn, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn / 3);
+	c.lineTo(w - wn / 3, h - hn / 3);
+	c.lineTo(w - wn / 3, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn * 2 / 3);
+	c.lineTo(w - wn * 2 / 3, h - hn * 2 / 3);
+	c.lineTo(w - wn * 2 / 3, 0);
+	c.stroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW] = mxShapeElectricalFourLineBusElbow;
+
+mxShapeElectricalFourLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW] = function(state)
+{
+	var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+	{
+		var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+		return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+	}, function(bounds, pt)
+	{
+		this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+	})];
+			
+	return handles;
+}
+
+//**********************************************************************************************************************************************************
+//Four-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalEightLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+	this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalEightLineBusElbow, mxShape);
+
+mxShapeElectricalEightLineBusElbow.prototype.cst = {
+		SHAPE_EIGHT_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.eightLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeElectricalEightLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+	c.translate(x, y);
+
+	c.begin();
+	c.moveTo(0, h);
+	c.lineTo(w, h);
+	c.lineTo(w, 0);
+	c.stroke();
+	
+	var wn = Math.min(w, notch);
+	var hn = Math.min(h, notch);
+	
+	c.begin();
+	c.moveTo(0, h - hn);
+	c.lineTo(w - wn, h - hn);
+	c.lineTo(w - wn, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn / 7);
+	c.lineTo(w - wn / 7, h - hn / 7);
+	c.lineTo(w - wn / 7, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn * 2 / 7);
+	c.lineTo(w - wn * 2 / 7, h - hn * 2 / 7);
+	c.lineTo(w - wn * 2 / 7, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn * 3 / 7);
+	c.lineTo(w - wn * 3 / 7, h - hn * 3 / 7);
+	c.lineTo(w - wn * 3 / 7, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn * 4 / 7);
+	c.lineTo(w - wn * 4 / 7, h - hn * 4 / 7);
+	c.lineTo(w - wn * 4 / 7, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn * 5 / 7);
+	c.lineTo(w - wn * 5 / 7, h - hn * 5 / 7);
+	c.lineTo(w - wn * 5 / 7, 0);
+	c.stroke();
+	
+	c.begin();
+	c.moveTo(0, h - hn * 6 / 7);
+	c.lineTo(w - wn * 6 / 7, h - hn * 6 / 7);
+	c.lineTo(w - wn * 6 / 7, 0);
+	c.stroke();
+	
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW] = mxShapeElectricalEightLineBusElbow;
+
+mxShapeElectricalEightLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW] = function(state)
+{
+	var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+	{
+		var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+		return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+	}, function(bounds, pt)
+	{
+		this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+	})];
+			
+	return handles;
+}
+

Dosya farkı çok büyük olduğundan ihmal edildi
+ 12067 - 12926
war/stencils.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 381 - 622
war/stencils/electrical/abstract.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 298 - 647
war/stencils/electrical/capacitors.xml


+ 171 - 300
war/stencils/electrical/diodes.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.diodes">
+<shapes name="mxgraph.electrical.diodes">
 	<shape aspect="variable" h="60" name="Diode" strokewidth="inherit" w="100">
 		<connections>
 			<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -10,472 +10,343 @@
 				<line x="70" y="30"/>
 				<line x="30" y="60"/>
 				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
 				<move x="0" y="30"/>
 				<line x="30" y="30"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="70" y="0"/>
 				<line x="70" y="60"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="70" y="30"/>
 				<line x="100" y="30"/>
 			</path>
+		</background>
+		<foreground>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Field Effect Diode" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Field Effect Diode" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
 			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="70.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
+				<move x="30" y="0"/>
+				<line x="70" y="30"/>
+				<line x="30" y="60"/>
 				<close/>
+				<move x="0" y="30"/>
+				<line x="30" y="30"/>
+				<move x="70" y="0"/>
+				<line x="70" y="60"/>
+				<move x="70" y="30"/>
+				<line x="100" y="30"/>
+				<move x="65" y="0"/>
+				<line x="75" y="0"/>
+				<move x="65" y="60"/>
+				<line x="75" y="60"/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="0.0"/>
-				<line x="70.0" y="60.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="65.0" y="0.0"/>
-				<line x="75.0" y="0.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="65.0" y="60.0"/>
-				<line x="75.0" y="60.0"/>
-			</path>
-			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="Four Layer Diode" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="80" name="Four Layer Diode" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
 			<path>
-				<move x="30.0" y="10.0"/>
-				<line x="70.0" y="40.0"/>
-				<line x="30.0" y="40.0"/>
+				<move x="30" y="10"/>
+				<line x="70" y="40"/>
+				<line x="30" y="40"/>
 				<close/>
+				<move x="0" y="40"/>
+				<line x="30" y="40"/>
+				<move x="30" y="40"/>
+				<line x="30" y="70"/>
+				<move x="70" y="40"/>
+				<line x="100" y="40"/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="30.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="40.0"/>
-				<line x="30.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="40.0"/>
-				<line x="100.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<ellipse h="80.0" w="80.0" x="10.0" y="0.0"/>
+			<ellipse h="80" w="80" x="10" y="0"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Gunn Diode" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Gunn Diode" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
 			<path>
-				<move x="10.0" y="0.0"/>
-				<line x="90.0" y="60.0"/>
-				<line x="90.0" y="0.0"/>
-				<line x="10.0" y="60.0"/>
+				<move x="10" y="0"/>
+				<line x="90" y="60"/>
+				<line x="90" y="0"/>
+				<line x="10" y="60"/>
 				<close/>
+				<move x="0" y="30"/>
+				<line x="10" y="30"/>
+				<move x="90" y="30"/>
+				<line x="100" y="30"/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="10.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Schottky Diode" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Schottky Diode" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="70.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
+				<move x="30" y="0"/>
+				<line x="70" y="30"/>
+				<line x="30" y="60"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="60.0" y="5.0"/>
-				<line x="60.0" y="0.0"/>
-				<line x="70.0" y="0.0"/>
-				<line x="70.0" y="60.0"/>
-				<line x="80.0" y="60.0"/>
-				<line x="80.0" y="55.0"/>
+				<move x="0" y="30"/>
+				<line x="30" y="30"/>
+				<move x="60" y="5"/>
+				<line x="60" y="0"/>
+				<line x="70" y="0"/>
+				<line x="70" y="60"/>
+				<line x="80" y="60"/>
+				<line x="80" y="55"/>
+				<move x="70" y="30"/>
+				<line x="100" y="30"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="70.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Transorb 1" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Transorb 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
 			<path>
-				<move x="10.0" y="0.0"/>
-				<line x="90.0" y="60.0"/>
-				<line x="90.0" y="0.0"/>
-				<line x="10.0" y="60.0"/>
+				<move x="10" y="0"/>
+				<line x="90" y="60"/>
+				<line x="90" y="0"/>
+				<line x="10" y="60"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="50.0" y="0.0"/>
-				<line x="50.0" y="60.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="10.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
+				<move x="50" y="0"/>
+				<line x="50" y="60"/>
+				<move x="0" y="30"/>
+				<line x="10" y="30"/>
+				<move x="90" y="30"/>
+				<line x="100" y="30"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Transorb 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Transorb 2" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="10.0" y="0.0"/>
-				<line x="90.0" y="60.0"/>
-				<line x="90.0" y="0.0"/>
-				<line x="10.0" y="60.0"/>
+				<move x="10" y="0"/>
+				<line x="90" y="60"/>
+				<line x="90" y="0"/>
+				<line x="10" y="60"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="40.0" y="0.0"/>
-				<line x="50.0" y="10.0"/>
-				<line x="50.0" y="50.0"/>
-				<line x="60.0" y="60.0"/>
+				<move x="40" y="0"/>
+				<line x="50" y="10"/>
+				<line x="50" y="50"/>
+				<line x="60" y="60"/>
+				<move x="0" y="30"/>
+				<line x="10" y="30"/>
+				<move x="90" y="30"/>
+				<line x="100" y="30"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="10.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Tunnel Diode" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Tunnel Diode" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="70.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
+				<move x="30" y="0"/>
+				<line x="70" y="30"/>
+				<line x="30" y="60"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="60.0" y="0.0"/>
-				<line x="70.0" y="0.0"/>
-				<line x="70.0" y="60.0"/>
-				<line x="60.0" y="60.0"/>
+				<move x="60" y="0"/>
+				<line x="70" y="0"/>
+				<line x="70" y="60"/>
+				<line x="60" y="60"/>
+				<move x="70" y="30"/>
+				<line x="100" y="30"/>
+				<move x="0" y="30"/>
+				<line x="30" y="30"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="70.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="Tunnel Diode 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="80" name="Tunnel Diode 2" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
 			<path>
-				<move x="30.0" y="10.0"/>
-				<line x="70.0" y="40.0"/>
-				<line x="30.0" y="70.0"/>
+				<move x="30" y="10"/>
+				<line x="70" y="40"/>
+				<line x="30" y="70"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="30.0" y="40.0"/>
+				<move x="0" y="40"/>
+				<line x="30" y="40"/>
+				<move x="70" y="10"/>
+				<line x="70" y="70"/>
+				<move x="70" y="40"/>
+				<line x="100" y="40"/>
 			</path>
 			<fillstroke/>
-			<path>
-				<move x="70.0" y="10.0"/>
-				<line x="70.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="40.0"/>
-				<line x="100.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<ellipse h="80.0" w="80.0" x="10.0" y="0.0"/>
+			<ellipse h="80" w="80" x="10" y="0"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="60.0" name="Varactor - Varicap" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="60" name="Varactor - Varicap" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
 			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="70.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
+				<move x="30" y="0"/>
+				<line x="70" y="30"/>
+				<line x="30" y="60"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="75.0" y="0.0"/>
-				<line x="75.0" y="60.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="60.0"/>
-				<line x="70.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="30.0" y="30.0"/>
+				<move x="75" y="0"/>
+				<line x="75" y="60"/>
+				<move x="70" y="60"/>
+				<line x="70" y="0"/>
+				<move x="70" y="30"/>
+				<line x="100" y="30"/>
+				<move x="0" y="30"/>
+				<line x="30" y="30"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Zener Diode 1" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Zener Diode 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="25.0" y="0.0"/>
-				<line x="75.0" y="25.0"/>
-				<line x="25.0" y="50.0"/>
+				<move x="25" y="0"/>
+				<line x="75" y="25"/>
+				<line x="25" y="50"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="65.0" y="0.0"/>
-				<line x="75.0" y="0.0"/>
-				<line x="75.0" y="50.0"/>
-				<line x="85.0" y="50.0"/>
+				<move x="65" y="0"/>
+				<line x="75" y="0"/>
+				<line x="75" y="50"/>
+				<line x="85" y="50"/>
+				<move x="0" y="25"/>
+				<line x="25" y="25"/>
+				<move x="75" y="25"/>
+				<line x="100" y="25"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="25.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="75.0" y="25.0"/>
-				<line x="100.0" y="25.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Zener Diode 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Zener Diode 2" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="25.0" y="0.0"/>
-				<line x="75.0" y="25.0"/>
-				<line x="25.0" y="50.0"/>
+				<move x="25" y="0"/>
+				<line x="75" y="25"/>
+				<line x="25" y="50"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="65.0" y="0.0"/>
-				<line x="75.0" y="0.0"/>
-				<line x="75.0" y="50.0"/>
+				<move x="65" y="0"/>
+				<line x="75" y="0"/>
+				<line x="75" y="50"/>
+				<move x="0" y="25"/>
+				<line x="25" y="25"/>
+				<move x="75" y="25"/>
+				<line x="100" y="25"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="25.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="75.0" y="25.0"/>
-				<line x="100.0" y="25.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Zener Diode 3" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Zener Diode 3" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="25.0" y="0.0"/>
-				<line x="75.0" y="25.0"/>
-				<line x="25.0" y="50.0"/>
+				<move x="25" y="0"/>
+				<line x="75" y="25"/>
+				<line x="25" y="50"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="65.0" y="0.0"/>
-				<line x="75.0" y="10.0"/>
-				<line x="75.0" y="40.0"/>
-				<line x="85.0" y="50.0"/>
+				<move x="65" y="0"/>
+				<line x="75" y="10"/>
+				<line x="75" y="40"/>
+				<line x="85" y="50"/>
+				<move x="0" y="25"/>
+				<line x="25" y="25"/>
+				<move x="75" y="25"/>
+				<line x="100" y="25"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="25.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="75.0" y="25.0"/>
-				<line x="100.0" y="25.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
 </shapes>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1668 - 511
war/stencils/electrical/electro-mechanical.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 603 - 1074
war/stencils/electrical/iec417.xml


+ 44 - 80
war/stencils/electrical/iec_logic_gates.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.iec_logic_gates">
+<shapes name="mxgraph.electrical.iec_logic_gates">
 	<shape aspect="variable" h="80" name="AND" strokewidth="inherit" w="60">
 		<connections>
 			<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -15,142 +15,106 @@
 			<text align="center" str="AND" valign="bottom" x="30" y="46"/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="NAND" strokewidth="inherit" w="66.0">
+	<shape aspect="variable" h="80" name="NAND" strokewidth="inherit" w="66">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+			<rect h="80" w="60" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fontsize size="12.0"/>
+			<fontsize size="12"/>
 			<fontstyle style="0"/>
 			<fontstyle style="0"/>
-			<text align="center" str="NAND" valign="bottom" x="30.0" y="46.0"/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+			<text align="center" str="NAND" valign="bottom" x="30" y="46"/>
+			<ellipse h="6" w="6" x="60" y="37"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="NOR" strokewidth="inherit" w="66.0">
+	<shape aspect="variable" h="80" name="NOR" strokewidth="inherit" w="66">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+			<rect h="80" w="60" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+			<ellipse h="6" w="6" x="60" y="37"/>
 			<fillstroke/>
-			<fontsize size="12.0"/>
+			<fontsize size="12"/>
 			<fontstyle style="0"/>
 			<fontstyle style="0"/>
-			<text align="center" str="1" valign="bottom" x="35.0" y="46.0"/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
-			<strokewidth width="1"/>
+			<text align="center" str="1" valign="bottom" x="35" y="46"/>
 			<path>
-				<move x="24.25" y="36.0"/>
-				<line x="28.75" y="40.0"/>
-				<line x="24.25" y="44.0"/>
+				<move x="24.25" y="36"/>
+				<line x="28.75" y="40"/>
+				<line x="24.25" y="44"/>
+				<move x="30" y="40.75"/>
+				<line x="25.12" y="45"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<strokewidth width="1"/>
-			<path>
-				<move x="30.0" y="40.75"/>
-				<line x="25.12" y="45.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="NOT" strokewidth="inherit" w="66.0">
+	<shape aspect="variable" h="80" name="NOT" strokewidth="inherit" w="66">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+			<rect h="80" w="60" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fontsize size="12.0"/>
+			<fontsize size="12"/>
 			<fontstyle style="0"/>
 			<fontstyle style="0"/>
-			<text align="center" str="=1" valign="bottom" x="30.0" y="46.0"/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+			<text align="center" str="=1" valign="bottom" x="30" y="46"/>
+			<ellipse h="6" w="6" x="60" y="37"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="OR" strokewidth="inherit" w="60.0">
+	<shape aspect="variable" h="80" name="OR" strokewidth="inherit" w="60">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+			<rect h="80" w="60" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fontsize size="12.0"/>
+			<fontsize size="12"/>
 			<fontstyle style="0"/>
 			<fontstyle style="0"/>
-			<text align="center" str="1" valign="bottom" x="35.0" y="46.0"/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
-			<strokewidth width="1"/>
+			<text align="center" str="1" valign="bottom" x="35" y="46"/>
 			<path>
-				<move x="24.25" y="36.0"/>
-				<line x="28.75" y="40.0"/>
-				<line x="24.25" y="44.0"/>
+				<move x="24.25" y="36"/>
+				<line x="28.75" y="40"/>
+				<line x="24.25" y="44"/>
+				<move x="30" y="40.75"/>
+				<line x="25.12" y="45"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<strokewidth width="1"/>
-			<path>
-				<move x="30.0" y="40.75"/>
-				<line x="25.12" y="45.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="XOR" strokewidth="inherit" w="60.0">
+	<shape aspect="variable" h="80" name="XOR" strokewidth="inherit" w="60">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+			<rect h="80" w="60" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fontsize size="12.0"/>
+			<fontsize size="12"/>
 			<fontstyle style="0"/>
 			<fontstyle style="0"/>
-			<text align="center" str="=1" valign="bottom" x="30.0" y="46.0"/>
+			<text align="center" str="=1" valign="bottom" x="30" y="46"/>
 		</foreground>
 	</shape>
 </shapes>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 992 - 625
war/stencils/electrical/inductors.xml


+ 59 - 71
war/stencils/electrical/instruments.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.instruments">
+<shapes name="mxgraph.electrical.instruments">
 	<shape aspect="fixed" h="90" name="Ampermeter" strokewidth="inherit" w="90">
 		<connections>
 			<constraint name="N" perimeter="0" x="0.5" y="0"/>
@@ -19,7 +19,7 @@
 				<move x="25" y="75"/>
 				<line x="65" y="15"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 			<path>
 				<move x="52" y="25"/>
 				<line x="65" y="15"/>
@@ -29,130 +29,118 @@
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="Galvanometer" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="Galvanometer" strokewidth="inherit" w="90">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S" perimeter="0" x="0.5" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
+			<constraint name="E" perimeter="0" x="1" y="0.5"/>
 			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
 			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
 			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
 			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
 		</connections>
 		<background>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="45.0" y="77.0"/>
-				<line x="45.0" y="13.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="40.0" y="27.0"/>
-				<line x="45.0" y="13.0"/>
-				<line x="50.0" y="27.0"/>
+				<move x="45" y="77"/>
+				<line x="45" y="13"/>
+				<move x="40" y="27"/>
+				<line x="45" y="13"/>
+				<line x="50" y="27"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="Oscilloscope" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="Oscilloscope" strokewidth="inherit" w="90">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S" perimeter="0" x="0.5" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
+			<constraint name="E" perimeter="0" x="1" y="0.5"/>
 			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
 			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
 			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
 			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
 		</connections>
 		<background>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="10.0" y="55.0"/>
-				<line x="25.0" y="35.0"/>
-				<line x="25.0" y="55.0"/>
-				<line x="40.0" y="35.0"/>
-				<line x="40.0" y="55.0"/>
-				<line x="55.0" y="35.0"/>
-				<line x="55.0" y="55.0"/>
-				<line x="70.0" y="35.0"/>
-				<line x="70.0" y="55.0"/>
-				<line x="77.5" y="45.0"/>
+				<move x="10" y="55"/>
+				<line x="25" y="35"/>
+				<line x="25" y="55"/>
+				<line x="40" y="35"/>
+				<line x="40" y="55"/>
+				<line x="55" y="35"/>
+				<line x="55" y="55"/>
+				<line x="70" y="35"/>
+				<line x="70" y="55"/>
+				<line x="77.5" y="45"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="Signal Generator" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="Signal Generator" strokewidth="inherit" w="90">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S" perimeter="0" x="0.5" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
+			<constraint name="E" perimeter="0" x="1" y="0.5"/>
 			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
 			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
 			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
 			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
 		</connections>
 		<background>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="30.0" y="75.0"/>
-				<line x="40.0" y="65.0"/>
-				<line x="40.0" y="75.0"/>
-				<line x="50.0" y="65.0"/>
-				<line x="50.0" y="75.0"/>
-				<line x="60.0" y="65.0"/>
-				<line x="60.0" y="75.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="30.0" y="20.0"/>
-				<arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="20.0"/>
-				<arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="60.0" x-axis-rotation="0.0" y="20.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="30.0" y="45.0"/>
-				<line x="30.0" y="35.0"/>
-				<line x="45.0" y="35.0"/>
-				<line x="45.0" y="55.0"/>
-				<line x="60.0" y="55.0"/>
-				<line x="60.0" y="45.0"/>
+				<move x="30" y="75"/>
+				<line x="40" y="65"/>
+				<line x="40" y="75"/>
+				<line x="50" y="65"/>
+				<line x="50" y="75"/>
+				<line x="60" y="65"/>
+				<line x="60" y="75"/>
+				<move x="30" y="20"/>
+				<arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="20"/>
+				<arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="60" x-axis-rotation="0" y="20"/>
+				<move x="30" y="45"/>
+				<line x="30" y="35"/>
+				<line x="45" y="35"/>
+				<line x="45" y="55"/>
+				<line x="60" y="55"/>
+				<line x="60" y="45"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="Voltmeter" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="Voltmeter" strokewidth="inherit" w="90">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S" perimeter="0" x="0.5" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
+			<constraint name="E" perimeter="0" x="1" y="0.5"/>
 			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
 			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
 			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
 			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
 		</connections>
 		<background>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fontsize size="50.0"/>
-			<text align="center" str="V" valign="bottom" x="45.0" y="70.0"/>
+			<fontsize size="50"/>
+			<text align="center" str="V" valign="bottom" x="45" y="70"/>
 		</foreground>
 	</shape>
 </shapes>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 393 - 662
war/stencils/electrical/logic_gates.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1648 - 585
war/stencils/electrical/miscellaneous.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 463 - 928
war/stencils/electrical/mosfets1.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 410 - 807
war/stencils/electrical/mosfets2.xml


+ 259 - 497
war/stencils/electrical/op_amps.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.op_amps">
+<shapes name="mxgraph.electrical.op_amps">
 	<shape aspect="variable" h="62" name="Comparator" strokewidth="inherit" w="100">
 		<connections>
 			<constraint name="V+1" perimeter="0" x="0" y="0.032"/>
@@ -7,8 +7,6 @@
 			<constraint name="Vout" perimeter="0" x="1" y="0.355"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
 			<path>
 				<move x="40" y="2"/>
 				<line x="80" y="22"/>
@@ -18,659 +16,423 @@
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
 				<move x="35" y="62"/>
 				<line x="35" y="32"/>
 				<line x="40" y="32"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
 				<move x="30" y="12"/>
 				<line x="40" y="12"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="80" y="22"/>
 				<line x="100" y="22"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
 				<move x="25" y="2"/>
 				<line x="30" y="2"/>
 				<line x="30" y="22"/>
 				<line x="25" y="22"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4" w="20" x="5" y="0"/>
-			<fillstroke/>
-			<rect h="4" w="20" x="5" y="20"/>
-			<fillstroke/>
-			<path>
 				<move x="0" y="2"/>
 				<line x="5" y="2"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="0" y="22"/>
 				<line x="5" y="22"/>
 			</path>
+			<stroke/>
+			<rect h="4" w="20" x="5" y="0"/>
+			<fillstroke/>
+			<rect h="4" w="20" x="5" y="20"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="72.0" name="Differentiator" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="72" name="Differentiator" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V+" perimeter="0" x="0.0" y="0.305"/>
-			<constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+			<constraint name="V+" perimeter="0" x="0" y="0.305"/>
+			<constraint name="V-" perimeter="0" x="0.35" y="1"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.445"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="12.0"/>
-				<line x="80.0" y="32.0"/>
-				<line x="40.0" y="52.0"/>
+				<move x="40" y="12"/>
+				<line x="80" y="32"/>
+				<line x="40" y="52"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="72.0"/>
-				<line x="35.0" y="42.0"/>
-				<line x="40.0" y="42.0"/>
-			</path>
-			<stroke/>
 			<path>
-				<move x="35.0" y="22.0"/>
-				<line x="35.0" y="2.0"/>
-				<line x="50.0" y="2.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="70.0" y="2.0"/>
-				<line x="85.0" y="2.0"/>
-				<line x="85.0" y="32.0"/>
+				<move x="35" y="72"/>
+				<line x="35" y="42"/>
+				<line x="40" y="42"/>
+				<move x="35" y="22"/>
+				<line x="35" y="2"/>
+				<line x="50" y="2"/>
+				<move x="70" y="2"/>
+				<line x="85" y="2"/>
+				<line x="85" y="32"/>
+				<move x="0" y="22"/>
+				<line x="20" y="22"/>
+				<move x="80" y="32"/>
+				<line x="100" y="32"/>
+				<move x="25" y="22"/>
+				<line x="40" y="22"/>
+				<move x="25" y="15"/>
+				<line x="25" y="29"/>
+				<move x="20" y="15"/>
+				<line x="20" y="29"/>
+				<move x="0" y="22"/>
+				<line x="20" y="22"/>
+				<move x="80" y="32"/>
+				<line x="100" y="32"/>
+				<move x="25" y="22"/>
+				<line x="40" y="22"/>
+				<move x="25" y="15"/>
+				<line x="25" y="29"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="50.0" y="0.0"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="22.0"/>
-				<line x="20.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="32.0"/>
-				<line x="100.0" y="32.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="25.0" y="22.0"/>
-				<line x="40.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="25.0" y="15.0"/>
-				<line x="25.0" y="29.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="29.0"/>
-			</path>
+			<rect h="4" w="20" x="50" y="0"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="77.0" name="Integrator" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="77" name="Integrator" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V+" perimeter="0" x="0.0" y="0.35"/>
-			<constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.48"/>
+			<constraint name="V+" perimeter="0" x="0" y="0.35"/>
+			<constraint name="V-" perimeter="0" x="0.35" y="1"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.48"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="17.0"/>
-				<line x="80.0" y="37.0"/>
-				<line x="40.0" y="57.0"/>
+				<move x="40" y="17"/>
+				<line x="80" y="37"/>
+				<line x="40" y="57"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="77.0"/>
-				<line x="35.0" y="47.0"/>
-				<line x="40.0" y="47.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="35.0" y="27.0"/>
-				<line x="35.0" y="7.0"/>
-				<line x="60.0" y="7.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="63.0" y="7.0"/>
-				<line x="85.0" y="7.0"/>
-				<line x="85.0" y="37.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="10.0" y="25.0"/>
 			<fillstroke/>
 			<path>
-				<move x="0.0" y="27.0"/>
-				<line x="10.0" y="27.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="37.0"/>
-				<line x="100.0" y="37.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="27.0"/>
-				<line x="40.0" y="27.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="63.0" y="0.0"/>
-				<line x="63.0" y="14.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="0.0"/>
-				<line x="60.0" y="14.0"/>
-			</path>
+				<move x="35" y="77"/>
+				<line x="35" y="47"/>
+				<line x="40" y="47"/>
+				<move x="35" y="27"/>
+				<line x="35" y="7"/>
+				<line x="60" y="7"/>
+				<move x="63" y="7"/>
+				<line x="85" y="7"/>
+				<line x="85" y="37"/>
+				<move x="0" y="27"/>
+				<line x="10" y="27"/>
+				<move x="80" y="37"/>
+				<line x="100" y="37"/>
+				<move x="30" y="27"/>
+				<line x="40" y="27"/>
+				<move x="63" y="0"/>
+				<line x="63" y="14"/>
+				<move x="60" y="0"/>
+				<line x="60" y="14"/>
+			</path>
+			<stroke/>
+			<rect h="4" w="20" x="10" y="25"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="72.0" name="Inverting Amplifier" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="72" name="Inverting Amplifier" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V+" perimeter="0" x="0.0" y="0.305"/>
-			<constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+			<constraint name="V+" perimeter="0" x="0" y="0.305"/>
+			<constraint name="V-" perimeter="0" x="0.35" y="1"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.445"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="12.0"/>
-				<line x="80.0" y="32.0"/>
-				<line x="40.0" y="52.0"/>
+				<move x="40" y="12"/>
+				<line x="80" y="32"/>
+				<line x="40" y="52"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="72.0"/>
-				<line x="35.0" y="42.0"/>
-				<line x="40.0" y="42.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="35.0" y="22.0"/>
-				<line x="35.0" y="2.0"/>
-				<line x="50.0" y="2.0"/>
-			</path>
-			<stroke/>
 			<path>
-				<move x="70.0" y="2.0"/>
-				<line x="85.0" y="2.0"/>
-				<line x="85.0" y="32.0"/>
+				<move x="35" y="72"/>
+				<line x="35" y="42"/>
+				<line x="40" y="42"/>
+				<move x="35" y="22"/>
+				<line x="35" y="2"/>
+				<line x="50" y="2"/>
+				<move x="70" y="2"/>
+				<line x="85" y="2"/>
+				<line x="85" y="32"/>
+				<move x="0" y="22"/>
+				<line x="10" y="22"/>
+				<move x="30" y="22"/>
+				<line x="40" y="22"/>
+				<move x="80" y="32"/>
+				<line x="100" y="32"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="50.0" y="0.0"/>
+			<rect h="4" w="20" x="50" y="0"/>
 			<fillstroke/>
-			<rect h="4.0" w="20.0" x="10.0" y="20.0"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="22.0"/>
-				<line x="10.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="22.0"/>
-				<line x="40.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="32.0"/>
-				<line x="100.0" y="32.0"/>
-			</path>
+			<rect h="4" w="20" x="10" y="20"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="92.0" name="Multivibrator" strokewidth="inherit" w="95.0">
+	<shape aspect="variable" h="92" name="Multivibrator" strokewidth="inherit" w="95">
 		<connections>
-			<constraint name="Vout+" perimeter="0" x="1.0" y="0.345"/>
-			<constraint name="Vout-" perimeter="0" x="1.0" y="1.0"/>
+			<constraint name="Vout+" perimeter="0" x="1" y="0.345"/>
+			<constraint name="Vout-" perimeter="0" x="1" y="1"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="30.0" y="12.0"/>
-				<line x="70.0" y="32.0"/>
-				<line x="30.0" y="52.0"/>
+				<move x="30" y="12"/>
+				<line x="70" y="32"/>
+				<line x="30" y="52"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="25.0" y="22.0"/>
-				<line x="25.0" y="2.0"/>
-				<line x="40.0" y="2.0"/>
+				<move x="25" y="22"/>
+				<line x="25" y="2"/>
+				<line x="40" y="2"/>
+				<move x="20" y="15"/>
+				<line x="20" y="29"/>
+				<move x="15" y="15"/>
+				<line x="15" y="29"/>
+				<move x="70" y="32"/>
+				<line x="95" y="32"/>
+				<move x="20" y="22"/>
+				<line x="30" y="22"/>
+				<move x="80" y="57"/>
+				<line x="80" y="67"/>
+				<move x="80" y="87"/>
+				<line x="80" y="92"/>
+				<move x="30" y="42"/>
+				<line x="25" y="42"/>
+				<line x="25" y="62"/>
+				<line x="80" y="62"/>
+				<move x="15" y="22"/>
+				<line x="0" y="22"/>
+				<line x="0" y="92"/>
+				<line x="95" y="92"/>
+				<move x="60" y="2"/>
+				<line x="80" y="2"/>
+				<line x="80" y="37"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="40.0" y="0.0"/>
-			<fillstroke/>
-			<rect h="20.0" w="4.0" x="78.0" y="37.0"/>
-			<fillstroke/>
-			<rect h="20.0" w="4.0" x="78.0" y="67.0"/>
+			<rect h="4" w="20" x="40" y="0"/>
 			<fillstroke/>
-			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="29.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="15.0" y="15.0"/>
-				<line x="15.0" y="29.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="32.0"/>
-				<line x="95.0" y="32.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="22.0"/>
-				<line x="30.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="57.0"/>
-				<line x="80.0" y="67.0"/>
-			</path>
+			<rect h="20" w="4" x="78" y="37"/>
 			<fillstroke/>
-			<path>
-				<move x="80.0" y="87.0"/>
-				<line x="80.0" y="92.0"/>
-			</path>
+			<rect h="20" w="4" x="78" y="67"/>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="30.0" y="42.0"/>
-				<line x="25.0" y="42.0"/>
-				<line x="25.0" y="62.0"/>
-				<line x="80.0" y="62.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="15.0" y="22.0"/>
-				<line x="0.0" y="22.0"/>
-				<line x="0.0" y="92.0"/>
-				<line x="95.0" y="92.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="60.0" y="2.0"/>
-				<line x="80.0" y="2.0"/>
-				<line x="80.0" y="37.0"/>
-			</path>
-			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="72.0" name="Non-inverting Amplifier" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="72" name="Non-inverting Amplifier" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V-" perimeter="0" x="0.0" y="0.585"/>
-			<constraint name="V+" perimeter="0" x="0.35" y="1.0"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+			<constraint name="V-" perimeter="0" x="0" y="0.585"/>
+			<constraint name="V+" perimeter="0" x="0.35" y="1"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.445"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="12.0"/>
-				<line x="80.0" y="32.0"/>
-				<line x="40.0" y="52.0"/>
+				<move x="40" y="12"/>
+				<line x="80" y="32"/>
+				<line x="40" y="52"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="35.0" y="47.0"/>
-				<line x="35.0" y="2.0"/>
-				<line x="50.0" y="2.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="70.0" y="2.0"/>
-				<line x="85.0" y="2.0"/>
-				<line x="85.0" y="32.0"/>
+				<move x="35" y="47"/>
+				<line x="35" y="2"/>
+				<line x="50" y="2"/>
+				<move x="70" y="2"/>
+				<line x="85" y="2"/>
+				<line x="85" y="32"/>
+				<move x="0" y="42"/>
+				<line x="40" y="42"/>
+				<move x="35" y="22"/>
+				<line x="40" y="22"/>
+				<move x="80" y="32"/>
+				<line x="100" y="32"/>
+				<move x="35" y="67"/>
+				<line x="35" y="72"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="50.0" y="0.0"/>
-			<fillstroke/>
-			<rect h="20.0" w="4.0" x="33.0" y="47.0"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="42.0"/>
-				<line x="40.0" y="42.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="35.0" y="22.0"/>
-				<line x="40.0" y="22.0"/>
-			</path>
+			<rect h="4" w="20" x="50" y="0"/>
 			<fillstroke/>
-			<path>
-				<move x="80.0" y="32.0"/>
-				<line x="100.0" y="32.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="35.0" y="67.0"/>
-				<line x="35.0" y="72.0"/>
-			</path>
+			<rect h="20" w="4" x="33" y="47"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="47.0" name="Regen Comparator" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="47" name="Regen Comparator" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V+" perimeter="0" x="0.0" y="0.212"/>
-			<constraint name="V-" perimeter="0" x="0.0" y="0.64"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.425"/>
+			<constraint name="V+" perimeter="0" x="0" y="0.212"/>
+			<constraint name="V-" perimeter="0" x="0" y="0.64"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.425"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="0.0"/>
-				<line x="80.0" y="20.0"/>
-				<line x="40.0" y="40.0"/>
+				<move x="40" y="0"/>
+				<line x="80" y="20"/>
+				<line x="40" y="40"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="70.0" y="45.0"/>
-				<line x="85.0" y="45.0"/>
-				<line x="85.0" y="20.0"/>
+				<move x="70" y="45"/>
+				<line x="85" y="45"/>
+				<line x="85" y="20"/>
+				<move x="0" y="30"/>
+				<line x="5" y="30"/>
+				<move x="80" y="20"/>
+				<line x="100" y="20"/>
+				<move x="0" y="10"/>
+				<line x="40" y="10"/>
+				<move x="25" y="30"/>
+				<line x="40" y="30"/>
+				<move x="35" y="30"/>
+				<line x="35" y="45"/>
+				<line x="50" y="45"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="50.0" y="43.0"/>
+			<rect h="4" w="20" x="50" y="43"/>
 			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="5.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="20.0"/>
-				<line x="100.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<rect h="4.0" w="20.0" x="5.0" y="28.0"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="10.0"/>
-				<line x="40.0" y="10.0"/>
-			</path>
+			<rect h="4" w="20" x="5" y="28"/>
 			<fillstroke/>
-			<path>
-				<move x="25.0" y="30.0"/>
-				<line x="40.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="30.0"/>
-				<line x="35.0" y="45.0"/>
-				<line x="50.0" y="45.0"/>
-			</path>
-			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="72.0" name="Subtractor" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="72" name="Subtractor" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V+" perimeter="0" x="0.0" y="0.025"/>
-			<constraint name="V-1" perimeter="0" x="0.0" y="0.585"/>
-			<constraint name="V-2" perimeter="0" x="0.35" y="1.0"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.443"/>
+			<constraint name="V+" perimeter="0" x="0" y="0.025"/>
+			<constraint name="V-1" perimeter="0" x="0" y="0.585"/>
+			<constraint name="V-2" perimeter="0" x="0.35" y="1"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.443"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="12.0"/>
-				<line x="80.0" y="32.0"/>
-				<line x="40.0" y="52.0"/>
+				<move x="40" y="12"/>
+				<line x="80" y="32"/>
+				<line x="40" y="52"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="70.0" y="2.0"/>
-				<line x="85.0" y="2.0"/>
-				<line x="85.0" y="32.0"/>
+				<move x="70" y="2"/>
+				<line x="85" y="2"/>
+				<line x="85" y="32"/>
+				<move x="0" y="42"/>
+				<line x="5" y="42"/>
+				<move x="0" y="2"/>
+				<line x="5" y="2"/>
+				<move x="80" y="32"/>
+				<line x="100" y="32"/>
+				<move x="35" y="67"/>
+				<line x="35" y="72"/>
+				<move x="25" y="2"/>
+				<line x="50" y="2"/>
+				<move x="25" y="42"/>
+				<line x="40" y="42"/>
+				<move x="35" y="42"/>
+				<line x="35" y="47"/>
+				<move x="35" y="2"/>
+				<line x="35" y="22"/>
+				<line x="40" y="22"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="50.0" y="0.0"/>
-			<fillstroke/>
-			<rect h="20.0" w="4.0" x="33.0" y="47.0"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="42.0"/>
-				<line x="5.0" y="42.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="2.0"/>
-				<line x="5.0" y="2.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="32.0"/>
-				<line x="100.0" y="32.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="35.0" y="67.0"/>
-				<line x="35.0" y="72.0"/>
-			</path>
-			<fillstroke/>
-			<rect h="4.0" w="20.0" x="5.0" y="0.0"/>
+			<rect h="4" w="20" x="50" y="0"/>
 			<fillstroke/>
-			<rect h="4.0" w="20.0" x="5.0" y="40.0"/>
+			<rect h="20" w="4" x="33" y="47"/>
 			<fillstroke/>
-			<path>
-				<move x="25.0" y="2.0"/>
-				<line x="50.0" y="2.0"/>
-			</path>
+			<rect h="4" w="20" x="5" y="0"/>
 			<fillstroke/>
-			<path>
-				<move x="25.0" y="42.0"/>
-				<line x="40.0" y="42.0"/>
-			</path>
+			<rect h="4" w="20" x="5" y="40"/>
 			<fillstroke/>
-			<path>
-				<move x="35.0" y="42.0"/>
-				<line x="35.0" y="47.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="2.0"/>
-				<line x="35.0" y="22.0"/>
-				<line x="40.0" y="22.0"/>
-			</path>
-			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="72.0" name="Summing Amplifier" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="72" name="Summing Amplifier" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="V+1" perimeter="0" x="0.0" y="0.165"/>
-			<constraint name="V+2" perimeter="0" x="0.0" y="0.305"/>
-			<constraint name="V+3" perimeter="0" x="0.0" y="0.445"/>
-			<constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.443"/>
+			<constraint name="V+1" perimeter="0" x="0" y="0.165"/>
+			<constraint name="V+2" perimeter="0" x="0" y="0.305"/>
+			<constraint name="V+3" perimeter="0" x="0" y="0.445"/>
+			<constraint name="V-" perimeter="0" x="0.35" y="1"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.443"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
 			<path>
-				<move x="40.0" y="12.0"/>
-				<line x="80.0" y="32.0"/>
-				<line x="40.0" y="52.0"/>
+				<move x="40" y="12"/>
+				<line x="80" y="32"/>
+				<line x="40" y="52"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="72.0"/>
-				<line x="35.0" y="42.0"/>
-				<line x="40.0" y="42.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="35.0" y="22.0"/>
-				<line x="35.0" y="2.0"/>
-				<line x="50.0" y="2.0"/>
-			</path>
-			<stroke/>
 			<path>
-				<move x="70.0" y="2.0"/>
-				<line x="85.0" y="2.0"/>
-				<line x="85.0" y="32.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="50.0" y="0.0"/>
-			<fillstroke/>
-			<rect h="4.0" w="20.0" x="5.0" y="20.0"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="22.0"/>
-				<line x="5.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="25.0" y="22.0"/>
-				<line x="40.0" y="22.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="32.0"/>
-				<line x="100.0" y="32.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="25.0" y="12.0"/>
-				<line x="30.0" y="12.0"/>
-				<line x="30.0" y="32.0"/>
-				<line x="25.0" y="32.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<rect h="4.0" w="20.0" x="5.0" y="10.0"/>
+				<move x="35" y="72"/>
+				<line x="35" y="42"/>
+				<line x="40" y="42"/>
+				<move x="35" y="22"/>
+				<line x="35" y="2"/>
+				<line x="50" y="2"/>
+				<move x="70" y="2"/>
+				<line x="85" y="2"/>
+				<line x="85" y="32"/>
+				<move x="0" y="22"/>
+				<line x="5" y="22"/>
+				<move x="25" y="22"/>
+				<line x="40" y="22"/>
+				<move x="80" y="32"/>
+				<line x="100" y="32"/>
+				<move x="25" y="12"/>
+				<line x="30" y="12"/>
+				<line x="30" y="32"/>
+				<line x="25" y="32"/>
+				<move x="0" y="12"/>
+				<line x="5" y="12"/>
+				<move x="0" y="32"/>
+				<line x="5" y="32"/>
+			</path>
+			<stroke/>
+			<rect h="4" w="20" x="50" y="0"/>
 			<fillstroke/>
-			<rect h="4.0" w="20.0" x="5.0" y="30.0"/>
+			<rect h="4" w="20" x="5" y="20"/>
 			<fillstroke/>
-			<path>
-				<move x="0.0" y="12.0"/>
-				<line x="5.0" y="12.0"/>
-			</path>
+			<rect h="4" w="20" x="5" y="10"/>
 			<fillstroke/>
-			<path>
-				<move x="0.0" y="32.0"/>
-				<line x="5.0" y="32.0"/>
-			</path>
+			<rect h="4" w="20" x="5" y="30"/>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Unity Gain Follower" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Unity Gain Follower" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="Vin" perimeter="0" x="0.0" y="0.8"/>
-			<constraint name="Vout" perimeter="0" x="1.0" y="0.6"/>
+			<constraint name="Vin" perimeter="0" x="0" y="0.8"/>
+			<constraint name="Vout" perimeter="0" x="1" y="0.6"/>
 		</connections>
 		<background>
-			<save/>
 			<path>
-				<move x="40.0" y="10.0"/>
-				<line x="80.0" y="30.0"/>
-				<line x="40.0" y="50.0"/>
+				<move x="40" y="10"/>
+				<line x="80" y="30"/>
+				<line x="40" y="50"/>
 				<close/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="80.0" y="30.0"/>
-				<line x="100.0" y="30.0"/>
+				<move x="80" y="30"/>
+				<line x="100" y="30"/>
+				<move x="85" y="30"/>
+				<line x="85" y="0"/>
+				<line x="35" y="0"/>
+				<line x="35" y="20"/>
+				<line x="40" y="20"/>
+				<move x="0" y="40"/>
+				<line x="40" y="40"/>
 			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="85.0" y="30.0"/>
-				<line x="85.0" y="0.0"/>
-				<line x="35.0" y="0.0"/>
-				<line x="35.0" y="20.0"/>
-				<line x="40.0" y="20.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="40.0" y="40.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
 </shapes>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 653 - 982
war/stencils/electrical/opto_electronics.xml


+ 59 - 126
war/stencils/electrical/plc_ladder.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.plc_ladder">
+<shapes name="mxgraph.electrical.plc_ladder">
 	<shape aspect="variable" h="50" name="Contact" strokewidth="inherit" w="100">
 		<connections>
 			<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -8,182 +8,115 @@
 			<path>
 				<move x="0" y="25"/>
 				<line x="30" y="25"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="100" y="25"/>
 				<line x="70" y="25"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="30" y="0"/>
 				<line x="30" y="50"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="70" y="0"/>
 				<line x="70" y="50"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Not Contact" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Not Contact" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<foreground>
 			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="30.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="100.0" y="25.0"/>
-				<line x="70.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="30.0" y="50.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="0.0"/>
-				<line x="70.0" y="50.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="50.0"/>
-				<line x="70.0" y="0.0"/>
+				<move x="0" y="25"/>
+				<line x="30" y="25"/>
+				<move x="100" y="25"/>
+				<line x="70" y="25"/>
+				<move x="30" y="0"/>
+				<line x="30" y="50"/>
+				<move x="70" y="0"/>
+				<line x="70" y="50"/>
+				<move x="30" y="50"/>
+				<line x="70" y="0"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Not Output 1" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Not Output 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<foreground>
-			<save/>
-			<save/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="35.0" y="0.0"/>
-				<arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="50.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="28.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="100.0" y="25.0"/>
-				<line x="72.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="65.0" y="0.0"/>
-				<arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+				<move x="35" y="0"/>
+				<arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="35" x-axis-rotation="0" y="50"/>
+				<move x="0" y="25"/>
+				<line x="28" y="25"/>
+				<move x="100" y="25"/>
+				<line x="72" y="25"/>
+				<move x="65" y="0"/>
+				<arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="65" x-axis-rotation="0" y="50"/>
+				<move x="30" y="50"/>
+				<line x="70" y="0"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="30.0" y="50.0"/>
-				<line x="70.0" y="0.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Not Output 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Not Output 2" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<ellipse h="50.0" w="50.0" x="25.0" y="0.0"/>
+			<ellipse h="50" w="50" x="25" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="25.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="100.0" y="25.0"/>
-				<line x="75.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="50.0"/>
-				<line x="70.0" y="0.0"/>
+				<move x="0" y="25"/>
+				<line x="25" y="25"/>
+				<move x="100" y="25"/>
+				<line x="75" y="25"/>
+				<move x="30" y="50"/>
+				<line x="70" y="0"/>
 			</path>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Output 1" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Output 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<foreground>
-			<save/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="35.0" y="0.0"/>
-				<arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="50.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="28.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="100.0" y="25.0"/>
-				<line x="72.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="65.0" y="0.0"/>
-				<arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+				<move x="35" y="0"/>
+				<arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="35" x-axis-rotation="0" y="50"/>
+				<move x="0" y="25"/>
+				<line x="28" y="25"/>
+				<move x="100" y="25"/>
+				<line x="72" y="25"/>
+				<move x="65" y="0"/>
+				<arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="65" x-axis-rotation="0" y="50"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="50.0" name="Output 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="50" name="Output 2" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+			<constraint name="in" perimeter="0" x="0" y="0.5"/>
+			<constraint name="out" perimeter="0" x="1" y="0.5"/>
 		</connections>
 		<background>
-			<ellipse h="50.0" w="50.0" x="25.0" y="0.0"/>
+			<ellipse h="50" w="50" x="25" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="25.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="100.0" y="25.0"/>
-				<line x="75.0" y="25.0"/>
+				<move x="0" y="25"/>
+				<line x="25" y="25"/>
+				<move x="100" y="25"/>
+				<line x="75" y="25"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
 </shapes>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 392 - 757
war/stencils/electrical/power_semiconductors.xml


+ 267 - 381
war/stencils/electrical/radio.xml

@@ -1,382 +1,268 @@
-<shapes name="mxGraph.electrical.radio">
-	<shape aspect="variable" h="100" name="Aerial - Antenna 1" strokewidth="inherit" w="80">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1"/>
-		</connections>
-		<foreground>
-			<save/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="0" y="0"/>
-				<line x="40" y="40"/>
-				<line x="80" y="0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="40" y="0"/>
-				<line x="40" y="100"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="100.0" name="Aerial - Antenna 2" strokewidth="inherit" w="79.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-		</connections>
-		<background>
-			<path>
-				<move x="0.0" y="0.5"/>
-				<line x="39.5" y="40.0"/>
-				<line x="79.0" y="0.5"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="39.5" y="0.0"/>
-				<line x="39.5" y="100.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Chassis" strokewidth="inherit" w="100.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-		</connections>
-		<background>
-			<save/>
-			<save/>
-			<rect h="20.0" w="100.0" x="0.0" y="20.0"/>
-		</background>
-		<foreground>
-			<strokecolor color="none"/>
-			<fill/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="0.0" y="20.0"/>
-				<line x="100.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="25.0"/>
-				<line x="5.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="30.0"/>
-				<line x="10.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="35.0"/>
-				<line x="15.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="20.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="5.0" y="40.0"/>
-				<line x="25.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="40.0"/>
-				<line x="30.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="15.0" y="40.0"/>
-				<line x="35.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="40.0"/>
-				<line x="40.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="25.0" y="40.0"/>
-				<line x="45.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="40.0"/>
-				<line x="50.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="35.0" y="40.0"/>
-				<line x="55.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="40.0" y="40.0"/>
-				<line x="60.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="45.0" y="40.0"/>
-				<line x="65.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="40.0"/>
-				<line x="70.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="55.0" y="40.0"/>
-				<line x="75.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="40.0"/>
-				<line x="80.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="65.0" y="40.0"/>
-				<line x="85.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="40.0"/>
-				<line x="90.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="75.0" y="40.0"/>
-				<line x="95.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="80.0" y="40.0"/>
-				<line x="100.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="85.0" y="40.0"/>
-				<line x="100.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="40.0"/>
-				<line x="100.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="95.0" y="40.0"/>
-				<line x="100.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="50.0" y="0.0"/>
-				<line x="50.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Dipole" strokewidth="inherit" w="100.0">
-		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.0"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.0"/>
-		</connections>
-		<foreground>
-			<fillcolor color="none"/>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="35.0" y="0.0"/>
-				<line x="35.0" y="40.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="65.0" y="40.0"/>
-				<line x="65.0" y="0.0"/>
-				<line x="100.0" y="0.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Earth" strokewidth="inherit" w="50.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-		</connections>
-		<foreground>
-			<save/>
-			<path>
-				<move x="0.0" y="10.0"/>
-				<line x="50.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="4.0" y="15.0"/>
-				<line x="46.0" y="15.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="8.0" y="20.0"/>
-				<line x="42.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="16.5" y="30.0"/>
-				<line x="33.5" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.5" y="35.0"/>
-				<line x="29.5" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="25.0" y="0.0"/>
-				<line x="25.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="12.5" y="25.0"/>
-				<line x="37.5" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="24.5" y="40.0"/>
-				<line x="25.5" y="40.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="70.0" name="Electret Microphone" strokewidth="inherit" w="70.0">
-		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
-		</connections>
-		<background>
-			<ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="0.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="35.0" y="0.0"/>
-				<line x="35.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="30.0"/>
-				<line x="50.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="40.0"/>
-				<line x="50.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="35.0" y="40.0"/>
-				<line x="35.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="56.0" name="Headphones" strokewidth="inherit" w="66.0">
-		<connections>
-			<constraint name="W" perimeter="0" x="0.0" y="0.75"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.75"/>
-		</connections>
-		<foreground>
-			<ellipse h="30.0" w="16.0" x="0.0" y="26.0"/>
-			<fillstroke/>
-			<ellipse h="30.0" w="16.0" x="50.0" y="26.0"/>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="2.0" y="31.0"/>
-				<arc large-arc-flag="0" rx="20.0" ry="20.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="31.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="69.78" name="Loop Antenna" strokewidth="inherit" w="64.08">
-		<connections>
-			<constraint name="in" perimeter="0" x="0.342" y="1.0"/>
-			<constraint name="out" perimeter="0" x="0.658" y="1.0"/>
-		</connections>
-		<foreground>
-			<fillcolor color="none"/>
-			<path>
-				<move x="22.04" y="69.78"/>
-				<line x="22.04" y="58.28"/>
-				<arc large-arc-flag="1" rx="30.0" ry="30.0" sweep-flag="1" x="42.04" x-axis-rotation="0.0" y="58.28"/>
-				<line x="42.04" y="69.78"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="70.0" name="Microphone 1" strokewidth="inherit" w="70.0">
-		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
-		</connections>
-		<background>
-			<ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="0.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="70.0" name="Microphone 2" strokewidth="inherit" w="42.0">
-		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="0.835" y="0.5"/>
-		</connections>
-		<background>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<arc large-arc-flag="0" rx="35.0" ry="35.0" sweep-flag="1" x="0.0" x-axis-rotation="0.0" y="70.0"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="33.5" y="25.0"/>
-				<line x="42.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="33.5" y="45.0"/>
-				<line x="42.0" y="45.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
+<shapes name="mxgraph.electrical.radio">
+<shape aspect="variable" h="100" name="Aerial - Antenna 1" strokewidth="inherit" w="80">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="40" y="40"/>
+            <line x="80" y="0"/>
+            <move x="40" y="0"/>
+            <line x="40" y="100"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Aerial - Antenna 2" strokewidth="inherit" w="79">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="0.5"/>
+            <line x="39.5" y="40"/>
+            <line x="79" y="0.5"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="39.5" y="0"/>
+            <line x="39.5" y="100"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Buzzer" strokewidth="inherit" w="80">
+    <connections>
+        <constraint name="in" perimeter="0" x="0" y="0.5"/>
+    </connections>
+    <foreground>
+        <rect h="50" w="50" x="15" y="0"/>
+        <fillstroke/>
+        <path>
+            <move x="0" y="25"/>
+            <line x="15" y="25"/>
+            <move x="65" y="0"/>
+            <line x="80" y="50"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Chassis" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+    </connections>
+    <background>
+        <rect h="20" w="100" x="0" y="20"/>
+    </background>
+    <foreground>
+        <fill/>
+        <path>
+            <move x="0" y="25"/>
+            <line x="5" y="20"/>
+            <move x="0" y="30"/>
+            <line x="10" y="20"/>
+            <move x="0" y="35"/>
+            <line x="15" y="20"/>
+            <move x="0" y="40"/>
+            <line x="20" y="20"/>
+            <move x="5" y="40"/>
+            <line x="25" y="20"/>
+            <move x="10" y="40"/>
+            <line x="30" y="20"/>
+            <move x="15" y="40"/>
+            <line x="35" y="20"/>
+            <move x="20" y="40"/>
+            <line x="40" y="20"/>
+            <move x="25" y="40"/>
+            <line x="45" y="20"/>
+            <move x="30" y="40"/>
+            <line x="50" y="20"/>
+            <move x="35" y="40"/>
+            <line x="55" y="20"/>
+            <move x="40" y="40"/>
+            <line x="60" y="20"/>
+            <move x="45" y="40"/>
+            <line x="65" y="20"/>
+            <move x="50" y="40"/>
+            <line x="70" y="20"/>
+            <move x="55" y="40"/>
+            <line x="75" y="20"/>
+            <move x="60" y="40"/>
+            <line x="80" y="20"/>
+            <move x="65" y="40"/>
+            <line x="85" y="20"/>
+            <move x="70" y="40"/>
+            <line x="90" y="20"/>
+            <move x="75" y="40"/>
+            <line x="95" y="20"/>
+            <move x="80" y="40"/>
+            <line x="100" y="20"/>
+            <move x="85" y="40"/>
+            <line x="100" y="25"/>
+            <move x="90" y="40"/>
+            <line x="100" y="30"/>
+            <move x="95" y="40"/>
+            <line x="100" y="35"/>
+        </path>
+        <stroke/>
+        <strokewidth width="2"/>
+        <path>
+            <move x="50" y="0"/>
+            <line x="50" y="20"/>
+            <move x="0" y="20"/>
+            <line x="100" y="20"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Dipole" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="in" perimeter="0" x="0" y="0"/>
+        <constraint name="out" perimeter="0" x="1" y="0"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="35" y="0"/>
+            <line x="35" y="40"/>
+            <move x="65" y="40"/>
+            <line x="65" y="0"/>
+            <line x="100" y="0"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Earth" strokewidth="inherit" w="50">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="10"/>
+            <line x="50" y="10"/>
+            <move x="4" y="15"/>
+            <line x="46" y="15"/>
+            <move x="8" y="20"/>
+            <line x="42" y="20"/>
+            <move x="16.5" y="30"/>
+            <line x="33.5" y="30"/>
+            <move x="20.5" y="35"/>
+            <line x="29.5" y="35"/>
+            <move x="12.5" y="25"/>
+            <line x="37.5" y="25"/>
+            <move x="24.5" y="40"/>
+            <line x="25.5" y="40"/>
+        </path>
+        <stroke/>
+        <strokewidth width="2"/>
+        <path>
+            <move x="25" y="0"/>
+            <line x="25" y="10"/>
+        </path>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Electret Microphone" strokewidth="inherit" w="70">
+    <connections>
+        <constraint name="in" perimeter="0" x="0" y="0.5"/>
+        <constraint name="out" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <ellipse h="70" w="70" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="0" y="0"/>
+            <line x="0" y="70"/>
+            <move x="35" y="0"/>
+            <line x="35" y="30"/>
+            <move x="20" y="30"/>
+            <line x="50" y="30"/>
+            <move x="20" y="40"/>
+            <line x="50" y="40"/>
+            <move x="35" y="40"/>
+            <line x="35" y="70"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="56" name="Headphones" strokewidth="inherit" w="66">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.75"/>
+        <constraint name="E" perimeter="0" x="1" y="0.75"/>
+    </connections>
+    <foreground>
+        <ellipse h="30" w="16" x="0" y="26"/>
+        <fillstroke/>
+        <ellipse h="30" w="16" x="50" y="26"/>
+        <fillstroke/>
+        <path>
+            <move x="2" y="31"/>
+            <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="64" x-axis-rotation="0" y="31"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="69.78" name="Loop Antenna" strokewidth="inherit" w="64.08">
+    <connections>
+        <constraint name="in" perimeter="0" x="0.342" y="1"/>
+        <constraint name="out" perimeter="0" x="0.658" y="1"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="22.04" y="69.78"/>
+            <line x="22.04" y="58.28"/>
+            <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="1" x="42.04" x-axis-rotation="0" y="58.28"/>
+            <line x="42.04" y="69.78"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Microphone 1" strokewidth="inherit" w="70">
+    <connections>
+        <constraint name="in" perimeter="0" x="0" y="0.5"/>
+        <constraint name="out" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <ellipse h="70" w="70" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="0" y="0"/>
+            <line x="0" y="70"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Microphone 2" strokewidth="inherit" w="42">
+    <connections>
+        <constraint name="in" perimeter="0" x="0" y="0.5"/>
+        <constraint name="out" perimeter="0" x="0.835" y="0.5"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="0"/>
+            <arc large-arc-flag="0" rx="35" ry="35" sweep-flag="1" x="0" x-axis-rotation="0" y="70"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="33.5" y="25"/>
+            <line x="42" y="25"/>
+            <move x="33.5" y="45"/>
+            <line x="42" y="45"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
 </shapes>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 616 - 754
war/stencils/electrical/resistors.xml


+ 367 - 0
war/stencils/electrical/rot_mech.xml

@@ -0,0 +1,367 @@
+<shapes name="mxgraph.electrical.rot_mech">
+<shape aspect="variable" h="100" name="Armature" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="NE" perimeter="0" x="1" y="0"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="100"/>
+            <line x="20" y="80"/>
+            <move x="80" y="20"/>
+            <line x="100" y="0"/>
+        </path>
+    </background>
+    <foreground>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="12" name="Automatic Return" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <save/>
+        <path>
+            <move x="0" y="6"/>
+            <line x="100" y="6"/>
+        </path>
+    </background>
+    <foreground>
+        <fillcolor color="none"/>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <stroke/>
+        <restore/>
+        <path>
+            <move x="58" y="0"/>
+            <line x="58" y="12"/>
+            <line x="42" y="6"/>
+            <close/>
+        </path>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Blocking Device" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+    </connections>
+    <background>
+        <save/>
+        <path>
+            <move x="0" y="15"/>
+            <line x="100" y="15"/>
+        </path>
+    </background>
+    <foreground>
+        <fillcolor color="none"/>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <stroke/>
+        <restore/>
+        <rect h="15" w="36" x="33" y="0"/>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Clutch" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+    </connections>
+    <background>
+        <save/>
+        <path>
+            <move x="0" y="20"/>
+            <line x="35" y="20"/>
+            <line x="35" y="5"/>
+            <move x="100" y="20"/>
+            <line x="65" y="20"/>
+            <line x="65" y="5"/>
+        </path>
+    </background>
+    <foreground>
+        <fillcolor color="none"/>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <stroke/>
+        <restore/>
+        <rect/>
+        <stroke/>
+        <path>
+            <move x="25" y="10"/>
+            <line x="25" y="0"/>
+            <line x="75" y="0"/>
+            <line x="75" y="10"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Clutch 2" strokewidth="inherit" w="90">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <path>
+            <move x="20" y="0"/>
+            <line x="30" y="10"/>
+            <line x="30" y="50"/>
+            <line x="20" y="60"/>
+            <move x="50" y="0"/>
+            <line x="60" y="10"/>
+            <line x="60" y="50"/>
+            <line x="50" y="60"/>
+        </path>
+    </background>
+    <foreground>
+        <stroke/>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <path>
+            <move x="0" y="30"/>
+            <line x="30" y="30"/>
+            <move x="60" y="30"/>
+            <line x="90" y="30"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Delayed Action" strokewidth="inherit" w="71.7">
+    <connections>
+        <constraint name="W" perimeter="0" x="0.04" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <path>
+            <move x="11.7" y="0"/>
+            <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="11.7" x-axis-rotation="0" y="50"/>
+            <move x="3.7" y="20"/>
+            <line x="71.7" y="20"/>
+            <move x="3.7" y="30"/>
+            <line x="71.7" y="30"/>
+        </path>
+    </background>
+    <foreground>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="8" name="Detent" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="NW" perimeter="0" x="0" y="0"/>
+        <constraint name="NE" perimeter="0" x="1" y="0"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="0"/>
+            <line x="46.2" y="0"/>
+            <move x="100" y="0"/>
+            <line x="53.8" y="0"/>
+            <move x="46.2" y="0"/>
+            <line x="50" y="8"/>
+            <line x="53.8" y="0"/>
+        </path>
+    </background>
+    <foreground>
+        <linecap cap="round"/>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Field" strokewidth="inherit" w="90">
+    <connections>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="15"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="30" x-axis-rotation="0" y="15"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="15"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="90" x-axis-rotation="0" y="15"/>
+        </path>
+    </background>
+    <foreground>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="64" name="Gearing" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.81"/>
+        <constraint name="E" perimeter="0" x="1" y="0.31"/>
+    </connections>
+    <background>
+        <ellipse h="40" w="40" x="30" y="0"/>
+    </background>
+    <foreground>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <fillstroke/>
+        <ellipse h="24" w="24" x="38" y="40"/>
+        <fillstroke/>
+        <fillcolor color="none"/>
+        <path>
+            <move x="0" y="52"/>
+            <line x="38" y="52"/>
+            <move x="70" y="20"/>
+            <line x="100" y="20"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="22" name="Latching Device" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+    </connections>
+    <background>
+        <save/>
+        <path>
+            <move x="0" y="22"/>
+            <line x="100" y="22"/>
+        </path>
+    </background>
+    <foreground>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <stroke/>
+        <restore/>
+        <path>
+            <move x="50" y="0"/>
+            <line x="50" y="17"/>
+        </path>
+        <stroke/>
+        <path>
+            <move x="45" y="22"/>
+            <line x="25" y="22"/>
+            <line x="25" y="12"/>
+            <close/>
+        </path>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Manual Control" strokewidth="inherit" w="68">
+    <connections>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0" y="0"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="0"/>
+            <line x="0" y="50"/>
+        </path>
+    </background>
+    <foreground>
+        <stroke/>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <path>
+            <move x="0" y="25"/>
+            <line x="68" y="25"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Mechanical Interlock" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.73"/>
+        <constraint name="E" perimeter="0" x="1" y="0.73"/>
+    </connections>
+    <background>
+        <save/>
+        <path>
+            <move x="0" y="22"/>
+            <line x="100" y="22"/>
+        </path>
+    </background>
+    <foreground>
+        <dashpattern pattern="5 2"/>
+        <dashed dashed="1"/>
+        <stroke/>
+        <restore/>
+        <path>
+            <move x="50" y="0"/>
+            <line x="50" y="17"/>
+        </path>
+        <stroke/>
+        <path>
+            <move x="42" y="13"/>
+            <line x="58" y="13"/>
+            <line x="50" y="30"/>
+            <close/>
+        </path>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="53.61" name="Rotation" strokewidth="inherit" w="68.43">
+    <connections/>
+    <background>
+        <path>
+            <move x="8.31" y="4.56"/>
+            <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="0" x="58.31" x-axis-rotation="0" y="4.56"/>
+        </path>
+    </background>
+    <foreground>
+        <stroke/>
+        <path>
+            <move x="56.2" y="0"/>
+            <line x="56.14" y="16.06"/>
+            <line x="68.43" y="11.43"/>
+            <close/>
+        </path>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Synchro" strokewidth="inherit" w="80">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <background>
+        <ellipse h="80" w="80" x="0" y="10"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <ellipse h="70" w="70" x="5" y="15"/>
+        <stroke/>
+        <path>
+            <move x="40" y="0"/>
+            <line x="40" y="10"/>
+            <move x="40" y="85"/>
+            <line x="40" y="100"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Winding Connection" strokewidth="inherit" w="100">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+        <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+        <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+        <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+    </connections>
+    <background>
+        <ellipse h="100" w="100" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <linejoin join="round"/>
+        <path>
+            <move x="50" y="0"/>
+            <line x="92" y="77"/>
+            <line x="8" y="77"/>
+            <close/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+</shapes>

+ 413 - 436
war/stencils/electrical/signal_sources.xml

@@ -1,436 +1,413 @@
-<shapes name="mxGraph.electrical.signal_sources">
-	<shape aspect="variable" h="60" name="AC Source" strokewidth="inherit" w="60">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1"/>
-			<constraint name="W" perimeter="0" x="0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1" y="0.5"/>
-			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
-			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
-			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
-			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
-		</connections>
-		<background>
-			<ellipse h="60" w="60" x="0" y="0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="15" y="30"/>
-				<arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="30" x-axis-rotation="0" y="30"/>
-				<arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="45" x-axis-rotation="0" y="30"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="10.0" name="Current Flow" strokewidth="inherit" w="70.0">
-		<connections>
-			<constraint name="in" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="out" perimeter="0" x="1.0" y="0.5"/>
-		</connections>
-		<foreground>
-			<path>
-				<move x="0.0" y="5.0"/>
-				<line x="70.0" y="5.0"/>
-				<move x="60.0" y="0.0"/>
-				<line x="70.0" y="5.0"/>
-				<line x="60.0" y="10.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="Current Source" strokewidth="inherit" w="40.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-		</connections>
-		<background>
-			<ellipse h="40.0" w="40.0" x="0.0" y="20.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<ellipse h="40.0" w="40.0" x="0.0" y="0.0"/>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<ellipse h="40.0" w="40.0" x="0.0" y="20.0"/>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="75.0" name="DC Source 1" strokewidth="inherit" w="70.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.58" y="0.135"/>
-			<constraint name="S" perimeter="0" x="0.58" y="0.935"/>
-		</connections>
-		<background>
-			<ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="75.0"/>
-				<line x="10.0" y="75.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="5.0" y="0.0"/>
-				<line x="5.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="5.0"/>
-				<line x="10.0" y="5.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="DC Source 2" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
-			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
-			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
-			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
-			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
-		</connections>
-		<background>
-			<ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="30.0"/>
-				<line x="50.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="40.0" y="25.0"/>
-				<line x="50.0" y="30.0"/>
-				<line x="40.0" y="35.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="DC Source 3" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-		</connections>
-		<background>
-			<ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="27.0" y="55.0"/>
-				<line x="33.0" y="55.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="2.0"/>
-				<line x="30.0" y="8.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="27.0" y="5.0"/>
-				<line x="33.0" y="5.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="Dependent Source 1" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
-		</connections>
-		<background>
-			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="60.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
-				<line x="0.0" y="30.0"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="Dependent Source 2" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
-		</connections>
-		<background>
-			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="60.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
-				<line x="0.0" y="30.0"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="10.0"/>
-				<line x="30.0" y="50.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="25.0" y="40.0"/>
-				<line x="30.0" y="50.0"/>
-				<line x="35.0" y="40.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="Dependent Source 3" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
-		</connections>
-		<background>
-			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="60.0" y="30.0"/>
-				<line x="30.0" y="60.0"/>
-				<line x="0.0" y="30.0"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="27.0" y="10.0"/>
-				<line x="33.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="7.0"/>
-				<line x="30.0" y="13.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="27.0" y="50.0"/>
-				<line x="33.0" y="50.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="90.0" name="Equipotential" strokewidth="inherit" w="90.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-		</connections>
-		<background>
-			<path>
-				<move x="0.0" y="15.0"/>
-				<line x="45.0" y="90.0"/>
-				<line x="90.0" y="15.0"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="45.0" y="0.0"/>
-				<line x="45.0" y="15.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<ellipse h="50.0" w="50.0" x="20.0" y="15.5"/>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="Noise Source" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
-			<constraint name="E" perimeter="0" x="1.0" y="0.5"/>
-			<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
-			<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
-			<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
-			<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
-		</connections>
-		<background>
-			<ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="10.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="11.0" y="25.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="19.0" y="47.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="41.0" y="47.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="49.0" y="25.0"/>
-				<line x="30.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Protective Earth" strokewidth="inherit" w="50.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-		</connections>
-		<foreground>
-			<path>
-				<move x="0.0" y="10.0"/>
-				<line x="50.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="4.0" y="15.0"/>
-				<line x="46.0" y="15.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="8.0" y="20.0"/>
-				<line x="42.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="16.5" y="30.0"/>
-				<line x="33.5" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.5" y="35.0"/>
-				<line x="29.5" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="25.0" y="0.0"/>
-				<line x="25.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="12.5" y="25.0"/>
-				<line x="37.5" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="24.5" y="40.0"/>
-				<line x="25.5" y="40.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="60.0" name="Signal Ground" strokewidth="inherit" w="90.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-		</connections>
-		<background>
-			<path>
-				<move x="0.0" y="20.0"/>
-				<line x="45.0" y="60.0"/>
-				<line x="90.0" y="20.0"/>
-				<close/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="45.0" y="0.0"/>
-				<line x="45.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Vdd" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-		</connections>
-		<foreground>
-			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="60.0" y="40.0"/>
-				<move x="30.0" y="40.0"/>
-				<line x="30.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="70.0" name="Voltage" strokewidth="inherit" w="10.0">
-		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-		</connections>
-		<foreground>
-			<path>
-				<move x="5.0" y="0.0"/>
-				<line x="5.0" y="70.0"/>
-				<move x="0.0" y="60.0"/>
-				<line x="5.0" y="70.0"/>
-				<line x="10.0" y="60.0"/>
-				<move x="0.0" y="10.0"/>
-				<line x="5.0" y="0.0"/>
-				<line x="10.0" y="10.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Vss" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-		</connections>
-		<foreground>
-			<save/>
-			<fontcolor color="none"/>
-			<fontsize size="24.0"/>
-			<text align="center" str="V" valign="bottom" x="25.0" y="-7.0"/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="60.0" y="0.0"/>
-				<move x="30.0" y="0.0"/>
-				<line x="30.0" y="40.0"/>
-			</path>
-			<stroke/>
-			<fontcolor color="none"/>
-			<fontsize size="15.0"/>
-			<text align="center" str="ss" valign="bottom" x="42.0" y="-3.0"/>
-		</foreground>
-	</shape>
-	<shape aspect="variable" h="40.0" name="Vss2" strokewidth="inherit" w="60.0">
-		<connections>
-			<constraint name="S" perimeter="0" x="0.5" y="1.0"/>
-		</connections>
-		<foreground>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="60.0" y="0.0"/>
-				<move x="30.0" y="0.0"/>
-				<line x="30.0" y="40.0"/>
-			</path>
-			<stroke/>
-		</foreground>
-	</shape></shapes>
+<shapes name="mxgraph.electrical.signal_sources">
+<shape aspect="variable" h="60" name="AC Source" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+        <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+        <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+        <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="15" y="30"/>
+            <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="30" x-axis-rotation="0" y="30"/>
+            <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="45" x-axis-rotation="0" y="30"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Current Flow" strokewidth="inherit" w="70">
+    <connections>
+        <constraint name="in" perimeter="0" x="0" y="0.5"/>
+        <constraint name="out" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="5"/>
+            <line x="70" y="5"/>
+            <move x="60" y="0"/>
+            <line x="70" y="5"/>
+            <line x="60" y="10"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Current Source" strokewidth="inherit" w="40">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <background>
+        <ellipse h="40" w="40" x="0" y="20"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <ellipse h="40" w="40" x="0" y="0"/>
+        <fillstroke/>
+        <fillcolor color="none"/>
+        <ellipse h="40" w="40" x="0" y="20"/>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="75" name="DC Source 1" strokewidth="inherit" w="70">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.58" y="0.135"/>
+        <constraint name="S" perimeter="0" x="0.58" y="0.935"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="10" y="10"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="0" y="75"/>
+            <line x="10" y="75"/>
+            <move x="5" y="0"/>
+            <line x="5" y="10"/>
+            <move x="0" y="5"/>
+            <line x="10" y="5"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="DC Source 2" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+        <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+        <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+        <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="10" y="30"/>
+            <line x="50" y="30"/>
+            <move x="40" y="25"/>
+            <line x="50" y="30"/>
+            <line x="40" y="35"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="DC Source 3" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="27" y="55"/>
+            <line x="33" y="55"/>
+            <move x="30" y="2"/>
+            <line x="30" y="8"/>
+            <move x="27" y="5"/>
+            <line x="33" y="5"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 1" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <path>
+            <move x="30" y="0"/>
+            <line x="60" y="30"/>
+            <line x="30" y="60"/>
+            <line x="0" y="30"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 2" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <path>
+            <move x="30" y="0"/>
+            <line x="60" y="30"/>
+            <line x="30" y="60"/>
+            <line x="0" y="30"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="30" y="10"/>
+            <line x="30" y="50"/>
+            <move x="25" y="40"/>
+            <line x="30" y="50"/>
+            <line x="35" y="40"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 3" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <background>
+        <path>
+            <move x="30" y="0"/>
+            <line x="60" y="30"/>
+            <line x="30" y="60"/>
+            <line x="0" y="30"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="27" y="10"/>
+            <line x="33" y="10"/>
+            <move x="30" y="7"/>
+            <line x="30" y="13"/>
+            <move x="27" y="50"/>
+            <line x="33" y="50"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Equipotential" strokewidth="inherit" w="90">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="15"/>
+            <line x="45" y="90"/>
+            <line x="90" y="15"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="45" y="0"/>
+            <line x="45" y="15"/>
+        </path>
+        <stroke/>
+        <ellipse h="50" w="50" x="20" y="15.5"/>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Explosive Squib" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+        <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+        <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+        <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <ellipse h="8" w="8" x="0" y="26"/>
+        <stroke/>
+        <ellipse h="8" w="8" x="52" y="26"/>
+        <stroke/>
+        <strokecolor color="#000000"/>
+        <path>
+            <move x="50" y="38"/>
+            <line x="44" y="44"/>
+            <line x="16" y="16"/>
+            <line x="10" y="22"/>
+        </path>
+        <stroke/>
+        <fillcolor color="#000000"/>
+        <path>
+            <move x="12" y="15"/>
+            <line x="8" y="24"/>
+            <line x="17" y="20"/>
+            <close/>
+        </path>
+        <fill/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Ideal Source" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+        <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+        <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+        <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="0" y="30"/>
+            <line x="60" y="30"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Noise Source" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+        <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+        <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+        <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+        <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+    </connections>
+    <background>
+        <ellipse h="60" w="60" x="0" y="0"/>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="30" y="10"/>
+            <line x="30" y="30"/>
+            <move x="11" y="25"/>
+            <line x="30" y="30"/>
+            <move x="19" y="47"/>
+            <line x="30" y="30"/>
+            <move x="41" y="47"/>
+            <line x="30" y="30"/>
+            <move x="49" y="25"/>
+            <line x="30" y="30"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Protective Earth" strokewidth="inherit" w="50">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="10"/>
+            <line x="50" y="10"/>
+            <move x="4" y="15"/>
+            <line x="46" y="15"/>
+            <move x="8" y="20"/>
+            <line x="42" y="20"/>
+            <move x="16.5" y="30"/>
+            <line x="33.5" y="30"/>
+            <move x="20.5" y="35"/>
+            <line x="29.5" y="35"/>
+            <move x="25" y="0"/>
+            <line x="25" y="10"/>
+            <move x="12.5" y="25"/>
+            <line x="37.5" y="25"/>
+            <move x="24.5" y="40"/>
+            <line x="25.5" y="40"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Signal Ground" strokewidth="inherit" w="90">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+    </connections>
+    <background>
+        <path>
+            <move x="0" y="20"/>
+            <line x="45" y="60"/>
+            <line x="90" y="20"/>
+            <close/>
+        </path>
+    </background>
+    <foreground>
+        <fillstroke/>
+        <path>
+            <move x="45" y="0"/>
+            <line x="45" y="20"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Vdd" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="40"/>
+            <line x="60" y="40"/>
+            <move x="30" y="40"/>
+            <line x="30" y="0"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Voltage" strokewidth="inherit" w="10">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="5" y="0"/>
+            <line x="5" y="70"/>
+            <move x="0" y="60"/>
+            <line x="5" y="70"/>
+            <line x="10" y="60"/>
+            <move x="0" y="10"/>
+            <line x="5" y="0"/>
+            <line x="10" y="10"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Vss2" strokewidth="inherit" w="60">
+    <connections>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="60" y="0"/>
+            <move x="30" y="0"/>
+            <line x="30" y="40"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+</shapes>

+ 174 - 360
war/stencils/electrical/thermionic_devices.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.thermionic_devices">
+<shapes name="mxgraph.electrical.thermionic_devices">
 	<shape aspect="variable" h="77" name="Diode" strokewidth="inherit" w="70">
 		<connections>
 			<constraint name="N" perimeter="0" x="0.5" y="0"/>
@@ -6,7 +6,6 @@
 			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
 			<ellipse h="70" w="70" x="0" y="0"/>
 		</background>
 		<foreground>
@@ -14,466 +13,281 @@
 			<path>
 				<move x="35" y="0"/>
 				<line x="35" y="10"/>
+				<move x="25" y="77"/>
+				<line x="25" y="68"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+				<line x="45" y="77"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 			<strokewidth width="2"/>
 			<path>
 				<move x="25" y="10"/>
 				<line x="45" y="10"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
 				<move x="22.5" y="60"/>
 				<line x="27.5" y="55"/>
 				<line x="42.5" y="55"/>
 				<line x="47.5" y="60"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="25" y="77"/>
-				<line x="25" y="68"/>
-				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
-				<line x="45" y="77"/>
-			</path>
-			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="77.0" name="Double Diode" strokewidth="inherit" w="70.0">
+	<shape aspect="variable" h="77" name="Double Diode" strokewidth="inherit" w="70">
 		<connections>
-			<constraint name="NW" perimeter="0" x="0.285" y="0.0"/>
-			<constraint name="NE" perimeter="0" x="0.715" y="0.0"/>
-			<constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
-			<constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+			<constraint name="NW" perimeter="0" x="0.285" y="0"/>
+			<constraint name="NE" perimeter="0" x="0.715" y="0"/>
+			<constraint name="S1" perimeter="0" x="0.36" y="1"/>
+			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<roundrect arcsize="21.43" h="70.0" w="70.0" x="0.0" y="0.0"/>
+			<roundrect arcsize="21.43" h="70" w="70" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="20.0" y="0.0"/>
-				<line x="20.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="10.0" y="10.0"/>
-				<line x="30.0" y="10.0"/>
+				<move x="20" y="0"/>
+				<line x="20" y="10"/>
+				<move x="50" y="0"/>
+				<line x="50" y="10"/>
+				<move x="25" y="77"/>
+				<line x="25" y="68"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+				<line x="45" y="77"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="50.0" y="0.0"/>
-				<line x="50.0" y="10.0"/>
-			</path>
-			<fillstroke/>
 			<strokewidth width="2"/>
 			<path>
-				<move x="40.0" y="10.0"/>
-				<line x="60.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="10.0" y="60.0"/>
-				<line x="15.0" y="55.0"/>
-				<line x="55.0" y="55.0"/>
-				<line x="60.0" y="60.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="25.0" y="77.0"/>
-				<line x="25.0" y="68.0"/>
-				<arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
-				<line x="45.0" y="77.0"/>
+				<move x="10" y="10"/>
+				<line x="30" y="10"/>
+				<move x="40" y="10"/>
+				<line x="60" y="10"/>
+				<move x="10" y="60"/>
+				<line x="15" y="55"/>
+				<line x="55" y="55"/>
+				<line x="60" y="60"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="77.0" name="Double Triode" strokewidth="inherit" w="70.0">
+	<shape aspect="variable" h="77" name="Double Triode" strokewidth="inherit" w="70">
 		<connections>
-			<constraint name="NW" perimeter="0" x="0.285" y="0.0"/>
-			<constraint name="NE" perimeter="0" x="0.715" y="0.0"/>
-			<constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
-			<constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+			<constraint name="NW" perimeter="0" x="0.285" y="0"/>
+			<constraint name="NE" perimeter="0" x="0.715" y="0"/>
+			<constraint name="S1" perimeter="0" x="0.36" y="1"/>
+			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<roundrect arcsize="21.43" h="70.0" w="70.0" x="0.0" y="0.0"/>
+			<roundrect arcsize="21.43" h="70" w="70" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="20.0" y="0.0"/>
-				<line x="20.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="10.0" y="10.0"/>
-				<line x="30.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="50.0" y="0.0"/>
-				<line x="50.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="40.0" y="10.0"/>
-				<line x="60.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="0.0" y="35.0"/>
-				<line x="10.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="35.0"/>
-				<line x="30.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="40.0" y="35.0"/>
-				<line x="50.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="35.0"/>
-				<line x="70.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="25.0" y="77.0"/>
-				<line x="25.0" y="68.0"/>
-				<arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
-				<line x="45.0" y="77.0"/>
+				<move x="20" y="0"/>
+				<line x="20" y="10"/>
+				<move x="50" y="0"/>
+				<line x="50" y="10"/>
+				<move x="0" y="35"/>
+				<line x="10" y="35"/>
+				<move x="20" y="35"/>
+				<line x="30" y="35"/>
+				<move x="40" y="35"/>
+				<line x="50" y="35"/>
+				<move x="60" y="35"/>
+				<line x="70" y="35"/>
+				<move x="25" y="77"/>
+				<line x="25" y="68"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+				<line x="45" y="77"/>
 			</path>
 			<stroke/>
 			<strokewidth width="2"/>
 			<path>
-				<move x="10.0" y="60.0"/>
-				<line x="15.0" y="55.0"/>
-				<line x="55.0" y="55.0"/>
-				<line x="60.0" y="60.0"/>
+				<move x="10" y="60"/>
+				<line x="15" y="55"/>
+				<line x="55" y="55"/>
+				<line x="60" y="60"/>
+				<move x="10" y="10"/>
+				<line x="30" y="10"/>
+				<move x="40" y="10"/>
+				<line x="60" y="10"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="77.0" name="Pentode" strokewidth="inherit" w="70.0">
+	<shape aspect="variable" h="77" name="Pentode" strokewidth="inherit" w="70">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
-			<constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S1" perimeter="0" x="0.36" y="1"/>
+			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+			<ellipse h="70" w="70" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="35.0" y="0.0"/>
-				<line x="35.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="25.0" y="10.0"/>
-				<line x="45.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="35.0"/>
-				<line x="20.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="35.0"/>
-				<line x="40.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="35.0"/>
-				<line x="60.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="25.0"/>
-				<line x="20.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="25.0"/>
-				<line x="40.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="25.0"/>
-				<line x="60.0" y="25.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="45.0"/>
-				<line x="20.0" y="45.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="45.0"/>
-				<line x="40.0" y="45.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="45.0"/>
-				<line x="60.0" y="45.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="22.5" y="60.0"/>
-				<line x="27.5" y="55.0"/>
-				<line x="42.5" y="55.0"/>
-				<line x="47.5" y="60.0"/>
+				<move x="35" y="0"/>
+				<line x="35" y="10"/>
+				<move x="25" y="77"/>
+				<line x="25" y="68"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+				<line x="45" y="77"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="25.0" y="77.0"/>
-				<line x="25.0" y="68.0"/>
-				<arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
-				<line x="45.0" y="77.0"/>
+				<move x="25" y="10"/>
+				<line x="45" y="10"/>
+				<move x="10" y="35"/>
+				<line x="20" y="35"/>
+				<move x="30" y="35"/>
+				<line x="40" y="35"/>
+				<move x="50" y="35"/>
+				<line x="60" y="35"/>
+				<move x="10" y="25"/>
+				<line x="20" y="25"/>
+				<move x="30" y="25"/>
+				<line x="40" y="25"/>
+				<move x="50" y="25"/>
+				<line x="60" y="25"/>
+				<move x="10" y="45"/>
+				<line x="20" y="45"/>
+				<move x="30" y="45"/>
+				<line x="40" y="45"/>
+				<move x="50" y="45"/>
+				<line x="60" y="45"/>
+				<move x="22.5" y="60"/>
+				<line x="27.5" y="55"/>
+				<line x="42.5" y="55"/>
+				<line x="47.5" y="60"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="87.0" name="Photocell" strokewidth="inherit" w="70.0">
+	<shape aspect="variable" h="87" name="Photocell" strokewidth="inherit" w="70">
 		<connections>
 			<constraint name="N" perimeter="0" x="0.5" y="0.11"/>
-			<constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
-			<constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+			<constraint name="S1" perimeter="0" x="0.36" y="1"/>
+			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="70.0" w="70.0" x="0.0" y="10.0"/>
+			<ellipse h="70" w="70" x="0" y="10"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="35.0" y="10.0"/>
-				<line x="35.0" y="20.0"/>
+				<move x="35" y="10"/>
+				<line x="35" y="20"/>
+				<move x="60" y="0"/>
+				<line x="50" y="10"/>
+				<move x="70" y="8"/>
+				<line x="60" y="18"/>
+				<move x="25" y="87"/>
+				<line x="25" y="78"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="78"/>
+				<line x="45" y="87"/>
 			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="25.0" y="20.0"/>
-				<line x="45.0" y="20.0"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="60.0" y="0.0"/>
-				<line x="50.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="70.0" y="8.0"/>
-				<line x="60.0" y="18.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="7.0"/>
-				<line x="50.0" y="10.0"/>
-				<line x="53.0" y="10.0"/>
+				<move x="50" y="7"/>
+				<line x="50" y="10"/>
+				<line x="53" y="10"/>
 				<close/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="15.0"/>
-				<line x="60.0" y="18.0"/>
-				<line x="63.0" y="18.0"/>
+				<move x="60" y="15"/>
+				<line x="60" y="18"/>
+				<line x="63" y="18"/>
 				<close/>
 			</path>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<strokewidth width="2"/>
 			<path>
-				<move x="22.5" y="70.0"/>
-				<line x="27.5" y="65.0"/>
-				<line x="42.5" y="65.0"/>
-				<line x="47.5" y="70.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="25.0" y="87.0"/>
-				<line x="25.0" y="78.0"/>
-				<arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="78.0"/>
-				<line x="45.0" y="87.0"/>
+				<move x="25" y="20"/>
+				<line x="45" y="20"/>
+				<move x="22.5" y="70"/>
+				<line x="27.5" y="65"/>
+				<line x="42.5" y="65"/>
+				<line x="47.5" y="70"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="77.0" name="Tetrode" strokewidth="inherit" w="70.0">
+	<shape aspect="variable" h="77" name="Tetrode" strokewidth="inherit" w="70">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
-			<constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S1" perimeter="0" x="0.36" y="1"/>
+			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+			<ellipse h="70" w="70" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="35.0" y="0.0"/>
-				<line x="35.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="25.0" y="10.0"/>
-				<line x="45.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="40.0"/>
-				<line x="20.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="40.0"/>
-				<line x="40.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="40.0"/>
-				<line x="60.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="30.0"/>
-				<line x="20.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="30.0"/>
-				<line x="40.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="30.0"/>
-				<line x="60.0" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="22.5" y="60.0"/>
-				<line x="27.5" y="55.0"/>
-				<line x="42.5" y="55.0"/>
-				<line x="47.5" y="60.0"/>
+				<move x="35" y="0"/>
+				<line x="35" y="10"/>
+				<move x="25" y="77"/>
+				<line x="25" y="68"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+				<line x="45" y="77"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="25.0" y="77.0"/>
-				<line x="25.0" y="68.0"/>
-				<arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
-				<line x="45.0" y="77.0"/>
+				<move x="25" y="10"/>
+				<line x="45" y="10"/>
+				<move x="10" y="40"/>
+				<line x="20" y="40"/>
+				<move x="30" y="40"/>
+				<line x="40" y="40"/>
+				<move x="50" y="40"/>
+				<line x="60" y="40"/>
+				<move x="10" y="30"/>
+				<line x="20" y="30"/>
+				<move x="30" y="30"/>
+				<line x="40" y="30"/>
+				<move x="50" y="30"/>
+				<line x="60" y="30"/>
+				<move x="22.5" y="60"/>
+				<line x="27.5" y="55"/>
+				<line x="42.5" y="55"/>
+				<line x="47.5" y="60"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="77.0" name="Triode" strokewidth="inherit" w="70.0">
+	<shape aspect="variable" h="77" name="Triode" strokewidth="inherit" w="70">
 		<connections>
-			<constraint name="N" perimeter="0" x="0.5" y="0.0"/>
-			<constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
-			<constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+			<constraint name="N" perimeter="0" x="0.5" y="0"/>
+			<constraint name="S1" perimeter="0" x="0.36" y="1"/>
+			<constraint name="S2" perimeter="0" x="0.64" y="1"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+			<ellipse h="70" w="70" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
 			<path>
-				<move x="35.0" y="0.0"/>
-				<line x="35.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="25.0" y="10.0"/>
-				<line x="45.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="10.0" y="35.0"/>
-				<line x="20.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="35.0"/>
-				<line x="40.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="50.0" y="35.0"/>
-				<line x="60.0" y="35.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="22.5" y="60.0"/>
-				<line x="27.5" y="55.0"/>
-				<line x="42.5" y="55.0"/>
-				<line x="47.5" y="60.0"/>
+				<move x="35" y="0"/>
+				<line x="35" y="10"/>
+				<move x="25" y="77"/>
+				<line x="25" y="68"/>
+				<arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+				<line x="45" y="77"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<fillcolor color="none"/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="25.0" y="77.0"/>
-				<line x="25.0" y="68.0"/>
-				<arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
-				<line x="45.0" y="77.0"/>
+				<move x="25" y="10"/>
+				<line x="45" y="10"/>
+				<move x="10" y="35"/>
+				<line x="20" y="35"/>
+				<move x="30" y="35"/>
+				<line x="40" y="35"/>
+				<move x="50" y="35"/>
+				<line x="60" y="35"/>
+				<move x="22.5" y="60"/>
+				<line x="27.5" y="55"/>
+				<line x="42.5" y="55"/>
+				<line x="47.5" y="60"/>
 			</path>
 			<stroke/>
 		</foreground>

+ 255 - 447
war/stencils/electrical/transistors.xml

@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.transistors">
+<shapes name="mxgraph.electrical.transistors">
 	<shape aspect="fixed" h="90" name="Complementary Unijunction" strokewidth="inherit" w="90">
 		<connections>
 			<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
@@ -6,35 +6,19 @@
 			<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
 		</connections>
 		<background>
-			<save/>
 			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="20" y="15"/>
-				<line x="20" y="75"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
 			<path>
 				<move x="20" y="30"/>
 				<line x="87.5" y="30"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="20" y="60"/>
 				<line x="87.5" y="60"/>
-			</path>
-			<fillstroke/>
-			<path>
 				<move x="2.5" y="60"/>
 				<line x="20" y="45"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 			<miterlimit limit="2.1"/>
 			<path>
 				<move x="5" y="54.5"/>
@@ -43,686 +27,510 @@
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
+			<path>
+				<move x="20" y="15"/>
+				<line x="20" y="75"/>
+			</path>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="Darlington Pair" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="Darlington Pair" strokewidth="inherit" w="90">
 		<connections>
 			<constraint name="NE" perimeter="0" x="0.965" y="0.315"/>
 			<constraint name="SE" perimeter="0" x="0.79" y="0.91"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.51"/>
+			<constraint name="W" perimeter="0" x="0" y="0.51"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="43.75" y="48.75"/>
-				<line x="43.75" y="78.75"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
 			<path>
 				<move x="43.75" y="63.75"/>
 				<line x="70.25" y="81.25"/>
+				<move x="16.37" y="45.87"/>
+				<line x="42.87" y="63.37"/>
+				<move x="0" y="45.87"/>
+				<line x="16.37" y="45.87"/>
+				<move x="16.3" y="45.8"/>
+				<line x="42.5" y="28.4"/>
+				<line x="87" y="28.4"/>
+				<move x="43.8" y="63.8"/>
+				<line x="70.3" y="46.3"/>
+				<line x="70.3" y="28.4"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 			<path>
 				<move x="68.37" y="78.25"/>
 				<line x="70.35" y="81.35"/>
-				<line x="66.87" y="81.0"/>
+				<line x="66.87" y="81"/>
 				<close/>
-			</path>
-			<fillstroke/>
-			<strokewidth width="2"/>
-			<path>
-				<move x="16.37" y="30.87"/>
-				<line x="16.37" y="60.87"/>
-			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="16.37" y="45.87"/>
-				<line x="42.87" y="63.37"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="41.0" y="60.37"/>
+				<move x="41" y="60.37"/>
 				<line x="42.87" y="63.47"/>
 				<line x="39.5" y="63.12"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="0.0" y="45.87"/>
-				<line x="16.37" y="45.87"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="16.3" y="45.8"/>
-				<line x="42.5" y="28.4"/>
-				<line x="87.0" y="28.4"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="43.8" y="63.8"/>
-				<line x="70.3" y="46.3"/>
-				<line x="70.3" y="28.4"/>
+				<move x="43.75" y="48.75"/>
+				<line x="43.75" y="78.75"/>
+				<move x="16.37" y="30.87"/>
+				<line x="16.37" y="60.87"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="110.0" name="N-channel JFET 1" strokewidth="inherit" w="100.0">
+	<shape aspect="fixed" h="110" name="N-channel JFET 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.68"/>
+			<constraint name="NE" perimeter="0" x="0.7" y="0"/>
+			<constraint name="SE" perimeter="0" x="0.7" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.68"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+			<ellipse h="90" w="90" x="10" y="10"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="45.0" y="30.0"/>
-				<line x="45.0" y="80.0"/>
+				<move x="0" y="75"/>
+				<line x="29" y="75"/>
+				<move x="45" y="35"/>
+				<line x="70" y="35"/>
+				<line x="70" y="0"/>
+				<move x="45" y="75"/>
+				<line x="70" y="75"/>
+				<line x="70" y="110"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="0.0" y="75.0"/>
-				<line x="29.0" y="75.0"/>
+				<move x="29" y="70"/>
+				<line x="44" y="75"/>
+				<line x="29" y="80"/>
+				<close/>
 			</path>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="45.0" y="35.0"/>
-				<line x="70.0" y="35.0"/>
-				<line x="70.0" y="0.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="45.0" y="75.0"/>
-				<line x="70.0" y="75.0"/>
-				<line x="70.0" y="110.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="29.0" y="70.0"/>
-				<line x="44.0" y="75.0"/>
-				<line x="29.0" y="80.0"/>
-				<close/>
+				<move x="45" y="30"/>
+				<line x="45" y="80"/>
 			</path>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="N-channel JFET 2" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="N-channel JFET 2" strokewidth="inherit" w="90">
 		<connections>
 			<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
 			<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
 			<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="75.0"/>
+				<move x="20" y="30"/>
+				<line x="87.5" y="30"/>
+				<move x="20" y="60"/>
+				<line x="87.5" y="60"/>
+				<move x="2.5" y="60"/>
+				<line x="20" y="60"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="20.0" y="30.0"/>
-				<line x="87.5" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="60.0"/>
-				<line x="87.5" y="60.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="2.5" y="60.0"/>
-				<line x="20.0" y="60.0"/>
-			</path>
-			<fillstroke/>
 			<miterlimit limit="2"/>
 			<path>
-				<move x="14.5" y="57.0"/>
-				<line x="20.0" y="60.0"/>
-				<line x="14.5" y="63.0"/>
+				<move x="14.5" y="57"/>
+				<line x="20" y="60"/>
+				<line x="14.5" y="63"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
+			<path>
+				<move x="20" y="15"/>
+				<line x="20" y="75"/>
+			</path>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="110.0" name="NPN Transistor 1" strokewidth="inherit" w="100.0">
+	<shape aspect="fixed" h="110" name="NPN Transistor 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="0.7" y="0"/>
+			<constraint name="SE" perimeter="0" x="0.7" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+			<ellipse h="90" w="90" x="10" y="10"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="40.0" y="30.0"/>
-				<line x="40.0" y="80.0"/>
+				<move x="0" y="55"/>
+				<line x="40" y="55"/>
+				<move x="40" y="40"/>
+				<line x="70" y="12.5"/>
+				<line x="70" y="0"/>
+				<move x="40" y="70"/>
+				<line x="70" y="97.5"/>
+				<line x="70" y="110"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="0.0" y="55.0"/>
-				<line x="40.0" y="55.0"/>
+				<move x="54" y="89"/>
+				<line x="69" y="96.5"/>
+				<line x="60.5" y="82.5"/>
+				<close/>
 			</path>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="40.0" y="40.0"/>
-				<line x="70.0" y="12.5"/>
-				<line x="70.0" y="0.0"/>
-			</path>
-			<stroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="40.0" y="70.0"/>
-				<line x="70.0" y="97.5"/>
-				<line x="70.0" y="110.0"/>
+				<move x="40" y="30"/>
+				<line x="40" y="80"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="54.0" y="89.0"/>
-				<line x="69.0" y="96.5"/>
-				<line x="60.5" y="82.5"/>
-				<close/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="71.0" name="NPN Transistor 2" strokewidth="inherit" w="73.0">
+	<shape aspect="fixed" h="71" name="NPN Transistor 2" strokewidth="inherit" w="73">
 		<connections>
-			<constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="1.0" y="0.99"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.492"/>
+			<constraint name="NE" perimeter="0" x="1" y="0"/>
+			<constraint name="SE" perimeter="0" x="1" y="0.99"/>
+			<constraint name="W" perimeter="0" x="0" y="0.492"/>
 		</connections>
 		<foreground>
-			<save/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="5.0"/>
-				<line x="20.0" y="65.0"/>
+				<move x="20" y="20"/>
+				<line x="73" y="0"/>
+				<move x="20" y="50"/>
+				<line x="73" y="70"/>
+				<move x="0" y="35"/>
+				<line x="20" y="35"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="20.0" y="20.0"/>
-				<line x="73.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="50.0"/>
-				<line x="73.0" y="70.0"/>
-			</path>
-			<fillstroke/>
 			<path>
 				<move x="68.75" y="65.5"/>
-				<line x="72.75" y="70.0"/>
-				<line x="66.75" y="71.0"/>
+				<line x="72.75" y="70"/>
+				<line x="66.75" y="71"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="0.0" y="35.0"/>
-				<line x="20.0" y="35.0"/>
+				<move x="20" y="5"/>
+				<line x="20" y="65"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
 	<shape aspect="fixed" h="70.2" name="NPN Transistor 3" strokewidth="inherit" w="73.2">
 		<connections>
-			<constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="1" y="0"/>
+			<constraint name="SE" perimeter="0" x="1" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<foreground>
-			<save/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="5.0"/>
-				<line x="20.0" y="65.0"/>
+				<move x="20" y="35"/>
+				<line x="73" y="0"/>
+				<move x="20" y="35"/>
+				<line x="73" y="70"/>
+				<move x="0" y="35"/>
+				<line x="20" y="35"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="20.0" y="35.0"/>
-				<line x="73.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="35.0"/>
-				<line x="73.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="69.25" y="64.0"/>
+				<move x="69.25" y="64"/>
 				<line x="73.2" y="70.2"/>
 				<line x="66.25" y="69.5"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="0.0" y="35.0"/>
-				<line x="20.0" y="35.0"/>
+				<move x="20" y="5"/>
+				<line x="20" y="65"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="NPN Transistor 4" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="NPN Transistor 4" strokewidth="inherit" w="90">
 		<connections>
-			<constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="0.7" y="0"/>
+			<constraint name="SE" perimeter="0" x="0.7" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="75.0"/>
+				<move x="20" y="45"/>
+				<line x="73" y="10"/>
+				<move x="20" y="45"/>
+				<line x="73" y="80"/>
+				<move x="0" y="45"/>
+				<line x="20" y="45"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="20.0" y="45.0"/>
-				<line x="73.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="45.0"/>
-				<line x="73.0" y="80.0"/>
-			</path>
-			<fillstroke/>
 			<miterlimit limit="2"/>
 			<path>
-				<move x="69.25" y="74.0"/>
+				<move x="69.25" y="74"/>
 				<line x="73.2" y="80.2"/>
 				<line x="66.25" y="79.5"/>
 				<close/>
 			</path>
 			<fillstroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="0.0" y="45.0"/>
-				<line x="20.0" y="45.0"/>
+				<move x="20" y="15"/>
+				<line x="20" y="75"/>
 			</path>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="110.0" name="P-channel JFET 1" strokewidth="inherit" w="100.0">
+	<shape aspect="fixed" h="110" name="P-channel JFET 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.68"/>
+			<constraint name="NE" perimeter="0" x="0.7" y="0"/>
+			<constraint name="SE" perimeter="0" x="0.7" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.68"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+			<ellipse h="90" w="90" x="10" y="10"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="45.0" y="30.0"/>
-				<line x="45.0" y="80.0"/>
+				<move x="0" y="75"/>
+				<line x="15" y="75"/>
+				<move x="45" y="35"/>
+				<line x="70" y="35"/>
+				<line x="70" y="0"/>
+				<move x="30" y="75"/>
+				<line x="70" y="75"/>
+				<line x="70" y="110"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="0.0" y="75.0"/>
-				<line x="15.0" y="75.0"/>
+				<move x="30" y="70"/>
+				<line x="15" y="75"/>
+				<line x="30" y="80"/>
+				<close/>
 			</path>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="45.0" y="35.0"/>
-				<line x="70.0" y="35.0"/>
-				<line x="70.0" y="0.0"/>
-			</path>
-			<stroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="30.0" y="75.0"/>
-				<line x="70.0" y="75.0"/>
-				<line x="70.0" y="110.0"/>
+				<move x="45" y="30"/>
+				<line x="45" y="80"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
-			<path>
-				<move x="30.0" y="70.0"/>
-				<line x="15.0" y="75.0"/>
-				<line x="30.0" y="80.0"/>
-				<close/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="P-channel JFET 2" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="P-channel JFET 2" strokewidth="inherit" w="90">
 		<connections>
 			<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
 			<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
 			<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="75.0"/>
+				<move x="20" y="30"/>
+				<line x="87.5" y="30"/>
+				<move x="20" y="60"/>
+				<line x="87.5" y="60"/>
+				<move x="2.5" y="60"/>
+				<line x="20" y="60"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="20.0" y="30.0"/>
-				<line x="87.5" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="60.0"/>
-				<line x="87.5" y="60.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="2.5" y="60.0"/>
-				<line x="20.0" y="60.0"/>
-			</path>
-			<fillstroke/>
 			<miterlimit limit="2"/>
 			<path>
-				<move x="8.0" y="57.0"/>
-				<line x="2.5" y="60.0"/>
-				<line x="8.0" y="63.0"/>
+				<move x="8" y="57"/>
+				<line x="2.5" y="60"/>
+				<line x="8" y="63"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
+			<path>
+				<move x="20" y="15"/>
+				<line x="20" y="75"/>
+			</path>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="110.0" name="PNP Transistor 1" strokewidth="inherit" w="100.0">
+	<shape aspect="fixed" h="110" name="PNP Transistor 1" strokewidth="inherit" w="100">
 		<connections>
-			<constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="0.7" y="0"/>
+			<constraint name="SE" perimeter="0" x="0.7" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+			<ellipse h="90" w="90" x="10" y="10"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="40.0" y="30.0"/>
-				<line x="40.0" y="80.0"/>
+				<move x="0" y="55"/>
+				<line x="40" y="55"/>
+				<move x="40" y="40"/>
+				<line x="70" y="12.5"/>
+				<line x="70" y="0"/>
+				<move x="40" y="70"/>
+				<line x="70" y="97.5"/>
+				<line x="70" y="110"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="0.0" y="55.0"/>
-				<line x="40.0" y="55.0"/>
+				<move x="49.5" y="25"/>
+				<line x="41.5" y="38.75"/>
+				<line x="56" y="31.75"/>
+				<close/>
 			</path>
 			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="40.0" y="40.0"/>
-				<line x="70.0" y="12.5"/>
-				<line x="70.0" y="0.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="40.0" y="70.0"/>
-				<line x="70.0" y="97.5"/>
-				<line x="70.0" y="110.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="49.5" y="25.0"/>
-				<line x="41.5" y="38.75"/>
-				<line x="56.0" y="31.75"/>
-				<close/>
+				<move x="40" y="30"/>
+				<line x="40" y="80"/>
 			</path>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="70.0" name="PNP Transistor 2" strokewidth="inherit" w="73.0">
+	<shape aspect="fixed" h="70" name="PNP Transistor 2" strokewidth="inherit" w="73">
 		<connections>
-			<constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="1" y="0"/>
+			<constraint name="SE" perimeter="0" x="1" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<foreground>
-			<save/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="5.0"/>
-				<line x="20.0" y="65.0"/>
+				<move x="20" y="20"/>
+				<line x="73" y="0"/>
+				<move x="20" y="50"/>
+				<line x="73" y="70"/>
+				<move x="0" y="35"/>
+				<line x="20" y="35"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="20.0" y="20.0"/>
-				<line x="73.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="50.0"/>
-				<line x="73.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="35.0"/>
-				<line x="20.0" y="35.0"/>
+				<move x="25" y="55"/>
+				<line x="21" y="50.5"/>
+				<line x="27" y="49.5"/>
+				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="25.0" y="55.0"/>
-				<line x="21.0" y="50.5"/>
-				<line x="27.0" y="49.5"/>
-				<close/>
+				<move x="20" y="5"/>
+				<line x="20" y="65"/>
 			</path>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="70.0" name="PNP Transistor 3" strokewidth="inherit" w="73.0">
+	<shape aspect="fixed" h="70" name="PNP Transistor 3" strokewidth="inherit" w="73">
 		<connections>
-			<constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="1" y="0"/>
+			<constraint name="SE" perimeter="0" x="1" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<foreground>
-			<save/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="5.0"/>
-				<line x="20.0" y="65.0"/>
+				<move x="20" y="35"/>
+				<line x="73" y="0"/>
+				<move x="20" y="35"/>
+				<line x="73" y="70"/>
+				<move x="0" y="35"/>
+				<line x="20" y="35"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="20.0" y="35.0"/>
-				<line x="73.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="35.0"/>
-				<line x="73.0" y="70.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="24.5" y="41.0"/>
-				<line x="21.0" y="35.0"/>
+				<move x="24.5" y="41"/>
+				<line x="21" y="35"/>
 				<line x="27.5" y="36.5"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="0.0" y="35.0"/>
-				<line x="20.0" y="35.0"/>
+				<move x="20" y="5"/>
+				<line x="20" y="65"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="PNP Transistor 4" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="PNP Transistor 4" strokewidth="inherit" w="90">
 		<connections>
-			<constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
-			<constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
-			<constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+			<constraint name="NE" perimeter="0" x="0.7" y="0"/>
+			<constraint name="SE" perimeter="0" x="0.7" y="1"/>
+			<constraint name="W" perimeter="0" x="0" y="0.5"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="75.0"/>
+				<move x="20" y="45"/>
+				<line x="73" y="10"/>
+				<move x="20" y="45"/>
+				<line x="73" y="80"/>
+				<move x="0" y="45"/>
+				<line x="20" y="45"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
 			<path>
-				<move x="20.0" y="45.0"/>
-				<line x="73.0" y="10.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="45.0"/>
-				<line x="73.0" y="80.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="24.5" y="51.0"/>
-				<line x="21.0" y="45.0"/>
+				<move x="24.5" y="51"/>
+				<line x="21" y="45"/>
 				<line x="27.5" y="46.5"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
 			<path>
-				<move x="0.0" y="45.0"/>
-				<line x="20.0" y="45.0"/>
+				<move x="20" y="15"/>
+				<line x="20" y="75"/>
 			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="fixed" h="90.0" name="Unijunction" strokewidth="inherit" w="90.0">
+	<shape aspect="fixed" h="90" name="Unijunction" strokewidth="inherit" w="90">
 		<connections>
 			<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
 			<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
 			<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
 		</connections>
 		<background>
-			<save/>
-			<ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+			<ellipse h="90" w="90" x="0" y="0"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<strokewidth width="2"/>
 			<path>
-				<move x="20.0" y="15.0"/>
-				<line x="20.0" y="75.0"/>
+				<move x="20" y="30"/>
+				<line x="87.5" y="30"/>
+				<move x="20" y="60"/>
+				<line x="87.5" y="60"/>
+				<move x="2.5" y="60"/>
+				<line x="20" y="45"/>
 			</path>
-			<fillstroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<path>
-				<move x="20.0" y="30.0"/>
-				<line x="87.5" y="30.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="20.0" y="60.0"/>
-				<line x="87.5" y="60.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="2.5" y="60.0"/>
-				<line x="20.0" y="45.0"/>
-			</path>
-			<fillstroke/>
 			<miterlimit limit="2"/>
 			<path>
-				<move x="13.0" y="47.0"/>
-				<line x="20.0" y="45.0"/>
-				<line x="16.5" y="52.0"/>
+				<move x="13" y="47"/>
+				<line x="20" y="45"/>
+				<line x="16.5" y="52"/>
 				<close/>
 			</path>
 			<fillstroke/>
+			<strokewidth width="2"/>
+			<path>
+				<move x="20" y="15"/>
+				<line x="20" y="75"/>
+			</path>
+			<stroke/>
 		</foreground>
 	</shape>
 </shapes>

+ 297 - 0
war/stencils/electrical/transmission.xml

@@ -0,0 +1,297 @@
+<shapes name="mxgraph.electrical.transmission">
+<shape aspect="variable" h="25" name="2 Line Bus" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="NW" perimeter="0" x="0" y="0"/>
+        <constraint name="NE" perimeter="0" x="1" y="0"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="130" y="0"/>
+            <move x="0" y="25"/>
+            <line x="130" y="25"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="30" name="3 Line Bus" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="NW" perimeter="0" x="0" y="0"/>
+        <constraint name="NE" perimeter="0" x="1" y="0"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="130" y="0"/>
+            <move x="0" y="30"/>
+            <line x="130" y="30"/>
+            <move x="0" y="15"/>
+            <line x="130" y="15"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="75" name="4 Line Bus" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="NW" perimeter="0" x="0" y="0"/>
+        <constraint name="NE" perimeter="0" x="1" y="0"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="W1" perimeter="0" x="0" y="0.33"/>
+        <constraint name="E1" perimeter="0" x="1" y="0.33"/>
+        <constraint name="W2" perimeter="0" x="0" y="0.67"/>
+        <constraint name="E2" perimeter="0" x="1" y="0.67"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="130" y="0"/>
+            <move x="0" y="75"/>
+            <line x="130" y="75"/>
+            <move x="0" y="25"/>
+            <line x="130" y="25"/>
+            <move x="0" y="50"/>
+            <line x="130" y="50"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="224" name="8 Line Bus" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="NW" perimeter="0" x="0" y="0"/>
+        <constraint name="NE" perimeter="0" x="1" y="0"/>
+        <constraint name="SE" perimeter="0" x="1" y="1"/>
+        <constraint name="SW" perimeter="0" x="0" y="1"/>
+        <constraint name="W1" perimeter="0" x="0" y="0.145"/>
+        <constraint name="W2" perimeter="0" x="0" y="0.285"/>
+        <constraint name="W3" perimeter="0" x="0" y="0.43"/>
+        <constraint name="W4" perimeter="0" x="0" y="0.57"/>
+        <constraint name="W5" perimeter="0" x="0" y="0.715"/>
+        <constraint name="W6" perimeter="0" x="0" y="0.855"/>
+        <constraint name="E1" perimeter="0" x="1" y="0.145"/>
+        <constraint name="E2" perimeter="0" x="1" y="0.285"/>
+        <constraint name="E3" perimeter="0" x="1" y="0.43"/>
+        <constraint name="E4" perimeter="0" x="1" y="0.57"/>
+        <constraint name="E5" perimeter="0" x="1" y="0.715"/>
+        <constraint name="E6" perimeter="0" x="1" y="0.855"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="0"/>
+            <line x="130" y="0"/>
+            <move x="0" y="32"/>
+            <line x="130" y="32"/>
+            <move x="0" y="64"/>
+            <line x="130" y="64"/>
+            <move x="0" y="96"/>
+            <line x="130" y="96"/>
+            <move x="0" y="128"/>
+            <line x="130" y="128"/>
+            <move x="0" y="160"/>
+            <line x="130" y="160"/>
+            <move x="0" y="192"/>
+            <line x="130" y="192"/>
+            <move x="0" y="224"/>
+            <line x="130" y="224"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="88" name="Anticreepage Device" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="44"/>
+            <line x="130" y="44"/>
+            <move x="26" y="18"/>
+            <line x="26" y="70"/>
+            <move x="110" y="0"/>
+            <arc large-arc-flag="0" rx="59" ry="59" sweep-flag="1" x="110" x-axis-rotation="0" y="88"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="156" name="Bus Width" strokewidth="inherit" w="130">
+    <connections/>
+    <foreground>
+        <path>
+            <move x="0" y="156"/>
+            <line x="130" y="0"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="130" name="Cable Group" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W1" perimeter="0" x="0" y="0.16"/>
+        <constraint name="W2" perimeter="0" x="0" y="0.33"/>
+        <constraint name="W3" perimeter="0" x="0" y="0.5"/>
+        <constraint name="W4" perimeter="0" x="0" y="0.67"/>
+        <constraint name="W5" perimeter="0" x="0" y="0.84"/>
+        <constraint name="E1" perimeter="0" x="1" y="0.16"/>
+        <constraint name="E2" perimeter="0" x="1" y="0.33"/>
+        <constraint name="E3" perimeter="0" x="1" y="0.5"/>
+        <constraint name="E4" perimeter="0" x="1" y="0.67"/>
+        <constraint name="E5" perimeter="0" x="1" y="0.84"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="50" y="15"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="65" x-axis-rotation="0" y="0"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="80" x-axis-rotation="0" y="15"/>
+            <line x="80" y="115"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="65" x-axis-rotation="0" y="130"/>
+            <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="50" x-axis-rotation="0" y="115"/>
+            <close/>
+        </path>
+        <fillstroke/>
+        <path>
+            <move x="0" y="21"/>
+            <line x="50" y="21"/>
+            <move x="0" y="43"/>
+            <line x="50" y="43"/>
+            <move x="0" y="65"/>
+            <line x="50" y="65"/>
+            <move x="0" y="87"/>
+            <line x="50" y="87"/>
+            <move x="0" y="109"/>
+            <line x="50" y="109"/>
+            <move x="80" y="21"/>
+            <line x="130" y="21"/>
+            <move x="80" y="43"/>
+            <line x="130" y="43"/>
+            <move x="80" y="65"/>
+            <line x="130" y="65"/>
+            <move x="80" y="87"/>
+            <line x="130" y="87"/>
+            <move x="80" y="109"/>
+            <line x="130" y="109"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Line Cable" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="30"/>
+            <line x="130" y="30"/>
+        </path>
+        <stroke/>
+        <ellipse h="60" w="60" x="35" y="0"/>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="130" name="Line Concentrator" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <foreground>
+        <ellipse h="130" w="130" x="0" y="0"/>
+        <fillstroke/>
+        <path>
+            <move x="65" y="12"/>
+            <line x="65" y="118"/>
+            <move x="35" y="65"/>
+            <line x="65" y="65"/>
+            <move x="65" y="25"/>
+            <line x="95" y="25"/>
+            <move x="65" y="105"/>
+            <line x="95" y="105"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Optical Fiber" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0" y="0.5"/>
+        <constraint name="E" perimeter="0" x="1" y="0.5"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="40"/>
+            <line x="25" y="40"/>
+            <move x="105" y="40"/>
+            <line x="130" y="40"/>
+        </path>
+        <stroke/>
+        <ellipse h="80" w="80" x="25" y="0"/>
+        <fillstroke/>
+        <path>
+            <move x="35" y="50"/>
+            <line x="65" y="20"/>
+            <move x="55" y="68.88"/>
+            <line x="85" y="38.88"/>
+        </path>
+        <stroke/>
+        <fillcolor color="#000000"/>
+        <path>
+            <move x="59.5" y="15.5"/>
+            <line x="76" y="9"/>
+            <line x="70" y="25"/>
+            <close/>
+            <move x="79.5" y="34.38"/>
+            <line x="96" y="27.88"/>
+            <line x="90" y="43.88"/>
+            <close/>
+        </path>
+        <fillstroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="136.29" name="Overground Enclosure" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0.05"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="W" perimeter="0" x="0.215" y="0.5"/>
+        <constraint name="E" perimeter="0" x="0.785" y="0.5"/>
+    </connections>
+    <foreground>
+        <path>
+            <move x="0" y="26.29"/>
+            <arc large-arc-flag="0" rx="117" ry="117" sweep-flag="1" x="130" x-axis-rotation="0" y="26.29"/>
+            <move x="28" y="12.79"/>
+            <line x="28" y="136.29"/>
+            <line x="102" y="136.29"/>
+            <line x="102" y="12.79"/>
+        </path>
+        <stroke/>
+    </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Terminal 3 Phase" strokewidth="inherit" w="130">
+    <connections>
+        <constraint name="N" perimeter="0" x="0.5" y="0"/>
+        <constraint name="S" perimeter="0" x="0.5" y="1"/>
+        <constraint name="NW" perimeter="0" x="0.12" y="0"/>
+        <constraint name="NE" perimeter="0" x="0.88" y="0"/>
+        <constraint name="SW" perimeter="0" x="0.12" y="1"/>
+        <constraint name="SE" perimeter="0" x="0.88" y="1"/>
+    </connections>
+    <foreground>
+        <ellipse h="30" w="30" x="0" y="0"/>
+        <fillstroke/>
+        <ellipse h="30" w="30" x="50" y="0"/>
+        <fillstroke/>
+        <ellipse h="30" w="30" x="100" y="0"/>
+        <fillstroke/>
+    </foreground>
+</shape>
+</shapes>

+ 155 - 244
war/stencils/electrical/waveforms.xml

@@ -1,450 +1,361 @@
-<shapes name="mxGraph.electrical.waveforms">
+<shapes name="mxgraph.electrical.waveforms">
 	<shape aspect="variable" h="90" name="Data Changing" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
 				<move x="0" y="90"/>
 				<line x="90" y="0"/>
-			</path>
-		</background>
-		<foreground>
-			<fillstroke/>
-			<path>
 				<move x="0" y="0"/>
 				<line x="90" y="90"/>
 			</path>
-			<fillstroke/>
+		</background>
+		<foreground>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Data Ending" strokewidth="inherit" w="95.0">
+	<shape aspect="variable" h="90" name="Data Ending" strokewidth="inherit" w="95">
 		<connections/>
 		<background>
 			<path>
-				<move x="55.0" y="45.0"/>
-				<line x="70.0" y="45.0"/>
+				<move x="55" y="45"/>
+				<line x="70" y="45"/>
+				<move x="85" y="45"/>
+				<line x="95" y="45"/>
+				<move x="0" y="0"/>
+				<line x="45" y="45"/>
+				<line x="0" y="90"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="85.0" y="45.0"/>
-				<line x="95.0" y="45.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="45.0" y="45.0"/>
-				<line x="0.0" y="90.0"/>
-			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="40.0" name="Data Invalid 1" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="40" name="Data Invalid 1" strokewidth="inherit" w="100">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="15.0" y="0.0"/>
+				<move x="0" y="0"/>
+				<line x="15" y="0"/>
+				<move x="30" y="0"/>
+				<line x="45" y="0"/>
+				<move x="60" y="0"/>
+				<line x="75" y="0"/>
+				<move x="90" y="0"/>
+				<line x="100" y="0"/>
+				<move x="0" y="40"/>
+				<line x="15" y="40"/>
+				<move x="30" y="40"/>
+				<line x="45" y="40"/>
+				<move x="60" y="40"/>
+				<line x="75" y="40"/>
+				<move x="90" y="40"/>
+				<line x="100" y="40"/>
 			</path>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<path>
-				<move x="30.0" y="0.0"/>
-				<line x="45.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="0.0"/>
-				<line x="75.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="0.0"/>
-				<line x="100.0" y="0.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="15.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="40.0"/>
-				<line x="45.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="40.0"/>
-				<line x="75.0" y="40.0"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="40.0"/>
-				<line x="100.0" y="40.0"/>
-			</path>
-			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="5.0" name="Data Invalid 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="5" name="Data Invalid 2" strokewidth="inherit" w="100">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="2.5"/>
-				<line x="15.0" y="2.5"/>
+				<move x="0" y="2.5"/>
+				<line x="15" y="2.5"/>
+				<move x="30" y="2.5"/>
+				<line x="45" y="2.5"/>
+				<move x="60" y="2.5"/>
+				<line x="75" y="2.5"/>
+				<move x="90" y="2.5"/>
+				<line x="100" y="2.5"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="2.5"/>
-				<line x="45.0" y="2.5"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="60.0" y="2.5"/>
-				<line x="75.0" y="2.5"/>
-			</path>
-			<fillstroke/>
-			<path>
-				<move x="90.0" y="2.5"/>
-				<line x="100.0" y="2.5"/>
-			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Data Starting" strokewidth="inherit" w="95.0">
+	<shape aspect="variable" h="90" name="Data Starting" strokewidth="inherit" w="95">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="45.0"/>
-				<line x="15.0" y="45.0"/>
+				<move x="0" y="45"/>
+				<line x="15" y="45"/>
+				<move x="30" y="45"/>
+				<line x="45" y="45"/>
+				<move x="95" y="0"/>
+				<line x="50" y="45"/>
+				<line x="95" y="90"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="30.0" y="45.0"/>
-				<line x="45.0" y="45.0"/>
-			</path>
-			<fillstroke/>
-			<fillcolor color="none"/>
-			<path>
-				<move x="95.0" y="0.0"/>
-				<line x="50.0" y="45.0"/>
-				<line x="95.0" y="90.0"/>
-			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="40.0" name="Data Valid" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="40" name="Data Valid" strokewidth="inherit" w="100">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="100.0" y="0.0"/>
+				<move x="0" y="0"/>
+				<line x="100" y="0"/>
+				<move x="0" y="40"/>
+				<line x="100" y="40"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="100.0" y="40.0"/>
-			</path>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Down Ramp" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="90" name="Down Ramp" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="90.0" y="90.0"/>
+				<move x="0" y="0"/>
+				<line x="90" y="90"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Edge" strokewidth="inherit" w="5.0">
+	<shape aspect="variable" h="90" name="Edge" strokewidth="inherit" w="5">
 		<connections/>
 		<background>
 			<path>
-				<move x="2.5" y="0.0"/>
-				<line x="2.5" y="90.0"/>
+				<move x="2.5" y="0"/>
+				<line x="2.5" y="90"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
 	<shape aspect="variable" h="55.22" name="Event" strokewidth="inherit" w="25.56">
 		<connections/>
 		<background>
-			<save/>
-			<ellipse h="10.0" w="10.0" x="0.0" y="45.22"/>
+			<ellipse h="10" w="10" x="0" y="45.22"/>
 		</background>
 		<foreground>
 			<fillstroke/>
-			<fillcolor color="none"/>
 			<path>
-				<move x="25.0" y="0.22"/>
-				<arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="5.0" x-axis-rotation="0.0" y="50.22"/>
+				<move x="25" y="0.22"/>
+				<arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="5" x-axis-rotation="0" y="50.22"/>
 			</path>
 			<stroke/>
-			<restore/>
-			<rect/>
-			<stroke/>
 			<miterlimit limit="10"/>
 			<path>
-				<move x="21.67" y="6.0"/>
-				<line x="25.56" y="0.0"/>
-				<line x="19.0" y="3.67"/>
+				<move x="21.67" y="6"/>
+				<line x="25.56" y="0"/>
+				<line x="19" y="3.67"/>
 				<close/>
 			</path>
 			<fillstroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="5.0" name="Level" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="5" name="Level" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="2.5"/>
-				<line x="90.0" y="2.5"/>
+				<move x="0" y="2.5"/>
+				<line x="90" y="2.5"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Pulse 1" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="90" name="Pulse 1" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="90.0"/>
-				<line x="25.0" y="90.0"/>
-				<line x="25.0" y="0.0"/>
-				<line x="65.0" y="0.0"/>
-				<line x="65.0" y="90.0"/>
-				<line x="90.0" y="90.0"/>
+				<move x="0" y="90"/>
+				<line x="25" y="90"/>
+				<line x="25" y="0"/>
+				<line x="65" y="0"/>
+				<line x="65" y="90"/>
+				<line x="90" y="90"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Pulse 2" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="90" name="Pulse 2" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="25.0" y="0.0"/>
-				<line x="25.0" y="90.0"/>
-				<line x="65.0" y="90.0"/>
-				<line x="65.0" y="0.0"/>
-				<line x="90.0" y="0.0"/>
+				<move x="0" y="0"/>
+				<line x="25" y="0"/>
+				<line x="25" y="90"/>
+				<line x="65" y="90"/>
+				<line x="65" y="0"/>
+				<line x="90" y="0"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="100.0" name="Sawtooth" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="100" name="Sawtooth" strokewidth="inherit" w="100">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="100.0"/>
-				<line x="33.33" y="0.0"/>
-				<line x="33.33" y="100.0"/>
-				<line x="66.67" y="0.0"/>
-				<line x="66.67" y="100.0"/>
-				<line x="100.0" y="0.0"/>
-				<line x="100.0" y="100.0"/>
+				<move x="0" y="100"/>
+				<line x="33.33" y="0"/>
+				<line x="33.33" y="100"/>
+				<line x="66.67" y="0"/>
+				<line x="66.67" y="100"/>
+				<line x="100" y="0"/>
+				<line x="100" y="100"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="66.5" name="Sine Wave" strokewidth="inherit" w="89.7">
+	<shape aspect="variable" h="88.17" name="Sine Wave" strokewidth="inherit" w="89.75">
 		<connections/>
 		<foreground>
-			<fillcolor color="none"/>
 			<path>
-				<move x="0" y="33.21"/>
-				<arc large-arc-flag="0" rx="500" ry="500" sweep-flag="1" x="7.2" x-axis-rotation="0" y="17.21"/>
-				<arc large-arc-flag="0" rx="70" ry="70" sweep-flag="1" x="13.6" x-axis-rotation="0" y="6.21"/>
-				<arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="18.9" x-axis-rotation="0" y="1.21"/>
-				<arc large-arc-flag="0" rx="7" ry="7" sweep-flag="1" x="25.8" x-axis-rotation="0" y="1.21"/>
-				<arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="31.1" x-axis-rotation="0" y="6.21"/>
-				<arc large-arc-flag="0" rx="70" ry="70" sweep-flag="1" x="37.5" x-axis-rotation="0" y="17.21"/>
-				<arc large-arc-flag="0" rx="500" ry="500" sweep-flag="1" x="44.7" x-axis-rotation="0" y="33.21"/>
-				<arc large-arc-flag="0" rx="500" ry="500" sweep-flag="0" x="52" x-axis-rotation="0" y="49.21"/>
-				<arc large-arc-flag="0" rx="70" ry="70" sweep-flag="0" x="58.4" x-axis-rotation="0" y="60.21"/>
-				<arc large-arc-flag="0" rx="20" ry="20" sweep-flag="0" x="63.6" x-axis-rotation="0" y="65.21"/>
-				<arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="70.7" x-axis-rotation="0" y="65.21"/>
-				<arc large-arc-flag="0" rx="20" ry="20" sweep-flag="0" x="76" x-axis-rotation="0" y="60.21"/>
-				<arc large-arc-flag="0" rx="70" ry="70" sweep-flag="0" x="82.4" x-axis-rotation="0" y="49.21"/>
-				<arc large-arc-flag="0" rx="500" ry="500" sweep-flag="0" x="89.7" x-axis-rotation="0" y="33.21"/>
+				<move x="0" y="43.95"/>
+				<curve x1="18.26" x2="26.87" x3="44.87" y1="0.23" y2="0" y3="43.95"/>
+				<curve x1="62.88" x2="71.32" x3="89.75" y1="87.9" y2="88.17" y3="43.95"/>
 			</path>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="Slow Square Wave" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="80" name="Slow Square Wave" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="10.0" y="0.0"/>
-				<line x="35.0" y="0.0"/>
-				<line x="55.0" y="80.0"/>
-				<line x="80.0" y="80.0"/>
-				<line x="90.0" y="40.0"/>
+				<move x="0" y="40"/>
+				<line x="10" y="0"/>
+				<line x="35" y="0"/>
+				<line x="55" y="80"/>
+				<line x="80" y="80"/>
+				<line x="90" y="40"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="80.0" name="Square Wave" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="80" name="Square Wave" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="40.0"/>
-				<line x="0.0" y="0.0"/>
-				<line x="45.0" y="0.0"/>
-				<line x="45.0" y="80.0"/>
-				<line x="90.0" y="80.0"/>
-				<line x="90.0" y="40.0"/>
+				<move x="0" y="40"/>
+				<line x="0" y="0"/>
+				<line x="45" y="0"/>
+				<line x="45" y="80"/>
+				<line x="90" y="80"/>
+				<line x="90" y="40"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Step 1" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="90" name="Step 1" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="90.0"/>
-				<line x="45.0" y="90.0"/>
-				<line x="45.0" y="0.0"/>
-				<line x="90.0" y="0.0"/>
+				<move x="0" y="90"/>
+				<line x="45" y="90"/>
+				<line x="45" y="0"/>
+				<line x="90" y="0"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Step 2" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="90" name="Step 2" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="0.0"/>
-				<line x="45.0" y="0.0"/>
-				<line x="45.0" y="90.0"/>
-				<line x="90.0" y="90.0"/>
+				<move x="0" y="0"/>
+				<line x="45" y="0"/>
+				<line x="45" y="90"/>
+				<line x="90" y="90"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
 			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="10.0" name="Timing Line" strokewidth="inherit" w="98.0">
+	<shape aspect="variable" h="10" name="Timing Line" strokewidth="inherit" w="98">
 		<connections/>
 		<background>
-			<save/>
 			<path>
-				<move x="1.0" y="5.0"/>
-				<line x="97.0" y="5.0"/>
+				<move x="1" y="5"/>
+				<line x="97" y="5"/>
+				<move x="89" y="0"/>
+				<line x="98" y="5"/>
+				<line x="89" y="10"/>
+				<move x="9" y="0"/>
+				<line x="0" y="5"/>
+				<line x="9" y="10"/>
 			</path>
 		</background>
 		<foreground>
-			<fillcolor color="none"/>
-			<stroke/>
-			<path>
-				<move x="89.0" y="0.0"/>
-				<line x="98.0" y="5.0"/>
-				<line x="89.0" y="10.0"/>
-			</path>
-			<stroke/>
-			<path>
-				<move x="9.0" y="0.0"/>
-				<line x="0.0" y="5.0"/>
-				<line x="9.0" y="10.0"/>
-			</path>
-			<stroke/>
-			<restore/>
-			<rect/>
 			<stroke/>
-			<text align="center" str="10s" valign="bottom" x="49.0" y="3.0"/>
+			<text align="center" str="10s" valign="bottom" x="49" y="3"/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="100.0" name="Timing Mark 1" strokewidth="inherit" w="5.0">
+	<shape aspect="variable" h="100" name="Timing Mark 1" strokewidth="inherit" w="5">
 		<connections/>
 		<background>
 			<path>
-				<move x="2.5" y="0.0"/>
-				<line x="2.5" y="100.0"/>
+				<move x="2.5" y="0"/>
+				<line x="2.5" y="100"/>
 			</path>
 		</background>
 		<foreground>
-			<dashpattern pattern="5,5"/>
-			<dashed dashed="true"/>
-			<fillstroke/>
+			<dashpattern pattern="5 5"/>
+			<dashed dashed="1"/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="100.0" name="Timing Mark 2" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="100" name="Timing Mark 2" strokewidth="inherit" w="100">
 		<connections/>
 		<background>
 			<path>
-				<move x="50.0" y="0.0"/>
-				<line x="50.0" y="100.0"/>
+				<move x="50" y="0"/>
+				<line x="50" y="100"/>
+				<move x="0" y="50"/>
+				<line x="100" y="50"/>
 			</path>
 		</background>
 		<foreground>
-			<dashpattern pattern="5,5"/>
-			<dashed dashed="true"/>
-			<fillstroke/>
-			<path>
-				<move x="0.0" y="50.0"/>
-				<line x="100.0" y="50.0"/>
-			</path>
-			<fillstroke/>
+			<dashpattern pattern="5 5"/>
+			<dashed dashed="1"/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="5.0" name="Timing Mark 3" strokewidth="inherit" w="100.0">
+	<shape aspect="variable" h="5" name="Timing Mark 3" strokewidth="inherit" w="100">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="2.5"/>
-				<line x="100.0" y="2.5"/>
+				<move x="0" y="2.5"/>
+				<line x="100" y="2.5"/>
 			</path>
 		</background>
 		<foreground>
-			<dashpattern pattern="5,5"/>
-			<dashed dashed="true"/>
-			<fillstroke/>
+			<dashpattern pattern="5 5"/>
+			<dashed dashed="1"/>
+			<stroke/>
 		</foreground>
 	</shape>
-	<shape aspect="variable" h="90.0" name="Up Ramp" strokewidth="inherit" w="90.0">
+	<shape aspect="variable" h="90" name="Up Ramp" strokewidth="inherit" w="90">
 		<connections/>
 		<background>
 			<path>
-				<move x="0.0" y="90.0"/>
-				<line x="90.0" y="0.0"/>
+				<move x="0" y="90"/>
+				<line x="90" y="0"/>
 			</path>
 		</background>
 		<foreground>
-			<fillstroke/>
+			<stroke/>
 		</foreground>
 	</shape>
 </shapes>

+ 2 - 2
war/styles/grapheditor.css

@@ -115,7 +115,7 @@
 	padding: 0 8px;
 	cursor: pointer;
 }
-.geBtn:hover {
+.geBtn:hover, .geBtn:focus {
 	-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
 	-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
 	box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
@@ -180,7 +180,7 @@
 	border: 1px solid #3079ed;
 	color: #fff;
 }
-.gePrimaryBtn:hover {
+.gePrimaryBtn:hover, .gePrimaryBtn:focus {
 	background-color: #357ae8;
 	background-image: linear-gradient(#4d90fe 0px,#357ae8 100%);
 	border: 1px solid #2f5bb7;