copied over all of the custom pcb stuff and switched connectors + added PWM headers to the power board

git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4029 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/gyro_board/docs/12V 5A switching regulator webench.pdf b/gyro_board/docs/12V 5A switching regulator webench.pdf
new file mode 100644
index 0000000..060104e
--- /dev/null
+++ b/gyro_board/docs/12V 5A switching regulator webench.pdf
Binary files differ
diff --git a/gyro_board/docs/219.pdf b/gyro_board/docs/219.pdf
new file mode 100644
index 0000000..146bab1
--- /dev/null
+++ b/gyro_board/docs/219.pdf
Binary files differ
diff --git a/gyro_board/docs/387207202_sd.pdf b/gyro_board/docs/387207202_sd.pdf
new file mode 100644
index 0000000..302d0f1
--- /dev/null
+++ b/gyro_board/docs/387207202_sd.pdf
Binary files differ
diff --git a/gyro_board/docs/5v 1A switcher webench.pdf b/gyro_board/docs/5v 1A switcher webench.pdf
new file mode 100644
index 0000000..ee96104
--- /dev/null
+++ b/gyro_board/docs/5v 1A switcher webench.pdf
Binary files differ
diff --git a/gyro_board/docs/85510-5019.pdf b/gyro_board/docs/85510-5019.pdf
new file mode 100644
index 0000000..abfcf39
--- /dev/null
+++ b/gyro_board/docs/85510-5019.pdf
Binary files differ
diff --git a/gyro_board/docs/ADXRS450.pdf b/gyro_board/docs/ADXRS450.pdf
new file mode 100644
index 0000000..3421ddf
--- /dev/null
+++ b/gyro_board/docs/ADXRS450.pdf
Binary files differ
diff --git a/gyro_board/docs/ADuM3160.pdf b/gyro_board/docs/ADuM3160.pdf
new file mode 100644
index 0000000..5cd5793
--- /dev/null
+++ b/gyro_board/docs/ADuM3160.pdf
Binary files differ
diff --git a/gyro_board/docs/LM3481.pdf b/gyro_board/docs/LM3481.pdf
new file mode 100644
index 0000000..c4624b4
--- /dev/null
+++ b/gyro_board/docs/LM3481.pdf
Binary files differ
diff --git a/gyro_board/docs/M701-330442.PDF b/gyro_board/docs/M701-330442.PDF
new file mode 100644
index 0000000..d93dc98
--- /dev/null
+++ b/gyro_board/docs/M701-330442.PDF
Binary files differ
diff --git a/gyro_board/docs/NUF6406MN-D.PDF b/gyro_board/docs/NUF6406MN-D.PDF
new file mode 100644
index 0000000..063a422
--- /dev/null
+++ b/gyro_board/docs/NUF6406MN-D.PDF
Binary files differ
diff --git a/gyro_board/docs/tl974.pdf b/gyro_board/docs/tl974.pdf
new file mode 100644
index 0000000..94ac685
--- /dev/null
+++ b/gyro_board/docs/tl974.pdf
Binary files differ
diff --git a/gyro_board/docs/user.manual.lpc17xx.pdf b/gyro_board/docs/user.manual.lpc17xx.pdf
new file mode 100644
index 0000000..7f28454
--- /dev/null
+++ b/gyro_board/docs/user.manual.lpc17xx.pdf
Binary files differ
diff --git a/gyro_board/schematic/custom_parts.lbr b/gyro_board/schematic/custom_parts.lbr
new file mode 100644
index 0000000..e4b2623
--- /dev/null
+++ b/gyro_board/schematic/custom_parts.lbr
@@ -0,0 +1,5001 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE eagle SYSTEM "eagle.dtd">
+<eagle version="6.4">
+<drawing>
+<settings>
+<setting alwaysvectorfont="no"/>
+<setting verticaltext="up"/>
+</settings>
+<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>
+<layers>
+<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
+<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
+<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
+<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
+<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
+<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
+<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
+<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
+<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
+<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
+<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
+<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
+<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
+<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
+<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
+<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
+<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
+<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
+<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
+<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
+<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
+<layer number="30" name="bStop" color="7" fill="6" visible="yes" active="yes"/>
+<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
+<layer number="32" name="bCream" color="7" fill="5" visible="yes" active="yes"/>
+<layer number="33" name="tFinish" color="6" fill="3" visible="yes" active="yes"/>
+<layer number="34" name="bFinish" color="6" fill="6" visible="yes" active="yes"/>
+<layer number="35" name="tGlue" color="7" fill="4" visible="yes" active="yes"/>
+<layer number="36" name="bGlue" color="7" fill="5" visible="yes" active="yes"/>
+<layer number="37" name="tTest" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="38" name="bTest" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
+<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
+<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
+<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
+<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
+<layer number="44" name="Drills" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="46" name="Milling" color="3" fill="1" visible="yes" active="yes"/>
+<layer number="47" name="Measures" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="50" name="dxf" color="7" fill="1" visible="no" active="yes"/>
+<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
+<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
+<layer number="56" name="wert" color="7" fill="1" visible="no" active="yes"/>
+<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
+<layer number="93" name="Pins" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
+<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
+<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
+<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
+<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
+<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
+<layer number="104" name="Name" color="16" fill="1" visible="no" active="yes"/>
+<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
+<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
+<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
+<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
+<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
+<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
+<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
+<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
+<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
+<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
+<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
+<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
+<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
+<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
+<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
+<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
+<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
+<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
+<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
+<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
+<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
+<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
+<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
+<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
+<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
+<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
+<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
+<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
+<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
+</layers>
+<library>
+<description>Parts that we have to create eagle models of.</description>
+<packages>
+<package name="219-4LPST">
+<description>&lt;b&gt;4 position dip switch&lt;/b&gt;&lt;br&gt;
+from &lt;a href="http://www.mouser.com/ProductDetail/CTS-Electronic-Components/219-4LPST/?qs=sGAEpiMZZMv%2f%252b2JhlA6ysGbG22VYatTYq6uUsyqguGg%3d"&gt;http://www.mouser.com/ProductDetail/CTS-Electronic-Components/219-4LPST/?qs=sGAEpiMZZMv%2f%252b2JhlA6ysGbG22VYatTYq6uUsyqguGg%3d&lt;/a&gt;</description>
+<wire x1="-5.97" y1="6" x2="5.97" y2="6" width="0.127" layer="21"/>
+<wire x1="5.97" y1="6" x2="5.97" y2="-6" width="0.127" layer="21"/>
+<wire x1="5.97" y1="-6" x2="-5.97" y2="-6" width="0.127" layer="21"/>
+<wire x1="-5.97" y1="-6" x2="-5.97" y2="6" width="0.127" layer="21"/>
+<smd name="2A" x="-1.27" y="4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="3A" x="1.27" y="4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="3B" x="1.27" y="-4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="2B" x="-1.27" y="-4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="1A" x="-3.81" y="4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="4A" x="3.81" y="4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="4B" x="3.81" y="-4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<smd name="1B" x="-3.81" y="-4.3" dx="2.54" dy="1.27" layer="1" rot="R90"/>
+<text x="-3" y="6" size="1.778" layer="25" font="vector" ratio="10">&gt;NAME</text>
+<text x="-3" y="-8" size="1.778" layer="27" font="vector" ratio="10">&gt;VALUE</text>
+<text x="-6.35" y="6.08" size="1.27" layer="21" font="vector">1A</text>
+<text x="5.08" y="6.08" size="1.27" layer="21" font="vector">4A</text>
+<text x="-6.35" y="-7.35" size="1.27" layer="21" font="vector">1B</text>
+<text x="5.08" y="-6.08" size="1.27" layer="21" font="vector">4B</text>
+<rectangle x1="-5.97" y1="-5" x2="5.97" y2="5" layer="39"/>
+</package>
+<package name="85510-5019">
+<description>&lt;b&gt;rj16 connector&lt;/b&gt; (6 slots 6 connectors)&lt;br&gt;
+from &lt;a href="http://www.mouser.com/ProductDetail/Molex/85510-5019/?qs=sGAEpiMZZMvQhAhQbXdbBsK4oSVSRxQMQtyAf8Fqgr8%3d"&gt;http://www.mouser.com/ProductDetail/Molex/85510-5019/?qs=sGAEpiMZZMvQhAhQbXdbBsK4oSVSRxQMQtyAf8Fqgr8%3d&lt;/a&gt; (drawings at &lt;a href="http://www.molex.com/pdm_docs/sd/855105019_sd.pdf"&gt;http://www.molex.com/pdm_docs/sd/855105019_sd.pdf&lt;/a&gt;)</description>
+<wire x1="-6.61" y1="-7.54" x2="-3.77" y2="-7.54" width="0.127" layer="21"/>
+<wire x1="-6.61" y1="-7.54" x2="-6.61" y2="7.54" width="0.127" layer="21"/>
+<wire x1="-6.61" y1="7.54" x2="-6.39" y2="7.54" width="0.127" layer="21"/>
+<wire x1="-3.55" y1="7.54" x2="3.55" y2="7.54" width="0.127" layer="21"/>
+<wire x1="6.39" y1="7.54" x2="6.61" y2="7.54" width="0.127" layer="21"/>
+<wire x1="6.61" y1="7.54" x2="6.61" y2="-7.54" width="0.127" layer="21"/>
+<wire x1="6.61" y1="-7.54" x2="3.77" y2="-7.54" width="0.127" layer="21"/>
+<smd name="4" x="-0.635" y="-8.135" dx="5.15" dy="0.76" layer="1" rot="R90"/>
+<smd name="3" x="0.635" y="-8.135" dx="5.15" dy="0.76" layer="1" rot="R90"/>
+<smd name="2" x="1.905" y="-8.135" dx="5.15" dy="0.76" layer="1" rot="R90"/>
+<smd name="1" x="3.175" y="-8.135" dx="5.15" dy="0.76" layer="1" rot="R90"/>
+<smd name="5" x="-1.905" y="-8.135" dx="5.15" dy="0.76" layer="1" rot="R90"/>
+<smd name="6" x="-3.175" y="-8.135" dx="5.15" dy="0.76" layer="1" rot="R90"/>
+<smd name="P$1" x="-4.975" y="8.44" dx="3.95" dy="2.45" layer="1" rot="R90"/>
+<smd name="P$0" x="4.975" y="8.44" dx="3.95" dy="2.45" layer="1" rot="R90"/>
+<text x="-4" y="1" size="1.778" layer="25" font="vector" ratio="10">&gt;NAME</text>
+<text x="-5" y="-2" size="1.778" layer="27" font="vector" ratio="10">&gt;VALUE</text>
+<rectangle x1="-6.61" y1="-7.54" x2="6.61" y2="7.54" layer="39"/>
+</package>
+<package name="SOIC_CAV">
+<description>&lt;b&gt;SMALL OUTLINE INTEGRATED CIRCUIT Plastic Cavity Package&lt;/b&gt;</description>
+<wire x1="-5.15" y1="5.61" x2="5.15" y2="5.61" width="0.1998" layer="39"/>
+<wire x1="5.15" y1="-5.61" x2="-5.15" y2="-5.61" width="0.1998" layer="39"/>
+<wire x1="-5.15" y1="-5.61" x2="-5.15" y2="5.61" width="0.1998" layer="39"/>
+<wire x1="5.15" y1="-3.9" x2="-5.15" y2="-3.9" width="0.2032" layer="51"/>
+<wire x1="-5.15" y1="-3.9" x2="-5.15" y2="3.9" width="0.2032" layer="51"/>
+<wire x1="-5.15" y1="3.9" x2="5.15" y2="3.9" width="0.2032" layer="51"/>
+<wire x1="5.15" y1="3.9" x2="5.15" y2="-3.9" width="0.2032" layer="51"/>
+<wire x1="5.15" y1="5.61" x2="5.15" y2="-5.61" width="0.1998" layer="39"/>
+<circle x="-4.6" y="-3.3" radius="0.2794" width="0.508" layer="21"/>
+<smd name="2" x="-3.175" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="13" x="-0.635" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="1" x="-4.445" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="3" x="-1.905" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="4" x="-0.635" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="14" x="-1.905" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="12" x="0.635" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="11" x="1.905" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="6" x="1.905" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="9" x="4.445" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="5" x="0.635" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="7" x="3.175" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="10" x="3.175" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="8" x="4.445" y="-4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="15" x="-3.175" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<smd name="16" x="-4.445" y="4.7705" dx="0.572" dy="1.691" layer="1"/>
+<text x="-3.445" y="1.27" size="1.27" layer="25" font="vector">&gt;NAME</text>
+<text x="-3.445" y="-2.54" size="1.27" layer="27" font="vector">&gt;VALUE</text>
+</package>
+<package name="M701-330442">
+<description>&lt;b&gt;Vertical USB Standard B Connector&lt;/b&gt;&lt;br&gt;
+from &lt;a href="http://www.mouser.com/ProductDetail/Harwin/M701-330442/?qs=x6EjVpvqMVOIQFAB0splYQ%3d%3d"&gt;http://www.mouser.com/ProductDetail/Harwin/M701-330442/?qs=x6EjVpvqMVOIQFAB0splYQ%3d%3d&lt;/a&gt; (drawings at &lt;a href="http://www.harwin.com/include/downloads/drawings/M701-330442.PDF"&gt;http://www.harwin.com/include/downloads/drawings/M701-330442.PDF&lt;/a&gt;)</description>
+<wire x1="6.02" y1="-1.02" x2="6.02" y2="2.38" width="0.127" layer="40" curve="-180"/>
+<wire x1="7.375" y1="-1.02" x2="7.375" y2="2.38" width="0.127" layer="40" curve="180"/>
+<wire x1="7.375" y1="2.38" x2="6.02" y2="2.38" width="0.127" layer="40"/>
+<wire x1="7.375" y1="-1.02" x2="6.02" y2="-1.02" width="0.127" layer="40"/>
+<wire x1="-7.375" y1="-1.02" x2="-7.375" y2="2.38" width="0.127" layer="40" curve="-180"/>
+<wire x1="-6.02" y1="-1.02" x2="-7.375" y2="-1.02" width="0.127" layer="40"/>
+<wire x1="-6.02" y1="-1.02" x2="-6.02" y2="2.38" width="0.127" layer="40" curve="180"/>
+<wire x1="-6.02" y1="2.38" x2="-7.375" y2="2.38" width="0.127" layer="40"/>
+<pad name="GND" x="-1.25" y="1.625" drill="0.92" shape="square"/>
+<pad name="D+" x="1.25" y="1.625" drill="0.92" shape="square"/>
+<pad name="D-" x="1.25" y="-1.625" drill="0.92" shape="square"/>
+<pad name="VCC" x="-1.25" y="-1.625" drill="0.92" shape="square"/>
+<pad name="P$0" x="-6.02" y="0.675" drill="2.3" shape="square"/>
+<pad name="P$1" x="6.02" y="0.675" drill="2.3" shape="square"/>
+<rectangle x1="-6.12" y1="-5.4" x2="6.12" y2="5.4" layer="39"/>
+</package>
+<package name="SOIC_W">
+<description>&lt;b&gt;JDEC MS-013-AA&lt;/b&gt;&lt;br&gt;
+basically just copied from one in ref-packages.lbr (should be correct)</description>
+<wire x1="-5.395" y1="5.9" x2="5.395" y2="5.9" width="0.1998" layer="39"/>
+<wire x1="5.395" y1="-5.9" x2="-5.395" y2="-5.9" width="0.1998" layer="39"/>
+<wire x1="-5.395" y1="-5.9" x2="-5.395" y2="5.9" width="0.1998" layer="39"/>
+<wire x1="5.19" y1="-3.7" x2="-5.19" y2="-3.7" width="0.2032" layer="51"/>
+<wire x1="-5.19" y1="-3.7" x2="-5.19" y2="-3.2" width="0.2032" layer="51"/>
+<wire x1="-5.19" y1="-3.2" x2="-5.19" y2="3.7" width="0.2032" layer="51"/>
+<wire x1="-5.19" y1="3.7" x2="5.19" y2="3.7" width="0.2032" layer="51"/>
+<wire x1="5.19" y1="3.7" x2="5.19" y2="-3.2" width="0.2032" layer="51"/>
+<wire x1="5.19" y1="-3.2" x2="5.19" y2="-3.7" width="0.2032" layer="51"/>
+<wire x1="5.395" y1="5.9" x2="5.395" y2="-5.9" width="0.1998" layer="39"/>
+<circle x="-4.5" y="-2.5" radius="0.3048" width="0.762" layer="21"/>
+<smd name="2" x="-3.175" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="13" x="-0.635" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="1" x="-4.445" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="3" x="-1.905" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="4" x="-0.635" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="14" x="-1.905" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="12" x="0.635" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="11" x="1.905" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="6" x="1.905" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="9" x="4.445" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="5" x="0.635" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="7" x="3.175" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="10" x="3.175" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="8" x="4.445" y="-4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="15" x="-3.175" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<smd name="16" x="-4.445" y="4.6" dx="0.6" dy="2.2" layer="1"/>
+<text x="-3.445" y="1.27" size="1.27" layer="25" font="vector">&gt;NAME</text>
+<text x="-3.445" y="-1.54" size="1.27" layer="27" font="vector">&gt;VALUE</text>
+<rectangle x1="-4.6901" y1="-5.32" x2="-4.1999" y2="-3.8001" layer="51"/>
+<rectangle x1="-3.4201" y1="-5.32" x2="-2.9299" y2="-3.8001" layer="51"/>
+<rectangle x1="-2.1501" y1="-5.32" x2="-1.6599" y2="-3.8001" layer="51"/>
+<rectangle x1="-0.8801" y1="-5.32" x2="-0.3899" y2="-3.8001" layer="51"/>
+<rectangle x1="0.3899" y1="-5.32" x2="0.8801" y2="-3.8001" layer="51"/>
+<rectangle x1="1.6599" y1="-5.32" x2="2.1501" y2="-3.8001" layer="51"/>
+<rectangle x1="2.9299" y1="-5.32" x2="3.4201" y2="-3.8001" layer="51"/>
+<rectangle x1="4.1999" y1="-5.32" x2="4.6901" y2="-3.8001" layer="51"/>
+<rectangle x1="4.1999" y1="3.8001" x2="4.6901" y2="5.32" layer="51"/>
+<rectangle x1="2.9299" y1="3.8001" x2="3.4201" y2="5.32" layer="51"/>
+<rectangle x1="1.6599" y1="3.8001" x2="2.1501" y2="5.32" layer="51"/>
+<rectangle x1="0.3899" y1="3.8001" x2="0.8801" y2="5.32" layer="51"/>
+<rectangle x1="-0.8801" y1="3.8001" x2="-0.3899" y2="5.32" layer="51"/>
+<rectangle x1="-2.1501" y1="3.8001" x2="-1.6599" y2="5.32" layer="51"/>
+<rectangle x1="-3.4201" y1="3.8001" x2="-2.9299" y2="5.32" layer="51"/>
+<rectangle x1="-4.6901" y1="3.8001" x2="-4.1999" y2="5.32" layer="51"/>
+</package>
+<package name="MSOP10">
+<description>&lt;b&gt;10-Lead Mini Small Outline Package [MSOP]&lt;/b&gt; (RM-10)&lt;p&gt;
+Source: http://www.analog.com/UploadedFiles/Data_Sheets/35641221898805SSM2167_b.pdf&lt;br&gt;
+COMPLIANT TO JEDEC STANDARDS MO-187BA</description>
+<wire x1="-1.4" y1="1.4" x2="1.4" y2="1.4" width="0.2032" layer="21"/>
+<wire x1="1.4" y1="1.4" x2="1.4" y2="-1.4" width="0.2032" layer="21"/>
+<wire x1="1.4" y1="-1.4" x2="-1.4" y2="-1.4" width="0.2032" layer="21"/>
+<wire x1="-1.4" y1="-1.4" x2="-1.4" y2="1.4" width="0.2032" layer="21"/>
+<wire x1="-0.8" y1="-1.1" x2="-0.8" y2="-0.5" width="0.2032" layer="21" curve="-180"/>
+<wire x1="-0.8" y1="-0.5" x2="-0.8" y2="-1.1" width="0.2032" layer="21"/>
+<smd name="1" x="-1" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="2" x="-0.5" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="3" x="0" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="4" x="0.5" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="5" x="1" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="6" x="1" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="7" x="0.5" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="8" x="0" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="9" x="-0.5" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="10" x="-1" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<text x="-2.032" y="-2.54" size="1.27" layer="25" ratio="10" rot="R90">&gt;NAME</text>
+<text x="3.302" y="-2.54" size="1.27" layer="27" ratio="10" rot="R90">&gt;VALUE</text>
+<rectangle x1="-1.1244" y1="-2.5" x2="-0.8744" y2="-1.5" layer="51"/>
+<rectangle x1="-0.6244" y1="-2.5" x2="-0.3744" y2="-1.5" layer="51"/>
+<rectangle x1="-0.1244" y1="-2.5" x2="0.1256" y2="-1.5" layer="51"/>
+<rectangle x1="0.3756" y1="-2.5" x2="0.6256" y2="-1.5" layer="51"/>
+<rectangle x1="0.8756" y1="-2.5" x2="1.1256" y2="-1.5" layer="51"/>
+<rectangle x1="0.8744" y1="1.5" x2="1.1244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="0.3744" y1="1.5" x2="0.6244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-0.1256" y1="1.5" x2="0.1244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-0.6256" y1="1.5" x2="-0.3756" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-1.1256" y1="1.5" x2="-0.8756" y2="2.5" layer="51" rot="R180"/>
+</package>
+<package name="1060-152">
+<description>&lt;b&gt;coilcraft inductor&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1060_.pdf"&gt;http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1060_.pdf&lt;/a&gt;</description>
+<smd name="P$1" x="-3.325" y="0" dx="2.39" dy="9.5" layer="1"/>
+<smd name="P$2" x="3.325" y="0" dx="2.39" dy="9.5" layer="1"/>
+<rectangle x1="-5" y1="-5.65" x2="5" y2="5.65" layer="39"/>
+</package>
+<package name="L2012C">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.864" y1="0.54" x2="0.864" y2="0.54" width="0.1016" layer="51"/>
+<wire x1="-0.864" y1="-0.553" x2="0.864" y2="-0.553" width="0.1016" layer="51"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1" y="0" dx="1" dy="1" layer="1"/>
+<smd name="2" x="1" y="0" dx="1" dy="1" layer="1"/>
+<text x="-1.016" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.016" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.143" y1="-0.6096" x2="-0.843" y2="0.5903" layer="51"/>
+<rectangle x1="0.8382" y1="-0.6096" x2="1.1382" y2="0.5903" layer="51"/>
+<rectangle x1="-0.3" y1="-0.4001" x2="0.3" y2="0.4001" layer="35"/>
+</package>
+<package name="L2825P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.762" y1="1.2" x2="0.762" y2="1.2" width="0.1016" layer="51"/>
+<wire x1="-0.762" y1="-1.213" x2="0.762" y2="-1.213" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="1.34" y1="-0.965" x2="1.34" y2="0.965" width="0.1016" layer="51"/>
+<wire x1="-1.34" y1="0.965" x2="-1.34" y2="-0.965" width="0.1016" layer="51"/>
+<circle x="0" y="0" radius="0.6604" width="0.1524" layer="51"/>
+<smd name="1" x="-1.2" y="0" dx="1.4" dy="2.4" layer="1"/>
+<smd name="2" x="1.2" y="0" dx="1.4" dy="2.4" layer="1"/>
+<text x="-1.27" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.7366" y1="-1.27" x2="1.3208" y2="1.27" layer="51"/>
+<rectangle x1="-1.3208" y1="-1.27" x2="-0.7366" y2="1.27" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="L3216C">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-1.27" y1="0.896" x2="1.27" y2="0.896" width="0.1016" layer="51"/>
+<wire x1="-1.27" y1="-0.883" x2="1.27" y2="-0.883" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-0.762" y1="0.896" x2="0.762" y2="0.896" width="0.1016" layer="21"/>
+<wire x1="-0.762" y1="-0.883" x2="0.762" y2="-0.883" width="0.1016" layer="21"/>
+<smd name="1" x="-1.5" y="0" dx="1.2" dy="1.6" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.2" dy="1.6" layer="1"/>
+<text x="-1.524" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.524" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7526" y1="-0.9525" x2="-1.2525" y2="0.9474" layer="51"/>
+<rectangle x1="1.2446" y1="-0.9525" x2="1.7447" y2="0.9474" layer="51"/>
+<rectangle x1="-0.4001" y1="-0.5999" x2="0.4001" y2="0.5999" layer="35"/>
+</package>
+<package name="L3225M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-1.575" y1="1.27" x2="1.575" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="1.575" y1="1.27" x2="1.575" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="1.575" y1="-1.27" x2="-1.575" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-1.575" y1="-1.27" x2="-1.575" y2="1.27" width="0.1524" layer="51"/>
+<wire x1="-1.651" y1="0.94" x2="-1.651" y2="-0.94" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="0.94" x2="1.651" y2="-0.94" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<text x="-1.397" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-1" x2="0.3" y2="1" layer="35"/>
+</package>
+<package name="L3225P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-1.676" y1="0.845" x2="1.676" y2="0.845" width="0.1524" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-1.676" y1="0.838" x2="-1.676" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="-1.168" y1="0.838" x2="-1.168" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="1.168" y1="0.838" x2="1.168" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="1.676" y1="0.838" x2="1.676" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="1.676" y1="-0.845" x2="-1.676" y2="-0.845" width="0.1524" layer="51"/>
+<circle x="0" y="0" radius="0.7117" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.8" dy="2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.8" dy="2" layer="1"/>
+<text x="-1.397" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="L3230M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-1.575" y1="1.27" x2="1.575" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="1.575" y1="1.27" x2="1.575" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="1.575" y1="-1.27" x2="-1.575" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-1.575" y1="-1.27" x2="-1.575" y2="1.27" width="0.1524" layer="51"/>
+<wire x1="-1.651" y1="0.94" x2="-1.651" y2="-0.94" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="0.94" x2="1.651" y2="-0.94" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-1" x2="0.3" y2="1" layer="35"/>
+</package>
+<package name="L4035M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.083" y1="0.686" x2="-2.083" y2="-0.686" width="0.1524" layer="51"/>
+<wire x1="2.083" y1="0.686" x2="2.083" y2="-0.686" width="0.1524" layer="51"/>
+<wire x1="-1.981" y1="1.524" x2="-1.981" y2="-1.524" width="0.1524" layer="51"/>
+<wire x1="-1.981" y1="-1.524" x2="1.981" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="1.981" y1="-1.524" x2="1.981" y2="1.524" width="0.1524" layer="51"/>
+<wire x1="1.981" y1="1.524" x2="-1.981" y2="1.524" width="0.1524" layer="21"/>
+<smd name="1" x="-1.6" y="0" dx="2.2" dy="1.4" layer="1"/>
+<smd name="2" x="1.6" y="0" dx="2.2" dy="1.4" layer="1"/>
+<text x="-1.651" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.651" y="-3.048" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="L4516C">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="0.983" x2="2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-0.983" x2="-2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-0.983" x2="-2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-1.626" y1="0.54" x2="1.626" y2="0.54" width="0.1016" layer="51"/>
+<wire x1="-1.626" y1="-0.527" x2="1.626" y2="-0.527" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="0.983" x2="2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.372" y1="0.54" x2="1.372" y2="0.54" width="0.1016" layer="21"/>
+<wire x1="-1.372" y1="-0.527" x2="1.372" y2="-0.527" width="0.1016" layer="21"/>
+<smd name="1" x="-2.1" y="0" dx="1" dy="1.6" layer="1"/>
+<smd name="2" x="2.1" y="0" dx="1" dy="1.6" layer="1"/>
+<text x="-2.032" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.032" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.4003" y1="-0.5969" x2="-1.6002" y2="0.603" layer="51"/>
+<rectangle x1="1.6002" y1="-0.603" x2="2.4003" y2="0.5969" layer="51"/>
+<rectangle x1="-0.7" y1="-0.3" x2="0.7" y2="0.3" layer="35"/>
+</package>
+<package name="L4532M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-3.473" y1="1.983" x2="3.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="-1.983" x2="-3.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-3.473" y1="-1.983" x2="-3.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="1.983" x2="3.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.21" y1="-1.626" x2="2.21" y2="-1.626" width="0.1524" layer="21"/>
+<wire x1="2.21" y1="1.626" x2="-2.21" y2="1.626" width="0.1524" layer="21"/>
+<wire x1="-2.337" y1="1.041" x2="-2.337" y2="-1.041" width="0.1524" layer="51"/>
+<wire x1="2.337" y1="1.041" x2="2.337" y2="-1.041" width="0.1524" layer="51"/>
+<wire x1="-2.21" y1="1.626" x2="-2.21" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="2.21" y1="1.626" x2="2.21" y2="-1.626" width="0.1524" layer="51"/>
+<smd name="1" x="-1.9" y="0" dx="2" dy="2.4" layer="1"/>
+<smd name="2" x="1.9" y="0" dx="2" dy="2.4" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.302" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L4532P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-2.311" y1="1.675" x2="2.311" y2="1.675" width="0.1524" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.311" y1="-1.653" x2="2.311" y2="-1.653" width="0.1524" layer="51"/>
+<wire x1="-2.311" y1="1.626" x2="-2.311" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="2.311" y1="1.675" x2="2.311" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="-1.448" y1="1.651" x2="-1.448" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="1.448" y1="1.626" x2="1.448" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="-0.66" y1="1.675" x2="0.66" y2="1.675" width="0.1524" layer="21"/>
+<wire x1="-0.66" y1="-1.653" x2="0.66" y2="-1.653" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="1.3211" width="0.1524" layer="51"/>
+<smd name="1" x="-2" y="0" dx="1.8" dy="3.6" layer="1"/>
+<smd name="2" x="2" y="0" dx="1.8" dy="3.6" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.302" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L5038P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt; &lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-2.286" y1="1.853" x2="2.311" y2="1.853" width="0.1016" layer="21"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.286" y1="-1.856" x2="2.311" y2="-1.856" width="0.1016" layer="21"/>
+<wire x1="2.389" y1="-1.27" x2="2.389" y2="1.27" width="0.1016" layer="51"/>
+<wire x1="-2.386" y1="-1.27" x2="-2.386" y2="1.27" width="0.1016" layer="51"/>
+<wire x1="1.602" y1="-1.854" x2="1.602" y2="1.854" width="0.1016" layer="51"/>
+<wire x1="-1.624" y1="-1.854" x2="-1.624" y2="1.854" width="0.1016" layer="51"/>
+<wire x1="-2.31" y1="-1.854" x2="-2.31" y2="1.854" width="0.1016" layer="51"/>
+<wire x1="2.313" y1="-1.854" x2="2.313" y2="1.854" width="0.1016" layer="51"/>
+<circle x="0" y="0" radius="1.4732" width="0.1524" layer="51"/>
+<smd name="1" x="-2.2" y="0" dx="1.4" dy="2.8" layer="1"/>
+<smd name="2" x="2.2" y="0" dx="1.4" dy="2.8" layer="1"/>
+<text x="-2.159" y="2.159" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.159" y="-3.429" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L5650M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt; &lt;p&gt;
+molded</description>
+<wire x1="-3.973" y1="2.983" x2="3.973" y2="2.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="-2.983" x2="-3.973" y2="-2.983" width="0.0508" layer="39"/>
+<wire x1="-3.973" y1="-2.983" x2="-3.973" y2="2.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="2.983" x2="3.973" y2="-2.983" width="0.0508" layer="39"/>
+<wire x1="-2.108" y1="-2.591" x2="2.083" y2="-2.591" width="0.1524" layer="21"/>
+<wire x1="2.083" y1="2.591" x2="-2.108" y2="2.591" width="0.1524" layer="21"/>
+<wire x1="2.184" y1="2.032" x2="2.184" y2="-2.032" width="0.1524" layer="51"/>
+<wire x1="-2.21" y1="2.032" x2="-2.21" y2="-2.032" width="0.1524" layer="51"/>
+<wire x1="-2.108" y1="2.591" x2="-2.108" y2="-2.591" width="0.1524" layer="51"/>
+<wire x1="2.083" y1="2.591" x2="2.083" y2="-2.591" width="0.1524" layer="51"/>
+<smd name="1" x="-2.5" y="0" dx="1.8" dy="4" layer="1"/>
+<smd name="2" x="2.5" y="0" dx="1.8" dy="4" layer="1"/>
+<text x="-2.54" y="2.921" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.54" y="-4.191" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L8530M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt; &lt;p&gt;
+molded</description>
+<wire x1="-5.473" y1="1.983" x2="5.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="5.473" y1="-1.983" x2="-5.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-5.473" y1="-1.983" x2="-5.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="5.473" y1="1.983" x2="5.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-4.191" y1="-1.524" x2="-4.191" y2="1.524" width="0.1524" layer="51"/>
+<wire x1="4.191" y1="1.524" x2="-4.191" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="4.191" y1="-1.524" x2="-4.191" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-4.293" y1="-0.66" x2="-4.293" y2="0.66" width="0.1524" layer="51"/>
+<wire x1="4.293" y1="-0.66" x2="4.293" y2="0.66" width="0.1524" layer="51"/>
+<wire x1="4.191" y1="-1.524" x2="4.191" y2="1.524" width="0.1524" layer="51"/>
+<smd name="1" x="-3.7" y="0" dx="2.4" dy="1.4" layer="1"/>
+<smd name="2" x="3.7" y="0" dx="2.4" dy="1.4" layer="1"/>
+<text x="-3.683" y="1.778" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.683" y="-3.048" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="0204/5">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 5 mm</description>
+<wire x1="2.54" y1="0" x2="2.032" y2="0" width="0.508" layer="51"/>
+<wire x1="-2.54" y1="0" x2="-2.032" y2="0" width="0.508" layer="51"/>
+<wire x1="-1.778" y1="0.635" x2="-1.524" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.778" y1="-0.635" x2="-1.524" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.524" y1="-0.889" x2="1.778" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.524" y1="0.889" x2="1.778" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.778" y1="-0.635" x2="-1.778" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-1.524" y1="0.889" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="0.762" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.524" y1="-0.889" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="-0.762" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="0.762" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="0.762" x2="-1.143" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="-0.762" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="-0.762" x2="-1.143" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="1.524" y1="0.889" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.524" y1="-0.889" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.635" x2="1.778" y2="0.635" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.0066" y="1.1684" size="0.9906" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.1336" y="-2.3114" size="0.9906" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-2.032" y1="-0.254" x2="-1.778" y2="0.254" layer="51"/>
+<rectangle x1="1.778" y1="-0.254" x2="2.032" y2="0.254" layer="51"/>
+</package>
+<package name="0204/7">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 7.5 mm</description>
+<wire x1="3.81" y1="0" x2="2.921" y2="0" width="0.508" layer="51"/>
+<wire x1="-3.81" y1="0" x2="-2.921" y2="0" width="0.508" layer="51"/>
+<wire x1="-2.54" y1="0.762" x2="-2.286" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="-0.762" x2="-2.286" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="-1.016" x2="2.54" y2="-0.762" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="1.016" x2="2.54" y2="0.762" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="-0.762" x2="-2.54" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="1.016" x2="-1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-1.778" y1="0.889" x2="-1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="-1.016" x2="-1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-1.778" y1="-0.889" x2="-1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.889" x2="1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.889" x2="-1.778" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.889" x2="1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.889" x2="-1.778" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="1.016" x2="1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="-1.016" x2="1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="-0.762" x2="2.54" y2="0.762" width="0.1524" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.2954" size="0.9906" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.6256" y="-0.4826" size="0.9906" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.54" y1="-0.254" x2="2.921" y2="0.254" layer="21"/>
+<rectangle x1="-2.921" y1="-0.254" x2="-2.54" y2="0.254" layer="21"/>
+</package>
+<package name="0204V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 2.5 mm</description>
+<wire x1="-1.27" y1="0" x2="1.27" y2="0" width="0.508" layer="51"/>
+<wire x1="-0.127" y1="0" x2="0.127" y2="0" width="0.508" layer="21"/>
+<circle x="-1.27" y="0" radius="0.889" width="0.1524" layer="51"/>
+<circle x="-1.27" y="0" radius="0.635" width="0.0508" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.1336" y="1.1684" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.1336" y="-2.3114" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/10">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 10 mm</description>
+<wire x1="5.08" y1="0" x2="4.064" y2="0" width="0.6096" layer="51"/>
+<wire x1="-5.08" y1="0" x2="-4.064" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.048" y="1.524" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.2606" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/12">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 12 mm</description>
+<wire x1="6.35" y1="0" x2="5.334" y2="0" width="0.6096" layer="51"/>
+<wire x1="-6.35" y1="0" x2="-5.334" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="4.445" y1="0" x2="4.064" y2="0" width="0.6096" layer="21"/>
+<wire x1="-4.445" y1="0" x2="-4.064" y2="0" width="0.6096" layer="21"/>
+<pad name="1" x="-6.35" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="6.35" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.175" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+<rectangle x1="4.445" y1="-0.3048" x2="5.3086" y2="0.3048" layer="21"/>
+<rectangle x1="-5.3086" y1="-0.3048" x2="-4.445" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 15mm</description>
+<wire x1="7.62" y1="0" x2="6.604" y2="0" width="0.6096" layer="51"/>
+<wire x1="-7.62" y1="0" x2="-6.604" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="5.715" y1="0" x2="4.064" y2="0" width="0.6096" layer="21"/>
+<wire x1="-5.715" y1="0" x2="-4.064" y2="0" width="0.6096" layer="21"/>
+<pad name="1" x="-7.62" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.175" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+<rectangle x1="5.715" y1="-0.3048" x2="6.5786" y2="0.3048" layer="21"/>
+<rectangle x1="-6.5786" y1="-0.3048" x2="-5.715" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/2V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 2.5 mm</description>
+<wire x1="-1.27" y1="0" x2="-0.381" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.254" y1="0" x2="0.254" y2="0" width="0.6096" layer="21"/>
+<wire x1="0.381" y1="0" x2="1.27" y2="0" width="0.6096" layer="51"/>
+<circle x="-1.27" y="0" radius="1.27" width="0.1524" layer="21"/>
+<circle x="-1.27" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-0.0508" y="1.016" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.0508" y="-2.2352" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/5V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 5 mm</description>
+<wire x1="-2.54" y1="0" x2="-0.889" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.762" y1="0" x2="0.762" y2="0" width="0.6096" layer="21"/>
+<wire x1="0.889" y1="0" x2="2.54" y2="0" width="0.6096" layer="51"/>
+<circle x="-2.54" y="0" radius="1.27" width="0.1016" layer="21"/>
+<circle x="-2.54" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.143" y="0.889" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.143" y="-2.159" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/7">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 7.5 mm</description>
+<wire x1="-3.81" y1="0" x2="-3.429" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="3.429" y1="0" x2="3.81" y2="0" width="0.6096" layer="51"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.5588" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-3.429" y1="-0.3048" x2="-3.175" y2="0.3048" layer="51"/>
+<rectangle x1="3.175" y1="-0.3048" x2="3.429" y2="0.3048" layer="51"/>
+</package>
+<package name="L1812">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+</package>
+<package name="TJ3-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-3.65" y1="8.15" x2="3.65" y2="8.15" width="0.2032" layer="21"/>
+<wire x1="3.65" y1="-8.15" x2="-3.65" y2="-8.15" width="0.2032" layer="21"/>
+<wire x1="-3.65" y1="-8.15" x2="-3.65" y2="-1.1" width="0.2032" layer="21"/>
+<wire x1="-3.65" y1="-1.1" x2="-3.65" y2="1.1" width="0.2032" layer="51"/>
+<wire x1="-3.65" y1="1.1" x2="-3.65" y2="8.15" width="0.2032" layer="21"/>
+<wire x1="3.65" y1="8.15" x2="3.65" y2="1.1" width="0.2032" layer="21"/>
+<wire x1="3.65" y1="1.1" x2="3.65" y2="-1.1" width="0.2032" layer="51"/>
+<wire x1="3.65" y1="-1.1" x2="3.65" y2="-8.15" width="0.2032" layer="21"/>
+<pad name="1" x="-3.3" y="0" drill="0.9"/>
+<pad name="2" x="3.3" y="0" drill="0.9"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ3-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="8.3" width="0.2032" layer="27"/>
+<pad name="1" x="-7.35" y="0" drill="0.9"/>
+<pad name="2" x="7.35" y="0" drill="0.9"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ4-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-4.95" y1="11.05" x2="4.95" y2="11.05" width="0.2032" layer="21"/>
+<wire x1="4.95" y1="11.05" x2="4.95" y2="-11.05" width="0.2032" layer="21"/>
+<wire x1="4.95" y1="-11.05" x2="-4.95" y2="-11.05" width="0.2032" layer="21"/>
+<wire x1="-4.95" y1="-11.05" x2="-4.95" y2="11.05" width="0.2032" layer="21"/>
+<pad name="1" x="-3.935" y="0" drill="0.9"/>
+<pad name="2" x="3.935" y="0" drill="0.9"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ4-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="11.1" width="0.2032" layer="27"/>
+<pad name="1" x="-9.9" y="0" drill="0.9"/>
+<pad name="2" x="9.9" y="0" drill="0.9"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ5-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-5.55" y1="12.55" x2="5.55" y2="12.55" width="0.2032" layer="21"/>
+<wire x1="5.55" y1="12.55" x2="5.55" y2="-12.55" width="0.2032" layer="21"/>
+<wire x1="5.55" y1="-12.55" x2="-5.55" y2="-12.55" width="0.2032" layer="21"/>
+<wire x1="-5.55" y1="-12.55" x2="-5.55" y2="12.55" width="0.2032" layer="21"/>
+<pad name="1" x="-4.7" y="0" drill="0.9"/>
+<pad name="2" x="4.7" y="0" drill="0.9"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ5-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="12.6" width="0.2032" layer="27"/>
+<pad name="1" x="-11.45" y="0" drill="0.9"/>
+<pad name="2" x="11.45" y="0" drill="0.9"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ6-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-10.95" y1="17.45" x2="10.95" y2="17.45" width="0.2032" layer="21"/>
+<wire x1="10.95" y1="17.45" x2="10.95" y2="-17.45" width="0.2032" layer="21"/>
+<wire x1="10.95" y1="-17.45" x2="-10.95" y2="-17.45" width="0.2032" layer="21"/>
+<wire x1="-10.95" y1="-17.45" x2="-10.95" y2="17.45" width="0.2032" layer="21"/>
+<pad name="1" x="-9.25" y="0" drill="1.3"/>
+<pad name="2" x="9.25" y="0" drill="1.3"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ6-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="17.5" width="0.2032" layer="27"/>
+<pad name="1" x="-15.5" y="0" drill="1.3"/>
+<pad name="2" x="15.5" y="0" drill="1.3"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ7-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-9.45" y1="20.85" x2="9.43" y2="20.85" width="0.2032" layer="21"/>
+<wire x1="9.43" y1="20.85" x2="9.45" y2="-20.85" width="0.2032" layer="21"/>
+<wire x1="9.45" y1="-20.85" x2="-9.45" y2="-20.85" width="0.2032" layer="21"/>
+<wire x1="-9.45" y1="-20.85" x2="-9.45" y2="20.85" width="0.2032" layer="21"/>
+<pad name="1" x="-7.9" y="0" drill="1.3"/>
+<pad name="2" x="7.9" y="0" drill="1.3"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ7-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="20.9" width="0.2032" layer="27"/>
+<pad name="1" x="-18.8" y="0" drill="1.3"/>
+<pad name="2" x="18.8" y="0" drill="1.3"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ8-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-12.55" y1="24.25" x2="12.55" y2="24.25" width="0.2032" layer="21"/>
+<wire x1="12.55" y1="24.25" x2="12.55" y2="-24.25" width="0.2032" layer="21"/>
+<wire x1="12.55" y1="-24.25" x2="-12.55" y2="-24.25" width="0.2032" layer="21"/>
+<wire x1="-12.55" y1="-24.25" x2="-12.55" y2="24.25" width="0.2032" layer="21"/>
+<pad name="1" x="-10.4" y="0" drill="1.5"/>
+<pad name="2" x="10.4" y="0" drill="1.5"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ8-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="24.6" width="0.2032" layer="27"/>
+<pad name="1" x="-22.35" y="0" drill="1.5"/>
+<pad name="2" x="22.35" y="0" drill="1.5"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ9-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-17.95" y1="33.75" x2="17.95" y2="33.75" width="0.2032" layer="21"/>
+<wire x1="17.95" y1="33.75" x2="17.95" y2="-33.75" width="0.2032" layer="21"/>
+<wire x1="17.95" y1="-33.75" x2="-17.95" y2="-33.75" width="0.2032" layer="21"/>
+<wire x1="-17.95" y1="-33.75" x2="-17.95" y2="33.75" width="0.2032" layer="21"/>
+<pad name="1" x="-15.9" y="0" drill="1.8"/>
+<pad name="2" x="15.9" y="0" drill="1.8"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ9-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="34.5" width="0.2032" layer="27"/>
+<pad name="1" x="-31.6" y="0" drill="1.8"/>
+<pad name="2" x="31.6" y="0" drill="1.8"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="POWER-CHOKE_WE-TPC">
+<description>&lt;b&gt;POWER-CHOKE WE-TPC&lt;/b&gt;&lt;p&gt;
+Würth Elektronik, Partnumber: 744053220&lt;br&gt;
+Source: WE-TPC 744053220.pdf</description>
+<wire x1="-2.8" y1="2.3" x2="-2.3" y2="2.8" width="0.2" layer="51" curve="-90"/>
+<wire x1="-2.3" y1="2.8" x2="2.3" y2="2.8" width="0.2" layer="51"/>
+<wire x1="2.3" y1="2.8" x2="2.8" y2="2.3" width="0.2" layer="51" curve="-90"/>
+<wire x1="2.8" y1="2.3" x2="2.8" y2="-2.3" width="0.2" layer="51"/>
+<wire x1="2.8" y1="-2.3" x2="2.3" y2="-2.8" width="0.2" layer="51" curve="-90"/>
+<wire x1="2.3" y1="-2.8" x2="-2.3" y2="-2.8" width="0.2" layer="51"/>
+<wire x1="-2.3" y1="-2.8" x2="-2.8" y2="-2.3" width="0.2" layer="51" curve="-90"/>
+<wire x1="-2.8" y1="-2.3" x2="-2.8" y2="2.3" width="0.2" layer="51"/>
+<wire x1="-2.8" y1="0.65" x2="-2.8" y2="-0.65" width="0.2" layer="21"/>
+<wire x1="-2" y1="0.65" x2="-2" y2="-0.65" width="0.2" layer="21" curve="36.008323"/>
+<wire x1="2.8" y1="-0.65" x2="2.8" y2="0.65" width="0.2" layer="21"/>
+<wire x1="2" y1="-0.65" x2="2" y2="0.65" width="0.2" layer="21" curve="36.008323"/>
+<circle x="0" y="0" radius="2.1" width="0.2" layer="51"/>
+<smd name="1" x="0" y="2.05" dx="6.3" dy="2.2" layer="1" roundness="25"/>
+<smd name="2" x="0" y="-2.05" dx="6.3" dy="2.2" layer="1" roundness="25" rot="R180"/>
+<text x="-3.5" y="3.5" size="1.778" layer="25">&gt;NAME</text>
+<text x="-3.5" y="-5.3" size="1.778" layer="27">&gt;VALUE</text>
+</package>
+<package name="CEP125">
+<description>&lt;b&gt;POWER INDUCTORS&lt;/b&gt; (SMT Type)&lt;p&gt;
+Source: www.sumida.com/products/pdf/CEP125.pdf</description>
+<wire x1="-1.5796" y1="6.3448" x2="-1.5533" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="-1.5533" y1="6.3448" x2="-1.29" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="-1.29" y1="6.0815" x2="-1.1584" y2="6.0816" width="0.2032" layer="21"/>
+<wire x1="-1.1584" y1="6.0816" x2="-1.1584" y2="6.2922" width="0.2032" layer="21"/>
+<wire x1="-1.1584" y1="6.2922" x2="-1.1583" y2="6.2922" width="0.2032" layer="21"/>
+<wire x1="-1.1583" y1="6.2922" x2="-1.1057" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="-1.1057" y1="6.3448" x2="1.1057" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="1.1057" y1="6.3448" x2="1.1057" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="1.1057" y1="6.0815" x2="1.211" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="1.211" y1="6.0815" x2="1.4217" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="1.4217" y1="6.3448" x2="6.1079" y2="6.3448" width="0.2032" layer="51"/>
+<wire x1="6.1079" y1="6.3448" x2="6.3448" y2="6.1079" width="0.2032" layer="21" curve="-96.645912"/>
+<wire x1="6.3448" y1="6.1079" x2="6.3448" y2="1.8166" width="0.2032" layer="21"/>
+<wire x1="6.3448" y1="1.8166" x2="6.2658" y2="1.7376" width="0.2032" layer="21"/>
+<wire x1="6.2658" y1="1.7376" x2="6.2658" y2="-1.7376" width="0.2032" layer="21"/>
+<wire x1="6.2658" y1="-1.7376" x2="6.3448" y2="-1.8166" width="0.2032" layer="21"/>
+<wire x1="6.3448" y1="-1.8166" x2="6.3448" y2="-6.0289" width="0.2032" layer="21"/>
+<wire x1="6.3448" y1="-6.0289" x2="6.0289" y2="-6.3448" width="0.2032" layer="21" curve="-91.024745"/>
+<wire x1="6.0289" y1="-6.3448" x2="-6.0289" y2="-6.3448" width="0.2032" layer="51"/>
+<wire x1="-6.3448" y1="-6.0289" x2="-6.3448" y2="6.1342" width="0.2032" layer="21"/>
+<wire x1="-6.3448" y1="6.1342" x2="-6.1342" y2="6.3448" width="0.2032" layer="21" curve="-83.297108"/>
+<wire x1="-6.1342" y1="6.3448" x2="-1.5533" y2="6.3448" width="0.2032" layer="51"/>
+<wire x1="-6.2395" y1="5.7393" x2="-2.0535" y2="5.7393" width="0.2032" layer="51"/>
+<wire x1="-2.0535" y1="5.7393" x2="-1.5534" y2="3.9754" width="0.2032" layer="51"/>
+<wire x1="-1.5534" y1="3.9754" x2="1.527" y2="3.9754" width="0.2032" layer="21"/>
+<wire x1="1.527" y1="3.9754" x2="2.0535" y2="5.7393" width="0.2032" layer="51"/>
+<wire x1="2.0535" y1="5.7393" x2="6.2395" y2="5.7393" width="0.2032" layer="51"/>
+<wire x1="6.2395" y1="-3.4752" x2="-6.2658" y2="-3.4752" width="0.2032" layer="21"/>
+<wire x1="-5.6077" y1="-3.5805" x2="-5.6077" y2="-6.2395" width="0.2032" layer="21"/>
+<wire x1="-4.8968" y1="-6.2395" x2="-4.8968" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="-4.7915" y1="-6.0552" x2="-2.2115" y2="-6.0552" width="0.2032" layer="21"/>
+<wire x1="-2.9486" y1="-5.9499" x2="-2.9223" y2="-5.9499" width="0.2032" layer="21"/>
+<wire x1="-2.9223" y1="-5.9499" x2="-2.9223" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="-2.1588" y1="-6.2395" x2="-2.1588" y2="-3.8701" width="0.2032" layer="21"/>
+<wire x1="2.1325" y1="-6.2395" x2="2.1325" y2="-3.8701" width="0.2032" layer="21"/>
+<wire x1="2.2378" y1="-6.0289" x2="4.8968" y2="-6.0289" width="0.2032" layer="21"/>
+<wire x1="4.8968" y1="-3.5805" x2="4.8968" y2="-6.2395" width="0.2032" layer="21"/>
+<wire x1="2.9486" y1="-5.9236" x2="2.9486" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="5.5813" y1="-6.2395" x2="5.5813" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="2.5011" y1="-3.5805" x2="-2.4747" y2="-3.5805" width="0.2032" layer="51" curve="-63.906637"/>
+<wire x1="1.1057" y1="6.0815" x2="-1.1584" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="-1.7902" y1="5.1601" x2="1.7376" y2="5.1863" width="0.2032" layer="21" curve="-37.134171"/>
+<wire x1="-6.0289" y1="-6.3448" x2="-6.3448" y2="-6.0289" width="0.2032" layer="21" curve="-90.91408"/>
+<smd name="1" x="-3.5" y="5.375" dx="3" dy="2.75" layer="1"/>
+<smd name="2" x="3.5" y="5.375" dx="3" dy="2.75" layer="1"/>
+<smd name="3" x="0" y="-5.48" dx="3" dy="2.55" layer="1"/>
+<text x="-5.08" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.27" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="1010-153">
+<description>&lt;b&gt;coilcraft inductor&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1010_.pdf"&gt;http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1010_.pdf&lt;/a&gt;</description>
+<smd name="P$1" x="-3.325" y="0" dx="2.38" dy="8.71" layer="1"/>
+<smd name="P$2" x="3.325" y="0" dx="2.38" dy="8.71" layer="1"/>
+<rectangle x1="-5" y1="-5.65" x2="5" y2="5.65" layer="39"/>
+</package>
+<package name="PG-TSDSON8">
+<description>&lt;b&gt;infineon mosfet package&lt;/b&gt;&lt;br&gt;
+created from drawings at &lt;a href="http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996"&gt;http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996&lt;/a&gt; (page 13 and TSDSON is Shrink SuperSO8)</description>
+<smd name="S$1" x="-0.325" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="S$2" x="0.325" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="G" x="0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="S$0" x="-0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="D$1" x="-0.975" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$2" x="-0.325" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$3" x="0.325" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$4" x="0.975" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$0" x="0" y="0.395" dx="2.29" dy="1.71" layer="1"/>
+<rectangle x1="-1.6" y1="-1.9" x2="1.6" y2="1.9" layer="39"/>
+</package>
+<package name="PG-TSDSON8_SIMPLE">
+<description>&lt;b&gt;infineon mosfet package&lt;/b&gt;&lt;br&gt;
+created from drawings at &lt;a href="http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996"&gt;http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996&lt;/a&gt; (page 13 and TSDSON is Shrink SuperSO8)&lt;br&gt;
+simplified from the recommendations by making the common pads big rectangles so that it works better in eagle (they appear to only be there to help with alignment during reflow soldering)</description>
+<smd name="S" x="-0.325" y="-1.5" dx="0.8" dy="1.64" layer="1" rot="R90"/>
+<smd name="G" x="0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="D" x="0" y="0.72" dx="2.29" dy="2.36" layer="1"/>
+<rectangle x1="-1.6" y1="-1.9" x2="1.6" y2="1.9" layer="39"/>
+</package>
+<package name="DFN12">
+<circle x="-0.75" y="1.75" radius="0.25" width="0.127" layer="51"/>
+<smd name="1" x="-0.614" y="1.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="3" x="-0.614" y="0.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="5" x="-0.614" y="-0.75" dx="0.479" dy="0.265" layer="1"/>
+<smd name="6" x="-0.614" y="-1.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="4" x="-0.614" y="-0.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="2" x="-0.614" y="0.75" dx="0.479" dy="0.265" layer="1"/>
+<smd name="12" x="0.614" y="1.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="11" x="0.614" y="0.75" dx="0.479" dy="0.265" layer="1"/>
+<smd name="10" x="0.614" y="0.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="9" x="0.614" y="-0.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="8" x="0.614" y="-0.75" dx="0.479" dy="0.265" layer="1"/>
+<smd name="7" x="0.614" y="-1.25" dx="0.479" dy="0.265" layer="1"/>
+<smd name="GND" x="0" y="0" dx="0.351" dy="2.352" layer="1"/>
+</package>
+<package name="C0402">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0504">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.294" y1="0.559" x2="0.294" y2="0.559" width="0.1016" layer="51"/>
+<wire x1="-0.294" y1="-0.559" x2="0.294" y2="-0.559" width="0.1016" layer="51"/>
+<smd name="1" x="-0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<smd name="2" x="0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<text x="-0.635" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.6604" y1="-0.6223" x2="-0.2804" y2="0.6276" layer="51"/>
+<rectangle x1="0.2794" y1="-0.6223" x2="0.6594" y2="0.6276" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C0603">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.889" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0805">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C1005">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C1206">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
+<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.27" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
+<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="C1210">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="C1310">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.294" y1="0.559" x2="0.294" y2="0.559" width="0.1016" layer="51"/>
+<wire x1="-0.294" y1="-0.559" x2="0.294" y2="-0.559" width="0.1016" layer="51"/>
+<smd name="1" x="-0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<smd name="2" x="0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<text x="-0.635" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.6604" y1="-0.6223" x2="-0.2804" y2="0.6276" layer="51"/>
+<rectangle x1="0.2794" y1="-0.6223" x2="0.6594" y2="0.6276" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.3" x2="0.1001" y2="0.3" layer="35"/>
+</package>
+<package name="C1608">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C1812">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+<rectangle x1="-0.3" y1="-0.4001" x2="0.3" y2="0.4001" layer="35"/>
+</package>
+<package name="C1825">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="3.483" x2="2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-3.483" x2="-2.973" y2="-3.483" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-3.483" x2="-2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="-1.4986" y1="3.2766" x2="1.4732" y2="3.2766" width="0.1016" layer="51"/>
+<wire x1="-1.4732" y1="-3.2766" x2="1.4986" y2="-3.2766" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="3.483" x2="2.973" y2="-3.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<text x="-1.905" y="3.683" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-4.826" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.413" y1="-3.3528" x2="-1.463" y2="3.3472" layer="51"/>
+<rectangle x1="1.4478" y1="-3.3528" x2="2.3978" y2="3.3472" layer="51"/>
+<rectangle x1="-0.7" y1="-0.7" x2="0.7" y2="0.7" layer="35"/>
+</package>
+<package name="C2012">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C3216">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
+<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.27" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
+<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
+<rectangle x1="-0.3" y1="-0.5001" x2="0.3" y2="0.5001" layer="35"/>
+</package>
+<package name="C3225">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5001" x2="0.1999" y2="0.5001" layer="35"/>
+</package>
+<package name="C4532">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+<rectangle x1="-0.4001" y1="-0.7" x2="0.4001" y2="0.7" layer="35"/>
+</package>
+<package name="C4564">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="3.483" x2="2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-3.483" x2="-2.973" y2="-3.483" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-3.483" x2="-2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="-1.4986" y1="3.2766" x2="1.4732" y2="3.2766" width="0.1016" layer="51"/>
+<wire x1="-1.4732" y1="-3.2766" x2="1.4986" y2="-3.2766" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="3.483" x2="2.973" y2="-3.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<text x="-1.905" y="3.683" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-4.826" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.413" y1="-3.3528" x2="-1.463" y2="3.3472" layer="51"/>
+<rectangle x1="1.4478" y1="-3.3528" x2="2.3978" y2="3.3472" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="C025-024X044">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 2.4 x 4.4 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.778" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.778" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-025X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 2.5 x 5 mm</description>
+<wire x1="-2.159" y1="1.27" x2="2.159" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.27" x2="-2.159" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.27" x2="2.413" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.016" x2="-2.159" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.27" x2="2.413" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.159" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="1.524" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-030X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 3 x 5 mm</description>
+<wire x1="-2.159" y1="1.524" x2="2.159" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.524" x2="-2.159" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.27" x2="2.413" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.27" x2="-2.413" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.524" x2="2.413" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.27" x2="-2.159" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.524" x2="2.413" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.27" x2="-2.159" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-040X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 4 x 5 mm</description>
+<wire x1="-2.159" y1="1.905" x2="2.159" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.905" x2="-2.159" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.651" x2="2.413" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.651" x2="-2.413" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.905" x2="2.413" y2="1.651" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.651" x2="-2.159" y2="1.905" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.905" x2="2.413" y2="-1.651" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.651" x2="-2.159" y2="-1.905" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.429" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-050X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 5 x 5 mm</description>
+<wire x1="-2.159" y1="2.286" x2="2.159" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.286" x2="-2.159" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.032" x2="2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.032" x2="-2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.286" x2="2.413" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.032" x2="-2.159" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.286" x2="2.413" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.032" x2="-2.159" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.54" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-060X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 6 x 5 mm</description>
+<wire x1="-2.159" y1="2.794" x2="2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.794" x2="-2.159" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.54" x2="2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.54" x2="-2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.794" x2="2.413" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.54" x2="-2.159" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.794" x2="2.413" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.54" x2="-2.159" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="3.048" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.032" y="-2.413" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-024X070">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm + 5 mm, outline 2.4 x 7 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.191" y1="-1.143" x2="-3.9624" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-4.191" y1="1.143" x2="-3.9624" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="-0.635" x2="-4.191" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-4.699" y1="0.635" x2="-4.191" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.699" y1="-0.635" x2="-4.699" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="1.143" x2="-2.5654" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.143" x2="-2.5654" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.81" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.81" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-025X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 2.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="1.27" x2="2.159" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.27" x2="-2.159" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.27" x2="2.413" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.016" x2="-2.159" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.27" x2="2.413" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.159" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="1.016" x2="4.953" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="1.27" x2="4.953" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.27" x2="4.953" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="1.27" x2="4.699" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.27" x2="2.794" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.413" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-0.762" x2="2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.254" x2="2.413" y2="-0.254" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0" x2="2.286" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.159" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.159" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-035X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 3.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="1.778" x2="2.159" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.778" x2="-2.159" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.524" x2="-2.413" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.778" x2="2.413" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.524" x2="-2.159" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.778" x2="2.413" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.524" x2="-2.159" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="1.524" x2="4.953" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="1.778" x2="4.953" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.778" x2="4.953" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="1.778" x2="4.699" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.778" x2="2.794" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.524" x2="2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.413" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.508" x2="2.413" y2="-0.508" width="0.1524" layer="21"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.302" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-045X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 4.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="2.286" x2="2.159" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.286" x2="-2.159" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.032" x2="-2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.286" x2="2.413" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.032" x2="-2.159" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.286" x2="2.413" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.032" x2="-2.159" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="2.032" x2="4.953" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.286" x2="4.953" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-2.286" x2="4.953" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="2.286" x2="4.699" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.286" x2="2.794" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.032" x2="2.413" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.397" x2="2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.762" x2="2.413" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.667" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-055X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 5.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="2.794" x2="2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.794" x2="-2.159" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.54" x2="-2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.794" x2="2.413" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.54" x2="-2.159" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.794" x2="2.413" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.54" x2="-2.159" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="2.54" x2="4.953" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.794" x2="4.953" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-2.794" x2="4.953" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="2.794" x2="4.699" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.794" x2="2.794" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.54" x2="2.413" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-2.032" x2="2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.762" x2="2.413" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0" x2="2.286" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="3.175" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.032" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-024X044">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 2.4 x 4.4 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.159" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.159" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.159" y1="-0.381" x2="2.54" y2="0.381" layer="51"/>
+<rectangle x1="-2.54" y1="-0.381" x2="-2.159" y2="0.381" layer="51"/>
+</package>
+<package name="C050-025X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 2.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.016" x2="-3.683" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.27" x2="3.429" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.016" x2="3.683" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.27" x2="-3.429" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.27" x2="3.683" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.27" x2="3.683" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.016" x2="-3.429" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.016" x2="-3.429" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-045X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 4.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.032" x2="-3.683" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.286" x2="3.429" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.032" x2="3.683" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.286" x2="-3.429" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.286" x2="3.683" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.286" x2="3.683" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.032" x2="-3.429" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.032" x2="-3.429" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="2.667" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-030X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 3 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.27" x2="-3.683" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.524" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.27" x2="3.683" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.524" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.524" x2="3.683" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.524" x2="3.683" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.27" x2="-3.429" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.27" x2="-3.429" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-050X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.286" x2="-3.683" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.54" x2="3.429" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.286" x2="3.683" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.54" x2="-3.429" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.54" x2="3.683" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.54" x2="3.683" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.286" x2="-3.429" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.286" x2="-3.429" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-2.159" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-055X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 5.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.54" x2="-3.683" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.794" x2="3.429" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.54" x2="3.683" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.794" x2="-3.429" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.794" x2="3.683" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.794" x2="3.683" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.54" x2="-3.429" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.54" x2="-3.429" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="3.175" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.302" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-075X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 7.5 x 7.5 mm</description>
+<wire x1="-1.524" y1="0" x2="-0.4572" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.4572" y1="0" x2="-0.4572" y2="0.762" width="0.4064" layer="21"/>
+<wire x1="-0.4572" y1="0" x2="-0.4572" y2="-0.762" width="0.4064" layer="21"/>
+<wire x1="0.4318" y1="0.762" x2="0.4318" y2="0" width="0.4064" layer="21"/>
+<wire x1="0.4318" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.4318" y1="0" x2="0.4318" y2="-0.762" width="0.4064" layer="21"/>
+<wire x1="-3.683" y1="3.429" x2="-3.683" y2="-3.429" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-3.683" x2="3.429" y2="-3.683" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-3.429" x2="3.683" y2="3.429" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="3.683" x2="-3.429" y2="3.683" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="3.683" x2="3.683" y2="3.429" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-3.683" x2="3.683" y2="-3.429" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-3.429" x2="-3.429" y2="-3.683" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="3.429" x2="-3.429" y2="3.683" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="4.064" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-2.921" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050H075X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+Horizontal, grid 5 mm, outline 7.5 x 7.5 mm</description>
+<wire x1="-3.683" y1="7.112" x2="-3.683" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="0.508" x2="-3.302" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="0.508" x2="-1.778" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="-1.778" y1="0.508" x2="1.778" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.508" x2="3.302" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="3.302" y1="0.508" x2="3.683" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="0.508" x2="3.683" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="7.62" x2="-3.175" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="-0.3048" y1="2.413" x2="-0.3048" y2="1.778" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="1.778" x2="-0.3048" y2="1.143" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="1.778" x2="-1.651" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="2.413" x2="0.3302" y2="1.778" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="1.778" x2="0.3302" y2="1.143" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="1.778" x2="1.651" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="7.112" x2="-3.175" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.175" y1="7.62" x2="3.683" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="0" x2="-2.54" y2="0.254" width="0.508" layer="51"/>
+<wire x1="2.54" y1="0" x2="2.54" y2="0.254" width="0.508" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.302" y="8.001" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="3.175" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-2.794" y1="0.127" x2="-2.286" y2="0.508" layer="51"/>
+<rectangle x1="2.286" y1="0.127" x2="2.794" y2="0.508" layer="51"/>
+</package>
+<package name="C075-032X103">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 3.2 x 10.3 mm</description>
+<wire x1="4.826" y1="1.524" x2="-4.826" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-1.524" x2="4.826" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="5.08" y1="-1.27" x2="5.08" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="1.524" x2="5.08" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.826" y1="-1.524" x2="5.08" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="-1.27" x2="-4.826" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.27" x2="-4.826" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="0.508" y1="0" x2="2.54" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="0" x2="-0.508" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.508" y1="0.889" x2="-0.508" y2="0" width="0.4064" layer="21"/>
+<wire x1="-0.508" y1="0" x2="-0.508" y2="-0.889" width="0.4064" layer="21"/>
+<wire x1="0.508" y1="0.889" x2="0.508" y2="0" width="0.4064" layer="21"/>
+<wire x1="0.508" y1="0" x2="0.508" y2="-0.889" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.826" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-042X103">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 4.2 x 10.3 mm</description>
+<wire x1="4.826" y1="2.032" x2="-4.826" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.778" x2="-5.08" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-2.032" x2="4.826" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="5.08" y1="-1.778" x2="5.08" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="2.032" x2="5.08" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.826" y1="-2.032" x2="5.08" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="-1.778" x2="-4.826" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.778" x2="-4.826" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.699" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-052X106">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 5.2 x 10.6 mm</description>
+<wire x1="4.953" y1="2.54" x2="-4.953" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.286" x2="-5.207" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-2.54" x2="4.953" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.286" x2="5.207" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="2.54" x2="5.207" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.953" y1="-2.54" x2="5.207" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="-2.286" x2="-4.953" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="2.286" x2="-4.953" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-043X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 4.3 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="2.032" x2="6.096" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="1.524" x2="6.604" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-2.032" x2="-6.096" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-1.524" x2="-6.604" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="2.032" x2="6.604" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-2.032" x2="6.604" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-1.524" x2="-6.096" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="1.524" x2="-6.096" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-054X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 5.4 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="2.54" x2="6.096" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="2.032" x2="6.604" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-2.54" x2="-6.096" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.032" x2="-6.604" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="2.54" x2="6.604" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-2.54" x2="6.604" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.032" x2="-6.096" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.032" x2="-6.096" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-1.905" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-064X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 6.4 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="3.048" x2="6.096" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="2.54" x2="6.604" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-3.048" x2="-6.096" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="3.048" x2="6.604" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-3.048" x2="6.604" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.54" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102_152-062X184">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm + 15.2 mm, outline 6.2 x 18.4 mm</description>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.683" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="3.683" y2="0" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="0" x2="8.636" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.096" y1="3.048" x2="6.223" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="-3.048" x2="-6.096" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="3.048" x2="6.731" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.223" y1="-3.048" x2="6.731" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.54" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.731" y1="2.54" x2="6.731" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="11.176" y1="3.048" x2="11.684" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="11.176" y1="-3.048" x2="11.684" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="11.176" y1="-3.048" x2="7.112" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="7.112" y1="3.048" x2="11.176" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="11.684" y1="2.54" x2="11.684" y2="-2.54" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="3" x="10.033" y="0" drill="1.016" shape="octagon"/>
+<text x="-5.969" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-054X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 5.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="2.032" x2="9.017" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-2.54" x2="-8.509" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-2.032" x2="-9.017" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="2.54" x2="8.509" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="2.54" x2="9.017" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-2.54" x2="9.017" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-2.032" x2="-8.509" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="2.032" x2="-8.509" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.382" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-064X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 6.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="2.54" x2="9.017" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.048" x2="-8.509" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-2.54" x2="-9.017" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="3.048" x2="8.509" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="3.048" x2="9.017" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-3.048" x2="9.017" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-2.54" x2="-8.509" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="2.54" x2="-8.509" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-072X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 7.2 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.048" x2="9.017" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.556" x2="-8.509" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.048" x2="-9.017" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="3.556" x2="8.509" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="3.556" x2="9.017" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-3.556" x2="9.017" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.048" x2="-8.509" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.048" x2="-8.509" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="3.937" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-084X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 8.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.556" x2="9.017" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-4.064" x2="-8.509" y2="-4.064" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.556" x2="-9.017" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="4.064" x2="8.509" y2="4.064" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="4.064" x2="9.017" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-4.064" x2="9.017" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.556" x2="-8.509" y2="-4.064" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.556" x2="-8.509" y2="4.064" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="4.445" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-091X182">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 9.1 x 18.2 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.937" x2="9.017" y2="-3.937" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-4.445" x2="-8.509" y2="-4.445" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.937" x2="-9.017" y2="3.937" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="4.445" x2="8.509" y2="4.445" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="4.445" x2="9.017" y2="3.937" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-4.445" x2="9.017" y2="-3.937" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.937" x2="-8.509" y2="-4.445" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.937" x2="-8.509" y2="4.445" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="4.826" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-062X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 6.2 x 26.8 mm</description>
+<wire x1="-12.827" y1="3.048" x2="12.827" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="2.54" x2="13.335" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-3.048" x2="-12.827" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-2.54" x2="-13.335" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="3.048" x2="13.335" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-3.048" x2="13.335" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-2.54" x2="-12.827" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="2.54" x2="-12.827" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.7" y="3.429" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-074X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 7.4 x 26.8 mm</description>
+<wire x1="-12.827" y1="3.556" x2="12.827" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="3.048" x2="13.335" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-3.556" x2="-12.827" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-3.048" x2="-13.335" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="3.556" x2="13.335" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-3.556" x2="13.335" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-3.048" x2="-12.827" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="3.048" x2="-12.827" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.827" y="3.937" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-087X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 8.7 x 26.8 mm</description>
+<wire x1="-12.827" y1="4.318" x2="12.827" y2="4.318" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="3.81" x2="13.335" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-4.318" x2="-12.827" y2="-4.318" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-3.81" x2="-13.335" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="4.318" x2="13.335" y2="3.81" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-4.318" x2="13.335" y2="-3.81" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-3.81" x2="-12.827" y2="-4.318" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="3.81" x2="-12.827" y2="4.318" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.827" y="4.699" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-108X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 10.8 x 26.8 mm</description>
+<wire x1="-12.827" y1="5.334" x2="12.827" y2="5.334" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="4.826" x2="13.335" y2="-4.826" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-5.334" x2="-12.827" y2="-5.334" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-4.826" x2="-13.335" y2="4.826" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="5.334" x2="13.335" y2="4.826" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-5.334" x2="13.335" y2="-4.826" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-4.826" x2="-12.827" y2="-5.334" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="4.826" x2="-12.827" y2="5.334" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.954" y="5.715" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-113X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 11.3 x 26.8 mm</description>
+<wire x1="-12.827" y1="5.588" x2="12.827" y2="5.588" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="5.08" x2="13.335" y2="-5.08" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-5.588" x2="-12.827" y2="-5.588" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-5.08" x2="-13.335" y2="5.08" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="5.588" x2="13.335" y2="5.08" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-5.588" x2="13.335" y2="-5.08" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-5.08" x2="-12.827" y2="-5.588" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="5.08" x2="-12.827" y2="5.588" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.954" y="5.969" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-093X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 9.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="4.572" x2="15.24" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="4.064" x2="15.748" y2="-4.064" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-4.572" x2="-15.24" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-4.064" x2="-15.748" y2="4.064" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="4.572" x2="15.748" y2="4.064" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-4.572" x2="15.748" y2="-4.064" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-4.064" x2="-15.24" y2="-4.572" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="4.064" x2="-15.24" y2="4.572" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="4.953" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-113X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 11.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="5.588" x2="15.24" y2="5.588" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="5.08" x2="15.748" y2="-5.08" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-5.588" x2="-15.24" y2="-5.588" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-5.08" x2="-15.748" y2="5.08" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="5.588" x2="15.748" y2="5.08" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-5.588" x2="15.748" y2="-5.08" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-5.08" x2="-15.24" y2="-5.588" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="5.08" x2="-15.24" y2="5.588" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="5.969" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-134X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 13.4 x 31.6 mm</description>
+<wire x1="-15.24" y1="6.604" x2="15.24" y2="6.604" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="6.096" x2="15.748" y2="-6.096" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-6.604" x2="-15.24" y2="-6.604" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-6.096" x2="-15.748" y2="6.096" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="6.604" x2="15.748" y2="6.096" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-6.604" x2="15.748" y2="-6.096" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-6.096" x2="-15.24" y2="-6.604" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="6.096" x2="-15.24" y2="6.604" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="6.985" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-205X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 20.5 x 31.6 mm</description>
+<wire x1="-15.24" y1="10.16" x2="15.24" y2="10.16" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="9.652" x2="15.748" y2="-9.652" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-10.16" x2="-15.24" y2="-10.16" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-9.652" x2="-15.748" y2="9.652" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="10.16" x2="15.748" y2="9.652" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-10.16" x2="15.748" y2="-9.652" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-9.652" x2="-15.24" y2="-10.16" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="9.652" x2="-15.24" y2="10.16" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="10.541" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-4.318" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-137X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 13.7 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="6.731" x2="18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="6.731" x2="-18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-6.731" x2="18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="6.731" x2="-18.542" y2="6.731" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.2372" y="7.0612" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-162X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 16.2 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="8.001" x2="18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="8.001" x2="-18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-8.001" x2="18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="8.001" x2="-18.542" y2="8.001" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.3642" y="8.3312" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-182X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 18.2 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="9.017" x2="18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="9.017" x2="-18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-9.017" x2="18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="9.017" x2="-18.542" y2="9.017" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.3642" y="9.3472" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-192X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 19.2 x 41.8 mm</description>
+<wire x1="-20.32" y1="8.509" x2="20.32" y2="8.509" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="8.001" x2="20.828" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-8.509" x2="-20.32" y2="-8.509" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-8.001" x2="-20.828" y2="8.001" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="8.509" x2="20.828" y2="8.001" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-8.509" x2="20.828" y2="-8.001" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-8.001" x2="-20.32" y2="-8.509" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="8.001" x2="-20.32" y2="8.509" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.447" y="8.89" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-203X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 20.3 x 41.8 mm</description>
+<wire x1="-20.32" y1="10.16" x2="20.32" y2="10.16" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="9.652" x2="20.828" y2="-9.652" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-10.16" x2="-20.32" y2="-10.16" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-9.652" x2="-20.828" y2="9.652" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="10.16" x2="20.828" y2="9.652" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-10.16" x2="20.828" y2="-9.652" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-9.652" x2="-20.32" y2="-10.16" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="9.652" x2="-20.32" y2="10.16" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.32" y="10.541" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-035X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 3.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.524" x2="-3.683" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.778" x2="3.429" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.524" x2="3.683" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.778" x2="-3.429" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.778" x2="3.683" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.778" x2="3.683" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.524" x2="-3.429" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.524" x2="-3.429" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.429" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-155X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 15.5 x 41.8 mm</description>
+<wire x1="-20.32" y1="7.62" x2="20.32" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="7.112" x2="20.828" y2="-7.112" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-7.62" x2="-20.32" y2="-7.62" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-7.112" x2="-20.828" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="7.62" x2="20.828" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-7.62" x2="20.828" y2="-7.112" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-7.112" x2="-20.32" y2="-7.62" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="7.112" x2="-20.32" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.447" y="8.001" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-063X106">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 6.3 x 10.6 mm</description>
+<wire x1="4.953" y1="3.048" x2="-4.953" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.794" x2="-5.207" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-3.048" x2="4.953" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.794" x2="5.207" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="3.048" x2="5.207" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.953" y1="-3.048" x2="5.207" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="-2.794" x2="-4.953" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="2.794" x2="-4.953" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-154X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 15.4 x 31.6 mm</description>
+<wire x1="-15.24" y1="7.62" x2="15.24" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="7.112" x2="15.748" y2="-7.112" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-7.62" x2="-15.24" y2="-7.62" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-7.112" x2="-15.748" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="7.62" x2="15.748" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-7.62" x2="15.748" y2="-7.112" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-7.112" x2="-15.24" y2="-7.62" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="7.112" x2="-15.24" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="8.001" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-173X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 17.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="8.509" x2="15.24" y2="8.509" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="8.001" x2="15.748" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-8.509" x2="-15.24" y2="-8.509" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-8.001" x2="-15.748" y2="8.001" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="8.509" x2="15.748" y2="8.001" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-8.509" x2="15.748" y2="-8.001" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-8.001" x2="-15.24" y2="-8.509" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="8.001" x2="-15.24" y2="8.509" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="8.89" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C0402K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0204 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 1005</description>
+<wire x1="-0.425" y1="0.2" x2="0.425" y2="0.2" width="0.1016" layer="51"/>
+<wire x1="0.425" y1="-0.2" x2="-0.425" y2="-0.2" width="0.1016" layer="51"/>
+<smd name="1" x="-0.6" y="0" dx="0.925" dy="0.74" layer="1"/>
+<smd name="2" x="0.6" y="0" dx="0.925" dy="0.74" layer="1"/>
+<text x="-0.5" y="0.425" size="1.016" layer="25">&gt;NAME</text>
+<text x="-0.5" y="-1.45" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5" y1="-0.25" x2="-0.225" y2="0.25" layer="51"/>
+<rectangle x1="0.225" y1="-0.25" x2="0.5" y2="0.25" layer="51"/>
+</package>
+<package name="C0603K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0603 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 1608</description>
+<wire x1="-0.725" y1="0.35" x2="0.725" y2="0.35" width="0.1016" layer="51"/>
+<wire x1="0.725" y1="-0.35" x2="-0.725" y2="-0.35" width="0.1016" layer="51"/>
+<smd name="1" x="-0.875" y="0" dx="1.05" dy="1.08" layer="1"/>
+<smd name="2" x="0.875" y="0" dx="1.05" dy="1.08" layer="1"/>
+<text x="-0.8" y="0.65" size="1.016" layer="25">&gt;NAME</text>
+<text x="-0.8" y="-1.65" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8" y1="-0.4" x2="-0.45" y2="0.4" layer="51"/>
+<rectangle x1="0.45" y1="-0.4" x2="0.8" y2="0.4" layer="51"/>
+</package>
+<package name="C0805K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0805 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 2012</description>
+<wire x1="-0.925" y1="0.6" x2="0.925" y2="0.6" width="0.1016" layer="51"/>
+<wire x1="0.925" y1="-0.6" x2="-0.925" y2="-0.6" width="0.1016" layer="51"/>
+<smd name="1" x="-1" y="0" dx="1.3" dy="1.6" layer="1"/>
+<smd name="2" x="1" y="0" dx="1.3" dy="1.6" layer="1"/>
+<text x="-1" y="0.875" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1" y="-1.9" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1" y1="-0.65" x2="-0.5" y2="0.65" layer="51"/>
+<rectangle x1="0.5" y1="-0.65" x2="1" y2="0.65" layer="51"/>
+</package>
+<package name="C1206K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1206 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 3216</description>
+<wire x1="-1.525" y1="0.75" x2="1.525" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-0.75" x2="-1.525" y2="-0.75" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.5" dy="2" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.5" dy="2" layer="1"/>
+<text x="-1.6" y="1.1" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-2.1" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-0.8" x2="-1.1" y2="0.8" layer="51"/>
+<rectangle x1="1.1" y1="-0.8" x2="1.6" y2="0.8" layer="51"/>
+</package>
+<package name="C1210K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1210 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 3225</description>
+<wire x1="-1.525" y1="1.175" x2="1.525" y2="1.175" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-1.175" x2="-1.525" y2="-1.175" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.5" dy="2.9" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.5" dy="2.9" layer="1"/>
+<text x="-1.6" y="1.55" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-2.575" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-1.25" x2="-1.1" y2="1.25" layer="51"/>
+<rectangle x1="1.1" y1="-1.25" x2="1.6" y2="1.25" layer="51"/>
+</package>
+<package name="C1812K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1812 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 4532</description>
+<wire x1="-2.175" y1="1.525" x2="2.175" y2="1.525" width="0.1016" layer="51"/>
+<wire x1="2.175" y1="-1.525" x2="-2.175" y2="-1.525" width="0.1016" layer="51"/>
+<smd name="1" x="-2.05" y="0" dx="1.8" dy="3.7" layer="1"/>
+<smd name="2" x="2.05" y="0" dx="1.8" dy="3.7" layer="1"/>
+<text x="-2.25" y="1.95" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.25" y="-2.975" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.25" y1="-1.6" x2="-1.65" y2="1.6" layer="51"/>
+<rectangle x1="1.65" y1="-1.6" x2="2.25" y2="1.6" layer="51"/>
+</package>
+<package name="C1825K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1825 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 4564</description>
+<wire x1="-1.525" y1="3.125" x2="1.525" y2="3.125" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-3.125" x2="-1.525" y2="-3.125" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.8" dy="6.9" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.8" dy="6.9" layer="1"/>
+<text x="-1.6" y="3.55" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-4.625" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-3.2" x2="-1.1" y2="3.2" layer="51"/>
+<rectangle x1="1.1" y1="-3.2" x2="1.6" y2="3.2" layer="51"/>
+</package>
+<package name="C2220K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2220 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 5650</description>
+<wire x1="-2.725" y1="2.425" x2="2.725" y2="2.425" width="0.1016" layer="51"/>
+<wire x1="2.725" y1="-2.425" x2="-2.725" y2="-2.425" width="0.1016" layer="51"/>
+<smd name="1" x="-2.55" y="0" dx="1.85" dy="5.5" layer="1"/>
+<smd name="2" x="2.55" y="0" dx="1.85" dy="5.5" layer="1"/>
+<text x="-2.8" y="2.95" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.8" y="-3.975" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.8" y1="-2.5" x2="-2.2" y2="2.5" layer="51"/>
+<rectangle x1="2.2" y1="-2.5" x2="2.8" y2="2.5" layer="51"/>
+</package>
+<package name="C2225K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2225 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 5664</description>
+<wire x1="-2.725" y1="3.075" x2="2.725" y2="3.075" width="0.1016" layer="51"/>
+<wire x1="2.725" y1="-3.075" x2="-2.725" y2="-3.075" width="0.1016" layer="51"/>
+<smd name="1" x="-2.55" y="0" dx="1.85" dy="6.8" layer="1"/>
+<smd name="2" x="2.55" y="0" dx="1.85" dy="6.8" layer="1"/>
+<text x="-2.8" y="3.6" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.8" y="-4.575" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.8" y1="-3.15" x2="-2.2" y2="3.15" layer="51"/>
+<rectangle x1="2.2" y1="-3.15" x2="2.8" y2="3.15" layer="51"/>
+</package>
+<package name="J80">
+<description>&lt;b&gt;chemi-con j80 capacitor&lt;/b&gt;&lt;br&gt;
+land pattern from &lt;a href="https://engineering.purdue.edu/ece477/Webs/S06-Grp03/datasheets/PXA0703.pdf"&gt;https://engineering.purdue.edu/ece477/Webs/S06-Grp03/datasheets/PXA0703.pdf&lt;/a&gt;&lt;br&gt;
+same as for j12</description>
+<wire x1="-6" y1="2" x2="-6" y2="5" width="0.127" layer="21"/>
+<wire x1="-6" y1="5" x2="5" y2="5" width="0.127" layer="21"/>
+<wire x1="5" y1="5" x2="5" y2="4" width="0.127" layer="21"/>
+<wire x1="5" y1="4" x2="6" y2="4" width="0.127" layer="21"/>
+<wire x1="6" y1="4" x2="6" y2="2" width="0.127" layer="21"/>
+<wire x1="6" y1="-2" x2="6" y2="-4" width="0.127" layer="21"/>
+<wire x1="6" y1="-4" x2="5" y2="-4" width="0.127" layer="21"/>
+<wire x1="5" y1="-4" x2="5" y2="-5" width="0.127" layer="21"/>
+<wire x1="5" y1="-5" x2="-6" y2="-5" width="0.127" layer="21"/>
+<wire x1="-6" y1="-5" x2="-6" y2="-2" width="0.127" layer="21"/>
+<smd name="-" x="-4.45" y="0" dx="4.4" dy="2.2" layer="1"/>
+<smd name="+" x="4.45" y="0" dx="4.4" dy="2.2" layer="1"/>
+<rectangle x1="-5.9" y1="-5.3" x2="5.9" y2="5.3" layer="39"/>
+</package>
+<package name="D-PAK">
+<description>&lt;b&gt;D-PAK (TO-252AA)&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.vishay.com/docs/95016/dpak252a.pdf"&gt;http://www.vishay.com/docs/95016/dpak252a.pdf&lt;/a&gt;</description>
+<smd name="CATHODE" x="0" y="2.585" dx="6.74" dy="6.23" layer="1"/>
+<smd name="ANODE$0" x="-2.28" y="-4.56" dx="1.624" dy="2.28" layer="1"/>
+<smd name="ANODE$1" x="2.28" y="-4.56" dx="1.624" dy="2.28" layer="1"/>
+<rectangle x1="-3.5" y1="-6.3" x2="3.5" y2="6.5" layer="39"/>
+</package>
+<package name="0603X4">
+<description>datasheet at &lt;a href="http://www.passivecomponent.com/lh3/WA06X_J.pdf"&gt;http://www.passivecomponent.com/lh3/WA06X_J.pdf&lt;/a&gt;</description>
+<smd name="P2" x="-0.7" y="0.4" dx="0.7" dy="0.5" layer="1"/>
+<smd name="P7" x="0.7" y="0.4" dx="0.7" dy="0.5" layer="1"/>
+<smd name="P6" x="0.7" y="-0.4" dx="0.7" dy="0.5" layer="1"/>
+<smd name="P8" x="0.7" y="1.3" dx="0.7" dy="0.7" layer="1"/>
+<smd name="P5" x="0.7" y="-1.3" dx="0.7" dy="0.7" layer="1"/>
+<smd name="P3" x="-0.7" y="-0.4" dx="0.7" dy="0.5" layer="1"/>
+<smd name="P4" x="-0.7" y="-1.3" dx="0.7" dy="0.7" layer="1"/>
+<smd name="P1" x="-0.7" y="1.3" dx="0.7" dy="0.7" layer="1"/>
+</package>
+<package name="TSSOP-14">
+<circle x="-1.95" y="-1.3" radius="0.325" width="0.127" layer="21"/>
+<smd name="P11" x="0" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P12" x="-0.65" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P13" x="-1.3" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P14" x="-1.95" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P10" x="0.65" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P9" x="1.3" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P8" x="1.95" y="2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P4" x="0" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P5" x="0.65" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P6" x="1.3" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P7" x="1.95" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P3" x="-0.65" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P2" x="-1.3" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+<smd name="P1" x="-1.95" y="-2.8" dx="0.35" dy="1.6" layer="1"/>
+</package>
+<package name="LQH43">
+<smd name="P$1" x="-2.25" y="0" dx="3" dy="1.5" layer="1" rot="R180"/>
+<smd name="P$2" x="2.25" y="0" dx="3" dy="1.5" layer="1" rot="R180"/>
+<rectangle x1="-2.25" y1="-1.5" x2="-0.75" y2="1.5" layer="1"/>
+<rectangle x1="-2.35" y1="-1.6" x2="-0.65" y2="1.6" layer="29"/>
+<rectangle x1="0.65" y1="-1.6" x2="2.35" y2="1.6" layer="29"/>
+<rectangle x1="0.75" y1="-1.5" x2="2.25" y2="1.5" layer="1"/>
+</package>
+<package name="38720-7202">
+<description>&lt;b&gt;barrier terminal block&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.molex.com/pdm_docs/sd/387207202_sd.pdf"&gt;http://www.molex.com/pdm_docs/sd/387207202_sd.pdf&lt;/a&gt;</description>
+<pad name="+" x="-4.765" y="0" drill="1.93" shape="square"/>
+<pad name="-" x="4.765" y="0" drill="1.93" shape="square"/>
+<text x="-5.3" y="8" size="1.778" layer="21" font="vector">+</text>
+<text x="-5.5" y="-10" size="1.778" layer="21" font="vector">+</text>
+<text x="4" y="-10" size="1.778" layer="21" font="vector">-</text>
+<text x="4" y="8" size="1.778" layer="21" font="vector">-</text>
+<rectangle x1="-10.565" y1="-7.9" x2="10.565" y2="7.9" layer="39"/>
+</package>
+<package name="TZA07A">
+<wire x1="-5.125" y1="12.7" x2="5.125" y2="12.7" width="0.127" layer="39"/>
+<wire x1="5.125" y1="12.7" x2="5.125" y2="-1.7" width="0.127" layer="39"/>
+<wire x1="5.125" y1="-1.7" x2="-5.125" y2="-1.7" width="0.127" layer="39"/>
+<wire x1="-5.125" y1="-1.7" x2="-5.125" y2="12.7" width="0.127" layer="39"/>
+<smd name="GND" x="0" y="7.305" dx="5.35" dy="8.54" layer="1"/>
+<smd name="P4" x="0" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+<smd name="P3" x="-1.27" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+<smd name="P2" x="-2.54" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+<smd name="P1" x="-3.81" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+<smd name="P5" x="1.27" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+<smd name="P6" x="2.54" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+<smd name="P7" x="3.81" y="0" dx="3.06" dy="0.89" layer="1" rot="R90"/>
+</package>
+<package name="39543-0202">
+<wire x1="-5" y1="3.2" x2="5" y2="3.2" width="0.127" layer="21"/>
+<wire x1="5" y1="3.2" x2="5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="5" y1="-7.8" x2="3.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="3.5" y1="-7.8" x2="1.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="1.5" y1="-7.8" x2="-1.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="-1.5" y1="-7.8" x2="-3.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="-3.5" y1="-7.8" x2="-5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="-5" y1="-7.8" x2="-5" y2="3.2" width="0.127" layer="21"/>
+<wire x1="-3.5" y1="-7.8" x2="-3.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="-3.5" y1="-5.2" x2="-1.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="-1.5" y1="-5.2" x2="-1.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="3.5" y1="-7.8" x2="3.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="3.5" y1="-5.2" x2="1.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="1.5" y1="-5.2" x2="1.5" y2="-7.8" width="0.127" layer="21"/>
+<pad name="P$1" x="-2.5" y="0" drill="1.4" shape="long" rot="R90"/>
+<pad name="P$2" x="2.5" y="0" drill="1.4" shape="long" rot="R90"/>
+</package>
+<package name="SOD-123">
+<description>&lt;b&gt;SOD-123 SMA package&lt;/b&gt;&lt;br&gt;
+using dimensions from &lt;a href="http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF"&gt;http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF&lt;/a&gt;</description>
+<smd name="CATHODE" x="1.635" y="0" dx="0.91" dy="1.22" layer="1"/>
+<smd name="ANODE" x="-1.635" y="0" dx="0.91" dy="1.22" layer="1"/>
+<rectangle x1="0.1" y1="-1" x2="1.1" y2="1" layer="21"/>
+<rectangle x1="-2" y1="-0.9" x2="2" y2="0.9" layer="39"/>
+</package>
+<package name="SURFACEMOUNTRESISTORNETWORK9PIN">
+<smd name="P$1" x="-5.08" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$2" x="-3.81" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$3" x="-2.54" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$4" x="-1.27" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$5" x="0" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$6" x="1.27" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$7" x="2.54" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$8" x="3.81" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+<smd name="P$9" x="5.08" y="0" dx="3.048" dy="0.4318" layer="1" rot="R90"/>
+</package>
+<package name="746X101">
+<smd name="P$1" x="-1.28" y="0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$2" x="-0.64" y="0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$3" x="0" y="0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$4" x="0.64" y="0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$5" x="1.28" y="0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$6" x="1.28" y="-0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$7" x="0.64" y="-0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$8" x="0" y="-0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$9" x="-0.64" y="-0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+<smd name="P$10" x="-1.28" y="-0.825" dx="0.8" dy="0.35" layer="1" rot="R90"/>
+</package>
+<package name="L1608">
+<smd name="P$1" x="-0.7" y="0" dx="0.8" dy="0.6" layer="1" rot="R90"/>
+<smd name="P$2" x="0.7" y="0" dx="0.8" dy="0.6" layer="1" rot="R90"/>
+</package>
+<package name="PLF1C271MDO1">
+<description>&lt;b&gt;PLF1C271MDO1 cap&lt;/b&gt;&lt;br&gt;
+dimensions from &lt;a href="http://products.nichicon.co.jp/en/pdf/XJA042/e-lf.pdf"&gt;http://products.nichicon.co.jp/en/pdf/XJA042/e-lf.pdf&lt;/a&gt;</description>
+<circle x="0" y="0" radius="4" width="0.127" layer="39"/>
+<pad name="+" x="-1.75" y="0" drill="0.9"/>
+<pad name="-" x="1.75" y="0" drill="0.9"/>
+<text x="-0.7" y="0.4" size="0.4064" layer="21" font="vector">+</text>
+<text x="0.4" y="0.4" size="0.4064" layer="21" font="vector">-</text>
+</package>
+<package name="RR71C331MDN1">
+<description>&lt;b&gt;RR71C331MDN1 cap&lt;/b&gt;&lt;br&gt;
+dimensions from &lt;a href="http://www.nichicon.co.jp/english/products/pdf/2009fpcap_catalog_r7.pdf"&gt;http://www.nichicon.co.jp/english/products/pdf/2009fpcap_catalog_r7.pdf&lt;/a&gt;</description>
+<circle x="0" y="0" radius="5" width="0.127" layer="39"/>
+<pad name="+" x="-2.5" y="0" drill="0.9"/>
+<pad name="-" x="2.5" y="0" drill="0.9"/>
+<text x="-1.3" y="0.4" size="0.4064" layer="21" font="vector">+</text>
+<text x="1.2" y="0.4" size="0.4064" layer="21" font="vector">-</text>
+</package>
+<package name="SOT223">
+<description>&lt;b&gt;SOT-223&lt;/b&gt;</description>
+<wire x1="3.2766" y1="1.651" x2="3.2766" y2="-1.651" width="0.2032" layer="21"/>
+<wire x1="3.2766" y1="-1.651" x2="-3.2766" y2="-1.651" width="0.2032" layer="21"/>
+<wire x1="-3.2766" y1="-1.651" x2="-3.2766" y2="1.651" width="0.2032" layer="21"/>
+<wire x1="-3.2766" y1="1.651" x2="3.2766" y2="1.651" width="0.2032" layer="21"/>
+<smd name="1" x="-2.3114" y="-3.0988" dx="1.2192" dy="2.2352" layer="1"/>
+<smd name="2" x="0" y="-3.0988" dx="1.2192" dy="2.2352" layer="1"/>
+<smd name="3" x="2.3114" y="-3.0988" dx="1.2192" dy="2.2352" layer="1"/>
+<smd name="TAB" x="0" y="3.099" dx="3.6" dy="2.2" layer="1"/>
+<text x="-0.8255" y="4.5085" size="0.4064" layer="25">&gt;NAME</text>
+<text x="-1.0795" y="-0.1905" size="0.4064" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6002" y1="1.8034" x2="1.6002" y2="3.6576" layer="51"/>
+<rectangle x1="-0.4318" y1="-3.6576" x2="0.4318" y2="-1.8034" layer="51"/>
+<rectangle x1="-2.7432" y1="-3.6576" x2="-1.8796" y2="-1.8034" layer="51"/>
+<rectangle x1="1.8796" y1="-3.6576" x2="2.7432" y2="-1.8034" layer="51"/>
+<rectangle x1="-1.6002" y1="1.8034" x2="1.6002" y2="3.6576" layer="51"/>
+<rectangle x1="-0.4318" y1="-3.6576" x2="0.4318" y2="-1.8034" layer="51"/>
+<rectangle x1="-2.7432" y1="-3.6576" x2="-1.8796" y2="-1.8034" layer="51"/>
+<rectangle x1="1.8796" y1="-3.6576" x2="2.7432" y2="-1.8034" layer="51"/>
+</package>
+<package name="SOIC-14">
+<circle x="-3.65" y="-1.3" radius="0.325" width="0.127" layer="21"/>
+<smd name="P11" x="0" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P12" x="-1.27" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P13" x="-2.54" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P14" x="-3.81" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P10" x="1.27" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P9" x="2.54" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P8" x="3.81" y="2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P4" x="0" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P5" x="1.27" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P6" x="2.54" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P7" x="3.81" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P3" x="-1.27" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P2" x="-2.54" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+<smd name="P1" x="-3.81" y="-2.76" dx="0.58" dy="1.52" layer="1"/>
+</package>
+<package name="ELFH0225*">
+<description>Amphenol PCD ELFH0225*</description>
+<pad name="P$1" x="2.54" y="2.54" drill="1.4" shape="square" rot="R180"/>
+<pad name="P$2" x="-2.54" y="2.54" drill="1.4" shape="square" rot="R180"/>
+<rectangle x1="-5.9944" y1="-3.556" x2="5.9944" y2="6.223" layer="39" rot="R180"/>
+<text x="-3.81" y="6.35" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.81" y="-5.08" size="1.27" layer="27">&gt;VALUE</text>
+<wire x1="5.1562" y1="0.635" x2="5.1562" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="-5.1562" y1="4.445" x2="-5.1562" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="-5.1562" y1="0.635" x2="5.1562" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="3.81" y1="4.445" x2="1.27" y2="4.445" width="0.2032" layer="21" curve="100"/>
+<wire x1="-1.27" y1="4.445" x2="-3.81" y2="4.445" width="0.2032" layer="21" curve="100"/>
+<wire x1="5.08" y1="4.445" x2="3.81" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="4.445" x2="-1.27" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="-3.81" y1="4.445" x2="-5.08" y2="4.445" width="0.2032" layer="21"/>
+</package>
+</packages>
+<symbols>
+<symbol name="SWITCH">
+<wire x1="0" y1="5.08" x2="4.3226" y2="0.7574" width="0.254" layer="94"/>
+<wire x1="0" y1="-5.08" x2="0" y2="0" width="0.254" layer="94"/>
+<text x="-2.54" y="-2.54" size="1.27" layer="95" rot="R90">&gt;NAME</text>
+<text x="7.62" y="-2.54" size="1.27" layer="96" rot="R90">&gt;VALUE</text>
+<pin name="A" x="0" y="10.16" length="middle" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="B" x="0" y="-10.16" length="middle" direction="pas" swaplevel="1" rot="R90"/>
+</symbol>
+<symbol name="PIN">
+<pin name="P$0" x="0" y="0" visible="pad" length="point"/>
+</symbol>
+<symbol name="ADUM3160">
+<wire x1="-20.32" y1="12.7" x2="20.32" y2="12.7" width="0.254" layer="94"/>
+<wire x1="20.32" y1="12.7" x2="20.32" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="20.32" y1="-12.7" x2="-20.32" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="-20.32" y1="-12.7" x2="-20.32" y2="12.7" width="0.254" layer="94"/>
+<text x="-22.86" y="-15.24" size="1.778" layer="95" rot="R90">ADUM3160 USB Isolator</text>
+<pin name="SPN" x="-2.54" y="15.24" length="short" rot="R270"/>
+<pin name="PIN" x="2.54" y="15.24" length="short" rot="R270"/>
+<pin name="DD-" x="7.62" y="15.24" length="short" rot="R270"/>
+<pin name="DD+" x="12.7" y="15.24" length="short" rot="R270"/>
+<pin name="GND2$1" x="17.78" y="15.24" length="short" rot="R270"/>
+<pin name="VDD2" x="-7.62" y="15.24" length="short" rot="R270"/>
+<pin name="GND2$0" x="-12.7" y="15.24" length="short" rot="R270"/>
+<pin name="VBUS2" x="-17.78" y="15.24" length="short" rot="R270"/>
+<pin name="VBUS1" x="-17.78" y="-15.24" length="short" rot="R90"/>
+<pin name="GND1$0" x="-12.7" y="-15.24" length="short" rot="R90"/>
+<pin name="VDD1" x="-7.62" y="-15.24" length="short" rot="R90"/>
+<pin name="PDEN" x="-2.54" y="-15.24" length="short" rot="R90"/>
+<pin name="SPU" x="2.54" y="-15.24" length="short" rot="R90"/>
+<pin name="UD-" x="7.62" y="-15.24" length="short" rot="R90"/>
+<pin name="UD+" x="12.7" y="-15.24" length="short" rot="R90"/>
+<pin name="GND1$1" x="17.78" y="-15.24" length="short" rot="R90"/>
+</symbol>
+<symbol name="ADXRS450">
+<wire x1="-20.32" y1="12.7" x2="20.32" y2="12.7" width="0.254" layer="94"/>
+<wire x1="20.32" y1="12.7" x2="20.32" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="20.32" y1="-12.7" x2="-20.32" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="-20.32" y1="-12.7" x2="-20.32" y2="12.7" width="0.254" layer="94"/>
+<text x="-22.86" y="-10.16" size="1.778" layer="95" rot="R90">ADXRS450 Gyro</text>
+<pin name="SCLK" x="-17.78" y="15.24" length="short" rot="R270"/>
+<pin name="MOSI" x="-12.7" y="15.24" length="short" rot="R270"/>
+<pin name="AVDD" x="-7.62" y="15.24" length="short" rot="R270"/>
+<pin name="DVSS" x="-2.54" y="15.24" length="short" rot="R270"/>
+<pin name="RSVD$3" x="2.54" y="15.24" length="short" rot="R270"/>
+<pin name="AVSS" x="7.62" y="15.24" length="short" rot="R270"/>
+<pin name="RSVD$2" x="12.7" y="15.24" length="short" rot="R270"/>
+<pin name="CP5" x="17.78" y="15.24" length="short" rot="R270"/>
+<pin name="VX" x="17.78" y="-15.24" length="short" rot="R90"/>
+<pin name="PSS" x="12.7" y="-15.24" length="short" rot="R90"/>
+<pin name="PDD" x="7.62" y="-15.24" length="short" rot="R90"/>
+<pin name="MISO" x="2.54" y="-15.24" length="short" rot="R90"/>
+<pin name="CS" x="-2.54" y="-15.24" length="short" rot="R90"/>
+<pin name="RSVD$1" x="-7.62" y="-15.24" length="short" rot="R90"/>
+<pin name="RSVD$0" x="-12.7" y="-15.24" length="short" rot="R90"/>
+<pin name="DVDD" x="-17.78" y="-15.24" length="short" rot="R90"/>
+</symbol>
+<symbol name="LM3481">
+<wire x1="-12.7" y1="12.7" x2="-12.7" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="-12.7" y1="-12.7" x2="12.7" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="12.7" y1="-12.7" x2="12.7" y2="12.7" width="0.254" layer="94"/>
+<wire x1="12.7" y1="12.7" x2="-12.7" y2="12.7" width="0.254" layer="94"/>
+<pin name="COMP" x="-15.24" y="0" length="short"/>
+<pin name="UVLO" x="-15.24" y="5.08" length="short"/>
+<pin name="ISEN" x="-15.24" y="10.16" length="short"/>
+<pin name="FB" x="-15.24" y="-5.08" length="short"/>
+<pin name="AGND" x="-15.24" y="-10.16" length="short"/>
+<pin name="FA/SYNC/SD" x="15.24" y="-10.16" length="short" rot="R180"/>
+<pin name="PGND" x="15.24" y="-5.08" length="short" rot="R180"/>
+<pin name="DR" x="15.24" y="0" length="short" rot="R180"/>
+<pin name="VCC" x="15.24" y="5.08" length="short" rot="R180"/>
+<pin name="VIN" x="15.24" y="10.16" length="short" rot="R180"/>
+</symbol>
+<symbol name="L-US">
+<wire x1="0" y1="5.08" x2="1.27" y2="3.81" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="2.54" x2="1.27" y2="3.81" width="0.254" layer="94" curve="90" cap="flat"/>
+<wire x1="0" y1="2.54" x2="1.27" y2="1.27" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="0" x2="1.27" y2="1.27" width="0.254" layer="94" curve="90" cap="flat"/>
+<wire x1="0" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="-2.54" x2="1.27" y2="-1.27" width="0.254" layer="94" curve="90" cap="flat"/>
+<wire x1="0" y1="-2.54" x2="1.27" y2="-3.81" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="-5.08" x2="1.27" y2="-3.81" width="0.254" layer="94" curve="90" cap="flat"/>
+<text x="-1.27" y="-5.08" size="1.778" layer="95" rot="R90">&gt;NAME</text>
+<text x="3.81" y="-5.08" size="1.778" layer="96" rot="R90">&gt;VALUE</text>
+<pin name="2" x="0" y="-7.62" visible="off" length="short" direction="pas" swaplevel="1" rot="R90"/>
+<pin name="1" x="0" y="7.62" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+</symbol>
+<symbol name="N-MOSFET">
+<wire x1="0.762" y1="0.762" x2="0.762" y2="0" width="0.254" layer="94"/>
+<wire x1="0.762" y1="0" x2="0.762" y2="-0.762" width="0.254" layer="94"/>
+<wire x1="0.762" y1="3.175" x2="0.762" y2="2.54" width="0.254" layer="94"/>
+<wire x1="0.762" y1="2.54" x2="0.762" y2="1.905" width="0.254" layer="94"/>
+<wire x1="0.762" y1="0" x2="2.54" y2="0" width="0.1524" layer="94"/>
+<wire x1="2.54" y1="0" x2="2.54" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0.762" y1="-1.905" x2="0.762" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0.762" y1="-2.54" x2="0.762" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="0" y1="2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="2.54" y1="-2.54" x2="0.762" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="2.54" x2="3.81" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="0.508" x2="3.81" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="2.54" y1="-2.54" x2="3.81" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0.762" y1="2.54" x2="3.81" y2="2.54" width="0.1524" layer="94"/>
+<wire x1="4.572" y1="0.762" x2="4.318" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="4.318" y1="0.508" x2="3.81" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="0.508" x2="3.302" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.302" y1="0.508" x2="3.048" y2="0.254" width="0.1524" layer="94"/>
+<circle x="2.54" y="-2.54" radius="0.3592" width="0" layer="94"/>
+<circle x="2.54" y="2.54" radius="0.3592" width="0" layer="94"/>
+<text x="-11.43" y="0" size="1.778" layer="96">&gt;VALUE</text>
+<text x="-11.43" y="2.54" size="1.778" layer="95">&gt;NAME</text>
+<pin name="S" x="2.54" y="-5.08" visible="off" length="short" direction="pas" rot="R90"/>
+<pin name="G" x="-2.54" y="-2.54" visible="off" length="short" direction="pas"/>
+<pin name="D" x="2.54" y="5.08" visible="off" length="short" direction="pas" rot="R270"/>
+<polygon width="0.1524" layer="94">
+<vertex x="3.81" y="0.508"/>
+<vertex x="3.302" y="-0.254"/>
+<vertex x="4.318" y="-0.254"/>
+</polygon>
+<polygon width="0.1524" layer="94">
+<vertex x="1.016" y="0"/>
+<vertex x="2.032" y="0.762"/>
+<vertex x="2.032" y="-0.762"/>
+</polygon>
+</symbol>
+<symbol name="N-MOSFET_EXTRA_PINS">
+<wire x1="0.762" y1="0.762" x2="0.762" y2="0" width="0.254" layer="94"/>
+<wire x1="0.762" y1="0" x2="0.762" y2="-0.762" width="0.254" layer="94"/>
+<wire x1="0.762" y1="3.175" x2="0.762" y2="2.54" width="0.254" layer="94"/>
+<wire x1="0.762" y1="2.54" x2="0.762" y2="1.905" width="0.254" layer="94"/>
+<wire x1="0.762" y1="0" x2="2.54" y2="0" width="0.1524" layer="94"/>
+<wire x1="2.54" y1="0" x2="2.54" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0.762" y1="-1.905" x2="0.762" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0.762" y1="-2.54" x2="0.762" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="0" y1="2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="2.54" y1="-2.54" x2="0.762" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="2.54" x2="3.81" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="0.508" x2="3.81" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="2.54" y1="-2.54" x2="3.81" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0.762" y1="2.54" x2="3.81" y2="2.54" width="0.1524" layer="94"/>
+<wire x1="4.572" y1="0.762" x2="4.318" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="4.318" y1="0.508" x2="3.81" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="0.508" x2="3.302" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.302" y1="0.508" x2="3.048" y2="0.254" width="0.1524" layer="94"/>
+<circle x="2.54" y="-2.54" radius="0.3592" width="0" layer="94"/>
+<circle x="2.54" y="2.54" radius="0.3592" width="0" layer="94"/>
+<text x="-11.43" y="0" size="1.778" layer="96">&gt;VALUE</text>
+<text x="-11.43" y="2.54" size="1.778" layer="95">&gt;NAME</text>
+<pin name="S" x="2.54" y="-5.08" visible="off" length="short" direction="pas" swaplevel="2" rot="R90"/>
+<pin name="G" x="-2.54" y="-2.54" visible="off" length="short" direction="pas"/>
+<pin name="D" x="2.54" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="S$1" x="5.08" y="-5.08" visible="off" length="short" direction="pas" swaplevel="2" rot="R90"/>
+<pin name="S$2" x="7.62" y="-5.08" visible="off" length="short" direction="pas" swaplevel="2" rot="R90"/>
+<pin name="D$1" x="5.08" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="D$2" x="7.62" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="D$3" x="10.16" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="D$4" x="12.7" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<polygon width="0.1524" layer="94">
+<vertex x="3.81" y="0.508"/>
+<vertex x="3.302" y="-0.254"/>
+<vertex x="4.318" y="-0.254"/>
+</polygon>
+<polygon width="0.1524" layer="94">
+<vertex x="1.016" y="0"/>
+<vertex x="2.032" y="0.762"/>
+<vertex x="2.032" y="-0.762"/>
+</polygon>
+</symbol>
+<symbol name="USB">
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="-8.89" width="0.254" layer="94"/>
+<wire x1="-5.08" y1="-8.89" x2="-12.7" y2="-8.89" width="0.254" layer="94"/>
+<wire x1="-12.7" y1="1.27" x2="-5.08" y2="1.27" width="0.254" layer="94"/>
+<text x="-8.89" y="0" size="2.54" layer="94" rot="R270">USB</text>
+<text x="-11.43" y="-13.97" size="1.27" layer="94" rot="R90">Case</text>
+<pin name="GND" x="0" y="0" visible="pad" length="middle" rot="R180"/>
+<pin name="VBUS" x="0" y="-2.54" visible="pad" length="middle" rot="R180"/>
+<pin name="D-" x="0" y="-5.08" visible="pad" length="middle" rot="R180"/>
+<pin name="D+" x="0" y="-7.62" visible="pad" length="middle" rot="R180"/>
+<pin name="CASE1V" x="-10.16" y="-12.7" visible="off" length="middle" rot="R90"/>
+<pin name="CASE2" x="-7.62" y="-12.7" visible="off" length="middle" rot="R90"/>
+</symbol>
+<symbol name="RJ16">
+<wire x1="1.905" y1="5.715" x2="0" y2="5.715" width="0.254" layer="94"/>
+<wire x1="0" y1="5.715" x2="0" y2="4.445" width="0.254" layer="94"/>
+<wire x1="0" y1="4.445" x2="1.905" y2="4.445" width="0.254" layer="94"/>
+<wire x1="1.905" y1="3.175" x2="0" y2="3.175" width="0.254" layer="94"/>
+<wire x1="0" y1="3.175" x2="0" y2="1.905" width="0.254" layer="94"/>
+<wire x1="0" y1="1.905" x2="1.905" y2="1.905" width="0.254" layer="94"/>
+<wire x1="1.905" y1="0.635" x2="0" y2="0.635" width="0.254" layer="94"/>
+<wire x1="0" y1="0.635" x2="0" y2="-0.635" width="0.254" layer="94"/>
+<wire x1="0" y1="-0.635" x2="1.905" y2="-0.635" width="0.254" layer="94"/>
+<wire x1="1.905" y1="-1.905" x2="0" y2="-1.905" width="0.254" layer="94"/>
+<wire x1="0" y1="-1.905" x2="0" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="0" y1="-3.175" x2="1.905" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="1.905" y1="-4.445" x2="0" y2="-4.445" width="0.254" layer="94"/>
+<wire x1="0" y1="-4.445" x2="0" y2="-5.715" width="0.254" layer="94"/>
+<wire x1="0" y1="-5.715" x2="1.905" y2="-5.715" width="0.254" layer="94"/>
+<wire x1="1.905" y1="-6.985" x2="0" y2="-6.985" width="0.254" layer="94"/>
+<wire x1="0" y1="-6.985" x2="0" y2="-8.255" width="0.254" layer="94"/>
+<wire x1="0" y1="-8.255" x2="1.905" y2="-8.255" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-5.715" x2="10.16" y2="-5.715" width="0.254" layer="94"/>
+<wire x1="10.16" y1="-5.715" x2="10.16" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="10.16" y1="-3.175" x2="11.43" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="11.43" y1="-3.175" x2="11.43" y2="0.635" width="0.254" layer="94"/>
+<wire x1="11.43" y1="0.635" x2="10.16" y2="0.635" width="0.254" layer="94"/>
+<wire x1="10.16" y1="0.635" x2="10.16" y2="3.175" width="0.254" layer="94"/>
+<wire x1="10.16" y1="3.175" x2="5.715" y2="3.175" width="0.254" layer="94"/>
+<wire x1="5.715" y1="3.175" x2="5.715" y2="1.905" width="0.254" layer="94"/>
+<wire x1="5.715" y1="1.905" x2="5.715" y2="0.635" width="0.254" layer="94"/>
+<wire x1="5.715" y1="0.635" x2="5.715" y2="-0.635" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-0.635" x2="5.715" y2="-1.905" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-1.905" x2="5.715" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-3.175" x2="5.715" y2="-4.445" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-4.445" x2="5.715" y2="-5.715" width="0.254" layer="94"/>
+<wire x1="5.715" y1="1.905" x2="6.985" y2="1.905" width="0.254" layer="94"/>
+<wire x1="5.715" y1="0.635" x2="6.985" y2="0.635" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-0.635" x2="6.985" y2="-0.635" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-1.905" x2="6.985" y2="-1.905" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-3.175" x2="6.985" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="5.715" y1="-4.445" x2="6.985" y2="-4.445" width="0.254" layer="94"/>
+<text x="7.62" y="-7.62" size="1.27" layer="94">Case</text>
+<pin name="1" x="-5.08" y="5.08" visible="pin" length="middle"/>
+<pin name="2" x="-5.08" y="2.54" visible="pin" length="middle"/>
+<pin name="3" x="-5.08" y="0" visible="pin" length="middle"/>
+<pin name="4" x="-5.08" y="-2.54" visible="pin" length="middle"/>
+<pin name="5" x="-5.08" y="-5.08" visible="pin" length="middle"/>
+<pin name="6" x="-5.08" y="-7.62" visible="pin" length="middle"/>
+<pin name="P$1" x="7.62" y="-12.7" visible="off" length="middle" rot="R90"/>
+<pin name="P$2" x="10.16" y="-12.7" visible="off" length="middle" rot="R90"/>
+</symbol>
+<symbol name="EMI_PI_FILTER">
+<wire x1="-2.54" y1="0" x2="-2.54" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="0" x2="0" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="0" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="-2.032" x2="-2.54" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-2.032" x2="-3.556" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="-2.032" x2="-4.064" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="-2.032" x2="-1.016" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-2.032" x2="-3.302" y2="-3.302" width="0.254" layer="94"/>
+<wire x1="-3.302" y1="-3.302" x2="-2.54" y2="-3.302" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-3.302" x2="-1.778" y2="-3.302" width="0.254" layer="94"/>
+<wire x1="-1.778" y1="-3.302" x2="-2.54" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-3.302" x2="-2.54" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-5.08" x2="-3.302" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-5.08" x2="-1.778" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-0.762" y1="-2.032" x2="0.762" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="-0.762" y1="-2.794" x2="0" y2="-2.794" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.794" x2="0.762" y2="-2.794" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.794" x2="0" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-0.762" y1="-5.08" x2="0.762" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="7.62" y1="0" x2="7.62" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="7.62" y1="0" x2="5.08" y2="0" width="0.254" layer="94"/>
+<wire x1="5.08" y1="0" x2="5.08" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="8.636" y1="-2.032" x2="7.62" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-2.032" x2="6.604" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="6.604" y1="-2.032" x2="6.096" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="8.636" y1="-2.032" x2="9.144" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-2.032" x2="6.858" y2="-3.302" width="0.254" layer="94"/>
+<wire x1="6.858" y1="-3.302" x2="7.62" y2="-3.302" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-3.302" x2="8.382" y2="-3.302" width="0.254" layer="94"/>
+<wire x1="8.382" y1="-3.302" x2="7.62" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-3.302" x2="7.62" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-5.08" x2="6.858" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-5.08" x2="8.382" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="4.318" y1="-2.032" x2="5.842" y2="-2.032" width="0.254" layer="94"/>
+<wire x1="4.318" y1="-2.794" x2="5.08" y2="-2.794" width="0.254" layer="94"/>
+<wire x1="5.08" y1="-2.794" x2="5.842" y2="-2.794" width="0.254" layer="94"/>
+<wire x1="5.08" y1="-2.794" x2="5.08" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="4.318" y1="-5.08" x2="5.08" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="5.08" y1="-5.08" x2="5.842" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="1.016" y2="0" width="0.254" layer="94"/>
+<wire x1="1.016" y1="0" x2="1.524" y2="0.762" width="0.254" layer="94"/>
+<wire x1="1.524" y1="0.762" x2="2.032" y2="-0.508" width="0.254" layer="94"/>
+<wire x1="2.032" y1="-0.508" x2="2.54" y2="0.762" width="0.254" layer="94"/>
+<wire x1="2.54" y1="0.762" x2="3.048" y2="-0.508" width="0.254" layer="94"/>
+<wire x1="3.048" y1="-0.508" x2="3.556" y2="0.762" width="0.254" layer="94"/>
+<wire x1="3.556" y1="0.762" x2="4.064" y2="0" width="0.254" layer="94"/>
+<wire x1="4.064" y1="0" x2="5.08" y2="0" width="0.254" layer="94"/>
+<pin name="P$1" x="-5.08" y="0" visible="off" length="middle"/>
+<pin name="P$2" x="10.16" y="0" visible="off" length="middle" rot="R180"/>
+</symbol>
+<symbol name="GND">
+<wire x1="2.54" y1="-5.08" x2="-2.54" y2="-5.08" width="0.254" layer="94"/>
+<pin name="GND" x="0" y="-2.54" visible="off" length="short" direction="pwr" rot="R270"/>
+</symbol>
+<symbol name="C-US">
+<wire x1="-2.54" y1="0" x2="2.54" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="-1.016" x2="0" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0" y1="-1" x2="2.4892" y2="-1.8542" width="0.254" layer="94" curve="-37.878202" cap="flat"/>
+<wire x1="-2.4668" y1="-1.8504" x2="0" y2="-1.0161" width="0.254" layer="94" curve="-37.373024" cap="flat"/>
+<text x="1.016" y="0.635" size="1.778" layer="95">&gt;NAME</text>
+<text x="1.016" y="-4.191" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="1" x="0" y="2.54" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="2" x="0" y="-5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R90"/>
+</symbol>
+<symbol name="DIODE_2">
+<wire x1="-1.27" y1="-1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="-1.27" y2="1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94"/>
+<text x="2.54" y="0.4826" size="1.778" layer="95">&gt;NAME</text>
+<text x="2.54" y="-2.3114" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="A" x="-2.54" y="0" visible="off" length="short" direction="pas" swaplevel="1"/>
+<pin name="C" x="2.54" y="0" visible="off" length="short" direction="pas" rot="R180"/>
+<pin name="A1" x="-2.54" y="2.54" visible="off" length="short" direction="pas" swaplevel="1"/>
+</symbol>
+<symbol name="RESISTOR">
+<wire x1="-2.54" y1="0" x2="-1.778" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-1.778" y1="1.524" x2="-0.762" y2="-0.762" width="0.254" layer="94"/>
+<wire x1="-0.762" y1="-0.762" x2="0" y2="1.524" width="0.254" layer="94"/>
+<wire x1="0" y1="1.524" x2="1.016" y2="-0.762" width="0.254" layer="94"/>
+<wire x1="1.016" y1="-0.762" x2="1.778" y2="1.524" width="0.254" layer="94"/>
+<wire x1="1.778" y1="1.524" x2="2.54" y2="0" width="0.254" layer="94"/>
+<wire x1="2.54" y1="0" x2="5.08" y2="0" width="0.254" layer="94"/>
+<wire x1="-5.08" y1="0" x2="-2.54" y2="0" width="0.254" layer="94"/>
+<pin name="R1" x="-5.08" y="0" visible="off" length="short"/>
+<pin name="R2" x="5.08" y="0" visible="off" length="short" rot="R180"/>
+</symbol>
+<symbol name="OP-AMP">
+<wire x1="-2.54" y1="5.08" x2="-2.54" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-5.08" x2="5.08" y2="0" width="0.254" layer="94"/>
+<wire x1="5.08" y1="0" x2="-2.54" y2="5.08" width="0.254" layer="94"/>
+<text x="-2.54" y="2.54" size="1.27" layer="94" rot="R90">+</text>
+<text x="-2.54" y="-2.54" size="1.27" layer="94" rot="R180">-</text>
+<pin name="+" x="-7.62" y="2.54" visible="off" length="middle"/>
+<pin name="-" x="-7.62" y="-2.54" visible="off" length="middle"/>
+<pin name="OUT" x="10.16" y="0" visible="off" length="middle" rot="R180"/>
+</symbol>
+<symbol name="PWR">
+<wire x1="0" y1="5.08" x2="-1.27" y2="2.54" width="0.254" layer="94"/>
+<wire x1="-1.27" y1="2.54" x2="1.27" y2="2.54" width="0.254" layer="94"/>
+<wire x1="1.27" y1="2.54" x2="0" y2="5.08" width="0.254" layer="94"/>
+<pin name="V+" x="0" y="0" visible="off" length="short" rot="R90"/>
+</symbol>
+<symbol name="INDUCTOR">
+<wire x1="-2.54" y1="0" x2="-1.27" y2="0" width="0.254" layer="94" curve="-180"/>
+<wire x1="-1.27" y1="0" x2="0" y2="0" width="0.254" layer="94" curve="-180"/>
+<wire x1="0" y1="0" x2="1.27" y2="0" width="0.254" layer="94" curve="-180"/>
+<wire x1="1.27" y1="0" x2="2.54" y2="0" width="0.254" layer="94" curve="-180"/>
+<pin name="P$1" x="-5.08" y="0" visible="off" length="short"/>
+<pin name="P$2" x="5.08" y="0" visible="off" length="short" rot="R180"/>
+</symbol>
+<symbol name="38720-7202">
+<wire x1="-7.62" y1="5.08" x2="7.62" y2="5.08" width="0.254" layer="94"/>
+<wire x1="7.62" y1="5.08" x2="7.62" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-5.08" x2="-7.62" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-5.08" x2="-7.62" y2="5.08" width="0.254" layer="94"/>
+<pin name="+" x="-5.08" y="7.62" length="middle" rot="R270"/>
+<pin name="-" x="5.08" y="7.62" length="middle" rot="R270"/>
+</symbol>
+<symbol name="SIMPLESWITCHER">
+<wire x1="-10.16" y1="7.62" x2="-10.16" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-10.16" y1="-5.08" x2="10.16" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="10.16" y1="-5.08" x2="10.16" y2="7.62" width="0.254" layer="94"/>
+<text x="-5.08" y="5.08" size="1.27" layer="94">LMZ12002</text>
+<pin name="VIN" x="-7.62" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="RON" x="-5.08" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="EN" x="-2.54" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="GND" x="0" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="SS" x="2.54" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="FB" x="5.08" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="VOUT" x="7.62" y="-10.16" visible="pin" length="middle" rot="R90"/>
+<pin name="CGND" x="-15.24" y="2.54" visible="pin" length="middle"/>
+</symbol>
+<symbol name="TERMINAL">
+<wire x1="0" y1="7.62" x2="-7.62" y2="7.62" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="7.62" x2="-7.62" y2="-7.62" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-7.62" x2="0" y2="-7.62" width="0.254" layer="94"/>
+<wire x1="0" y1="-7.62" x2="0" y2="7.62" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="5.08" x2="-5.08" y2="2.54" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="2.54" x2="-5.08" y2="5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-2.54" x2="-5.08" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-5.08" x2="-5.08" y2="-2.54" width="0.254" layer="94"/>
+<pin name="P$1" x="5.08" y="2.54" visible="off" length="middle" rot="R180"/>
+<pin name="P$2" x="5.08" y="-2.54" visible="off" length="middle" rot="R180"/>
+<text x="-8.128" y="8.636" size="1.778" layer="95">&gt;NAME</text>
+<text x="-8.382" y="-9.906" size="1.778" layer="96">&gt;VALUE</text>
+</symbol>
+<symbol name="DIODE">
+<wire x1="-1.27" y1="-1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="-1.27" y2="1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94"/>
+<text x="2.54" y="0.4826" size="1.778" layer="95">&gt;NAME</text>
+<text x="2.54" y="-2.3114" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="A" x="-2.54" y="0" visible="off" length="short" direction="pas"/>
+<pin name="C" x="2.54" y="0" visible="off" length="short" direction="pas" rot="R180"/>
+</symbol>
+<symbol name="ZENER_DIODE">
+<wire x1="-1.27" y1="-1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="-1.27" y2="1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="0" y2="2.54" width="0.254" layer="94"/>
+<wire x1="1.27" y1="-1.27" x2="2.54" y2="-2.54" width="0.254" layer="94"/>
+<text x="2.54" y="0.4826" size="1.778" layer="95">&gt;NAME</text>
+<pin name="A" x="-2.54" y="0" visible="off" length="short" direction="pas"/>
+<pin name="C" x="2.54" y="0" visible="off" length="short" direction="pas" rot="R180"/>
+</symbol>
+<symbol name="BUSSED_RESISTORS">
+<wire x1="0" y1="10.16" x2="-0.508" y2="11.176" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="11.176" x2="-1.524" y2="9.144" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="9.144" x2="-2.54" y2="11.176" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="11.176" x2="-3.556" y2="9.144" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="10.16" x2="-7.62" y2="12.7" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="9.144" x2="-4.572" y2="11.176" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="11.176" x2="-5.588" y2="9.144" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="9.144" x2="-6.096" y2="10.16" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="10.16" x2="-7.62" y2="10.16" width="0.254" layer="94"/>
+<wire x1="0" y1="7.62" x2="-0.508" y2="8.636" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="8.636" x2="-1.524" y2="6.604" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="6.604" x2="-2.54" y2="8.636" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="8.636" x2="-3.556" y2="6.604" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="7.62" x2="-7.62" y2="10.16" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="6.604" x2="-4.572" y2="8.636" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="8.636" x2="-5.588" y2="6.604" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="6.604" x2="-6.096" y2="7.62" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="7.62" x2="-7.62" y2="7.62" width="0.254" layer="94"/>
+<wire x1="0" y1="5.08" x2="-0.508" y2="6.096" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="6.096" x2="-1.524" y2="4.064" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="4.064" x2="-2.54" y2="6.096" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="6.096" x2="-3.556" y2="4.064" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="5.08" x2="-7.62" y2="7.62" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="4.064" x2="-4.572" y2="6.096" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="6.096" x2="-5.588" y2="4.064" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="4.064" x2="-6.096" y2="5.08" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="5.08" x2="-7.62" y2="5.08" width="0.254" layer="94"/>
+<wire x1="0" y1="2.54" x2="-0.508" y2="3.556" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="3.556" x2="-1.524" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="1.524" x2="-2.54" y2="3.556" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="3.556" x2="-3.556" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="2.54" x2="-7.62" y2="5.08" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="1.524" x2="-4.572" y2="3.556" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="3.556" x2="-5.588" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="1.524" x2="-6.096" y2="2.54" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="2.54" x2="-7.62" y2="2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="-0.508" y2="1.016" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="1.016" x2="-1.524" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="-1.016" x2="-2.54" y2="1.016" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="1.016" x2="-3.556" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="2.54" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="-1.016" x2="-4.572" y2="1.016" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="1.016" x2="-5.588" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="-1.016" x2="-6.096" y2="0" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="0" x2="-7.62" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.54" x2="-0.508" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="-1.524" x2="-1.524" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="-3.556" x2="-2.54" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-1.524" x2="-3.556" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-2.54" x2="-7.62" y2="0" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="-3.556" x2="-4.572" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="-1.524" x2="-5.588" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="-3.556" x2="-6.096" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="-2.54" x2="-7.62" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="-5.08" x2="-0.508" y2="-4.064" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="-4.064" x2="-1.524" y2="-6.096" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="-6.096" x2="-2.54" y2="-4.064" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-4.064" x2="-3.556" y2="-6.096" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-5.08" x2="-7.62" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="-6.096" x2="-4.572" y2="-4.064" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="-4.064" x2="-5.588" y2="-6.096" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="-6.096" x2="-6.096" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="-5.08" x2="-7.62" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="0" y1="-7.62" x2="-0.508" y2="-6.604" width="0.254" layer="94"/>
+<wire x1="-0.508" y1="-6.604" x2="-1.524" y2="-8.636" width="0.254" layer="94"/>
+<wire x1="-1.524" y1="-8.636" x2="-2.54" y2="-6.604" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-6.604" x2="-3.556" y2="-8.636" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-7.62" x2="-7.62" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-3.556" y1="-8.636" x2="-4.572" y2="-6.604" width="0.254" layer="94"/>
+<wire x1="-4.572" y1="-6.604" x2="-5.588" y2="-8.636" width="0.254" layer="94"/>
+<wire x1="-5.588" y1="-8.636" x2="-6.096" y2="-7.62" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="-7.62" x2="-7.62" y2="-7.62" width="0.254" layer="94"/>
+<pin name="P$1" x="-7.62" y="15.24" visible="off" length="short" rot="R270"/>
+<pin name="P$2" x="2.54" y="10.16" visible="off" length="short" rot="R180"/>
+<pin name="P$3" x="2.54" y="7.62" visible="off" length="short" rot="R180"/>
+<pin name="P$4" x="2.54" y="5.08" visible="off" length="short" rot="R180"/>
+<pin name="P$5" x="2.54" y="2.54" visible="off" length="short" rot="R180"/>
+<pin name="P$6" x="2.54" y="0" visible="off" length="short" rot="R180"/>
+<pin name="P$7" x="2.54" y="-2.54" visible="off" length="short" rot="R180"/>
+<pin name="P$8" x="2.54" y="-5.08" visible="off" length="short" rot="R180"/>
+<pin name="P$9" x="2.54" y="-7.62" visible="off" length="short" rot="R180"/>
+</symbol>
+<symbol name="DUAL_BUSSED_RESISTORS">
+<wire x1="-7.62" y1="5.08" x2="-7.112" y2="4.064" width="0.254" layer="94"/>
+<wire x1="-7.112" y1="4.064" x2="-6.096" y2="6.096" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="6.096" x2="-5.08" y2="4.064" width="0.254" layer="94"/>
+<wire x1="-5.08" y1="4.064" x2="-4.064" y2="6.096" width="0.254" layer="94"/>
+<wire x1="-4.064" y1="6.096" x2="-3.048" y2="4.064" width="0.254" layer="94"/>
+<wire x1="-3.048" y1="4.064" x2="-2.032" y2="6.096" width="0.254" layer="94"/>
+<wire x1="-2.032" y1="6.096" x2="-1.524" y2="5.08" width="0.254" layer="94"/>
+<wire x1="7.62" y1="5.08" x2="7.112" y2="6.096" width="0.254" layer="94"/>
+<wire x1="7.112" y1="6.096" x2="6.096" y2="4.064" width="0.254" layer="94"/>
+<wire x1="6.096" y1="4.064" x2="5.08" y2="6.096" width="0.254" layer="94"/>
+<wire x1="5.08" y1="6.096" x2="4.064" y2="4.064" width="0.254" layer="94"/>
+<wire x1="4.064" y1="4.064" x2="3.048" y2="6.096" width="0.254" layer="94"/>
+<wire x1="3.048" y1="6.096" x2="2.032" y2="4.064" width="0.254" layer="94"/>
+<wire x1="2.032" y1="4.064" x2="1.524" y2="5.08" width="0.254" layer="94"/>
+<wire x1="1.524" y1="5.08" x2="0" y2="5.08" width="0.254" layer="94"/>
+<wire x1="0" y1="5.08" x2="-1.524" y2="5.08" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="2.54" x2="-7.112" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-7.112" y1="1.524" x2="-6.096" y2="3.556" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="3.556" x2="-5.08" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-5.08" y1="1.524" x2="-4.064" y2="3.556" width="0.254" layer="94"/>
+<wire x1="-4.064" y1="3.556" x2="-3.048" y2="1.524" width="0.254" layer="94"/>
+<wire x1="-3.048" y1="1.524" x2="-2.032" y2="3.556" width="0.254" layer="94"/>
+<wire x1="-2.032" y1="3.556" x2="-1.524" y2="2.54" width="0.254" layer="94"/>
+<wire x1="7.62" y1="2.54" x2="7.112" y2="3.556" width="0.254" layer="94"/>
+<wire x1="7.112" y1="3.556" x2="6.096" y2="1.524" width="0.254" layer="94"/>
+<wire x1="6.096" y1="1.524" x2="5.08" y2="3.556" width="0.254" layer="94"/>
+<wire x1="5.08" y1="3.556" x2="4.064" y2="1.524" width="0.254" layer="94"/>
+<wire x1="4.064" y1="1.524" x2="3.048" y2="3.556" width="0.254" layer="94"/>
+<wire x1="3.048" y1="3.556" x2="2.032" y2="1.524" width="0.254" layer="94"/>
+<wire x1="2.032" y1="1.524" x2="1.524" y2="2.54" width="0.254" layer="94"/>
+<wire x1="1.524" y1="2.54" x2="0" y2="2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="2.54" x2="-1.524" y2="2.54" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="0" x2="-7.112" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="-7.112" y1="-1.016" x2="-6.096" y2="1.016" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="1.016" x2="-5.08" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="-5.08" y1="-1.016" x2="-4.064" y2="1.016" width="0.254" layer="94"/>
+<wire x1="-4.064" y1="1.016" x2="-3.048" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="-3.048" y1="-1.016" x2="-2.032" y2="1.016" width="0.254" layer="94"/>
+<wire x1="-2.032" y1="1.016" x2="-1.524" y2="0" width="0.254" layer="94"/>
+<wire x1="7.62" y1="0" x2="7.112" y2="1.016" width="0.254" layer="94"/>
+<wire x1="7.112" y1="1.016" x2="6.096" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="6.096" y1="-1.016" x2="5.08" y2="1.016" width="0.254" layer="94"/>
+<wire x1="5.08" y1="1.016" x2="4.064" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="4.064" y1="-1.016" x2="3.048" y2="1.016" width="0.254" layer="94"/>
+<wire x1="3.048" y1="1.016" x2="2.032" y2="-1.016" width="0.254" layer="94"/>
+<wire x1="2.032" y1="-1.016" x2="1.524" y2="0" width="0.254" layer="94"/>
+<wire x1="1.524" y1="0" x2="0" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="-1.524" y2="0" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-2.54" x2="-7.112" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="-7.112" y1="-3.556" x2="-6.096" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-6.096" y1="-1.524" x2="-5.08" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="-5.08" y1="-3.556" x2="-4.064" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-4.064" y1="-1.524" x2="-3.048" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="-3.048" y1="-3.556" x2="-2.032" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="-2.032" y1="-1.524" x2="-1.524" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="7.62" y1="-2.54" x2="7.112" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="7.112" y1="-1.524" x2="6.096" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="6.096" y1="-3.556" x2="5.08" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="5.08" y1="-1.524" x2="4.064" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="4.064" y1="-3.556" x2="3.048" y2="-1.524" width="0.254" layer="94"/>
+<wire x1="3.048" y1="-1.524" x2="2.032" y2="-3.556" width="0.254" layer="94"/>
+<wire x1="2.032" y1="-3.556" x2="1.524" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="1.524" y1="-2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.54" x2="-1.524" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="7.62" x2="0" y2="5.08" width="0.254" layer="94"/>
+<wire x1="0" y1="5.08" x2="0" y2="2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="2.54" x2="0" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.54" x2="0" y2="-5.08" width="0.254" layer="94"/>
+<pin name="P$1" x="0" y="10.16" visible="off" length="short" rot="R270"/>
+<pin name="P$2" x="-10.16" y="5.08" visible="off" length="short"/>
+<pin name="P$3" x="10.16" y="5.08" visible="off" length="short" rot="R180"/>
+<pin name="P$4" x="-10.16" y="2.54" visible="off" length="short"/>
+<pin name="P$5" x="10.16" y="2.54" visible="off" length="short" rot="R180"/>
+<pin name="P$6" x="-10.16" y="0" visible="off" length="short"/>
+<pin name="P$7" x="10.16" y="0" visible="off" length="short" rot="R180"/>
+<pin name="P$8" x="-10.16" y="-2.54" visible="off" length="short"/>
+<pin name="P$9" x="10.16" y="-2.54" visible="off" length="short" rot="R180"/>
+<pin name="P$10" x="0" y="-7.62" visible="off" length="short" rot="R90"/>
+</symbol>
+<symbol name="78ADJ">
+<wire x1="-5.08" y1="-5.08" x2="5.08" y2="-5.08" width="0.4064" layer="94"/>
+<wire x1="5.08" y1="-5.08" x2="5.08" y2="2.54" width="0.4064" layer="94"/>
+<wire x1="5.08" y1="2.54" x2="-5.08" y2="2.54" width="0.4064" layer="94"/>
+<wire x1="-5.08" y1="2.54" x2="-5.08" y2="-5.08" width="0.4064" layer="94"/>
+<text x="2.54" y="-7.62" size="1.778" layer="95">&gt;NAME</text>
+<text x="2.54" y="-10.16" size="1.778" layer="96">&gt;VALUE</text>
+<text x="-2.032" y="-4.318" size="1.524" layer="95">GND</text>
+<text x="-4.445" y="-0.635" size="1.524" layer="95">IN</text>
+<text x="0.635" y="-0.635" size="1.524" layer="95">OUT</text>
+<pin name="IN" x="-7.62" y="0" visible="off" length="short" direction="in"/>
+<pin name="GND$1" x="0" y="-7.62" visible="off" length="short" direction="in" swaplevel="1" rot="R90"/>
+<pin name="OUT" x="7.62" y="0" visible="off" length="short" direction="out" rot="R180"/>
+<pin name="GND$0" x="-2.54" y="-7.62" visible="off" length="short" direction="in" swaplevel="1" rot="R90"/>
+</symbol>
+</symbols>
+<devicesets>
+<deviceset name="DIP_SWITCH_X4">
+<description>&lt;b&gt;4 position dip switch&lt;/b&gt;&lt;br&gt;
+from &lt;a href="http://www.mouser.com/ProductDetail/CTS-Electronic-Components/219-4LPST/?qs=sGAEpiMZZMv%2f%252b2JhlA6ysGbG22VYatTYq6uUsyqguGg%3d"&gt;http://www.mouser.com/ProductDetail/CTS-Electronic-Components/219-4LPST/?qs=sGAEpiMZZMv%2f%252b2JhlA6ysGbG22VYatTYq6uUsyqguGg%3d&lt;/a&gt;</description>
+<gates>
+<gate name="1" symbol="SWITCH" x="-15.24" y="2.54"/>
+<gate name="2" symbol="SWITCH" x="-2.54" y="2.54"/>
+<gate name="3" symbol="SWITCH" x="10.16" y="2.54"/>
+<gate name="4" symbol="SWITCH" x="22.86" y="2.54"/>
+</gates>
+<devices>
+<device name="" package="219-4LPST">
+<connects>
+<connect gate="1" pin="A" pad="1A"/>
+<connect gate="1" pin="B" pad="1B"/>
+<connect gate="2" pin="A" pad="2A"/>
+<connect gate="2" pin="B" pad="2B"/>
+<connect gate="3" pin="A" pad="3A"/>
+<connect gate="3" pin="B" pad="3B"/>
+<connect gate="4" pin="A" pad="4A"/>
+<connect gate="4" pin="B" pad="4B"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="RJ16">
+<description>&lt;b&gt;rj16 connector&lt;/b&gt; (6 slots 6 connectors)&lt;br&gt;
+from &lt;a href="http://www.mouser.com/ProductDetail/Molex/85510-5019/?qs=sGAEpiMZZMvQhAhQbXdbBsK4oSVSRxQMQtyAf8Fqgr8%3d"&gt;http://www.mouser.com/ProductDetail/Molex/85510-5019/?qs=sGAEpiMZZMvQhAhQbXdbBsK4oSVSRxQMQtyAf8Fqgr8%3d&lt;/a&gt; (drawings at &lt;a href="http://www.molex.com/pdm_docs/sd/855105019_sd.pdf"&gt;http://www.molex.com/pdm_docs/sd/855105019_sd.pdf&lt;/a&gt;)</description>
+<gates>
+<gate name="G$1" symbol="RJ16" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="85510-5019">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+<connect gate="G$1" pin="4" pad="4"/>
+<connect gate="G$1" pin="5" pad="5"/>
+<connect gate="G$1" pin="6" pad="6"/>
+<connect gate="G$1" pin="P$1" pad="P$0"/>
+<connect gate="G$1" pin="P$2" pad="P$1"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="USB">
+<description>&lt;b&gt;usb connector&lt;/b&gt;</description>
+<gates>
+<gate name="G$1" symbol="USB" x="5.08" y="0"/>
+</gates>
+<devices>
+<device name="" package="M701-330442">
+<connects>
+<connect gate="G$1" pin="CASE1V" pad="P$0"/>
+<connect gate="G$1" pin="CASE2" pad="P$1"/>
+<connect gate="G$1" pin="D+" pad="D+"/>
+<connect gate="G$1" pin="D-" pad="D-"/>
+<connect gate="G$1" pin="GND" pad="GND"/>
+<connect gate="G$1" pin="VBUS" pad="VCC"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="ADUM3160">
+<description>&lt;b&gt;ADuM3160 usb digital isolator&lt;/b&gt;&lt;br&gt;
+all information from &lt;a href="http://www.analog.com/static/imported-files/data_sheets/ADuM3160.pdf"&gt;http://www.analog.com/static/imported-files/data_sheets/ADuM3160.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="ADUM3160" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="SOIC_W">
+<connects>
+<connect gate="G$1" pin="DD+" pad="10"/>
+<connect gate="G$1" pin="DD-" pad="11"/>
+<connect gate="G$1" pin="GND1$0" pad="2"/>
+<connect gate="G$1" pin="GND1$1" pad="8"/>
+<connect gate="G$1" pin="GND2$0" pad="15"/>
+<connect gate="G$1" pin="GND2$1" pad="9"/>
+<connect gate="G$1" pin="PDEN" pad="4"/>
+<connect gate="G$1" pin="PIN" pad="12"/>
+<connect gate="G$1" pin="SPN" pad="13"/>
+<connect gate="G$1" pin="SPU" pad="5"/>
+<connect gate="G$1" pin="UD+" pad="7"/>
+<connect gate="G$1" pin="UD-" pad="6"/>
+<connect gate="G$1" pin="VBUS1" pad="1"/>
+<connect gate="G$1" pin="VBUS2" pad="16"/>
+<connect gate="G$1" pin="VDD1" pad="3"/>
+<connect gate="G$1" pin="VDD2" pad="14"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="ADXRS450">
+<description>&lt;b&gt;ADXRS450 gyroscope&lt;/b&gt;&lt;br&gt;
+all information from &lt;a href="http://www.analog.com/static/imported-files/data_sheets/ADXRS450.pdf"&gt;http://www.analog.com/static/imported-files/data_sheets/ADXRS450.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$0" symbol="ADXRS450" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="SOIC_CAV">
+<connects>
+<connect gate="G$0" pin="AVDD" pad="14"/>
+<connect gate="G$0" pin="AVSS" pad="11"/>
+<connect gate="G$0" pin="CP5" pad="9"/>
+<connect gate="G$0" pin="CS" pad="4"/>
+<connect gate="G$0" pin="DVDD" pad="1"/>
+<connect gate="G$0" pin="DVSS" pad="13"/>
+<connect gate="G$0" pin="MISO" pad="5"/>
+<connect gate="G$0" pin="MOSI" pad="15"/>
+<connect gate="G$0" pin="PDD" pad="6"/>
+<connect gate="G$0" pin="PSS" pad="7"/>
+<connect gate="G$0" pin="RSVD$0" pad="2"/>
+<connect gate="G$0" pin="RSVD$1" pad="3"/>
+<connect gate="G$0" pin="RSVD$2" pad="10"/>
+<connect gate="G$0" pin="RSVD$3" pad="12"/>
+<connect gate="G$0" pin="SCLK" pad="16"/>
+<connect gate="G$0" pin="VX" pad="8"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="LM3481">
+<description>&lt;b&gt;switching regulator controller&lt;/b&gt;&lt;br&gt;
+data sheet at &lt;a href="http://www.national.com/ds/LM/LM3481.pdf"&gt;http://www.national.com/ds/LM/LM3481.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="LM3481" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="MSOP10">
+<connects>
+<connect gate="G$1" pin="AGND" pad="5"/>
+<connect gate="G$1" pin="COMP" pad="3"/>
+<connect gate="G$1" pin="DR" pad="8"/>
+<connect gate="G$1" pin="FA/SYNC/SD" pad="6"/>
+<connect gate="G$1" pin="FB" pad="4"/>
+<connect gate="G$1" pin="ISEN" pad="1"/>
+<connect gate="G$1" pin="PGND" pad="7"/>
+<connect gate="G$1" pin="UVLO" pad="2"/>
+<connect gate="G$1" pin="VCC" pad="9"/>
+<connect gate="G$1" pin="VIN" pad="10"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="L-US" prefix="L" uservalue="yes">
+<description>&lt;B&gt;INDUCTOR&lt;/B&gt;, American symbol</description>
+<gates>
+<gate name="G$1" symbol="L-US" x="0" y="0"/>
+</gates>
+<devices>
+<device name="L2012C" package="L2012C">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L2825P" package="L2825P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3216C" package="L3216C">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3225M" package="L3225M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3225P" package="L3225P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3230M" package="L3230M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4035M" package="L4035M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4516C" package="L4516C">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4532C" package="L4532M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4532P" package="L4532P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L5038P" package="L5038P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L5650M" package="L5650M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L8530M" package="L8530M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/5" package="0204/5">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/7" package="0204/7">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204V" package="0204V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/10" package="0207/10">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/12" package="0207/12">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/15" package="0207/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/2V" package="0207/2V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/5V" package="0207/5V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/7" package="0207/7">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L1812" package="L1812">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ3-U1" package="TJ3-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ3-U2" package="TJ3-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ4-U1" package="TJ4-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ4-U2" package="TJ4-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ5-U1" package="TJ5-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ5-U2" package="TJ5-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ6-U1" package="TJ6-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ6-U2" package="TJ6-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ7-U1" package="TJ7-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ7-U2" package="TJ7-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ8-U1" package="TJ8-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ8-U2" package="TJ8-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ9-U1" package="TJ9-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ9-U2" package="TJ9-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="WE-TPC" package="POWER-CHOKE_WE-TPC">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CEP125" package="CEP125">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="1060-152" package="1060-152">
+<connects>
+<connect gate="G$1" pin="1" pad="P$1"/>
+<connect gate="G$1" pin="2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="1010-153" package="1010-153">
+<connects>
+<connect gate="G$1" pin="1" pad="P$1"/>
+<connect gate="G$1" pin="2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="BSZ097N04LS_G">
+<description>&lt;b&gt;mosfet&lt;/b&gt;&lt;br&gt;
+datasheet at &lt;a href="http://www.infineon.com/dgdl/BSZ097N04LSG_rev2.0.pdf?folderId=db3a3043163797a6011643468e7505a4&amp;fileId=db3a3043163797a6011643be1d53068c"&gt;http://www.infineon.com/dgdl/BSZ097N04LSG_rev2.0.pdf?folderId=db3a3043163797a6011643468e7505a4&amp;fileId=db3a3043163797a6011643be1d53068c&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="N-MOSFET_EXTRA_PINS" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="PG-TSDSON8">
+<connects>
+<connect gate="G$1" pin="D" pad="D$0"/>
+<connect gate="G$1" pin="D$1" pad="D$1"/>
+<connect gate="G$1" pin="D$2" pad="D$2"/>
+<connect gate="G$1" pin="D$3" pad="D$3"/>
+<connect gate="G$1" pin="D$4" pad="D$4"/>
+<connect gate="G$1" pin="G" pad="G"/>
+<connect gate="G$1" pin="S" pad="S$0"/>
+<connect gate="G$1" pin="S$1" pad="S$1"/>
+<connect gate="G$1" pin="S$2" pad="S$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="NUF6406M">
+<gates>
+<gate name="G$1" symbol="EMI_PI_FILTER" x="-2.54" y="12.7" swaplevel="1"/>
+<gate name="G$2" symbol="EMI_PI_FILTER" x="-2.54" y="5.08" swaplevel="1"/>
+<gate name="G$3" symbol="EMI_PI_FILTER" x="-2.54" y="-2.54" swaplevel="1"/>
+<gate name="G$4" symbol="EMI_PI_FILTER" x="-2.54" y="-10.16" swaplevel="1"/>
+<gate name="G$5" symbol="EMI_PI_FILTER" x="-2.54" y="-17.78" swaplevel="1"/>
+<gate name="G$6" symbol="EMI_PI_FILTER" x="-2.54" y="-25.4" swaplevel="1"/>
+<gate name="GND" symbol="GND" x="-25.4" y="-10.16" addlevel="request"/>
+</gates>
+<devices>
+<device name="" package="DFN12">
+<connects>
+<connect gate="G$1" pin="P$1" pad="1"/>
+<connect gate="G$1" pin="P$2" pad="12"/>
+<connect gate="G$2" pin="P$1" pad="2"/>
+<connect gate="G$2" pin="P$2" pad="11"/>
+<connect gate="G$3" pin="P$1" pad="3"/>
+<connect gate="G$3" pin="P$2" pad="10"/>
+<connect gate="G$4" pin="P$1" pad="4"/>
+<connect gate="G$4" pin="P$2" pad="9"/>
+<connect gate="G$5" pin="P$1" pad="5"/>
+<connect gate="G$5" pin="P$2" pad="8"/>
+<connect gate="G$6" pin="P$1" pad="6"/>
+<connect gate="G$6" pin="P$2" pad="7"/>
+<connect gate="GND" pin="GND" pad="GND"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="C-US" prefix="C" uservalue="yes">
+<description>&lt;B&gt;CAPACITOR&lt;/B&gt;, American symbol</description>
+<gates>
+<gate name="G$1" symbol="C-US" x="0" y="0"/>
+</gates>
+<devices>
+<device name="C0402" package="C0402">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0504" package="C0504">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0603" package="C0603">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0805" package="C0805">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1005" package="C1005">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1206" package="C1206">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1210" package="C1210">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1310" package="C1310">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1608" package="C1608">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1812" package="C1812">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1825" package="C1825">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2012" package="C2012">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C3216" package="C3216">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C3225" package="C3225">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C4532" package="C4532">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C4564" package="C4564">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-024X044" package="C025-024X044">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-025X050" package="C025-025X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-030X050" package="C025-030X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-040X050" package="C025-040X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-050X050" package="C025-050X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-060X050" package="C025-060X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C025_050-024X070" package="C025_050-024X070">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-025X075" package="C025_050-025X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-035X075" package="C025_050-035X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-045X075" package="C025_050-045X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-055X075" package="C025_050-055X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-024X044" package="C050-024X044">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-025X075" package="C050-025X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-045X075" package="C050-045X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-030X075" package="C050-030X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-050X075" package="C050-050X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-055X075" package="C050-055X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-075X075" package="C050-075X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050H075X075" package="C050H075X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-032X103" package="C075-032X103">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-042X103" package="C075-042X103">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-052X106" package="C075-052X106">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-043X133" package="C102-043X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-054X133" package="C102-054X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-064X133" package="C102-064X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102_152-062X184" package="C102_152-062X184">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-054X183" package="C150-054X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-064X183" package="C150-064X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-072X183" package="C150-072X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-084X183" package="C150-084X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-091X182" package="C150-091X182">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-062X268" package="C225-062X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-074X268" package="C225-074X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-087X268" package="C225-087X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-108X268" package="C225-108X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-113X268" package="C225-113X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-093X316" package="C275-093X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-113X316" package="C275-113X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-134X316" package="C275-134X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-205X316" package="C275-205X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-137X374" package="C325-137X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-162X374" package="C325-162X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-182X374" package="C325-182X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-192X418" package="C375-192X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-203X418" package="C375-203X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-035X075" package="C050-035X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-155X418" package="C375-155X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-063X106" package="C075-063X106">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-154X316" package="C275-154X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-173X316" package="C275-173X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0402K" package="C0402K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0603K" package="C0603K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0805K" package="C0805K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1206K" package="C1206K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1210K" package="C1210K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1812K" package="C1812K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1825K" package="C1825K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2220K" package="C2220K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2225K" package="C2225K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="J80" package="J80">
+<connects>
+<connect gate="G$1" pin="1" pad="+"/>
+<connect gate="G$1" pin="2" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="PLF1C271MDO1" package="PLF1C271MDO1">
+<connects>
+<connect gate="G$1" pin="1" pad="+"/>
+<connect gate="G$1" pin="2" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="RR71C331MDN1" package="RR71C331MDN1">
+<connects>
+<connect gate="G$1" pin="1" pad="+"/>
+<connect gate="G$1" pin="2" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="VS-12CWQ10FNPBF">
+<description>&lt;b&gt;Schottky Rectifier, 2 x 6 A (diode)&lt;/b&gt;&lt;br&gt;
+datasheet at &lt;a href="http://www.vishay.com/docs/94135/12cwq10f.pdf"&gt;http://www.vishay.com/docs/94135/12cwq10f.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="DIODE_2" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="D-PAK">
+<connects>
+<connect gate="G$1" pin="A" pad="ANODE$0"/>
+<connect gate="G$1" pin="A1" pad="ANODE$1"/>
+<connect gate="G$1" pin="C" pad="CATHODE"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="WA06X103JTL">
+<gates>
+<gate name="G$1" symbol="RESISTOR" x="0" y="15.24" swaplevel="1"/>
+<gate name="G$2" symbol="RESISTOR" x="0" y="7.62" swaplevel="1"/>
+<gate name="G$3" symbol="RESISTOR" x="0" y="0" swaplevel="1"/>
+<gate name="G$4" symbol="RESISTOR" x="0" y="-7.62" swaplevel="1"/>
+</gates>
+<devices>
+<device name="" package="0603X4">
+<connects>
+<connect gate="G$1" pin="R1" pad="P1"/>
+<connect gate="G$1" pin="R2" pad="P8"/>
+<connect gate="G$2" pin="R1" pad="P2"/>
+<connect gate="G$2" pin="R2" pad="P7"/>
+<connect gate="G$3" pin="R1" pad="P3"/>
+<connect gate="G$3" pin="R2" pad="P6"/>
+<connect gate="G$4" pin="R1" pad="P4"/>
+<connect gate="G$4" pin="R2" pad="P5"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="OP-AMP">
+<gates>
+</gates>
+<devices>
+<device name="">
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="TL974IPWR">
+<description>TI Rail to Rail Quad Op-Amp</description>
+<gates>
+<gate name="G$1" symbol="OP-AMP" x="-2.54" y="22.86" swaplevel="1"/>
+<gate name="G$2" symbol="OP-AMP" x="-2.54" y="10.16" swaplevel="1"/>
+<gate name="G$3" symbol="OP-AMP" x="-2.54" y="-2.54" swaplevel="1"/>
+<gate name="G$4" symbol="OP-AMP" x="-2.54" y="-15.24" swaplevel="1"/>
+<gate name="G$5" symbol="GND" x="-30.48" y="-12.7"/>
+<gate name="G$6" symbol="PWR" x="-30.48" y="-5.08"/>
+</gates>
+<devices>
+<device name="TL974IPWR" package="TSSOP-14">
+<connects>
+<connect gate="G$1" pin="+" pad="P3"/>
+<connect gate="G$1" pin="-" pad="P2"/>
+<connect gate="G$1" pin="OUT" pad="P1"/>
+<connect gate="G$2" pin="+" pad="P5"/>
+<connect gate="G$2" pin="-" pad="P6"/>
+<connect gate="G$2" pin="OUT" pad="P7"/>
+<connect gate="G$3" pin="+" pad="P10"/>
+<connect gate="G$3" pin="-" pad="P9"/>
+<connect gate="G$3" pin="OUT" pad="P8"/>
+<connect gate="G$4" pin="+" pad="P12"/>
+<connect gate="G$4" pin="-" pad="P13"/>
+<connect gate="G$4" pin="OUT" pad="P14"/>
+<connect gate="G$5" pin="GND" pad="P11"/>
+<connect gate="G$6" pin="V+" pad="P4"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MC33204DG" package="SOIC-14">
+<connects>
+<connect gate="G$1" pin="+" pad="P3"/>
+<connect gate="G$1" pin="-" pad="P2"/>
+<connect gate="G$1" pin="OUT" pad="P1"/>
+<connect gate="G$2" pin="+" pad="P5"/>
+<connect gate="G$2" pin="-" pad="P6"/>
+<connect gate="G$2" pin="OUT" pad="P7"/>
+<connect gate="G$3" pin="+" pad="P10"/>
+<connect gate="G$3" pin="-" pad="P9"/>
+<connect gate="G$3" pin="OUT" pad="P8"/>
+<connect gate="G$4" pin="+" pad="P12"/>
+<connect gate="G$4" pin="-" pad="P13"/>
+<connect gate="G$4" pin="OUT" pad="P14"/>
+<connect gate="G$5" pin="GND" pad="P11"/>
+<connect gate="G$6" pin="V+" pad="P4"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="LQH43MN471J03L">
+<gates>
+<gate name="G$1" symbol="INDUCTOR" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="L1812">
+<connects>
+<connect gate="G$1" pin="P$1" pad="1"/>
+<connect gate="G$1" pin="P$2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="38720-7202">
+<description>&lt;b&gt;barrier terminal block&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.molex.com/pdm_docs/sd/387207202_sd.pdf"&gt;http://www.molex.com/pdm_docs/sd/387207202_sd.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="38720-7202" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="38720-7202">
+<connects>
+<connect gate="G$1" pin="+" pad="+"/>
+<connect gate="G$1" pin="-" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="LMZ12002">
+<gates>
+<gate name="G$1" symbol="SIMPLESWITCHER" x="0" y="-5.08"/>
+</gates>
+<devices>
+<device name="" package="TZA07A">
+<connects>
+<connect gate="G$1" pin="CGND" pad="GND"/>
+<connect gate="G$1" pin="EN" pad="P3"/>
+<connect gate="G$1" pin="FB" pad="P6"/>
+<connect gate="G$1" pin="GND" pad="P4"/>
+<connect gate="G$1" pin="RON" pad="P2"/>
+<connect gate="G$1" pin="SS" pad="P5"/>
+<connect gate="G$1" pin="VIN" pad="P1"/>
+<connect gate="G$1" pin="VOUT" pad="P7"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="POWER_CONNECTOR">
+<description>MOLEX 39543-0202
+Terminal Block</description>
+<gates>
+<gate name="G$1" symbol="TERMINAL" x="-7.62" y="-25.4"/>
+</gates>
+<devices>
+<device name="39" package="39543-0202">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$1"/>
+<connect gate="G$1" pin="P$2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="ELFH0225*" package="ELFH0225*">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$2"/>
+<connect gate="G$1" pin="P$2" pad="P$1"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="MMSZ5242BT1G">
+<description>&lt;b&gt;zener diode&lt;/b&gt;&lt;br&gt;
+datasheet at &lt;a href="http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF"&gt;http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="ZENER_DIODE" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="SOD-123">
+<connects>
+<connect gate="G$1" pin="A" pad="ANODE"/>
+<connect gate="G$1" pin="C" pad="CATHODE"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="SERIES_753_RESISTOR_NETWORK">
+<gates>
+<gate name="G$1" symbol="BUSSED_RESISTORS" x="2.54" y="-2.54"/>
+</gates>
+<devices>
+<device name="" package="SURFACEMOUNTRESISTORNETWORK9PIN">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$1"/>
+<connect gate="G$1" pin="P$2" pad="P$2"/>
+<connect gate="G$1" pin="P$3" pad="P$3"/>
+<connect gate="G$1" pin="P$4" pad="P$4"/>
+<connect gate="G$1" pin="P$5" pad="P$5"/>
+<connect gate="G$1" pin="P$6" pad="P$6"/>
+<connect gate="G$1" pin="P$7" pad="P$7"/>
+<connect gate="G$1" pin="P$8" pad="P$8"/>
+<connect gate="G$1" pin="P$9" pad="P$9"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="746X10_RESISTOR_NETWORK">
+<gates>
+<gate name="G$1" symbol="DUAL_BUSSED_RESISTORS" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="746X101">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$1"/>
+<connect gate="G$1" pin="P$10" pad="P$10"/>
+<connect gate="G$1" pin="P$2" pad="P$2"/>
+<connect gate="G$1" pin="P$3" pad="P$3"/>
+<connect gate="G$1" pin="P$4" pad="P$4"/>
+<connect gate="G$1" pin="P$5" pad="P$5"/>
+<connect gate="G$1" pin="P$6" pad="P$6"/>
+<connect gate="G$1" pin="P$7" pad="P$7"/>
+<connect gate="G$1" pin="P$8" pad="P$8"/>
+<connect gate="G$1" pin="P$9" pad="P$9"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="1608_INDUCTOR">
+<gates>
+<gate name="G$1" symbol="INDUCTOR" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="L1608">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$1"/>
+<connect gate="G$1" pin="P$2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="V_REG_TC1262" prefix="IC" uservalue="yes">
+<description>&lt;b&gt;Voltage Regulator&lt;/b&gt;
+data sheet at &lt;a href="http://ww1.microchip.com/downloads/en/DeviceDoc/21373b.pdf"&gt;http://ww1.microchip.com/downloads/en/DeviceDoc/21373b.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="78ADJ" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="SOT223">
+<connects>
+<connect gate="G$1" pin="GND$0" pad="TAB"/>
+<connect gate="G$1" pin="GND$1" pad="2"/>
+<connect gate="G$1" pin="IN" pad="1"/>
+<connect gate="G$1" pin="OUT" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+</devicesets>
+</library>
+</drawing>
+</eagle>
diff --git a/gyro_board/schematic/gen_lists.rb b/gyro_board/schematic/gen_lists.rb
new file mode 100755
index 0000000..9fb988c
--- /dev/null
+++ b/gyro_board/schematic/gen_lists.rb
@@ -0,0 +1,286 @@
+#!/usr/bin/ruby
+#
+#=~ and !~ are regex (not) match operators. they set $1 etc
+
+Suffix = "_1.19.2012"
+PartsLists = ['parts.txt']
+
+Mouser = 1
+Digikey = 2
+Coilcraft = 3
+Analog_com = 4
+Unknown = 5
+
+class Component
+	attr_accessor :desc, :quant, :ordering, :names, :other_names, :maybe
+	def source
+		@source
+	end
+	def finish
+		#puts inspect
+		return false if !desc || !quant || !ordering || !names
+		@other_names ||= []
+		puts "warning: #{names.size + other_names.size} names (#{names.inspect} #{other_names.inspect}) but ordering #{quant} of '#{desc}'" if names.size + other_names.size != quant
+
+		case ordering
+		when /mouser/
+			@source = Mouser
+		when /digikey/
+			@source = Digikey
+		when /coilcraft/
+			@source = Coilcraft
+		when /analog\.com/
+			@source = Analog_com
+		else
+			@source = Unknown
+		end
+
+		true
+	end
+	def main_quant
+		names.size
+	end
+	def desc
+		if @names && @desc && @desc =~ /webench #{@names[0].to_s.downcase} \((.*)\)/
+			$1
+		else
+			@desc
+		end
+	end
+	def bom
+		"#{@names.join(',')}\t#{part_num}\t#{desc}"
+	end
+	def names=(names)
+		@names = expand names
+	end
+	def other_names=(names)
+		@other_names = expand names
+	end
+	def expand(names)
+		r = []
+		names.each do |name|
+			if name =~ /^([a-zA-Z$]*)(\d+)-(\d+)([a-zA-Z$]*)$/
+				$2.to_i.upto($3.to_i) do |num|
+					r.push $1 + num.to_s + $4
+				end
+			else
+				r.push name
+			end
+		end
+		r
+	end
+	def part_num
+		case @source
+		when Mouser
+			`wget '#{ordering}' -O - 2>/dev/null | grep 'Mouser Part #:' -A 3 | grep -v '<' | head -n1`.chomp
+		when Digikey
+			#`wget '#{ordering}' -O - 2>/dev/null | grep 'Digi-Key Part Number' | sed 's/.*\td id=reportpartnumber\(.*\)\<\/td.*/\1/g'`
+			puts "warning: digikey ordering link #{ordering} not recognized" unless ordering =~ /.*\/(.*)\/.*$/
+			$1
+		when Coilcraft
+			puts "warning: coilcraft product page #{ordering} not recognized" unless ordering =~ /^.* (.*)$/
+			$1
+		when Analog_com
+			puts "warning: using hard-coded gyro part number for part(s) #{names.inspect}"
+			"ADXRS450"
+		else
+			puts "warning: couldn't figure out how to get a part number out of #{ordering}"
+		end
+	end
+end
+class Board
+	def name
+		@name
+	end
+	def initialize(name, *sections)
+		@name = name
+		parse sections
+	end
+	def parse(sections)
+		#puts sections.join(", ")
+		PartsLists.each do |f|
+			file = File.open(f)
+			section = ''
+			blank = true # last line blank
+			@comps = []
+			comp = nil
+			file.readlines.each do |l|
+				l = l.chomp
+				case l
+				when /^\/\/ ([a-zA-Z0-9 $.+\-,]*)$/
+					#print 'matched ' + $1
+					if blank
+						section = $1
+					elsif comp
+						names = $1.split(/[, ]+/)
+						if !comp.maybe || sections.include?(names.last)
+							puts "warning: names of '#{$1}' before other stuff" if !comp.ordering || !comp.desc || !comp.quant
+							names.pop if comp.maybe
+							comp.names = names
+						elsif comp.maybe && !section.include?(names.last)
+							names.pop
+							comp.other_names = names
+						end
+					end
+				when /^(\d\d?) x ([a-zA-Z 0-9().\-+\/%"@,]*)$/
+					if !comp && sections.include?(section) || section == 'Common'
+						comp = Component.new
+						comp.maybe = section == 'Common'
+					end
+					if comp
+						puts "warning: desc of '#{$2}' and quant of '#{$1}' after ordering and/or names" if comp.ordering || comp.names
+						comp.desc = $2
+						comp.quant = $1.to_i
+					end
+				when /^\t(analog\.com|http[a-zA-Z 0-9?\/:=%-.]*)$/
+					if comp
+						puts "warning: ordering info of '#{$1}' before desc and/or quant" if !comp.desc || !comp.quant
+						comp.ordering = $1
+					end
+				else
+					puts "warning: no match to #{l}" if !l.empty? && l !~ /^\/\//
+				end
+				blank = l == ''
+				if comp != nil && blank
+					@comps.push comp if comp.finish
+					comp = nil
+				end
+				#puts section
+			end
+			file.close
+		end
+	end
+	def write_bom
+		File.open(@name + Suffix + '/' + @name + '.parts_mapping.txt', 'w+') do |f|
+			@comps.each do |comp|
+				f.puts comp.bom
+			end
+		end
+	end
+	def check # makes sure everything in the parts list is in the bom
+		parsed = []
+		File.open(@name + Suffix + '/' + @name + '.parts.txt') do |f|
+			data = false
+			f.readlines.each do |l|
+				if data && l.chomp.length > 0
+					puts "warning: parts.txt line '#{l.chomp}' not recognized" unless l =~ /^([\d\w$.]*) /
+					parsed.push $1
+				elsif l =~ /^Part.*Value/
+					data = true
+				end
+			end
+		end
+		in_bom = []
+		@comps.each do |comp|
+			comp.names.each do |name|
+				puts "warning: #{name} was in the bom twice" if in_bom.member? name
+				in_bom.push name
+			end
+		end
+		parsed.each do |p|
+			unless in_bom.delete p
+				puts "warning: '#{p}' was found in the parts.txt but not in the bom"
+			end
+		end
+		in_bom.each do |c|
+			puts "warning: '#{c}' was found in the bom but not the parts.txt"
+		end
+	end
+	def add_to_order(source, mult)
+		parts = []
+		@comps.each do |c|
+			if c.source == source
+				parts.push c
+			end
+		end
+		case source
+		when Mouser
+			parts.each do |part|
+				puts "#{part.part_num}|#{part.main_quant * mult}"
+			end
+=begin
+			data = "__LASTFOCUS:
+__EVENTTARGET:
+__EVENTARGUMENT:
+__VIEWSTATE:%2FwEPDwUIMzY5NjMzODcPZBYCZg9kFgQCAQ9kFgICCA8WAh4EaHJlZgUVLi4vY3NzL2Jhc2UtZW4tVVMuY3NzZAIDD2QWAmYPZBYIZg9kFhQCAQ9kFgJmDxYCHgRUZXh0BQ4oODAwKSAzNDYtNjg3M2QCBQ8WAh4LXyFJdGVtQ291bnQCBhYMZg9kFgQCAQ8PFgQeC05hdmlnYXRlVXJsBRQvc2VhcmNoL2RlZmF1bHQuYXNweB8BBQhQcm9kdWN0c2RkAgMPFgIfAgIFFgoCAQ9kFgICAQ8PFgQfAwUVL3NlYXJjaC9kZWZhdWx0LmFzcHg%2FHwEFEVZJRVcgQUxMIFBST0RVQ1RTZGQCAg9kFgICAQ8PFgQfAwUIL25ld2VzdC8fAQUPTkVXRVNUIFByb2R1Y3RzZGQCAw9kFgICAQ8PFgQfAwUFL25ldy8fAQUMTmV3IFByb2R1Y3RzZGQCBA9kFgICAQ8PFgQfAwUPL25ld3RlY2hub2xvZ3kvHwEFEE5ldyBUZWNobm9sb2dpZXNkZAIFD2QWAgIBDw8WBB8DBRkva25vd2xlZGdlL2tub3dsZWRnZS5hc3B4HwEFGFByb2R1Y3QgS25vd2xlZGdlIENlbnRlcmRkAgEPZBYEAgEPDxYEHwMFDi9zdXBwbGllcnBhZ2UvHwEFCVN1cHBsaWVyc2RkAgMPFgIfAgIEFggCAQ9kFgICAQ8PFgQfAwUPL3N1cHBsaWVycGFnZS8%2FHwEFElZJRVcgQUxMIFNVUFBMSUVSU2RkAgIPZBYCAgEPDxYEHwMFDi9uZXdzdXBwbGllcnMvHwEFDU5ldyBTdXBwbGllcnNkZAIDD2QWAgIBDw8WBB8DBRIvc3VwcGxpZXJjYXRlZ29yeS8fAQUdU3VwcGxpZXJzIGJ5IFByb2R1Y3QgQ2F0ZWdvcnlkZAIED2QWAgIBDw8WBB8DBSUvY2F0YWxvZ1JlcXVlc3QvY2F0YWxvZ2Rvd25sb2Fkcy5hc3B4HwEFEURvd25sb2FkIExpbmVjYXJkZGQCAg9kFgQCAQ8PFgQfAwUcL0NhdGFsb2dSZXF1ZXN0L0NhdGFsb2cuYXNweB8BBQdDYXRhbG9nZGQCAw8WAh8CAgYWDAIBD2QWAgIBDw8WBB8DBR0vQ2F0YWxvZ1JlcXVlc3QvQ2F0YWxvZy5hc3B4Px8BBRFWSUVXIEFMTCBDQVRBTE9HU2RkAgIPZBYCAgEPDxYEHwMFEy9jYXRhbG9ndmlld2VyLmFzcHgfAQUQRW5oYW5jZWQgQ2F0YWxvZ2RkAgMPZBYCAgEPDxYEHwMFEy9tb2JpbGVjYXRhbG9nLmFzcHgfAQUeTkVXISBNb2JpbGUgQ29tcGF0aWJsZSBDYXRhbG9nZGQCBA9kFgICAQ8PFgQfAwUiL0NhdGFsb2dSZXF1ZXN0L01vdXNlckNhdGFsb2cuYXNweB8BBQtQREYgQ2F0YWxvZ2RkAgUPZBYCAgEPDxYEHwMFJi9DYXRhbG9nUmVxdWVzdC9DYXRhbG9nRG93bmxvYWRzLmFzcHg%2FHwEFGERvd25sb2FkIHRoZSBQREYgQ2F0YWxvZ2RkAgYPZBYCAgEPDxYEHwMFKy9TdWJzY3JpcHRpb25DZW50ZXIvTWFuYWdlU3Vic2NyaXB0aW9uLmFzcHgfAQUUQ2F0YWxvZyBTdWJzY3JpcHRpb25kZAIDD2QWBAIBDw8WBB8DBRIvc2VydmljZXNhbmR0b29scy8fAQUQU2VydmljZXMgJiBUb29sc2RkAgMPFgIfAgIIFhACAQ9kFgICAQ8PFgQfAwUTL3NlcnZpY2VzYW5kdG9vbHMvPx8BBRlWSUVXIEFMTCBTRVJWSUNFUyAmIFRPT0xTZGQCAg9kFgICAQ8PFgQfAwUdL015TW91c2VyL0FjY291bnRTdW1tYXJ5LmFzcHgfAQUXTG9nIEluIC8gQ3JlYXRlIEFjY291bnRkZAIDD2QWAgIBDw8WBB8DBREvRVpCdXkvRVpCdXkuYXNweB8BBQtFWiBCdXkgVG9vbGRkAgQPZBYCAgEPDxYEHwMFHy9PcmRlckhpc3RvcnkvUHJvamVjdHNWaWV3LmFzcHgfAQUPUHJvamVjdCBNYW5hZ2VyZGQCBQ9kFgICAQ8PFgQfAwUJL2JvbXRvb2wvHwEFFE5FVyEgQk9NIEltcG9ydCBUb29sZGQCBg9kFgICAQ8PFgQfAwUNL2FjY2VsZXJhdG9yLx8BBRJTZWFyY2ggQWNjZWxlcmF0b3JkZAIHD2QWAgIBDw8WBB8DBREvUXVvdGUvUXVvdGUuYXNweB8BBQZRdW90ZXNkZAIID2QWAgIBDw8WBB8DBSwvU3Vic2NyaXB0aW9uQ2VudGVyL01hbmFnZVN1YnNjcmlwdGlvbi5hc3B4Px8BBRJFbWFpbCBTdWJzY3JpcHRpb25kZAIED2QWBAIBDw8WBB8DBSQvT3JkZXJIaXN0b3J5L09yZGVySGlzdG9yeUxvZ2luLmFzcHgfAQUNT3JkZXIgSGlzdG9yeWRkAgMPFgIfAgIGFgwCAQ9kFgICAQ8PFgQfAwUlL09yZGVySGlzdG9yeS9PcmRlckhpc3RvcnlMb2dpbi5hc3B4Px8BBQ1PcmRlciBIaXN0b3J5ZGQCAg9kFgICAQ8PFgQfAwUfL09yZGVySGlzdG9yeS9JbnZvaWNlc1ZpZXcuYXNweB8BBQhJbnZvaWNlc2RkAgMPZBYCAgEPDxYEHwMFHC9PcmRlckhpc3RvcnkvQ2FydHNWaWV3LmFzcHgfAQUSU2F2ZWQvU2hhcmVkIENhcnRzZGQCBA9kFgICAQ8PFgQfAwUbL09yZGVySGlzdG9yeS9Cb21zVmlldy5hc3B4HwEFClNhdmVkIEJPTXNkZAIFD2QWAgIBDw8WBB8DBSAvT3JkZXJIaXN0b3J5L1Byb2plY3RzVmlldy5hc3B4Px8BBQ9Qcm9qZWN0IE1hbmFnZXJkZAIGD2QWAgIBDw8WBB8DBR0vT3JkZXJIaXN0b3J5L1F1b3Rlc1ZpZXcuYXNweB8BBQZRdW90ZXNkZAIFD2QWBAIBDw8WBB8DBQ8vSGVscC9IZWxwLmFzcHgfAQUESGVscGRkAgMPFgIfAgIFFgoCAQ9kFgICAQ8PFgQfAwUQL0hlbHAvSGVscC5hc3B4Px8BBRRWSUVXIEFMTCBIRUxQIFRPUElDU2RkAgIPZBYCAgEPDxYEHwMFCS9hYm91dHVzLx8BBQxBYm91dCBNb3VzZXJkZAIDD2QWAgIBDw8WBB8DBQkvY29udGFjdC8fAQUKQ29udGFjdCBVc2RkAgQPZBYCAgEPDxYEHwMFDi9mZWVkYmFjay5hc3B4HwEFCEZlZWRiYWNrZGQCBQ9kFgICAQ8PFgQfAwUOL2hlbHBwYWdlLyNGQVEfAQUERkFRc2RkAgcPZBYCAgEPDxYCHghJbWFnZVVybAUjfi9pbWFnZXMvaW50ZXJuYXRpb25hbC9mbGFncy91cy5naWZkZAIIDxAPFgYeDURhdGFUZXh0RmllbGQFDExhbmd1YWdlTmFtZR4ORGF0YVZhbHVlRmllbGQFD0xhbmd1YWdlQ3VsdHVyZR4LXyFEYXRhQm91bmRnZBAVAgdFbmdsaXNoCEVzcGHDsW9sFQIFZW4tVVMFZXMtTVgUKwMCZ2cWAWZkAgkPEA8WAh4HVmlzaWJsZWhkZBYAZAILDw8WBh8DBTp%2BL0N1cnJlbmN5U2VsZWN0aW9uLmFzcHg%2FcmVkaXJlY3R1cmw9JTJmRVpCdXklMmZFWkJ1eS5hc3B4HwEFA1VTRB8IaGRkAgwPDxYEHwEFA1VTRB8IZ2RkAg4PDxYEHghDc3NDbGFzc2UeBF8hU0ICAmRkAhEPDxYCHwMFZGh0dHBzOi8vd3d3Lm1vdXNlci5jb20vTXlNb3VzZXIvTW91c2VyTG9naW4uYXNweD9xcz0wZ1owZ3YwS0R3cy9zakF4QTNmTWx5TG85eTRoajJRZ2YlMjUyYi9rWW1VZXkydz1kZAIZD2QWBmYPDxYEHwQFI34vaW1hZ2VzL2ludGVybmF0aW9uYWwvZmxhZ3MvdXMuZ2lmHg1BbHRlcm5hdGVUZXh0BQ1Vbml0ZWQgU3RhdGVzZGQCAg8PFgIfAQUNVW5pdGVkIFN0YXRlc2RkAggPFgIfAgIBFgJmD2QWDAIBDw8WBB4PQ29tbWFuZEFyZ3VtZW50BQRVU0R1HwEFClVTIERvbGxhcnNkZAIDDw8WAh8BZWRkAgUPDxYCHwFlZGQCBw8PFgIfAWVkZAIJDw8WAh8BZWRkAgsPDxYCHwFlZGQCAQ9kFi4CAg8PFgQfAQUOUHJvZHVjdCBGaW5kZXIfAwUVfi9zZWFyY2gvZGVmYXVsdC5hc3B4ZGQCBA8PFgQfAwUVfi9zZWFyY2gvZGVmYXVsdC5hc3B4HwEFEVZJRVcgQUxMIFBST0RVQ1RTZGQCBg8PFgQfAwUbfi9PcHRvZWxlY3Ryb25pY3MvXy9OLTVnNXYvHwEFD09wdG9lbGVjdHJvbmljc2RkAggPDxYEHwMFKX4vT3B0b2VsZWN0cm9uaWNzL0xFRC1MaWdodGluZy9fL04tNzRnOXQvHwEFDExFRCBMaWdodGluZ2RkAgoPDxYEHwMFHn4vRW1iZWRkZWQtU29sdXRpb25zL18vTi01ZzFrLx8BBRJFbWJlZGRlZCBTb2x1dGlvbnNkZAIMDw8WBB8DBRp%2BL1NlbWljb25kdWN0b3JzL18vTi01Z2NiLx8BBQ5TZW1pY29uZHVjdG9yc2RkAg4PDxYEHwMFJH4vRGlzY3JldGUtU2VtaWNvbmR1Y3RvcnMvXy9OLTZocGU3Lx8BBRogLSBEaXNjcmV0ZSBTZW1pY29uZHVjdG9yc2RkAhAPDxYEHwMFIH4vSW50ZWdyYXRlZC1DaXJjdWl0cy9fL04tNmo3M2svHwEFHCAtIEludGVncmF0ZWQgQ2lyY3VpdHMgKElDcylkZAISDw8WBB8DBR5%2BL0RldmVsb3BtZW50LVRvb2xzL18vTi02aHBlcS8fAQUUIC0gRGV2ZWxvcG1lbnQgVG9vbHNkZAIUDw8WBB8DBR5%2BL0NpcmN1aXQtUHJvdGVjdGlvbi9fL04tNWczYy8fAQUSQ2lyY3VpdCBQcm90ZWN0aW9uZGQCFg8PFgQfAwUefi9QYXNzaXZlLUNvbXBvbmVudHMvXy9OLTVnNzMvHwEFElBhc3NpdmUgQ29tcG9uZW50c2RkAhgPDxYEHwMFGX4vSW50ZXJjb25uZWN0cy9fL04tNWczeS8fAQUNSW50ZXJjb25uZWN0c2RkAhoPDxYEHwMFFn4vV2lyZS1DYWJsZS9fL04tNWdnbC8fAQUMV2lyZSAmIENhYmxlZGQCHA8PFgQfAwUdfi9FbGVjdHJvbWVjaGFuaWNhbC9fL04tNWcxeC8fAQURRWxlY3Ryb21lY2hhbmljYWxkZAIeDw8WBB8DBRN%2BL1NlbnNvcnMvXy9OLTVnZWovHwEFB1NlbnNvcnNkZAIgDw8WBB8DBRZ%2BL0VuY2xvc3VyZXMvXy9OLTVnM28vHwEFCkVuY2xvc3VyZXNkZAIiDw8WBB8DBR5%2BL1RoZXJtYWwtTWFuYWdlbWVudC9fL04tNWdmcy8fAQUSVGhlcm1hbCBNYW5hZ2VtZW50ZGQCJA8PFgQfAwURfi9Qb3dlci9fL04tNWdiaC8fAQUFUG93ZXJkZAImDw8WBB8DBRx%2BL1Rlc3QtTWVhc3VyZW1lbnQvXy9OLTVnZjMvHwEFElRlc3QgJiBNZWFzdXJlbWVudGRkAigPDxYEHwMFGn4vVG9vbHMtU3VwcGxpZXMvXy9OLTVnZzEvHwEFEFRvb2xzICYgU3VwcGxpZXNkZAIqDw8WBB8DBQZ%2BL25ldy8eB1Rvb2xUaXAFD05FV0VTVCBQcm9kdWN0c2RkAiwPDxYEHwMFDH4va25vd2xlZGdlLx8NBRhQcm9kdWN0IEtub3dsZWRnZSBDZW50ZXJkZAIuDw8WBB8DBSx%2BL1N1YnNjcmlwdGlvbkNlbnRlci9NYW5hZ2VTdWJzY3JpcHRpb24uYXNweB8NBRNTdWJzY3JpcHRpb24gQ2VudGVyZGQCAg9kFgICBw9kFgICAQ9kFhYCBA8WAh8IaBYCZg8WAh4HY29sc3BhbgUBNBYGZg8PFggfCQUFZXJyb3IfAQUVUXVhbnRpdHkgaXMgcmVxdWlyZWQuHwoCAh8IaGRkAgEPDxYIHwkFBWVycm9yHwEFQUFzdGVyaXNrLCAnKicsIGlzIG5vdCBhIHZhbGlkIGNoYXJhY3RlciBmb3IgQ3VzdG9tZXIgUGFydCBudW1iZXIuHwoCAh8IaGRkAgIPDxYGHwkFBWVycm9yHwoCAh8IaGRkAgUPZBYIZg8WAh4JaW5uZXJodG1sBQIxLmQCAQ8WAh4FYWxpZ24FBmNlbnRlchYCZg8PFgYeCU1heExlbmd0aAJAHgVXaWR0aBsAAAAAAIBhQAEAAAAfCgKAAmRkAgIPFgIfEAUGY2VudGVyFgJmDw8WBh8RAhUfEhsAAAAAAIBhQAEAAAAfCgKAAmRkAgMPFgIfEAUGY2VudGVyFgJmDw8WBh8RAgkfEhsAAAAAAIBLQAEAAAAfCgKAAmRkAgYPFgIfCGgWAmYPFgIfDgUBNBYGZg8PFggfCQUFZXJyb3IfAQUVUXVhbnRpdHkgaXMgcmVxdWlyZWQuHwoCAh8IaGRkAgEPDxYIHwkFBWVycm9yHwEFQUFzdGVyaXNrLCAnKicsIGlzIG5vdCBhIHZhbGlkIGNoYXJhY3RlciBmb3IgQ3VzdG9tZXIgUGFydCBudW1iZXIuHwoCAh8IaGRkAgIPDxYGHwkFBWVycm9yHwoCAh8IaGRkAgcPZBYIZg8WAh8PBQIyLmQCAQ8WAh8QBQZjZW50ZXIWAmYPDxYGHxECQB8SGwAAAAAAgGFAAQAAAB8KAoACZGQCAg8WAh8QBQZjZW50ZXIWAmYPDxYGHxECFR8SGwAAAAAAgGFAAQAAAB8KAoACZGQCAw8WAh8QBQZjZW50ZXIWAmYPDxYGHxECCR8SGwAAAAAAgEtAAQAAAB8KAoACZGQCCA8WAh8IaBYCZg8WAh8OBQE0FgZmDw8WCB8JBQVlcnJvch8BBRVRdWFudGl0eSBpcyByZXF1aXJlZC4fCgICHwhoZGQCAQ8PFggfCQUFZXJyb3IfAQVBQXN0ZXJpc2ssICcqJywgaXMgbm90IGEgdmFsaWQgY2hhcmFjdGVyIGZvciBDdXN0b21lciBQYXJ0IG51bWJlci4fCgICHwhoZGQCAg8PFgYfCQUFZXJyb3IfCgICHwhoZGQCCQ9kFghmDxYCHw8FAjMuZAIBDxYCHxAFBmNlbnRlchYCZg8PFgYfEQJAHxIbAAAAAACAYUABAAAAHwoCgAJkZAICDxYCHxAFBmNlbnRlchYCZg8PFgYfEQIVHxIbAAAAAACAYUABAAAAHwoCgAJkZAIDDxYCHxAFBmNlbnRlchYCZg8PFgYfEQIJHxIbAAAAAACAS0ABAAAAHwoCgAJkZAIKDxYCHwhoFgJmDxYCHw4FATQWBmYPDxYIHwkFBWVycm9yHwEFFVF1YW50aXR5IGlzIHJlcXVpcmVkLh8KAgIfCGhkZAIBDw8WCB8JBQVlcnJvch8BBUFBc3RlcmlzaywgJyonLCBpcyBub3QgYSB2YWxpZCBjaGFyYWN0ZXIgZm9yIEN1c3RvbWVyIFBhcnQgbnVtYmVyLh8KAgIfCGhkZAICDw8WBh8JBQVlcnJvch8KAgIfCGhkZAILD2QWCGYPFgIfDwUCNC5kAgEPFgIfEAUGY2VudGVyFgJmDw8WBh8RAkAfEhsAAAAAAIBhQAEAAAAfCgKAAmRkAgIPFgIfEAUGY2VudGVyFgJmDw8WBh8RAhUfEhsAAAAAAIBhQAEAAAAfCgKAAmRkAgMPFgIfEAUGY2VudGVyFgJmDw8WBh8RAgkfEhsAAAAAAIBLQAEAAAAfCgKAAmRkAgwPFgIfCGgWAmYPFgIfDgUBNBYGZg8PFggfCQUFZXJyb3IfAQUVUXVhbnRpdHkgaXMgcmVxdWlyZWQuHwoCAh8IaGRkAgEPDxYIHwkFBWVycm9yHwEFQUFzdGVyaXNrLCAnKicsIGlzIG5vdCBhIHZhbGlkIGNoYXJhY3RlciBmb3IgQ3VzdG9tZXIgUGFydCBudW1iZXIuHwoCAh8IaGRkAgIPDxYGHwkFBWVycm9yHwoCAh8IaGRkAg0PZBYIZg8WAh8PBQI1LmQCAQ8WAh8QBQZjZW50ZXIWAmYPDxYGHxECQB8SGwAAAAAAgGFAAQAAAB8KAoACZGQCAg8WAh8QBQZjZW50ZXIWAmYPDxYGHxECFR8SGwAAAAAAgGFAAQAAAB8KAoACZGQCAw8WAh8QBQZjZW50ZXIWAmYPDxYGHxECCR8SGwAAAAAAgEtAAQAAAB8KAoACZGQCDg9kFgRmD2QWAgIBDxAPFgIfCGhkZBYAZAIBD2QWAgIBDw8WAh8DBUNqYXZhc2NyaXB0Ok9wZW5XaW5kb3coJy4uL0VzdGltYXRlU2hpcHBpbmcvRXN0aW1hdGVTaGlwcGluZy5hc3B4Jyk7ZGQCAw9kFhICCg8PFgQfAQUIQWJvdXQgVXMfAwUKfi9hYm91dHVzL2RkAgsPDxYEHwMFCn4vY29udGFjdC8fAQUKQ29udGFjdCBVc2RkAgwPDxYEHwMFDH4vcHJlc3Nyb29tLx8BBQpQcmVzcyBSb29tZGQCDQ8PFgQfAwUKfi9xdWFsaXR5Lx8BBQdRdWFsaXR5ZGQCDg8PFgQfAwUQfi9lbnZpcm9ubWVudGFsLx8BBQ1FbnZpcm9ubWVudGFsZGQCDw8PFgQfAwUTfi9lZHVjYXRpb25hbHNhbGVzLx8BBRFFZHVjYXRpb25hbCBTYWxlc2RkAhAPDxYEHwMFCn4vY2FyZWVycy8fAQUQQ2FyZWVycyBAIE1vdXNlcmRkAh4PZBYEAgEPZBYCZg8PZBYCHg1vbmNvbnRleHRtZW51BWZqYXZhc2NyaXB0OmFsZXJ0KCdDb3B5aW5nIFByb2hpYml0ZWQgYnkgTGF3IC0gSEFDS0VSIFNBRkUgaXMgYSBUcmFkZW1hcmsgb2YgU2NhbkFsZXJ0Jyk7IHJldHVybiBmYWxzZTtkAgcPFgIfAQUEMjAxMmQCHw8WAh8BBUM8YSBocmVmPSJodHRwOi8vZGUubW91c2VyLmNvbS9kZS1ERS9QYXJ0cy9pbmRleC5odG1sIj5HZXJtYW55PC9hPiAgZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAgUmY3RsMDAkTmF2SGVhZGVyJGNoa1N0b2NrZWRNb3VzZXJIZWFkZXIFLGN0bDAwJE5hdkhlYWRlciRjaGtSb0hTQ29tcGxpYW50TW91c2VySGVhZGVyCkcEbU7GQmYQFyN%2F0MbXFktX2Zs%3D
+ctl00%24NavHeader%24ddlLanguage:en-US
+ctl00%24NavHeader%24hidSelectedCurrency:-1
+ctl00%24NavHeader%24txt1:
+as_values_046:
+ctl00%24NavHeader%24lblTrdTerm:
+ctl00%24NavHeader%24lblIsNewTerm:
+ctl00$ContentMain$hNumberOfLines:#{parts.length}
+ctl00$ContentMain$txtNumberOfLines:#{parts.length}"
+			i = 0
+			parts.each do |part|
+				puts "#{part} #{i}"
+				i += 1
+				data += "
+ctl00$ContentMain$txtCustomerPartNumber#{i}:#{part.part_num}
+ctl00$ContentMain$txtCustomerPartNumber#{i}:
+ctl00$ContentMain$txtQuantity#{i}:#{part.quant}"
+			end
+			data += "
+ctl00$ContentMain$btnAddToOrder:Add+to+My+Order"
+			puts `wget --header='Cookie: CARTCOOKIEUUID=#{cartcookie}' --post-data='#{data}' 'http://www.mouser.com/EZBuy/EZBuy.aspx' -O -`
+#CARTCOOKIEUUID=7538cfb6-6585-4b71-8c55-0c3e4c409c97
+=end
+		when Digikey
+			parts.each do |part|
+				puts "#{part.main_quant * mult} #{part.part_num}"
+			end
+=begin
+			i = 0
+			data = ''
+			parts.each do |part|
+				data += "
+ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtQty1:#{part.quant}
+ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtPart1:#{part.part_num}
+ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtCref1:"
+			end
+			puts `wget --header='Cookie: TS50f921=#{cartcookie}' --post-data='#{data}' 'http://ordering.digikey.com/Ordering/FastAdd.aspx' -O -`
+#ce4ea562da94963330f72cbbfba2e7552430f47eb9bc54964f2773efa3c65dd840b6a4aeca85ab037895bf25
+=end
+		else
+			puts "error: don't know how to order from source #{source}"
+		end
+	end
+end
+
+boards = [Board.new("power_converter", "regulator", "Power Regulator"),
+	Board.new("gyro_motherboard", "gyro", "Gyro Board", "USB", "Gyro", "Analog and Digital ports", "LDO Power Regulator", "Clock and Microcontroller", "5V switching regulator")]
+if ARGV[0]
+	boards.reject! do |board|
+		board.name != ARGV[0]
+	end
+	ARGV.shift
+end
+if ARGV[0]
+	case ARGV[0]
+	when /^[mM]ouser$/
+		source = Mouser
+	when /^[dD]igikey$/
+		source = Digikey
+	else
+		puts "error: can't parse source '#{ARGV[0]}'"
+		exit
+	end
+end
+boards.each do |board|
+	if source
+		board.add_to_order(source, ARGV[1].to_i)
+	else
+		board.check
+		board.write_bom
+	end
+end
+
+__END__
+#converter = Board.new("power_converter", "regulator", "Power Regulator")
+#converter.check
+#converter.write_bom
+
+gyro = Board.new("gyro_motherboard", "gyro", "Gyro Board", "USB", "Gyro", "Analog and Digital ports", "LDO Power Regulator", "Clock and Microcontroller", "5V switching regulator")
+gyro.check
+gyro.write_bom
+
diff --git a/gyro_board/schematic/gyro_motherboard.brd b/gyro_board/schematic/gyro_motherboard.brd
new file mode 100644
index 0000000..09d052c
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard.brd
Binary files differ
diff --git a/gyro_board/schematic/gyro_motherboard.sch b/gyro_board/schematic/gyro_motherboard.sch
new file mode 100644
index 0000000..939fa87
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard.sch
Binary files differ
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBL b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBL
new file mode 100644
index 0000000..053ee57
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBL
@@ -0,0 +1,5031 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0100*%
+%ADD11R,0.0260X0.0800*%
+%ADD12R,0.0315X0.0472*%
+%ADD13R,0.0472X0.0315*%
+%ADD14R,0.0433X0.0394*%
+%ADD15R,0.0394X0.0433*%
+%ADD16C,0.0740*%
+%ADD17R,0.0740X0.0740*%
+%ADD18R,0.0591X0.0106*%
+%ADD19R,0.0106X0.0591*%
+%ADD20R,0.0866X0.0236*%
+%ADD21R,0.0602X0.0602*%
+%ADD22R,0.1306X0.1306*%
+%ADD23R,0.0197X0.0276*%
+%ADD24R,0.0276X0.0276*%
+%ADD25R,0.0472X0.0787*%
+%ADD26C,0.0827*%
+%ADD27R,0.0480X0.0358*%
+%ADD28R,0.0354X0.0276*%
+%ADD29R,0.0276X0.0354*%
+%ADD30R,0.0880X0.0480*%
+%ADD31R,0.0866X0.1417*%
+%ADD32C,0.0160*%
+%ADD33C,0.0397*%
+%ADD34C,0.0500*%
+%ADD35C,0.0700*%
+%ADD36C,0.0515*%
+%ADD37C,0.0120*%
+%ADD38C,0.0320*%
+%ADD39C,0.0436*%
+%ADD40C,0.0240*%
+%ADD41C,0.0357*%
+D10*
+X004544Y003855D02*
+X005233Y004544D01*
+X005872Y005036D02*
+X005872Y005971D01*
+X006758Y006857D01*
+X008431Y006857D01*
+X008923Y007349D01*
+X010105Y007349D01*
+X011778Y009022D01*
+X012467Y009022D01*
+X012467Y009219D02*
+X011394Y009219D01*
+X011138Y008963D01*
+X010882Y009219D01*
+X010695Y009219D01*
+X011138Y009475D02*
+X011197Y009416D01*
+X012467Y009416D01*
+X012467Y009612D02*
+X012024Y009612D01*
+X011876Y009760D01*
+X011876Y009799D01*
+X011532Y010144D01*
+X011984Y010203D02*
+X011532Y010656D01*
+X011581Y010705D01*
+X011984Y010203D02*
+X012467Y010203D01*
+X012811Y010203D01*
+X014140Y011532D01*
+X014140Y011679D01*
+X016010Y011679D01*
+X016305Y011975D01*
+X016896Y011384D01*
+X018569Y011384D01*
+X018569Y011187D02*
+X017831Y011187D01*
+X017486Y010843D01*
+X017388Y010843D01*
+X017191Y010646D01*
+X017191Y010597D01*
+X017093Y010498D01*
+X017536Y010498D02*
+X017536Y010547D01*
+X017979Y010990D01*
+X018569Y010990D01*
+X018569Y010794D02*
+X018077Y010794D01*
+X017880Y010597D01*
+X017880Y010351D01*
+X017536Y010006D01*
+X017979Y009957D02*
+X018126Y010105D01*
+X018126Y010547D01*
+X018175Y010597D01*
+X018569Y010597D01*
+X018569Y010400D02*
+X020636Y010400D01*
+X021423Y011187D01*
+X021423Y012811D01*
+X021768Y013156D01*
+X022112Y013156D01*
+X020538Y012024D02*
+X020144Y012418D01*
+X018815Y012418D01*
+X018569Y012171D01*
+X018569Y011975D02*
+X019061Y011975D01*
+X019258Y012171D01*
+X019898Y012171D01*
+X020144Y011925D01*
+X020538Y012024D02*
+X020538Y011532D01*
+X019553Y011768D02*
+X019544Y011778D01*
+X018569Y011778D01*
+X017240Y011778D01*
+X016896Y012122D01*
+X016994Y012418D02*
+X018225Y012418D01*
+X020095Y014288D01*
+X025410Y014288D01*
+X025902Y014780D01*
+X025902Y015420D01*
+X024918Y015420D02*
+X024918Y015026D01*
+X024376Y014484D01*
+X019996Y014484D01*
+X018372Y012860D01*
+X017880Y012860D01*
+X017683Y012860D02*
+X017683Y013205D01*
+X017782Y013303D01*
+X018520Y013303D01*
+X019898Y014681D01*
+X023589Y014681D01*
+X023884Y014977D01*
+X023884Y015420D01*
+X022900Y015420D02*
+X022900Y015272D01*
+X022506Y014878D01*
+X019750Y014878D01*
+X018372Y013500D01*
+X017683Y013500D01*
+X017486Y013303D01*
+X017486Y012860D01*
+X017290Y012860D02*
+X017290Y013451D01*
+X017536Y013697D01*
+X018028Y013697D01*
+X018187Y013857D01*
+X018187Y014997D01*
+X016687Y014997D02*
+X016687Y013709D01*
+X017093Y013303D01*
+X017093Y012860D01*
+X016896Y012860D02*
+X016896Y012516D01*
+X016994Y012418D01*
+X016305Y012270D02*
+X016305Y012860D01*
+X016305Y013402D01*
+X016207Y013500D01*
+X016109Y012860D02*
+X016109Y012171D01*
+X016305Y011975D01*
+X016305Y012270D02*
+X016994Y011581D01*
+X018569Y011581D01*
+X019071Y011581D01*
+X019553Y011099D01*
+X019849Y010203D02*
+X018569Y010203D01*
+X018569Y010006D02*
+X019504Y010006D01*
+X021276Y008234D01*
+X021177Y008234D01*
+X020784Y008185D02*
+X020784Y008087D01*
+X021177Y007693D01*
+X021473Y007693D01*
+X021670Y007890D01*
+X023097Y007890D01*
+X023195Y008431D02*
+X023687Y007939D01*
+X023195Y008431D02*
+X021817Y008431D01*
+X020981Y009268D01*
+X020784Y009268D01*
+X019849Y010203D01*
+X019160Y009809D02*
+X020784Y008185D01*
+X019947Y008038D02*
+X019160Y008825D01*
+X018569Y008825D01*
+X018569Y008628D02*
+X019110Y008628D01*
+X019750Y007988D01*
+X019750Y005479D01*
+X020341Y004888D01*
+X023786Y004888D01*
+X024229Y004445D01*
+X024179Y004445D01*
+X024032Y004445D01*
+X023894Y004307D01*
+X023894Y004081D01*
+X023579Y004081D02*
+X023579Y004534D01*
+X023589Y004544D01*
+X023441Y004691D01*
+X020242Y004691D01*
+X019553Y005380D01*
+X019553Y007890D01*
+X019012Y008431D01*
+X018569Y008431D01*
+X018569Y008234D02*
+X017093Y008234D01*
+X016699Y007841D01*
+X016847Y007693D01*
+X016699Y007841D02*
+X016305Y007447D01*
+X016305Y007299D01*
+X016256Y007349D01*
+X014091Y007349D01*
+X013943Y007201D01*
+X013943Y006758D01*
+X013943Y006128D01*
+X014150Y005921D01*
+X013746Y006020D02*
+X013648Y005921D01*
+X013746Y006020D02*
+X013746Y006758D01*
+X013746Y007939D01*
+X013599Y008087D01*
+X013599Y009071D01*
+X013402Y009366D02*
+X013402Y009514D01*
+X013500Y009612D01*
+X013402Y009514D02*
+X013746Y009514D01*
+X013943Y009317D01*
+X013943Y006758D01*
+X013549Y006758D02*
+X013549Y006364D01*
+X013500Y006315D01*
+X012910Y006315D01*
+X012811Y006414D01*
+X012811Y006660D01*
+X013353Y006758D02*
+X013353Y007398D01*
+X012467Y008431D02*
+X012122Y008431D01*
+X009662Y005971D01*
+X009662Y004996D01*
+X009268Y004996D01*
+X009268Y004386D01*
+X008874Y004248D02*
+X008874Y005666D01*
+X009268Y005666D01*
+X008579Y006069D02*
+X008579Y004996D01*
+X008185Y004996D01*
+X008185Y004386D01*
+X008776Y004248D02*
+X008874Y004248D01*
+X007299Y004386D02*
+X007299Y004996D01*
+X006906Y004996D01*
+X006906Y006364D01*
+X007103Y006561D01*
+X008628Y006561D01*
+X009170Y007103D01*
+X010203Y007103D01*
+X011925Y008825D01*
+X012467Y008825D01*
+X012467Y008628D02*
+X012024Y008628D01*
+X010252Y006857D01*
+X009366Y006857D01*
+X008579Y006069D01*
+X006640Y005242D02*
+X006640Y004317D01*
+X006709Y004248D01*
+X006217Y004386D02*
+X006217Y004996D01*
+X005912Y004996D01*
+X005872Y005036D01*
+X006217Y005666D02*
+X006640Y005242D01*
+X011286Y005085D02*
+X011315Y005114D01*
+X011758Y005114D01*
+X012112Y005114D02*
+X012112Y005242D01*
+X011778Y005577D01*
+X012270Y005626D02*
+X012427Y005469D01*
+X012427Y005114D01*
+X012782Y005114D02*
+X012782Y005656D01*
+X012762Y005675D01*
+X013254Y005331D02*
+X013520Y005065D01*
+X013776Y005065D01*
+X014130Y005065D02*
+X014130Y004878D01*
+X014042Y004790D01*
+X013205Y004790D01*
+X013776Y004514D02*
+X013776Y004268D01*
+X013894Y004150D01*
+X013894Y002000D01*
+X014042Y001853D01*
+X011729Y002329D02*
+X011729Y004435D01*
+X013776Y004514D02*
+X014130Y004514D01*
+X014445Y004514D01*
+X014799Y004514D01*
+X014628Y004790D02*
+X015321Y004790D01*
+X015518Y005183D02*
+X015715Y004986D01*
+X015518Y005183D02*
+X014918Y005183D01*
+X014799Y005065D01*
+X014628Y004790D02*
+X014445Y004972D01*
+X014445Y005065D01*
+X015656Y005971D02*
+X016000Y006315D01*
+X016207Y006315D01*
+X016305Y006414D01*
+X016305Y006758D01*
+X016305Y007299D01*
+X016502Y007152D02*
+X016699Y007349D01*
+X017388Y007349D01*
+X018077Y008038D01*
+X018569Y008038D01*
+X018569Y007841D02*
+X019110Y007841D01*
+X019357Y007595D01*
+X019357Y005282D01*
+X020144Y004494D01*
+X020538Y004494D01*
+X020784Y004248D01*
+X020951Y004081D01*
+X023225Y004081D01*
+X023579Y003530D02*
+X023589Y003530D01*
+X023884Y003234D01*
+X023884Y001902D01*
+X023933Y001853D01*
+X024376Y003953D02*
+X024494Y003953D01*
+X024524Y003953D01*
+X025065Y003953D01*
+X025065Y004544D01*
+X024918Y004691D01*
+X024229Y004691D01*
+X023835Y005085D01*
+X020439Y005085D01*
+X019947Y005577D01*
+X019947Y008038D01*
+X020117Y007398D02*
+X021030Y007398D01*
+X021030Y005675D01*
+X020117Y005675D01*
+X020117Y007398D01*
+X020117Y007357D02*
+X021030Y007357D01*
+X021030Y007259D02*
+X020117Y007259D01*
+X020117Y007160D02*
+X021030Y007160D01*
+X021030Y007062D02*
+X020117Y007062D01*
+X020117Y006963D02*
+X021030Y006963D01*
+X021030Y006864D02*
+X020117Y006864D01*
+X020117Y006766D02*
+X021030Y006766D01*
+X021030Y006667D02*
+X020117Y006667D01*
+X020117Y006569D02*
+X021030Y006569D01*
+X021030Y006470D02*
+X020117Y006470D01*
+X020117Y006372D02*
+X021030Y006372D01*
+X021030Y006273D02*
+X020117Y006273D01*
+X020117Y006175D02*
+X021030Y006175D01*
+X021030Y006076D02*
+X020117Y006076D01*
+X020117Y005978D02*
+X021030Y005978D01*
+X021030Y005879D02*
+X020117Y005879D01*
+X020117Y005780D02*
+X021030Y005780D01*
+X021030Y005682D02*
+X020117Y005682D01*
+X019160Y005183D02*
+X019652Y004691D01*
+X019652Y004179D01*
+X019425Y004179D01*
+X019652Y004179D02*
+X020114Y004179D01*
+X020439Y003855D01*
+X020292Y003510D02*
+X020882Y003510D01*
+X020292Y003510D02*
+X019898Y003904D01*
+X019160Y003904D01*
+X019110Y003953D01*
+X019110Y004219D01*
+X019110Y004937D01*
+X018569Y005479D01*
+X018569Y007447D01*
+X018569Y007644D02*
+X019012Y007644D01*
+X019160Y007496D01*
+X019160Y005183D01*
+X018717Y004986D02*
+X017880Y005823D01*
+X017880Y006758D01*
+X017683Y006758D02*
+X017683Y005577D01*
+X018372Y004888D01*
+X018372Y004209D01*
+X018402Y004179D01*
+X018717Y004219D02*
+X018717Y004593D01*
+X018717Y004986D01*
+X018372Y004888D02*
+X018372Y004691D01*
+X017929Y004839D02*
+X017752Y004662D01*
+X017752Y004179D01*
+X017398Y004179D02*
+X017398Y004799D01*
+X017462Y004863D01*
+X017290Y005036D01*
+X017290Y006758D01*
+X017486Y006758D02*
+X017486Y005479D01*
+X017929Y005036D01*
+X017929Y004839D01*
+X017462Y004863D02*
+X017437Y004888D01*
+X017083Y004504D02*
+X016945Y004642D01*
+X016945Y005823D01*
+X017093Y005971D01*
+X017093Y006758D01*
+X016896Y006758D02*
+X016896Y006118D01*
+X016576Y005798D01*
+X016576Y004863D01*
+X016453Y004740D01*
+X016428Y004716D01*
+X016428Y004371D01*
+X016620Y004179D01*
+X016729Y004179D01*
+X017083Y004179D02*
+X017083Y004504D01*
+X017083Y003628D02*
+X016729Y003628D01*
+X017083Y003628D02*
+X017398Y003628D01*
+X017752Y003628D01*
+X017979Y003401D01*
+X017979Y001853D01*
+X017752Y003628D02*
+X018402Y003628D01*
+X018756Y003628D01*
+X019071Y003628D01*
+X019425Y003628D01*
+X019071Y004179D02*
+X019110Y004219D01*
+X018756Y004179D02*
+X018717Y004219D01*
+X016502Y006315D02*
+X016502Y006758D01*
+X016502Y007152D01*
+X017929Y008825D02*
+X017929Y008923D01*
+X018225Y009219D01*
+X018569Y009219D01*
+X018569Y009416D02*
+X017929Y009416D01*
+X017782Y009268D01*
+X018569Y009022D02*
+X018963Y009022D01*
+X019160Y009219D01*
+X018569Y009612D02*
+X014534Y009612D01*
+X014042Y010105D01*
+X013205Y010105D01*
+X013057Y009957D01*
+X012959Y010597D02*
+X012467Y010597D01*
+X012467Y010990D02*
+X012860Y010990D01*
+X012959Y011089D01*
+X012959Y011483D01*
+X013205Y011729D01*
+X013549Y011729D01*
+X013303Y011286D02*
+X013254Y011286D01*
+X013254Y010892D01*
+X012959Y010597D01*
+X012467Y011581D02*
+X011679Y011581D01*
+X011433Y011335D01*
+X010892Y011335D01*
+X010252Y010695D01*
+X009721Y010695D01*
+X009416Y010695D01*
+X009268Y010547D01*
+X009721Y010695D02*
+X009809Y010607D01*
+X009809Y011040D02*
+X009425Y011040D01*
+X009376Y011089D01*
+X009809Y011040D02*
+X010252Y011040D01*
+X010744Y011532D01*
+X011335Y011532D01*
+X011581Y011778D01*
+X012467Y011778D01*
+X012467Y011975D02*
+X011483Y011975D01*
+X011384Y012073D01*
+X011729Y012171D02*
+X012467Y012171D01*
+X012959Y012221D02*
+X011236Y013943D01*
+X011236Y014347D01*
+X011236Y015016D02*
+X011236Y015961D01*
+X011028Y016170D01*
+X009406Y016170D01*
+X009406Y016670D02*
+X011315Y016670D01*
+X012073Y015912D01*
+X012073Y015016D01*
+X012319Y015016D01*
+X012073Y014347D02*
+X012703Y014347D01*
+X012703Y014386D01*
+X012073Y014347D02*
+X012073Y013353D01*
+X013008Y012418D01*
+X013697Y012418D01*
+X013746Y012467D01*
+X013746Y012860D01*
+X013549Y012860D02*
+X013549Y013549D01*
+X013549Y013992D01*
+X013904Y014347D01*
+X014042Y014347D01*
+X013412Y014347D01*
+X013412Y014386D01*
+X014042Y013835D02*
+X014140Y013736D01*
+X014140Y012860D01*
+X014140Y011679D01*
+X013796Y012221D02*
+X012959Y012221D01*
+X013796Y012221D02*
+X013943Y012368D01*
+X013943Y012860D01*
+X014337Y012860D02*
+X014337Y013254D01*
+X014790Y013707D01*
+X014790Y014042D01*
+X015321Y013904D02*
+X015459Y014042D01*
+X015321Y013904D02*
+X015321Y013549D01*
+X015321Y012860D02*
+X015321Y012171D01*
+X014731Y012171D02*
+X014731Y012860D01*
+X011729Y012171D02*
+X011187Y012713D01*
+X010006Y012713D01*
+X009695Y012402D01*
+X009695Y012171D01*
+X006610Y013402D02*
+X004544Y011335D01*
+X002915Y011335D01*
+X002915Y011917D01*
+X002163Y011917D01*
+X002163Y012017D01*
+X002915Y012017D01*
+X002915Y012639D01*
+X002905Y012677D01*
+X002885Y012712D01*
+X002857Y012740D01*
+X002823Y012759D01*
+X002785Y012769D01*
+X002162Y012769D01*
+X002162Y012017D01*
+X002062Y012017D01*
+X002062Y011917D01*
+X001310Y011917D01*
+X001310Y011335D01*
+X000412Y011335D01*
+X000412Y017829D01*
+X006610Y017829D01*
+X006610Y013402D01*
+X006577Y013368D02*
+X004910Y013368D01*
+X004910Y013270D02*
+X006478Y013270D01*
+X006380Y013171D02*
+X004886Y013171D01*
+X004910Y013195D02*
+X004839Y013124D01*
+X004346Y013124D01*
+X004276Y013195D01*
+X004276Y013291D01*
+X003331Y013291D01*
+X003232Y013390D01*
+X003199Y013424D01*
+X002667Y013424D01*
+X002597Y013494D01*
+X002597Y014196D01*
+X002667Y014266D01*
+X003369Y014266D01*
+X003439Y014196D01*
+X003439Y013664D01*
+X003472Y013631D01*
+X004276Y013631D01*
+X004276Y013727D01*
+X004328Y013779D01*
+X004304Y013794D01*
+X004276Y013821D01*
+X004256Y013856D01*
+X004246Y013894D01*
+X004246Y014082D01*
+X004544Y014082D01*
+X004544Y014179D01*
+X004544Y014325D01*
+X004544Y014642D01*
+X004641Y014642D01*
+X004641Y014325D01*
+X004641Y014179D01*
+X004544Y014179D01*
+X004246Y014179D01*
+X004246Y014366D01*
+X004254Y014398D01*
+X004074Y014217D01*
+X003974Y014118D01*
+X003728Y014118D01*
+X003587Y014118D01*
+X003489Y014216D01*
+X003389Y014316D01*
+X003389Y014428D01*
+X003369Y014408D01*
+X002667Y014408D01*
+X002597Y014478D01*
+X002597Y015180D01*
+X002667Y015250D01*
+X002953Y015250D01*
+X003144Y015442D01*
+X003285Y015442D01*
+X003531Y015442D01*
+X003631Y015342D01*
+X003729Y015244D01*
+X003729Y015103D01*
+X003729Y014458D01*
+X003833Y014458D01*
+X003940Y014565D01*
+X003940Y015792D01*
+X003844Y015792D01*
+X003774Y015862D01*
+X003774Y016355D01*
+X003844Y016425D01*
+X004377Y016425D01*
+X004445Y016357D01*
+X004514Y016425D01*
+X005046Y016425D01*
+X005116Y016355D01*
+X005116Y016339D01*
+X005233Y016339D01*
+X005301Y016408D01*
+X006266Y016408D01*
+X006337Y016337D01*
+X006337Y016002D01*
+X006266Y015931D01*
+X005301Y015931D01*
+X005233Y016000D01*
+X005116Y016000D01*
+X005116Y015862D01*
+X005046Y015792D01*
+X004514Y015792D01*
+X004445Y015860D01*
+X004377Y015792D01*
+X004280Y015792D01*
+X004280Y015631D01*
+X004346Y015697D01*
+X004839Y015697D01*
+X004910Y015627D01*
+X004910Y015339D01*
+X005233Y015339D01*
+X005301Y015408D01*
+X005614Y015408D01*
+X005614Y015431D01*
+X005301Y015431D01*
+X005231Y015502D01*
+X005231Y015837D01*
+X005301Y015908D01*
+X006266Y015908D01*
+X006337Y015837D01*
+X006337Y015502D01*
+X006266Y015431D01*
+X005954Y015431D01*
+X005954Y015408D01*
+X006266Y015408D01*
+X006337Y015337D01*
+X006337Y015002D01*
+X006266Y014931D01*
+X005954Y014931D01*
+X005954Y014908D01*
+X006266Y014908D01*
+X006337Y014837D01*
+X006337Y014502D01*
+X006266Y014431D01*
+X006259Y014431D01*
+X006275Y014427D01*
+X006309Y014408D01*
+X006337Y014380D01*
+X006356Y014346D01*
+X006367Y014307D01*
+X006367Y014179D01*
+X005793Y014179D01*
+X005793Y014160D01*
+X006367Y014160D01*
+X006367Y014032D01*
+X006356Y013994D01*
+X006337Y013959D01*
+X006309Y013931D01*
+X006275Y013912D01*
+X006259Y013908D01*
+X006266Y013908D01*
+X006337Y013837D01*
+X006337Y013502D01*
+X006266Y013431D01*
+X005301Y013431D01*
+X005233Y013500D01*
+X004910Y013500D01*
+X004910Y013195D01*
+X004910Y013467D02*
+X005265Y013467D01*
+X005233Y013839D02*
+X004920Y013839D01*
+X004929Y013856D01*
+X004940Y013894D01*
+X004940Y014082D01*
+X004641Y014082D01*
+X004641Y014179D01*
+X004940Y014179D01*
+X004940Y014366D01*
+X004929Y014405D01*
+X004926Y014411D01*
+X004929Y014417D01*
+X004940Y014455D01*
+X004940Y014643D01*
+X004641Y014643D01*
+X004641Y014740D01*
+X004940Y014740D01*
+X004940Y014927D01*
+X004929Y014966D01*
+X004910Y015000D01*
+X005233Y015000D01*
+X005301Y014931D01*
+X005614Y014931D01*
+X005614Y014908D01*
+X005301Y014908D01*
+X005231Y014837D01*
+X005231Y014502D01*
+X005301Y014431D01*
+X005308Y014431D01*
+X005293Y014427D01*
+X005259Y014408D01*
+X005231Y014380D01*
+X005211Y014346D01*
+X005201Y014307D01*
+X005201Y014179D01*
+X005774Y014179D01*
+X005774Y014160D01*
+X005201Y014160D01*
+X005201Y014032D01*
+X005211Y013994D01*
+X005231Y013959D01*
+X005259Y013931D01*
+X005293Y013912D01*
+X005308Y013908D01*
+X005301Y013908D01*
+X005233Y013839D01*
+X005254Y013861D02*
+X004931Y013861D01*
+X004940Y013960D02*
+X005230Y013960D01*
+X005201Y014058D02*
+X004940Y014058D01*
+X004940Y014255D02*
+X005201Y014255D01*
+X005201Y014157D02*
+X004641Y014157D01*
+X004544Y014157D02*
+X004013Y014157D01*
+X004112Y014255D02*
+X004246Y014255D01*
+X004246Y014354D02*
+X004210Y014354D01*
+X004110Y014494D02*
+X003904Y014288D01*
+X003658Y014288D01*
+X003559Y014386D01*
+X003559Y015173D01*
+X003461Y015272D01*
+X003215Y015272D01*
+X003018Y015075D01*
+X003018Y014829D01*
+X002597Y014846D02*
+X002159Y014846D01*
+X002159Y014748D02*
+X002597Y014748D01*
+X002597Y014649D02*
+X002159Y014649D01*
+X002159Y014551D02*
+X002597Y014551D01*
+X002623Y014452D02*
+X002134Y014452D01*
+X002159Y014478D02*
+X002159Y014960D01*
+X002695Y015496D01*
+X003334Y015496D01*
+X003434Y015595D01*
+X003434Y015595D01*
+X003630Y015791D01*
+X003729Y015890D01*
+X003729Y016579D01*
+X003811Y016661D01*
+X003844Y016628D01*
+X004377Y016628D01*
+X004445Y016697D01*
+X004514Y016628D01*
+X004856Y016628D01*
+X004885Y016599D01*
+X004985Y016500D01*
+X005233Y016500D01*
+X005301Y016431D01*
+X006266Y016431D01*
+X006337Y016502D01*
+X006337Y016837D01*
+X006266Y016908D01*
+X006259Y016908D01*
+X006275Y016912D01*
+X006309Y016931D01*
+X006337Y016959D01*
+X006356Y016994D01*
+X006367Y017032D01*
+X006367Y017160D01*
+X005793Y017160D01*
+X005793Y017179D01*
+X005775Y017179D01*
+X005775Y017438D01*
+X005331Y017438D01*
+X005293Y017427D01*
+X005259Y017408D01*
+X005231Y017380D01*
+X005211Y017346D01*
+X005201Y017307D01*
+X005201Y017179D01*
+X005774Y017179D01*
+X005774Y017160D01*
+X005201Y017160D01*
+X005201Y017032D01*
+X005211Y016994D01*
+X005231Y016959D01*
+X005259Y016931D01*
+X005293Y016912D01*
+X005308Y016908D01*
+X005301Y016908D01*
+X005233Y016839D01*
+X005126Y016839D01*
+X005116Y016849D01*
+X005116Y017192D01*
+X005046Y017262D01*
+X004514Y017262D01*
+X004445Y017194D01*
+X004377Y017262D01*
+X003844Y017262D01*
+X003774Y017192D01*
+X003774Y017105D01*
+X003685Y017016D01*
+X003389Y016720D01*
+X003389Y016579D01*
+X003389Y016031D01*
+X003194Y015836D01*
+X002554Y015836D01*
+X002454Y015736D01*
+X001968Y015250D01*
+X001388Y015250D01*
+X001317Y015180D01*
+X001317Y014478D01*
+X001388Y014408D01*
+X002089Y014408D01*
+X002159Y014478D01*
+X002097Y014286D02*
+X002059Y014296D01*
+X001779Y014296D01*
+X001779Y013886D01*
+X001698Y013886D01*
+X001698Y014296D01*
+X001418Y014296D01*
+X001379Y014286D01*
+X001345Y014266D01*
+X001317Y014238D01*
+X001298Y014204D01*
+X001287Y014166D01*
+X001287Y013885D01*
+X001698Y013885D01*
+X001698Y013804D01*
+X001779Y013804D01*
+X001779Y013394D01*
+X002059Y013394D01*
+X002097Y013404D01*
+X002132Y013424D01*
+X002160Y013451D01*
+X002179Y013486D01*
+X002189Y013524D01*
+X002189Y013804D01*
+X001779Y013804D01*
+X001779Y013885D01*
+X002189Y013885D01*
+X002189Y014166D01*
+X002179Y014204D01*
+X002160Y014238D01*
+X002132Y014266D01*
+X002097Y014286D01*
+X002142Y014255D02*
+X002657Y014255D01*
+X002597Y014157D02*
+X002189Y014157D01*
+X002189Y014058D02*
+X002597Y014058D01*
+X002597Y013960D02*
+X002189Y013960D01*
+X002189Y013762D02*
+X002597Y013762D01*
+X002597Y013664D02*
+X002189Y013664D01*
+X002189Y013565D02*
+X002597Y013565D01*
+X002624Y013467D02*
+X002168Y013467D01*
+X001779Y013467D02*
+X001698Y013467D01*
+X001698Y013394D02*
+X001418Y013394D01*
+X001379Y013404D01*
+X001345Y013424D01*
+X001317Y013451D01*
+X001298Y013486D01*
+X001287Y013524D01*
+X001287Y013804D01*
+X001698Y013804D01*
+X001698Y013394D01*
+X001698Y013565D02*
+X001779Y013565D01*
+X001779Y013664D02*
+X001698Y013664D01*
+X001698Y013762D02*
+X001779Y013762D01*
+X001779Y013861D02*
+X002597Y013861D01*
+X003018Y013845D02*
+X003402Y013461D01*
+X004593Y013461D01*
+X004801Y013670D01*
+X005784Y013670D01*
+X006337Y013664D02*
+X006610Y013664D01*
+X006610Y013762D02*
+X006337Y013762D01*
+X006313Y013861D02*
+X006610Y013861D01*
+X006610Y013960D02*
+X006337Y013960D01*
+X006367Y014058D02*
+X006610Y014058D01*
+X006610Y014157D02*
+X006367Y014157D01*
+X006367Y014255D02*
+X006610Y014255D01*
+X006610Y014354D02*
+X006352Y014354D01*
+X006287Y014452D02*
+X006610Y014452D01*
+X006610Y014551D02*
+X006337Y014551D01*
+X006337Y014649D02*
+X006610Y014649D01*
+X006610Y014748D02*
+X006337Y014748D01*
+X006328Y014846D02*
+X006610Y014846D01*
+X006610Y014945D02*
+X006280Y014945D01*
+X006337Y015044D02*
+X006610Y015044D01*
+X006610Y015142D02*
+X006337Y015142D01*
+X006337Y015241D02*
+X006610Y015241D01*
+X006610Y015339D02*
+X006335Y015339D01*
+X006273Y015438D02*
+X006610Y015438D01*
+X006610Y015536D02*
+X006337Y015536D01*
+X006337Y015635D02*
+X006610Y015635D01*
+X006610Y015733D02*
+X006337Y015733D01*
+X006337Y015832D02*
+X006610Y015832D01*
+X006610Y015930D02*
+X005116Y015930D01*
+X005086Y015832D02*
+X005231Y015832D01*
+X005231Y015733D02*
+X004280Y015733D01*
+X004280Y015635D02*
+X004284Y015635D01*
+X004417Y015832D02*
+X004473Y015832D01*
+X004780Y016109D02*
+X004841Y016170D01*
+X005784Y016170D01*
+X005784Y015670D02*
+X005784Y015170D01*
+X004784Y015170D01*
+X004593Y015360D01*
+X004910Y015438D02*
+X005295Y015438D01*
+X005231Y015536D02*
+X004910Y015536D01*
+X004901Y015635D02*
+X005231Y015635D01*
+X005784Y015170D02*
+X005784Y014670D01*
+X005280Y014452D02*
+X004939Y014452D01*
+X004940Y014354D02*
+X005216Y014354D01*
+X005231Y014551D02*
+X004940Y014551D01*
+X004940Y014748D02*
+X005231Y014748D01*
+X005231Y014649D02*
+X004641Y014649D01*
+X004641Y014551D02*
+X004544Y014551D01*
+X004544Y014452D02*
+X004641Y014452D01*
+X004641Y014354D02*
+X004544Y014354D01*
+X004544Y014255D02*
+X004641Y014255D01*
+X004246Y014058D02*
+X003439Y014058D01*
+X003439Y013960D02*
+X004246Y013960D01*
+X004255Y013861D02*
+X003439Y013861D01*
+X003439Y013762D02*
+X004311Y013762D01*
+X004276Y013664D02*
+X003439Y013664D01*
+X003254Y013368D02*
+X000412Y013368D01*
+X000412Y013270D02*
+X004276Y013270D01*
+X004299Y013171D02*
+X000412Y013171D01*
+X000412Y013073D02*
+X006281Y013073D01*
+X006183Y012974D02*
+X000412Y012974D01*
+X000412Y012876D02*
+X006084Y012876D01*
+X005986Y012777D02*
+X000412Y012777D01*
+X000412Y012679D02*
+X001321Y012679D01*
+X001320Y012677D02*
+X001310Y012639D01*
+X001310Y012017D01*
+X002062Y012017D01*
+X002062Y012769D01*
+X001440Y012769D01*
+X001402Y012759D01*
+X001368Y012740D01*
+X001340Y012712D01*
+X001320Y012677D01*
+X001310Y012580D02*
+X000412Y012580D01*
+X000412Y012481D02*
+X001310Y012481D01*
+X001310Y012383D02*
+X000412Y012383D01*
+X000412Y012284D02*
+X001310Y012284D01*
+X001310Y012186D02*
+X000412Y012186D01*
+X000412Y012087D02*
+X001310Y012087D01*
+X001310Y011890D02*
+X000412Y011890D01*
+X000412Y011792D02*
+X001310Y011792D01*
+X001310Y011693D02*
+X000412Y011693D01*
+X000412Y011595D02*
+X001310Y011595D01*
+X001310Y011496D02*
+X000412Y011496D01*
+X000412Y011397D02*
+X001310Y011397D01*
+X002062Y011989D02*
+X000412Y011989D01*
+X002062Y012087D02*
+X002162Y012087D01*
+X002163Y011989D02*
+X005197Y011989D01*
+X005099Y011890D02*
+X002915Y011890D01*
+X002915Y011792D02*
+X005000Y011792D01*
+X004902Y011693D02*
+X002915Y011693D01*
+X002915Y011595D02*
+X004803Y011595D01*
+X004705Y011496D02*
+X002915Y011496D01*
+X002915Y011397D02*
+X004606Y011397D01*
+X005296Y012087D02*
+X002915Y012087D01*
+X002915Y012186D02*
+X005394Y012186D01*
+X005493Y012284D02*
+X002915Y012284D01*
+X002915Y012383D02*
+X005592Y012383D01*
+X005690Y012481D02*
+X002915Y012481D01*
+X002915Y012580D02*
+X005789Y012580D01*
+X005887Y012679D02*
+X002904Y012679D01*
+X002162Y012679D02*
+X002062Y012679D01*
+X002062Y012580D02*
+X002162Y012580D01*
+X002162Y012481D02*
+X002062Y012481D01*
+X002062Y012383D02*
+X002162Y012383D01*
+X002162Y012284D02*
+X002062Y012284D01*
+X002062Y012186D02*
+X002162Y012186D01*
+X001308Y013467D02*
+X000412Y013467D01*
+X000412Y013565D02*
+X001287Y013565D01*
+X001287Y013664D02*
+X000412Y013664D01*
+X000412Y013762D02*
+X001287Y013762D01*
+X001287Y013960D02*
+X000412Y013960D01*
+X000412Y014058D02*
+X001287Y014058D01*
+X001287Y014157D02*
+X000412Y014157D01*
+X000412Y014255D02*
+X001335Y014255D01*
+X001343Y014452D02*
+X000412Y014452D01*
+X000412Y014354D02*
+X003389Y014354D01*
+X003379Y014255D02*
+X003450Y014255D01*
+X003439Y014157D02*
+X003548Y014157D01*
+X003729Y014551D02*
+X003927Y014551D01*
+X003940Y014649D02*
+X003729Y014649D01*
+X003729Y014748D02*
+X003940Y014748D01*
+X003940Y014846D02*
+X003729Y014846D01*
+X003729Y014945D02*
+X003940Y014945D01*
+X003940Y015044D02*
+X003729Y015044D01*
+X003729Y015142D02*
+X003940Y015142D01*
+X003940Y015241D02*
+X003729Y015241D01*
+X003634Y015339D02*
+X003940Y015339D01*
+X003940Y015438D02*
+X003535Y015438D01*
+X003375Y015536D02*
+X003940Y015536D01*
+X003940Y015635D02*
+X003474Y015635D01*
+X003572Y015733D02*
+X003940Y015733D01*
+X003804Y015832D02*
+X003671Y015832D01*
+X003630Y015791D02*
+X003630Y015791D01*
+X003729Y015930D02*
+X003774Y015930D01*
+X003774Y016029D02*
+X003729Y016029D01*
+X003729Y016128D02*
+X003774Y016128D01*
+X003774Y016226D02*
+X003729Y016226D01*
+X003729Y016325D02*
+X003774Y016325D01*
+X003729Y016423D02*
+X003842Y016423D01*
+X003729Y016522D02*
+X004963Y016522D01*
+X005048Y016423D02*
+X006610Y016423D01*
+X006610Y016325D02*
+X006337Y016325D01*
+X006337Y016226D02*
+X006610Y016226D01*
+X006610Y016128D02*
+X006337Y016128D01*
+X006337Y016029D02*
+X006610Y016029D01*
+X006610Y016522D02*
+X006337Y016522D01*
+X006337Y016620D02*
+X006610Y016620D01*
+X006610Y016719D02*
+X006337Y016719D01*
+X006337Y016817D02*
+X006610Y016817D01*
+X006610Y016916D02*
+X006282Y016916D01*
+X006362Y017014D02*
+X006610Y017014D01*
+X006610Y017113D02*
+X006367Y017113D01*
+X006367Y017179D02*
+X006367Y017307D01*
+X006356Y017346D01*
+X006337Y017380D01*
+X006309Y017408D01*
+X006275Y017427D01*
+X006236Y017438D01*
+X005793Y017438D01*
+X005793Y017179D01*
+X006367Y017179D01*
+X006367Y017211D02*
+X006610Y017211D01*
+X006610Y017310D02*
+X006366Y017310D01*
+X006307Y017409D02*
+X006610Y017409D01*
+X006610Y017507D02*
+X002794Y017507D01*
+X002785Y017510D02*
+X002162Y017510D01*
+X002162Y016757D01*
+X002062Y016757D01*
+X002062Y016657D01*
+X001310Y016657D01*
+X001310Y016034D01*
+X001320Y015996D01*
+X001340Y015962D01*
+X001368Y015934D01*
+X001402Y015914D01*
+X001440Y015904D01*
+X002062Y015904D01*
+X002062Y016657D01*
+X002162Y016657D01*
+X002162Y015904D01*
+X002785Y015904D01*
+X002823Y015914D01*
+X002857Y015934D01*
+X002885Y015962D01*
+X002905Y015996D01*
+X002915Y016034D01*
+X002915Y016657D01*
+X002163Y016657D01*
+X002163Y016757D01*
+X002915Y016757D01*
+X002915Y017379D01*
+X002905Y017418D01*
+X002885Y017452D01*
+X002857Y017480D01*
+X002823Y017499D01*
+X002785Y017510D01*
+X002907Y017409D02*
+X005260Y017409D01*
+X005201Y017310D02*
+X002915Y017310D01*
+X002915Y017211D02*
+X003794Y017211D01*
+X003774Y017113D02*
+X002915Y017113D01*
+X002915Y017014D02*
+X003683Y017014D01*
+X003585Y016916D02*
+X002915Y016916D01*
+X002915Y016817D02*
+X003486Y016817D01*
+X003389Y016719D02*
+X002163Y016719D01*
+X002162Y016817D02*
+X002062Y016817D01*
+X002062Y016757D02*
+X002062Y017510D01*
+X001440Y017510D01*
+X001402Y017499D01*
+X001368Y017480D01*
+X001340Y017452D01*
+X001320Y017418D01*
+X001310Y017379D01*
+X001310Y016757D01*
+X002062Y016757D01*
+X002062Y016719D02*
+X000412Y016719D01*
+X000412Y016817D02*
+X001310Y016817D01*
+X001310Y016916D02*
+X000412Y016916D01*
+X000412Y017014D02*
+X001310Y017014D01*
+X001310Y017113D02*
+X000412Y017113D01*
+X000412Y017211D02*
+X001310Y017211D01*
+X001310Y017310D02*
+X000412Y017310D01*
+X000412Y017409D02*
+X001318Y017409D01*
+X001431Y017507D02*
+X000412Y017507D01*
+X000412Y017606D02*
+X006610Y017606D01*
+X006610Y017704D02*
+X000412Y017704D01*
+X000412Y017803D02*
+X006610Y017803D01*
+X005793Y017409D02*
+X005775Y017409D01*
+X005775Y017310D02*
+X005793Y017310D01*
+X005793Y017211D02*
+X005775Y017211D01*
+X005784Y016670D02*
+X005055Y016670D01*
+X004780Y016945D01*
+X005116Y016916D02*
+X005285Y016916D01*
+X005205Y017014D02*
+X005116Y017014D01*
+X005116Y017113D02*
+X005201Y017113D01*
+X005201Y017211D02*
+X005096Y017211D01*
+X004463Y017211D02*
+X004427Y017211D01*
+X004110Y016945D02*
+X003855Y016945D01*
+X003559Y016650D01*
+X003559Y015961D01*
+X003264Y015666D01*
+X002624Y015666D01*
+X001788Y014829D01*
+X001738Y014829D01*
+X002159Y014945D02*
+X002597Y014945D01*
+X002597Y015044D02*
+X002243Y015044D01*
+X002341Y015142D02*
+X002597Y015142D01*
+X002658Y015241D02*
+X002440Y015241D01*
+X002538Y015339D02*
+X003042Y015339D01*
+X003140Y015438D02*
+X002637Y015438D01*
+X002353Y015635D02*
+X000412Y015635D01*
+X000412Y015733D02*
+X002452Y015733D01*
+X002550Y015832D02*
+X000412Y015832D01*
+X000412Y015930D02*
+X001374Y015930D01*
+X001311Y016029D02*
+X000412Y016029D01*
+X000412Y016128D02*
+X001310Y016128D01*
+X001310Y016226D02*
+X000412Y016226D01*
+X000412Y016325D02*
+X001310Y016325D01*
+X001310Y016423D02*
+X000412Y016423D01*
+X000412Y016522D02*
+X001310Y016522D01*
+X001310Y016620D02*
+X000412Y016620D01*
+X000412Y015536D02*
+X002255Y015536D01*
+X002156Y015438D02*
+X000412Y015438D01*
+X000412Y015339D02*
+X002057Y015339D01*
+X001378Y015241D02*
+X000412Y015241D01*
+X000412Y015142D02*
+X001317Y015142D01*
+X001317Y015044D02*
+X000412Y015044D01*
+X000412Y014945D02*
+X001317Y014945D01*
+X001317Y014846D02*
+X000412Y014846D01*
+X000412Y014748D02*
+X001317Y014748D01*
+X001317Y014649D02*
+X000412Y014649D01*
+X000412Y014551D02*
+X001317Y014551D01*
+X001698Y014255D02*
+X001779Y014255D01*
+X001779Y014157D02*
+X001698Y014157D01*
+X001698Y014058D02*
+X001779Y014058D01*
+X001779Y013960D02*
+X001698Y013960D01*
+X001698Y013861D02*
+X000412Y013861D01*
+X002062Y015930D02*
+X002162Y015930D01*
+X002162Y016029D02*
+X002062Y016029D01*
+X002062Y016128D02*
+X002162Y016128D01*
+X002162Y016226D02*
+X002062Y016226D01*
+X002062Y016325D02*
+X002162Y016325D01*
+X002162Y016423D02*
+X002062Y016423D01*
+X002062Y016522D02*
+X002162Y016522D01*
+X002162Y016620D02*
+X002062Y016620D01*
+X002062Y016916D02*
+X002162Y016916D01*
+X002162Y017014D02*
+X002062Y017014D01*
+X002062Y017113D02*
+X002162Y017113D01*
+X002162Y017211D02*
+X002062Y017211D01*
+X002062Y017310D02*
+X002162Y017310D01*
+X002162Y017409D02*
+X002062Y017409D01*
+X002062Y017507D02*
+X002162Y017507D01*
+X002915Y016620D02*
+X003389Y016620D01*
+X003389Y016522D02*
+X002915Y016522D01*
+X002915Y016423D02*
+X003389Y016423D01*
+X003389Y016325D02*
+X002915Y016325D01*
+X002915Y016226D02*
+X003389Y016226D01*
+X003389Y016128D02*
+X002915Y016128D01*
+X002914Y016029D02*
+X003387Y016029D01*
+X003289Y015930D02*
+X002851Y015930D01*
+X003770Y016620D02*
+X004864Y016620D01*
+X004511Y016423D02*
+X004379Y016423D01*
+X004110Y016109D02*
+X004110Y014494D01*
+X004940Y014846D02*
+X005240Y014846D01*
+X005287Y014945D02*
+X004935Y014945D01*
+X006337Y013565D02*
+X006610Y013565D01*
+X006610Y013467D02*
+X006302Y013467D01*
+X009406Y015170D02*
+X009662Y015170D01*
+X009788Y015170D01*
+X012811Y015715D02*
+X012811Y016010D01*
+X013107Y016305D01*
+X015223Y016305D01*
+X015764Y015764D01*
+X015961Y015961D01*
+X016797Y015961D01*
+X017187Y016351D01*
+X017187Y016551D01*
+X017089Y016453D01*
+X016847Y016453D01*
+X017187Y016551D02*
+X017187Y017417D01*
+X017687Y017417D02*
+X017687Y016748D01*
+X017687Y016605D01*
+X016797Y015715D01*
+X016256Y015715D01*
+X015764Y015223D01*
+X015124Y015862D01*
+X013205Y015862D01*
+X012811Y015715D02*
+X013156Y015370D01*
+X013205Y015370D01*
+X018569Y009809D02*
+X019160Y009809D01*
+X022408Y006857D02*
+X023392Y006857D01*
+X023392Y006071D01*
+X023390Y006069D01*
+X022408Y006069D01*
+X022408Y006857D01*
+X022408Y006766D02*
+X023392Y006766D01*
+X023392Y006667D02*
+X022408Y006667D01*
+X022408Y006569D02*
+X023392Y006569D01*
+X023392Y006470D02*
+X022408Y006470D01*
+X022408Y006372D02*
+X023392Y006372D01*
+X023392Y006273D02*
+X022408Y006273D01*
+X022408Y006175D02*
+X023392Y006175D01*
+X023392Y006076D02*
+X022408Y006076D01*
+X024229Y004445D02*
+X024622Y004445D01*
+X024721Y004347D01*
+X024376Y003953D02*
+X024248Y004081D01*
+X011729Y002329D02*
+X011252Y001853D01*
+X011187Y001853D01*
+X002623Y010401D02*
+X002477Y010401D01*
+X002550Y010401D02*
+X002550Y010621D01*
+X002623Y010547D01*
+X002329Y010584D02*
+X002292Y010621D01*
+X002219Y010621D01*
+X002182Y010584D01*
+X002182Y010547D01*
+X002329Y010401D01*
+X002182Y010401D01*
+X002034Y010401D02*
+X001887Y010621D01*
+X001740Y010547D02*
+X001666Y010621D01*
+X001666Y010401D01*
+X001593Y010401D02*
+X001740Y010401D01*
+X001445Y010511D02*
+X001298Y010511D01*
+X001335Y010401D02*
+X001335Y010621D01*
+X001445Y010511D01*
+X001150Y010401D02*
+X001003Y010621D01*
+X000856Y010547D02*
+X000782Y010621D01*
+X000782Y010401D01*
+X000709Y010401D02*
+X000856Y010401D01*
+X000561Y010401D02*
+X000414Y010401D01*
+X000488Y010401D02*
+X000488Y010621D01*
+X000561Y010547D01*
+D11*
+X016687Y014997D03*
+X017187Y014997D03*
+X017687Y014997D03*
+X018187Y014997D03*
+X018187Y017417D03*
+X017687Y017417D03*
+X017187Y017417D03*
+X016687Y017417D03*
+D12*
+X013412Y014386D03*
+X012703Y014386D03*
+X017083Y014140D03*
+X017792Y014140D03*
+X009376Y011089D03*
+X008668Y011089D03*
+X004652Y005331D03*
+X004652Y004691D03*
+X003943Y004691D03*
+X003520Y004691D03*
+X002811Y004691D03*
+X002388Y004691D03*
+X001679Y004691D03*
+X001256Y004691D03*
+X000547Y004691D03*
+X000941Y005331D03*
+X001650Y005331D03*
+X002811Y005331D03*
+X003520Y005331D03*
+X003943Y005331D03*
+D13*
+X009809Y009898D03*
+X009809Y010607D03*
+D14*
+X014790Y014042D03*
+X015459Y014042D03*
+X004780Y016109D03*
+X004110Y016109D03*
+X004110Y016945D03*
+X004780Y016945D03*
+D15*
+X004593Y015360D03*
+X004593Y014691D03*
+X004593Y014130D03*
+X004593Y013461D03*
+X010400Y013362D03*
+X010400Y014032D03*
+X010400Y014593D03*
+X011236Y014347D03*
+X011236Y015016D03*
+X012073Y015016D03*
+X012073Y014347D03*
+X010400Y015262D03*
+X019553Y011768D03*
+X019553Y011099D03*
+X009268Y005666D03*
+X009268Y004996D03*
+X009268Y004386D03*
+X009268Y003717D03*
+X008185Y003717D03*
+X008185Y004386D03*
+X008185Y004996D03*
+X008185Y005666D03*
+X007299Y005666D03*
+X007299Y004996D03*
+X007299Y004386D03*
+X007299Y003717D03*
+X006217Y003717D03*
+X006217Y004386D03*
+X006217Y004996D03*
+X006217Y005666D03*
+D16*
+X006266Y002853D03*
+X007250Y002853D03*
+X008234Y002853D03*
+X009219Y002853D03*
+X009219Y001853D03*
+X008234Y001853D03*
+X007250Y001853D03*
+X006266Y001853D03*
+X006266Y000853D03*
+X007250Y000853D03*
+X008234Y000853D03*
+X009219Y000853D03*
+X011187Y001853D03*
+X012270Y001853D03*
+X013353Y001853D03*
+X014435Y001853D03*
+X015518Y001853D03*
+X016502Y001853D03*
+X017486Y001853D03*
+X018471Y001853D03*
+X019455Y001853D03*
+X020439Y001853D03*
+X021423Y001853D03*
+X022408Y001853D03*
+X023392Y001853D03*
+X024376Y001853D03*
+X025360Y001853D03*
+X026345Y001853D03*
+X026345Y002853D03*
+X025360Y002853D03*
+X024376Y002853D03*
+X023392Y002853D03*
+X022408Y002853D03*
+X021423Y002853D03*
+X020439Y002853D03*
+X019455Y002853D03*
+X018471Y002853D03*
+X017486Y002853D03*
+X016502Y002853D03*
+X015518Y002853D03*
+X014435Y002853D03*
+X014435Y003853D03*
+X013353Y003853D03*
+X013353Y002853D03*
+X012270Y002853D03*
+X012270Y003853D03*
+X011187Y003853D03*
+X011187Y002853D03*
+X015518Y000853D03*
+X016502Y000853D03*
+X017486Y000853D03*
+X018471Y000853D03*
+X019455Y000853D03*
+X020439Y000853D03*
+X021423Y000853D03*
+X022408Y000853D03*
+X023392Y000853D03*
+X024376Y000853D03*
+X025360Y000853D03*
+X026345Y000853D03*
+X009695Y012171D03*
+X008695Y012171D03*
+X007695Y012171D03*
+D17*
+X010695Y012171D03*
+X011187Y000853D03*
+X012270Y000853D03*
+X013353Y000853D03*
+X014435Y000853D03*
+D18*
+X012467Y007447D03*
+X012467Y007644D03*
+X012467Y007841D03*
+X012467Y008038D03*
+X012467Y008234D03*
+X012467Y008431D03*
+X012467Y008628D03*
+X012467Y008825D03*
+X012467Y009022D03*
+X012467Y009219D03*
+X012467Y009416D03*
+X012467Y009612D03*
+X012467Y009809D03*
+X012467Y010006D03*
+X012467Y010203D03*
+X012467Y010400D03*
+X012467Y010597D03*
+X012467Y010794D03*
+X012467Y010990D03*
+X012467Y011187D03*
+X012467Y011384D03*
+X012467Y011581D03*
+X012467Y011778D03*
+X012467Y011975D03*
+X012467Y012171D03*
+X018569Y012171D03*
+X018569Y011975D03*
+X018569Y011778D03*
+X018569Y011581D03*
+X018569Y011384D03*
+X018569Y011187D03*
+X018569Y010990D03*
+X018569Y010794D03*
+X018569Y010597D03*
+X018569Y010400D03*
+X018569Y010203D03*
+X018569Y010006D03*
+X018569Y009809D03*
+X018569Y009612D03*
+X018569Y009416D03*
+X018569Y009219D03*
+X018569Y009022D03*
+X018569Y008825D03*
+X018569Y008628D03*
+X018569Y008431D03*
+X018569Y008234D03*
+X018569Y008038D03*
+X018569Y007841D03*
+X018569Y007644D03*
+X018569Y007447D03*
+D19*
+X017880Y006758D03*
+X017683Y006758D03*
+X017486Y006758D03*
+X017290Y006758D03*
+X017093Y006758D03*
+X016896Y006758D03*
+X016699Y006758D03*
+X016502Y006758D03*
+X016305Y006758D03*
+X016109Y006758D03*
+X015912Y006758D03*
+X015715Y006758D03*
+X015518Y006758D03*
+X015321Y006758D03*
+X015124Y006758D03*
+X014927Y006758D03*
+X014731Y006758D03*
+X014534Y006758D03*
+X014337Y006758D03*
+X014140Y006758D03*
+X013943Y006758D03*
+X013746Y006758D03*
+X013549Y006758D03*
+X013353Y006758D03*
+X013156Y006758D03*
+X013156Y012860D03*
+X013353Y012860D03*
+X013549Y012860D03*
+X013746Y012860D03*
+X013943Y012860D03*
+X014140Y012860D03*
+X014337Y012860D03*
+X014534Y012860D03*
+X014731Y012860D03*
+X014927Y012860D03*
+X015124Y012860D03*
+X015321Y012860D03*
+X015518Y012860D03*
+X015715Y012860D03*
+X015912Y012860D03*
+X016109Y012860D03*
+X016305Y012860D03*
+X016502Y012860D03*
+X016699Y012860D03*
+X016896Y012860D03*
+X017093Y012860D03*
+X017290Y012860D03*
+X017486Y012860D03*
+X017683Y012860D03*
+X017880Y012860D03*
+D20*
+X009406Y013670D03*
+X009406Y014170D03*
+X009406Y014670D03*
+X009406Y015170D03*
+X009406Y015670D03*
+X009406Y016170D03*
+X009406Y016670D03*
+X009406Y017170D03*
+X005784Y017170D03*
+X005784Y016670D03*
+X005784Y016170D03*
+X005784Y015670D03*
+X005784Y015170D03*
+X005784Y014670D03*
+X005784Y014170D03*
+X005784Y013670D03*
+D21*
+X003018Y013845D03*
+X003018Y014829D03*
+X001738Y014829D03*
+X001738Y013845D03*
+D22*
+X002112Y011967D03*
+X002112Y016707D03*
+D23*
+X012112Y005114D03*
+X012427Y005114D03*
+X012427Y004563D03*
+X012112Y004563D03*
+X014130Y004514D03*
+X014445Y004514D03*
+X014445Y005065D03*
+X014130Y005065D03*
+X017083Y004179D03*
+X017398Y004179D03*
+X017398Y003628D03*
+X017083Y003628D03*
+X018756Y003628D03*
+X019071Y003628D03*
+X019071Y004179D03*
+X018756Y004179D03*
+X023579Y004081D03*
+X023894Y004081D03*
+X023894Y003530D03*
+X023579Y003530D03*
+D24*
+X023225Y003530D03*
+X023225Y004081D03*
+X024248Y004081D03*
+X024248Y003530D03*
+X019425Y003628D03*
+X019425Y004179D03*
+X018402Y004179D03*
+X017752Y004179D03*
+X017752Y003628D03*
+X018402Y003628D03*
+X016729Y003628D03*
+X016729Y004179D03*
+X014799Y004514D03*
+X014799Y005065D03*
+X013776Y005065D03*
+X013776Y004514D03*
+X012782Y004563D03*
+X012782Y005114D03*
+X011758Y005114D03*
+X011758Y004563D03*
+D25*
+X004091Y006315D03*
+X002831Y006315D03*
+X002221Y006315D03*
+X002221Y007496D03*
+X000961Y007496D03*
+X000961Y006315D03*
+D26*
+X002998Y003215D02*
+X003825Y003215D01*
+X003825Y001246D02*
+X002998Y001246D01*
+D27*
+X000754Y001439D03*
+X000754Y002727D03*
+D28*
+X011138Y008963D03*
+X011138Y009475D03*
+X011532Y010144D03*
+X011532Y010656D03*
+X014042Y013835D03*
+X014042Y014347D03*
+D29*
+X014150Y005921D03*
+X013638Y005921D03*
+X015656Y005971D03*
+X016168Y005971D03*
+D30*
+X022988Y005553D03*
+X022988Y006463D03*
+X022988Y007373D03*
+D31*
+X020548Y006463D03*
+D32*
+X021571Y006660D02*
+X022284Y007373D01*
+X022988Y007373D01*
+X016502Y006315D02*
+X016502Y006305D01*
+X016168Y005971D01*
+X011758Y004563D02*
+X011729Y004534D01*
+X011729Y004435D01*
+X009859Y003126D02*
+X009268Y003717D01*
+X009859Y003126D02*
+X009859Y001345D01*
+X009366Y000853D01*
+X009219Y000853D01*
+X008185Y003717D02*
+X007299Y003717D01*
+X006217Y003717D01*
+X007695Y012171D02*
+X007597Y012270D01*
+X007447Y012270D01*
+X008992Y014170D02*
+X009071Y014170D01*
+X009406Y014170D01*
+X008992Y014170D02*
+X008727Y014435D01*
+X008727Y016945D01*
+X008951Y017170D01*
+X009406Y017170D01*
+X009406Y015170D02*
+X009406Y014670D01*
+X017083Y014140D02*
+X017187Y014244D01*
+X017187Y014997D01*
+X017687Y014997D02*
+X017687Y014244D01*
+X017792Y014140D01*
+D33*
+X008185Y006168D03*
+X007299Y006168D03*
+X006709Y004248D03*
+X008776Y004248D03*
+X008776Y003569D03*
+X011286Y005085D03*
+X011778Y005577D03*
+X012270Y005626D03*
+X012762Y005675D03*
+X013254Y005331D03*
+X013205Y004790D03*
+X001542Y003855D03*
+D34*
+X006266Y000853D02*
+X007250Y000853D01*
+D35*
+X006266Y000853D02*
+X008234Y000853D01*
+X026345Y000853D01*
+X026345Y001853D02*
+X025360Y001853D01*
+X024376Y001853D01*
+X023933Y001853D01*
+X023392Y001853D01*
+X022408Y001853D01*
+X021423Y001853D01*
+X020439Y001853D01*
+X019455Y001853D01*
+X018471Y001853D01*
+X017979Y001853D01*
+X017486Y001853D01*
+X016502Y001853D01*
+X015518Y001853D01*
+X014435Y001853D01*
+X014042Y001853D01*
+X013353Y001853D01*
+X012270Y001853D01*
+X011187Y001853D01*
+D36*
+X010351Y002329D03*
+D37*
+X010351Y001689D01*
+X011187Y000853D01*
+X008973Y003569D02*
+X008776Y003569D01*
+X008185Y003569D01*
+X008185Y003717D01*
+X008973Y003717D02*
+X008973Y003569D01*
+X008973Y003717D02*
+X009268Y003717D01*
+X008185Y005666D02*
+X008185Y006168D01*
+X007299Y006168D02*
+X007299Y005666D01*
+X013156Y008628D02*
+X013156Y009120D01*
+X013402Y009366D01*
+X010400Y013362D02*
+X010093Y013670D01*
+X009406Y013670D01*
+X009406Y014170D02*
+X010262Y014170D01*
+X010400Y014032D01*
+X010400Y014593D01*
+X010307Y015170D02*
+X009662Y015170D01*
+X010307Y015170D02*
+X010400Y015262D01*
+X010059Y015670D02*
+X010154Y015764D01*
+X010059Y015670D02*
+X009406Y015670D01*
+X023225Y003530D02*
+X023579Y003530D01*
+X023894Y003530D01*
+X024248Y003530D01*
+D38*
+X023269Y005553D02*
+X022988Y005553D01*
+X023269Y005553D02*
+X024130Y006414D01*
+X017187Y014997D02*
+X017187Y015563D01*
+X017290Y015666D01*
+X018187Y017417D02*
+X018454Y017683D01*
+X018618Y017683D01*
+X009406Y013670D02*
+X008847Y013670D01*
+X008677Y013500D01*
+X007447Y012270D01*
+X005036Y009859D01*
+X005036Y006364D01*
+X004691Y006020D01*
+X004691Y005370D01*
+X004652Y005331D01*
+X004652Y004691D01*
+X004333Y004291D02*
+X004399Y004225D01*
+X004544Y004225D01*
+X004544Y000522D01*
+X000522Y000522D01*
+X000522Y002317D01*
+X001090Y002317D01*
+X001224Y002452D01*
+X001224Y002645D01*
+X001247Y002668D01*
+X001335Y002668D01*
+X001500Y002736D01*
+X001626Y002863D01*
+X001694Y003027D01*
+X001694Y003206D01*
+X001626Y003370D01*
+X001570Y003426D01*
+X001627Y003426D01*
+X001784Y003491D01*
+X001905Y003612D01*
+X001946Y003711D01*
+X002013Y003711D01*
+X002111Y003711D01*
+X002255Y003770D01*
+X002364Y003880D01*
+X002376Y003907D01*
+X002414Y003945D01*
+X002482Y004110D01*
+X002482Y004288D01*
+X002414Y004453D01*
+X002288Y004579D01*
+X002123Y004647D01*
+X002069Y004647D01*
+X002069Y004769D01*
+X002067Y004775D01*
+X002067Y005023D01*
+X002037Y005052D01*
+X002037Y005662D01*
+X001903Y005797D01*
+X001398Y005797D01*
+X001427Y005826D01*
+X001427Y006804D01*
+X001351Y006880D01*
+X001351Y006931D01*
+X001427Y007007D01*
+X001427Y007985D01*
+X001292Y008120D01*
+X000629Y008120D01*
+X000522Y008013D01*
+X000522Y010105D01*
+X004544Y010105D01*
+X004544Y006818D01*
+X004422Y006939D01*
+X003759Y006939D01*
+X003625Y006804D01*
+X003625Y005826D01*
+X003654Y005797D01*
+X003267Y005797D01*
+X003132Y005662D01*
+X003132Y005023D01*
+X003132Y004816D01*
+X002904Y004588D01*
+X002764Y004530D01*
+X002638Y004404D01*
+X002570Y004239D01*
+X002570Y004061D01*
+X002638Y003896D01*
+X002733Y003801D01*
+X002634Y003760D01*
+X002453Y003579D01*
+X002355Y003343D01*
+X002355Y003087D01*
+X002453Y002850D01*
+X002634Y002669D01*
+X002870Y002571D01*
+X003953Y002571D01*
+X004189Y002669D01*
+X004370Y002850D01*
+X004468Y003087D01*
+X004468Y003343D01*
+X004370Y003579D01*
+X004189Y003760D01*
+X004064Y003812D01*
+X004096Y003889D01*
+X004164Y003957D01*
+X004274Y004067D01*
+X004333Y004210D01*
+X004333Y004291D01*
+X004281Y004085D02*
+X004544Y004085D01*
+X004544Y003766D02*
+X004175Y003766D01*
+X004425Y003447D02*
+X004544Y003447D01*
+X004544Y003129D02*
+X004468Y003129D01*
+X004544Y002810D02*
+X004330Y002810D01*
+X004544Y002492D02*
+X001224Y002492D01*
+X001574Y002810D02*
+X002493Y002810D01*
+X002355Y003129D02*
+X001694Y003129D01*
+X001678Y003447D02*
+X002398Y003447D01*
+X002245Y003766D02*
+X002648Y003766D01*
+X002570Y004085D02*
+X002471Y004085D01*
+X002434Y004403D02*
+X002638Y004403D01*
+X002811Y004691D02*
+X002388Y004691D01*
+X002069Y004722D02*
+X003038Y004722D01*
+X003132Y005040D02*
+X002049Y005040D01*
+X001679Y004691D02*
+X001679Y004357D01*
+X001935Y004101D01*
+X002034Y004101D01*
+X002034Y004199D01*
+X001542Y003855D02*
+X001256Y004140D01*
+X001256Y004691D01*
+X000547Y004691D02*
+X000547Y003815D01*
+X001246Y003116D01*
+X001144Y003116D01*
+X000754Y002727D01*
+X000522Y002173D02*
+X004544Y002173D01*
+X004544Y001855D02*
+X000522Y001855D01*
+X000522Y001536D02*
+X004544Y001536D01*
+X004544Y001218D02*
+X000522Y001218D01*
+X000522Y000899D02*
+X004544Y000899D01*
+X004544Y000581D02*
+X000522Y000581D01*
+X003658Y004002D02*
+X003943Y004288D01*
+X003943Y004691D01*
+X003520Y004691D02*
+X003520Y004652D01*
+X003018Y004150D01*
+X002811Y005331D02*
+X002811Y006296D01*
+X002831Y006315D01*
+X002221Y006315D01*
+X002221Y007496D01*
+X001427Y007589D02*
+X004544Y007589D01*
+X004544Y007907D02*
+X001427Y007907D01*
+X000961Y007496D02*
+X000961Y006315D01*
+X000941Y006296D01*
+X000941Y005331D01*
+X000547Y004937D01*
+X000547Y004691D01*
+X002037Y005359D02*
+X003132Y005359D01*
+X003147Y005677D02*
+X002022Y005677D01*
+X001427Y005996D02*
+X003625Y005996D01*
+X003625Y006314D02*
+X001427Y006314D01*
+X001427Y006633D02*
+X003625Y006633D01*
+X004091Y006315D02*
+X004396Y006315D01*
+X004691Y006020D01*
+X004544Y006951D02*
+X001371Y006951D01*
+X001427Y007270D02*
+X004544Y007270D01*
+X004544Y008226D02*
+X000522Y008226D01*
+X000522Y008544D02*
+X004544Y008544D01*
+X004544Y008863D02*
+X000522Y008863D01*
+X000522Y009181D02*
+X004544Y009181D01*
+X004544Y009500D02*
+X000522Y009500D01*
+X000522Y009818D02*
+X004544Y009818D01*
+X004347Y009908D02*
+X008166Y013727D01*
+X008609Y014170D01*
+X009071Y014170D01*
+D39*
+X004051Y010006D03*
+X003412Y010006D03*
+X002772Y010006D03*
+X002132Y010006D03*
+X001443Y010006D03*
+X000754Y010006D03*
+X000754Y009120D03*
+X000754Y008530D03*
+X004002Y008136D03*
+X004445Y008530D03*
+X004002Y008973D03*
+X004494Y007792D03*
+X004002Y007447D03*
+X004445Y007004D03*
+X004691Y006020D03*
+X005183Y004888D03*
+X003658Y004002D03*
+X003018Y004150D03*
+X002280Y003707D03*
+X002034Y004199D03*
+X001246Y003116D03*
+X014731Y012171D03*
+X015321Y012171D03*
+X022112Y013156D03*
+X025262Y007004D03*
+X025262Y006118D03*
+D40*
+X000482Y001041D02*
+X000482Y000482D01*
+X005577Y000482D01*
+X005577Y006266D01*
+X006512Y007201D01*
+X008436Y007201D01*
+X008787Y007552D01*
+X008876Y007589D01*
+X008971Y007589D01*
+X010005Y007589D01*
+X011052Y008635D01*
+X010882Y008635D01*
+X010771Y008746D01*
+X010771Y008851D01*
+X010768Y008850D01*
+X010622Y008850D01*
+X010486Y008906D01*
+X010383Y009010D01*
+X010326Y009145D01*
+X010326Y009292D01*
+X010383Y009428D01*
+X010486Y009531D01*
+X010622Y009587D01*
+X010741Y009587D01*
+X010741Y009641D01*
+X010756Y009697D01*
+X010785Y009747D01*
+X010826Y009788D01*
+X010876Y009817D01*
+X010932Y009832D01*
+X011138Y009832D01*
+X011138Y009475D01*
+X011138Y009475D01*
+X011138Y009832D01*
+X011260Y009832D01*
+X011165Y009927D01*
+X011165Y010360D01*
+X011183Y010379D01*
+X011179Y010383D01*
+X011150Y010433D01*
+X011135Y010489D01*
+X011135Y010656D01*
+X011135Y010823D01*
+X011150Y010878D01*
+X011179Y010929D01*
+X011219Y010970D01*
+X011270Y010999D01*
+X011326Y011014D01*
+X011531Y011014D01*
+X011531Y010656D01*
+X011531Y010656D01*
+X011135Y010656D01*
+X011531Y010656D01*
+X011532Y010656D01*
+X011929Y010656D01*
+X011929Y010823D01*
+X011914Y010878D01*
+X011885Y010929D01*
+X011844Y010970D01*
+X011794Y010999D01*
+X011738Y011014D01*
+X011532Y011014D01*
+X011532Y010656D01*
+X011532Y010656D01*
+X011929Y010656D01*
+X011929Y010489D01*
+X011914Y010433D01*
+X011885Y010383D01*
+X011881Y010379D01*
+X011899Y010360D01*
+X011899Y010129D01*
+X011950Y010129D01*
+X011951Y010128D01*
+X011951Y010203D01*
+X012046Y010203D01*
+X012046Y010203D01*
+X011951Y010203D01*
+X011951Y010285D01*
+X011966Y010341D01*
+X011981Y010367D01*
+X011981Y010465D01*
+X011981Y010662D01*
+X011981Y010859D01*
+X011981Y011055D01*
+X011981Y011252D01*
+X011981Y011341D01*
+X011779Y011341D01*
+X011637Y011199D01*
+X011569Y011131D01*
+X011481Y011095D01*
+X010991Y011095D01*
+X010456Y010559D01*
+X010388Y010492D01*
+X010300Y010455D01*
+X010235Y010455D01*
+X010235Y010370D01*
+X010126Y010261D01*
+X010130Y010260D01*
+X010181Y010231D01*
+X010222Y010190D01*
+X010250Y010140D01*
+X010265Y010084D01*
+X010265Y009898D01*
+X009810Y009898D01*
+X009810Y009898D01*
+X010265Y009898D01*
+X010265Y009711D01*
+X010250Y009655D01*
+X010222Y009605D01*
+X010181Y009564D01*
+X010130Y009535D01*
+X010074Y009520D01*
+X009809Y009520D01*
+X009809Y009897D01*
+X009809Y009897D01*
+X009809Y009520D01*
+X009544Y009520D01*
+X009488Y009535D01*
+X009438Y009564D01*
+X009397Y009605D01*
+X009368Y009655D01*
+X009353Y009711D01*
+X009353Y009898D01*
+X009809Y009898D01*
+X009809Y009898D01*
+X009353Y009898D01*
+X009353Y010084D01*
+X009368Y010140D01*
+X009397Y010190D01*
+X009417Y010210D01*
+X009341Y010179D01*
+X009195Y010179D01*
+X009059Y010235D01*
+X008955Y010339D01*
+X008899Y010474D01*
+X008899Y010621D01*
+X008910Y010648D01*
+X008910Y010648D01*
+X008854Y010633D01*
+X008668Y010633D01*
+X008668Y011088D01*
+X008667Y011088D01*
+X008667Y010633D01*
+X008481Y010633D01*
+X008425Y010648D01*
+X008375Y010677D01*
+X008334Y010718D01*
+X008305Y010768D01*
+X008290Y010824D01*
+X008290Y011089D01*
+X008667Y011089D01*
+X008667Y011089D01*
+X008667Y011545D01*
+X008481Y011545D01*
+X008425Y011530D01*
+X008375Y011501D01*
+X008334Y011460D01*
+X008305Y011410D01*
+X008290Y011354D01*
+X008290Y011089D01*
+X008667Y011089D01*
+X008668Y011089D01*
+X008668Y011545D01*
+X008854Y011545D01*
+X008910Y011530D01*
+X008960Y011501D01*
+X009001Y011460D01*
+X009030Y011410D01*
+X009031Y011406D01*
+X009140Y011515D01*
+X009612Y011515D01*
+X009724Y011404D01*
+X009724Y011403D01*
+X009736Y011408D01*
+X009883Y011408D01*
+X010018Y011352D01*
+X010091Y011280D01*
+X010153Y011280D01*
+X010455Y011581D01*
+X010296Y011581D01*
+X010240Y011596D01*
+X010190Y011625D01*
+X010149Y011666D01*
+X010120Y011717D01*
+X010105Y011772D01*
+X010105Y011790D01*
+X010012Y011697D01*
+X009806Y011611D01*
+X009584Y011611D01*
+X009378Y011697D01*
+X009220Y011854D01*
+X009195Y011915D01*
+X009170Y011854D01*
+X009012Y011697D01*
+X008806Y011611D01*
+X008584Y011611D01*
+X008378Y011697D01*
+X008220Y011854D01*
+X008195Y011915D01*
+X008170Y011854D01*
+X008012Y011697D01*
+X007806Y011611D01*
+X007584Y011611D01*
+X007378Y011697D01*
+X007373Y011701D01*
+X005386Y009714D01*
+X005386Y006295D01*
+X005332Y006166D01*
+X005234Y006068D01*
+X005095Y005929D01*
+X005041Y005798D01*
+X005041Y005301D01*
+X005002Y005206D01*
+X005002Y004622D01*
+X004999Y004615D01*
+X004999Y004376D01*
+X004888Y004265D01*
+X004416Y004265D01*
+X004304Y004376D01*
+X004304Y004615D01*
+X004302Y004622D01*
+X004302Y005261D01*
+X004302Y005401D01*
+X004304Y005407D01*
+X004304Y005646D01*
+X004341Y005683D01*
+X004341Y005731D01*
+X004205Y005731D01*
+X004291Y005646D01*
+X004291Y005016D01*
+X004286Y005011D01*
+X004291Y005006D01*
+X004291Y004767D01*
+X004293Y004761D01*
+X004293Y004218D01*
+X004240Y004089D01*
+X004141Y003991D01*
+X004062Y003911D01*
+X004012Y003791D01*
+X004167Y003726D01*
+X004337Y003557D01*
+X004428Y003335D01*
+X004428Y003095D01*
+X004337Y002873D01*
+X004167Y002703D01*
+X003945Y002611D01*
+X002878Y002611D01*
+X002656Y002703D01*
+X002487Y002873D01*
+X002395Y003095D01*
+X002395Y003335D01*
+X002487Y003557D01*
+X002656Y003726D01*
+X002815Y003792D01*
+X002787Y003804D01*
+X002672Y003919D01*
+X002610Y004069D01*
+X002610Y004231D01*
+X002613Y004238D01*
+X002600Y004242D01*
+X002574Y004235D01*
+X002442Y004235D01*
+X002442Y004118D01*
+X002380Y003968D01*
+X002342Y003930D01*
+X002330Y003902D01*
+X002232Y003804D01*
+X002103Y003751D01*
+X002005Y003751D01*
+X001919Y003751D01*
+X001871Y003635D01*
+X001762Y003525D01*
+X001619Y003466D01*
+X001468Y003466D01*
+X001477Y003462D01*
+X001592Y003348D01*
+X001654Y003198D01*
+X001654Y003035D01*
+X001592Y002885D01*
+X001477Y002770D01*
+X001327Y002708D01*
+X001231Y002708D01*
+X001184Y002662D01*
+X001184Y002469D01*
+X001073Y002357D01*
+X000482Y002357D01*
+X000482Y001837D01*
+X000485Y001838D01*
+X000754Y001838D01*
+X000754Y001440D01*
+X000754Y001440D01*
+X000754Y001838D01*
+X001023Y001838D01*
+X001079Y001823D01*
+X001129Y001794D01*
+X001170Y001753D01*
+X001199Y001703D01*
+X001214Y001647D01*
+X001214Y001439D01*
+X000755Y001439D01*
+X000755Y001439D01*
+X001214Y001439D01*
+X001214Y001231D01*
+X001199Y001175D01*
+X001170Y001125D01*
+X001129Y001084D01*
+X001079Y001055D01*
+X001023Y001040D01*
+X000754Y001040D01*
+X000754Y001439D01*
+X000754Y001439D01*
+X000754Y001040D01*
+X000485Y001040D01*
+X000482Y001041D01*
+X000482Y000978D02*
+X002424Y000978D01*
+X002411Y001003D02*
+X002457Y000914D01*
+X002515Y000834D01*
+X002586Y000763D01*
+X002666Y000705D01*
+X002755Y000659D01*
+X002850Y000629D01*
+X002948Y000613D01*
+X003394Y000613D01*
+X003394Y001228D01*
+X003429Y001228D01*
+X003429Y000613D01*
+X003875Y000613D01*
+X003973Y000629D01*
+X004068Y000659D01*
+X004157Y000705D01*
+X004238Y000763D01*
+X004308Y000834D01*
+X004367Y000914D01*
+X004412Y001003D01*
+X004443Y001098D01*
+X004458Y001196D01*
+X004458Y001228D01*
+X003430Y001228D01*
+X003430Y001264D01*
+X004458Y001264D01*
+X004458Y001296D01*
+X004443Y001395D01*
+X004412Y001489D01*
+X004367Y001578D01*
+X004308Y001659D01*
+X004238Y001729D01*
+X004157Y001788D01*
+X004068Y001833D01*
+X003973Y001864D01*
+X003875Y001880D01*
+X003429Y001880D01*
+X003429Y001264D01*
+X003394Y001264D01*
+X003394Y001880D01*
+X002948Y001880D01*
+X002850Y001864D01*
+X002755Y001833D01*
+X002666Y001788D01*
+X002586Y001729D01*
+X002515Y001659D01*
+X002457Y001578D01*
+X002411Y001489D01*
+X002380Y001395D01*
+X002365Y001296D01*
+X002365Y001264D01*
+X003394Y001264D01*
+X003394Y001228D01*
+X002365Y001228D01*
+X002365Y001196D01*
+X002380Y001098D01*
+X002411Y001003D01*
+X002365Y001216D02*
+X001210Y001216D01*
+X001214Y001455D02*
+X002400Y001455D01*
+X002550Y001693D02*
+X001202Y001693D01*
+X000754Y001693D02*
+X000754Y001693D01*
+X000754Y001455D02*
+X000754Y001455D01*
+X000754Y001216D02*
+X000754Y001216D01*
+X000482Y000739D02*
+X002619Y000739D01*
+X003394Y000739D02*
+X003429Y000739D01*
+X003429Y000978D02*
+X003394Y000978D01*
+X003394Y001216D02*
+X003429Y001216D01*
+X003429Y001455D02*
+X003394Y001455D01*
+X003394Y001693D02*
+X003429Y001693D01*
+X004274Y001693D02*
+X005577Y001693D01*
+X005577Y001455D02*
+X004423Y001455D01*
+X004458Y001216D02*
+X005577Y001216D01*
+X005577Y000978D02*
+X004399Y000978D01*
+X004205Y000739D02*
+X005577Y000739D01*
+X005577Y000501D02*
+X000482Y000501D01*
+X000482Y001932D02*
+X005577Y001932D01*
+X005577Y002170D02*
+X000482Y002170D01*
+X001124Y002409D02*
+X005577Y002409D01*
+X005577Y002647D02*
+X004032Y002647D01*
+X004342Y002886D02*
+X005577Y002886D01*
+X005577Y003125D02*
+X004428Y003125D01*
+X004417Y003363D02*
+X005577Y003363D01*
+X005577Y003602D02*
+X004291Y003602D01*
+X004032Y003840D02*
+X005577Y003840D01*
+X005577Y004079D02*
+X004229Y004079D01*
+X004293Y004317D02*
+X004363Y004317D01*
+X004304Y004556D02*
+X004293Y004556D01*
+X004291Y004794D02*
+X004302Y004794D01*
+X004291Y005033D02*
+X004302Y005033D01*
+X004291Y005271D02*
+X004302Y005271D01*
+X003943Y005331D02*
+X003943Y004691D01*
+X003943Y005331D02*
+X003520Y005331D01*
+X003175Y005648D02*
+X003174Y005652D01*
+X003145Y005702D01*
+X003135Y005712D01*
+X003152Y005716D01*
+X003202Y005745D01*
+X003243Y005786D01*
+X003272Y005837D01*
+X003287Y005892D01*
+X003287Y006315D01*
+X002831Y006315D01*
+X002831Y006315D01*
+X003287Y006315D01*
+X003287Y006738D01*
+X003272Y006794D01*
+X003243Y006844D01*
+X003202Y006885D01*
+X003152Y006914D01*
+X003096Y006929D01*
+X002831Y006929D01*
+X002831Y006316D01*
+X002831Y006316D01*
+X002831Y006929D01*
+X002594Y006929D01*
+X002633Y006968D01*
+X002662Y007018D01*
+X002677Y007074D01*
+X002677Y007496D01*
+X002221Y007496D01*
+X002221Y007496D01*
+X002221Y006883D01*
+X002221Y006316D01*
+X002220Y006316D01*
+X002220Y006883D01*
+X002220Y007496D01*
+X001764Y007496D01*
+X001764Y007074D01*
+X001779Y007018D01*
+X001808Y006968D01*
+X001849Y006927D01*
+X001885Y006906D01*
+X001849Y006885D01*
+X001808Y006844D01*
+X001779Y006794D01*
+X001764Y006738D01*
+X001764Y006315D01*
+X001764Y005892D01*
+X001779Y005837D01*
+X001808Y005786D01*
+X001838Y005757D01*
+X001414Y005757D01*
+X001302Y005646D01*
+X001302Y005117D01*
+X001289Y005117D01*
+X001289Y005255D01*
+X001291Y005261D01*
+X001291Y005747D01*
+X001387Y005843D01*
+X001387Y006788D01*
+X001311Y006864D01*
+X001311Y006948D01*
+X001387Y007024D01*
+X001387Y007969D01*
+X001276Y008080D01*
+X000646Y008080D01*
+X000535Y007969D01*
+X000535Y007024D01*
+X000611Y006948D01*
+X000611Y006864D01*
+X000535Y006788D01*
+X000535Y005843D01*
+X000591Y005786D01*
+X000591Y005476D01*
+X000482Y005367D01*
+X000482Y010105D01*
+X004297Y010105D01*
+X007742Y013549D01*
+X007742Y017759D01*
+X016367Y017759D01*
+X016367Y016938D01*
+X016479Y016827D01*
+X016896Y016827D01*
+X016937Y016868D01*
+X016947Y016858D01*
+X016947Y016810D01*
+X016920Y016822D01*
+X016773Y016822D01*
+X016638Y016766D01*
+X016534Y016662D01*
+X016478Y016526D01*
+X016478Y016380D01*
+X016534Y016244D01*
+X016577Y016201D01*
+X015913Y016201D01*
+X015825Y016164D01*
+X015793Y016133D01*
+X015735Y016133D01*
+X015359Y016509D01*
+X015270Y016545D01*
+X015175Y016545D01*
+X013059Y016545D01*
+X012971Y016509D01*
+X012903Y016441D01*
+X012608Y016146D01*
+X012571Y016058D01*
+X012571Y015962D01*
+X012571Y015667D01*
+X012608Y015579D01*
+X012675Y015511D01*
+X012836Y015350D01*
+X012836Y015297D01*
+X012892Y015161D01*
+X012996Y015058D01*
+X013132Y015002D01*
+X013278Y015002D01*
+X013414Y015058D01*
+X013518Y015161D01*
+X013574Y015297D01*
+X013574Y015444D01*
+X013518Y015579D01*
+X013480Y015616D01*
+X013486Y015622D01*
+X015025Y015622D01*
+X015395Y015252D01*
+X015395Y015149D01*
+X015451Y015014D01*
+X015555Y014910D01*
+X015691Y014854D01*
+X015837Y014854D01*
+X015973Y014910D01*
+X016077Y015014D01*
+X016133Y015149D01*
+X016133Y015252D01*
+X016356Y015475D01*
+X016367Y015475D01*
+X016367Y014518D01*
+X016447Y014438D01*
+X016447Y013781D01*
+X016416Y013813D01*
+X016280Y013869D01*
+X016134Y013869D01*
+X015998Y013813D01*
+X015894Y013709D01*
+X015838Y013574D01*
+X015838Y013427D01*
+X015872Y013346D01*
+X015780Y013346D01*
+X015636Y013346D01*
+X015690Y013476D01*
+X015690Y013623D01*
+X015677Y013655D01*
+X015754Y013655D01*
+X015865Y013766D01*
+X015865Y014317D01*
+X015754Y014428D01*
+X015164Y014428D01*
+X015124Y014389D01*
+X015085Y014428D01*
+X014494Y014428D01*
+X014409Y014343D01*
+X014409Y014563D01*
+X014297Y014674D01*
+X013786Y014674D01*
+X013759Y014648D01*
+X013759Y014701D01*
+X013648Y014812D01*
+X013175Y014812D01*
+X013064Y014701D01*
+X013064Y014071D01*
+X013175Y013960D01*
+X013309Y013960D01*
+X013309Y013831D01*
+X013237Y013758D01*
+X013181Y013623D01*
+X013181Y013476D01*
+X013235Y013346D01*
+X013221Y013346D01*
+X013024Y013346D01*
+X012913Y013234D01*
+X012913Y012852D01*
+X012313Y013452D01*
+X012313Y013940D01*
+X012349Y013940D01*
+X012418Y014009D01*
+X012467Y013960D01*
+X012939Y013960D01*
+X013050Y014071D01*
+X013050Y014701D01*
+X012939Y014812D01*
+X012467Y014812D01*
+X012460Y014805D01*
+X012460Y014817D01*
+X012523Y014880D01*
+X012559Y014968D01*
+X012559Y015064D01*
+X012523Y015152D01*
+X012460Y015215D01*
+X012460Y015311D01*
+X012349Y015422D01*
+X012313Y015422D01*
+X012313Y015959D01*
+X012276Y016048D01*
+X012209Y016115D01*
+X011451Y016873D01*
+X011363Y016909D01*
+X011267Y016909D01*
+X010008Y016909D01*
+X010015Y016916D01*
+X010044Y016966D01*
+X010059Y017022D01*
+X010059Y017169D01*
+X009406Y017169D01*
+X009406Y017170D01*
+X009406Y017170D01*
+X009406Y017508D01*
+X009868Y017508D01*
+X009924Y017493D01*
+X009974Y017464D01*
+X010015Y017423D01*
+X010044Y017373D01*
+X010059Y017317D01*
+X010059Y017170D01*
+X009406Y017170D01*
+X009406Y017508D01*
+X008944Y017508D01*
+X008888Y017493D01*
+X008838Y017464D01*
+X008797Y017423D01*
+X008768Y017373D01*
+X008753Y017317D01*
+X008753Y017170D01*
+X009405Y017170D01*
+X009405Y017169D01*
+X008753Y017169D01*
+X008753Y017022D01*
+X008768Y016966D01*
+X008797Y016916D01*
+X008815Y016898D01*
+X008783Y016866D01*
+X008783Y016473D01*
+X008836Y016419D01*
+X008783Y016366D01*
+X008783Y015973D01*
+X008836Y015919D01*
+X008783Y015866D01*
+X008783Y015473D01*
+X008836Y015419D01*
+X008783Y015366D01*
+X008783Y014973D01*
+X008836Y014920D01*
+X008783Y014866D01*
+X008783Y014473D01*
+X008815Y014441D01*
+X008797Y014423D01*
+X008768Y014373D01*
+X008753Y014317D01*
+X008753Y014170D01*
+X009405Y014170D01*
+X009405Y014169D01*
+X008753Y014169D01*
+X008753Y014022D01*
+X008756Y014011D01*
+X008648Y013966D01*
+X008514Y013832D01*
+X008469Y013813D01*
+X008365Y013709D01*
+X008346Y013664D01*
+X007150Y012468D01*
+X004739Y010057D01*
+X004686Y009928D01*
+X004686Y009789D01*
+X004686Y006520D01*
+X004594Y006612D01*
+X004517Y006644D01*
+X004517Y006788D01*
+X004406Y006899D01*
+X003776Y006899D01*
+X003665Y006788D01*
+X003665Y005843D01*
+X003750Y005757D01*
+X003707Y005757D01*
+X003284Y005757D01*
+X003175Y005648D01*
+X003205Y005749D02*
+X003275Y005749D01*
+X003287Y005987D02*
+X003665Y005987D01*
+X003665Y006226D02*
+X003287Y006226D01*
+X003287Y006464D02*
+X003665Y006464D01*
+X003665Y006703D02*
+X003287Y006703D01*
+X002831Y006703D02*
+X002831Y006703D01*
+X002607Y006941D02*
+X004686Y006941D01*
+X004686Y006703D02*
+X004517Y006703D01*
+X004686Y007180D02*
+X002677Y007180D01*
+X002677Y007418D02*
+X004686Y007418D01*
+X004686Y007657D02*
+X002677Y007657D01*
+X002677Y007496D02*
+X002221Y007496D01*
+X002220Y007496D01*
+X002220Y007496D01*
+X001764Y007496D01*
+X001764Y007919D01*
+X001779Y007975D01*
+X001808Y008025D01*
+X001849Y008066D01*
+X001900Y008095D01*
+X001955Y008110D01*
+X002220Y008110D01*
+X002220Y007497D01*
+X002221Y007497D01*
+X002221Y008110D01*
+X002486Y008110D01*
+X002542Y008095D01*
+X002592Y008066D01*
+X002633Y008025D01*
+X002662Y007975D01*
+X002677Y007919D01*
+X002677Y007496D01*
+X002221Y007418D02*
+X002220Y007418D01*
+X002220Y007180D02*
+X002221Y007180D01*
+X002220Y006941D02*
+X002221Y006941D01*
+X002220Y006703D02*
+X002221Y006703D01*
+X002220Y006464D02*
+X002221Y006464D01*
+X002220Y006315D02*
+X002220Y006315D01*
+X001764Y006315D01*
+X002220Y006315D01*
+X002221Y006315D01*
+X002221Y006315D01*
+X002375Y006315D01*
+X002831Y006315D01*
+X002831Y006315D01*
+X002375Y006315D01*
+X002221Y006315D01*
+X002221Y005701D01*
+X002477Y005701D01*
+X002449Y005652D01*
+X002434Y005596D01*
+X002434Y005331D01*
+X002811Y005331D01*
+X002811Y005331D01*
+X002434Y005331D01*
+X002434Y005147D01*
+X002388Y005147D01*
+X002202Y005147D01*
+X002146Y005132D01*
+X002095Y005103D01*
+X002054Y005062D01*
+X002026Y005012D01*
+X002025Y005008D01*
+X001997Y005036D01*
+X001997Y005646D01*
+X001937Y005707D01*
+X001955Y005701D01*
+X002220Y005701D01*
+X002220Y006315D01*
+X002220Y006226D02*
+X002221Y006226D01*
+X002220Y005987D02*
+X002221Y005987D01*
+X002220Y005749D02*
+X002221Y005749D01*
+X002434Y005510D02*
+X001997Y005510D01*
+X001650Y005331D02*
+X001630Y005311D01*
+X001679Y005262D01*
+X001679Y004691D01*
+X002000Y005033D02*
+X002037Y005033D01*
+X001997Y005271D02*
+X002434Y005271D01*
+X002388Y005147D02*
+X002388Y004692D01*
+X002388Y005147D01*
+X002388Y005033D02*
+X002388Y005033D01*
+X002388Y004794D02*
+X002388Y004794D01*
+X002388Y004692D02*
+X002388Y004692D01*
+X002388Y004691D02*
+X002434Y004691D01*
+X002388Y004691D01*
+X002388Y004691D01*
+X002434Y004691D02*
+X002811Y004691D01*
+X002811Y004691D01*
+X002434Y004691D01*
+X002811Y004692D02*
+X002811Y005147D01*
+X002811Y005331D01*
+X002811Y005331D01*
+X002811Y005147D01*
+X002811Y004692D01*
+X002811Y004692D01*
+X002811Y004794D02*
+X002811Y004794D01*
+X002811Y005033D02*
+X002811Y005033D01*
+X002811Y005271D02*
+X002811Y005271D01*
+X001764Y005987D02*
+X001387Y005987D01*
+X001387Y006226D02*
+X001764Y006226D01*
+X001764Y006464D02*
+X001387Y006464D01*
+X001387Y006703D02*
+X001764Y006703D01*
+X001835Y006941D02*
+X001311Y006941D01*
+X001387Y007180D02*
+X001764Y007180D01*
+X001764Y007418D02*
+X001387Y007418D01*
+X001387Y007657D02*
+X001764Y007657D01*
+X001764Y007895D02*
+X001387Y007895D01*
+X002220Y007895D02*
+X002221Y007895D01*
+X002220Y007657D02*
+X002221Y007657D01*
+X002677Y007895D02*
+X004686Y007895D01*
+X004686Y008134D02*
+X000482Y008134D01*
+X000482Y008373D02*
+X004686Y008373D01*
+X004686Y008611D02*
+X000482Y008611D01*
+X000482Y008850D02*
+X004686Y008850D01*
+X004686Y009088D02*
+X000482Y009088D01*
+X000482Y009327D02*
+X004686Y009327D01*
+X004686Y009565D02*
+X000482Y009565D01*
+X000482Y009804D02*
+X004686Y009804D01*
+X004733Y010042D02*
+X000482Y010042D01*
+X000482Y007895D02*
+X000535Y007895D01*
+X000535Y007657D02*
+X000482Y007657D01*
+X000482Y007418D02*
+X000535Y007418D01*
+X000535Y007180D02*
+X000482Y007180D01*
+X000482Y006941D02*
+X000611Y006941D01*
+X000535Y006703D02*
+X000482Y006703D01*
+X000482Y006464D02*
+X000535Y006464D01*
+X000535Y006226D02*
+X000482Y006226D01*
+X000482Y005987D02*
+X000535Y005987D01*
+X000482Y005749D02*
+X000591Y005749D01*
+X000591Y005510D02*
+X000482Y005510D01*
+X001291Y005510D02*
+X001302Y005510D01*
+X001293Y005749D02*
+X001405Y005749D01*
+X001302Y005271D02*
+X001291Y005271D01*
+X002426Y004079D02*
+X002610Y004079D01*
+X002750Y003840D02*
+X002268Y003840D01*
+X002532Y003602D02*
+X001838Y003602D01*
+X001577Y003363D02*
+X002407Y003363D01*
+X002395Y003125D02*
+X001654Y003125D01*
+X001593Y002886D02*
+X002481Y002886D01*
+X002791Y002647D02*
+X001184Y002647D01*
+X004940Y004317D02*
+X005577Y004317D01*
+X005577Y004556D02*
+X004999Y004556D01*
+X005002Y004794D02*
+X005577Y004794D01*
+X005577Y005033D02*
+X005002Y005033D01*
+X005029Y005271D02*
+X005577Y005271D01*
+X005577Y005510D02*
+X005041Y005510D01*
+X005041Y005749D02*
+X005577Y005749D01*
+X005577Y005987D02*
+X005153Y005987D01*
+X005357Y006226D02*
+X005577Y006226D01*
+X005386Y006464D02*
+X005775Y006464D01*
+X006014Y006703D02*
+X005386Y006703D01*
+X005386Y006941D02*
+X006252Y006941D01*
+X006491Y007180D02*
+X005386Y007180D01*
+X005386Y007418D02*
+X008654Y007418D01*
+X010073Y007657D02*
+X005386Y007657D01*
+X005386Y007895D02*
+X010312Y007895D01*
+X010551Y008134D02*
+X005386Y008134D01*
+X005386Y008373D02*
+X010789Y008373D01*
+X011028Y008611D02*
+X005386Y008611D01*
+X005386Y008850D02*
+X010771Y008850D01*
+X010350Y009088D02*
+X005386Y009088D01*
+X005386Y009327D02*
+X010341Y009327D01*
+X010181Y009565D02*
+X010568Y009565D01*
+X010852Y009804D02*
+X010265Y009804D01*
+X010265Y010042D02*
+X011165Y010042D01*
+X011165Y010281D02*
+X010146Y010281D01*
+X010416Y010519D02*
+X011135Y010519D01*
+X011135Y010758D02*
+X010654Y010758D01*
+X010893Y010996D02*
+X011266Y010996D01*
+X011531Y010996D02*
+X011532Y010996D01*
+X011531Y010758D02*
+X011532Y010758D01*
+X011797Y010996D02*
+X011981Y010996D01*
+X011981Y010758D02*
+X011929Y010758D01*
+X011929Y010519D02*
+X011981Y010519D01*
+X011951Y010281D02*
+X011899Y010281D01*
+X012046Y010203D02*
+X012046Y010203D01*
+X011535Y009620D02*
+X011564Y009551D01*
+X011656Y009459D01*
+X011535Y009459D01*
+X011535Y009474D01*
+X011138Y009474D01*
+X011138Y009475D01*
+X011535Y009475D01*
+X011535Y009620D01*
+X011535Y009565D02*
+X011558Y009565D01*
+X011138Y009565D02*
+X011138Y009565D01*
+X011138Y009804D02*
+X011138Y009804D01*
+X009809Y009804D02*
+X009809Y009804D01*
+X009809Y009565D02*
+X009809Y009565D01*
+X009437Y009565D02*
+X005386Y009565D01*
+X005476Y009804D02*
+X009353Y009804D01*
+X009353Y010042D02*
+X005714Y010042D01*
+X005953Y010281D02*
+X009013Y010281D01*
+X008899Y010519D02*
+X006192Y010519D01*
+X006430Y010758D02*
+X008311Y010758D01*
+X008290Y010996D02*
+X006669Y010996D01*
+X006907Y011235D02*
+X008290Y011235D01*
+X008348Y011474D02*
+X007146Y011474D01*
+X006633Y011951D02*
+X006144Y011951D01*
+X005905Y011712D02*
+X006394Y011712D01*
+X006156Y011474D02*
+X005666Y011474D01*
+X005428Y011235D02*
+X005917Y011235D01*
+X005679Y010996D02*
+X005189Y010996D01*
+X004951Y010758D02*
+X005440Y010758D01*
+X005202Y010519D02*
+X004712Y010519D01*
+X004474Y010281D02*
+X004963Y010281D01*
+X006382Y012189D02*
+X006871Y012189D01*
+X007110Y012428D02*
+X006621Y012428D01*
+X006859Y012666D02*
+X007349Y012666D01*
+X007587Y012905D02*
+X007098Y012905D01*
+X007336Y013143D02*
+X007826Y013143D01*
+X008064Y013382D02*
+X007575Y013382D01*
+X007742Y013620D02*
+X008303Y013620D01*
+X008541Y013859D02*
+X007742Y013859D01*
+X007742Y014098D02*
+X008753Y014098D01*
+X008758Y014336D02*
+X007742Y014336D01*
+X007742Y014575D02*
+X008783Y014575D01*
+X008783Y014813D02*
+X007742Y014813D01*
+X007742Y015052D02*
+X008783Y015052D01*
+X008783Y015290D02*
+X007742Y015290D01*
+X007742Y015529D02*
+X008783Y015529D01*
+X008783Y015767D02*
+X007742Y015767D01*
+X007742Y016006D02*
+X008783Y016006D01*
+X008783Y016244D02*
+X007742Y016244D01*
+X007742Y016483D02*
+X008783Y016483D01*
+X008783Y016722D02*
+X007742Y016722D01*
+X007742Y016960D02*
+X008771Y016960D01*
+X008753Y017199D02*
+X007742Y017199D01*
+X007742Y017437D02*
+X008811Y017437D01*
+X009406Y017437D02*
+X009406Y017437D01*
+X009406Y017199D02*
+X009406Y017199D01*
+X010000Y017437D02*
+X016367Y017437D01*
+X016367Y017199D02*
+X010059Y017199D01*
+X010040Y016960D02*
+X016367Y016960D01*
+X016594Y016722D02*
+X011603Y016722D01*
+X011841Y016483D02*
+X012945Y016483D01*
+X012706Y016244D02*
+X012080Y016244D01*
+X012294Y016006D02*
+X012571Y016006D01*
+X012571Y015767D02*
+X012313Y015767D01*
+X012313Y015529D02*
+X012658Y015529D01*
+X012839Y015290D02*
+X012460Y015290D01*
+X012559Y015052D02*
+X013010Y015052D01*
+X013399Y015052D02*
+X015436Y015052D01*
+X015357Y015290D02*
+X013571Y015290D01*
+X013538Y015529D02*
+X015118Y015529D01*
+X015623Y016244D02*
+X016534Y016244D01*
+X016478Y016483D02*
+X015384Y016483D01*
+X016171Y015290D02*
+X016367Y015290D01*
+X016367Y015052D02*
+X016092Y015052D01*
+X016367Y014813D02*
+X012460Y014813D01*
+X013050Y014575D02*
+X013064Y014575D01*
+X013050Y014336D02*
+X013064Y014336D01*
+X013050Y014098D02*
+X013064Y014098D01*
+X013309Y013859D02*
+X012313Y013859D01*
+X012313Y013620D02*
+X013181Y013620D01*
+X013220Y013382D02*
+X012383Y013382D01*
+X012622Y013143D02*
+X012913Y013143D01*
+X012913Y012905D02*
+X012860Y012905D01*
+X012412Y012428D02*
+X011812Y012428D01*
+X011828Y012411D02*
+X011323Y012916D01*
+X011235Y012953D01*
+X011139Y012953D01*
+X010054Y012953D01*
+X009958Y012953D01*
+X009870Y012916D01*
+X009685Y012731D01*
+X009584Y012731D01*
+X009378Y012646D01*
+X009220Y012489D01*
+X009195Y012428D01*
+X009195Y012428D01*
+X009170Y012489D01*
+X009012Y012646D01*
+X008806Y012731D01*
+X008584Y012731D01*
+X008378Y012646D01*
+X008220Y012489D01*
+X008195Y012428D01*
+X008195Y012428D01*
+X008170Y012489D01*
+X008165Y012493D01*
+X008841Y013169D01*
+X008886Y013188D01*
+X008990Y013291D01*
+X009002Y013320D01*
+X009475Y013320D01*
+X009576Y013361D01*
+X009918Y013361D01*
+X009976Y013420D01*
+X009989Y013420D01*
+X010013Y013396D01*
+X010013Y013067D01*
+X010124Y012956D01*
+X010675Y012956D01*
+X010787Y013067D01*
+X010787Y013658D01*
+X010768Y013676D01*
+X010773Y013680D01*
+X010802Y013730D01*
+X010817Y013786D01*
+X010817Y014031D01*
+X010400Y014031D01*
+X010400Y014032D01*
+X010400Y014032D01*
+X010400Y014156D01*
+X010400Y014592D01*
+X010400Y014592D01*
+X010400Y014156D01*
+X010400Y014032D01*
+X010817Y014032D01*
+X010817Y014277D01*
+X010807Y014312D01*
+X010817Y014347D01*
+X010817Y014593D01*
+X010817Y014838D01*
+X010802Y014894D01*
+X010773Y014944D01*
+X010768Y014949D01*
+X010787Y014967D01*
+X010787Y015557D01*
+X010675Y015669D01*
+X010513Y015669D01*
+X010522Y015691D01*
+X010522Y015837D01*
+X010484Y015930D01*
+X010928Y015930D01*
+X010996Y015861D01*
+X010996Y015422D01*
+X010961Y015422D01*
+X010850Y015311D01*
+X010850Y014721D01*
+X010889Y014681D01*
+X010850Y014642D01*
+X010850Y014051D01*
+X010961Y013940D01*
+X010996Y013940D01*
+X010996Y013895D01*
+X011033Y013807D01*
+X011100Y013740D01*
+X012426Y012415D01*
+X012093Y012415D01*
+X012090Y012411D01*
+X011828Y012411D01*
+X011573Y012666D02*
+X012174Y012666D01*
+X011935Y012905D02*
+X011335Y012905D01*
+X011697Y013143D02*
+X010787Y013143D01*
+X010787Y013382D02*
+X011458Y013382D01*
+X011220Y013620D02*
+X010787Y013620D01*
+X010817Y013859D02*
+X011011Y013859D01*
+X010850Y014098D02*
+X010817Y014098D01*
+X010814Y014336D02*
+X010850Y014336D01*
+X010850Y014575D02*
+X010817Y014575D01*
+X010817Y014593D02*
+X010400Y014593D01*
+X010817Y014593D01*
+X010817Y014813D02*
+X010850Y014813D01*
+X010400Y014593D02*
+X010400Y014593D01*
+X010400Y014575D02*
+X010400Y014575D01*
+X010400Y014336D02*
+X010400Y014336D01*
+X010400Y014098D02*
+X010400Y014098D01*
+X010013Y013382D02*
+X009938Y013382D01*
+X010013Y013143D02*
+X008816Y013143D01*
+X008577Y012905D02*
+X009859Y012905D01*
+X009426Y012666D02*
+X008964Y012666D01*
+X008426Y012666D02*
+X008338Y012666D01*
+X008362Y011712D02*
+X008028Y011712D01*
+X008667Y011474D02*
+X008668Y011474D01*
+X008667Y011235D02*
+X008668Y011235D01*
+X008667Y010996D02*
+X008668Y010996D01*
+X008667Y010758D02*
+X008668Y010758D01*
+X008988Y011474D02*
+X009099Y011474D01*
+X009028Y011712D02*
+X009362Y011712D01*
+X009654Y011474D02*
+X010347Y011474D01*
+X010123Y011712D02*
+X010028Y011712D01*
+X011673Y011235D02*
+X011981Y011235D01*
+X012958Y010357D02*
+X013007Y010357D01*
+X013095Y010393D01*
+X013162Y010461D01*
+X013458Y010756D01*
+X013494Y010844D01*
+X013494Y010940D01*
+X013494Y010966D01*
+X013512Y010973D01*
+X013616Y011077D01*
+X013672Y011212D01*
+X013672Y011359D01*
+X013665Y011377D01*
+X013758Y011416D01*
+X013862Y011520D01*
+X013918Y011655D01*
+X013918Y011802D01*
+X013862Y011937D01*
+X013819Y011981D01*
+X013843Y011981D01*
+X013931Y012017D01*
+X013999Y012085D01*
+X014147Y012232D01*
+X014183Y012321D01*
+X014183Y012345D01*
+X014222Y012345D01*
+X014278Y012360D01*
+X014304Y012375D01*
+X014373Y012375D01*
+X014322Y012253D01*
+X014322Y012090D01*
+X014385Y011940D01*
+X014499Y011826D01*
+X014649Y011763D01*
+X014812Y011763D01*
+X014962Y011826D01*
+X015026Y011890D01*
+X015090Y011826D01*
+X015240Y011763D01*
+X015402Y011763D01*
+X015552Y011826D01*
+X015667Y011940D01*
+X015729Y012090D01*
+X015729Y012253D01*
+X015678Y012375D01*
+X015780Y012375D01*
+X015944Y012375D01*
+X015970Y012360D01*
+X016026Y012345D01*
+X016065Y012345D01*
+X016065Y012222D01*
+X016102Y012134D01*
+X016169Y012066D01*
+X016858Y011377D01*
+X016947Y011341D01*
+X017042Y011341D01*
+X017645Y011341D01*
+X017387Y011083D01*
+X017340Y011083D01*
+X017252Y011046D01*
+X017073Y010867D01*
+X017019Y010867D01*
+X016884Y010811D01*
+X016780Y010707D01*
+X016724Y010572D01*
+X016724Y010425D01*
+X016780Y010289D01*
+X016884Y010186D01*
+X017019Y010130D01*
+X017166Y010130D01*
+X017192Y010140D01*
+X017167Y010079D01*
+X017167Y009933D01*
+X017200Y009852D01*
+X014633Y009852D01*
+X014178Y010308D01*
+X014089Y010345D01*
+X013994Y010345D01*
+X013157Y010345D01*
+X013112Y010326D01*
+X012984Y010326D01*
+X012972Y010321D01*
+X012967Y010341D01*
+X012958Y010357D01*
+X013162Y010461D02*
+X013162Y010461D01*
+X013221Y010519D02*
+X016724Y010519D01*
+X016789Y010281D02*
+X014205Y010281D01*
+X014443Y010042D02*
+X017167Y010042D01*
+X016831Y010758D02*
+X013458Y010758D01*
+X013536Y010996D02*
+X017202Y010996D01*
+X017539Y011235D02*
+X013672Y011235D01*
+X013816Y011474D02*
+X016762Y011474D01*
+X016524Y011712D02*
+X013918Y011712D01*
+X013849Y011951D02*
+X014380Y011951D01*
+X014322Y012189D02*
+X014103Y012189D01*
+X013976Y013346D02*
+X013864Y013346D01*
+X013918Y013476D01*
+X013918Y013477D01*
+X014041Y013477D01*
+X014041Y013834D01*
+X014042Y013834D01*
+X014042Y013477D01*
+X014220Y013477D01*
+X014133Y013390D01*
+X014127Y013376D01*
+X014058Y013376D01*
+X014002Y013361D01*
+X013976Y013346D01*
+X013879Y013382D02*
+X014130Y013382D01*
+X014042Y013620D02*
+X014041Y013620D01*
+X014397Y014575D02*
+X016367Y014575D01*
+X016447Y014336D02*
+X015846Y014336D01*
+X015865Y014098D02*
+X016447Y014098D01*
+X016447Y013859D02*
+X016304Y013859D01*
+X016110Y013859D02*
+X015865Y013859D01*
+X015858Y013620D02*
+X015690Y013620D01*
+X015651Y013382D02*
+X015857Y013382D01*
+X015729Y012189D02*
+X016079Y012189D01*
+X016285Y011951D02*
+X015671Y011951D01*
+X018427Y013895D02*
+X018427Y014438D01*
+X018507Y014518D01*
+X018507Y015476D01*
+X018396Y015587D01*
+X017979Y015587D01*
+X017958Y015567D01*
+X017952Y015573D01*
+X017902Y015602D01*
+X017846Y015617D01*
+X017687Y015617D01*
+X017658Y015617D01*
+X017658Y015739D01*
+X017602Y015874D01*
+X017498Y015978D01*
+X017429Y016007D01*
+X017831Y016409D01*
+X017896Y016436D01*
+X018000Y016539D01*
+X018056Y016675D01*
+X018056Y016797D01*
+X018187Y016797D01*
+X018187Y017416D01*
+X018187Y017416D01*
+X018187Y016797D01*
+X018346Y016797D01*
+X018402Y016812D01*
+X018452Y016841D01*
+X018493Y016882D01*
+X018522Y016932D01*
+X018537Y016988D01*
+X018537Y017417D01*
+X018537Y017759D01*
+X026715Y017759D01*
+X026715Y007693D01*
+X023963Y007693D01*
+X024000Y007730D01*
+X024056Y007866D01*
+X024056Y008013D01*
+X024000Y008148D01*
+X023896Y008252D01*
+X023761Y008308D01*
+X023658Y008308D01*
+X023331Y008635D01*
+X023243Y008671D01*
+X023147Y008671D01*
+X021917Y008671D01*
+X021116Y009471D01*
+X021028Y009508D01*
+X020933Y009508D01*
+X020883Y009508D01*
+X020231Y010160D01*
+X020684Y010160D01*
+X020772Y010196D01*
+X020839Y010264D01*
+X021627Y011051D01*
+X021663Y011139D01*
+X021663Y011235D01*
+X026715Y011235D01*
+X026715Y010996D02*
+X021572Y010996D01*
+X021663Y011235D02*
+X021663Y012712D01*
+X021821Y012870D01*
+X021881Y012810D01*
+X022031Y012748D01*
+X022194Y012748D01*
+X022344Y012810D01*
+X022458Y012925D01*
+X022521Y013075D01*
+X022521Y013237D01*
+X022458Y013387D01*
+X022344Y013502D01*
+X022194Y013564D01*
+X022031Y013564D01*
+X021881Y013502D01*
+X021775Y013396D01*
+X021720Y013396D01*
+X021632Y013359D01*
+X021287Y013015D01*
+X021220Y012947D01*
+X021183Y012859D01*
+X021183Y011287D01*
+X020537Y010640D01*
+X019054Y010640D01*
+X019054Y010662D01*
+X019054Y010859D01*
+X019054Y011055D01*
+X019054Y011220D01*
+X019068Y011244D01*
+X019167Y011146D01*
+X019167Y010803D01*
+X019278Y010692D01*
+X019829Y010692D01*
+X019940Y010803D01*
+X019940Y011394D01*
+X019901Y011433D01*
+X019940Y011473D01*
+X019940Y011611D01*
+X020071Y011557D01*
+X020169Y011557D01*
+X020169Y011458D01*
+X020225Y011323D01*
+X020329Y011219D01*
+X020464Y011163D01*
+X020611Y011163D01*
+X020746Y011219D01*
+X020850Y011323D01*
+X020906Y011458D01*
+X020906Y011605D01*
+X020850Y011741D01*
+X020778Y011813D01*
+X020778Y011976D01*
+X020778Y012072D01*
+X020741Y012160D01*
+X020280Y012621D01*
+X020192Y012658D01*
+X020096Y012658D01*
+X018804Y012658D01*
+X020194Y014048D01*
+X025362Y014048D01*
+X025457Y014048D01*
+X025546Y014084D01*
+X026038Y014576D01*
+X026105Y014644D01*
+X026142Y014732D01*
+X026142Y015138D01*
+X026214Y015211D01*
+X026271Y015346D01*
+X026271Y015493D01*
+X026214Y015628D01*
+X026111Y015732D01*
+X025975Y015788D01*
+X025828Y015788D01*
+X025693Y015732D01*
+X025589Y015628D01*
+X025533Y015493D01*
+X025533Y015346D01*
+X025589Y015211D01*
+X025662Y015138D01*
+X025662Y014879D01*
+X025310Y014528D01*
+X024759Y014528D01*
+X025121Y014890D01*
+X025158Y014978D01*
+X025158Y015074D01*
+X025158Y015138D01*
+X025230Y015211D01*
+X025286Y015346D01*
+X025286Y015493D01*
+X025230Y015628D01*
+X025126Y015732D01*
+X024991Y015788D01*
+X024844Y015788D01*
+X024709Y015732D01*
+X024605Y015628D01*
+X024549Y015493D01*
+X024549Y015346D01*
+X024605Y015211D01*
+X024678Y015138D01*
+X024678Y015125D01*
+X024277Y014724D01*
+X023971Y014724D01*
+X024088Y014841D01*
+X024124Y014929D01*
+X024124Y015024D01*
+X024124Y015138D01*
+X024197Y015211D01*
+X024253Y015346D01*
+X024253Y015493D01*
+X024197Y015628D01*
+X024093Y015732D01*
+X023957Y015788D01*
+X023811Y015788D01*
+X023675Y015732D01*
+X023571Y015628D01*
+X023515Y015493D01*
+X023515Y015346D01*
+X023571Y015211D01*
+X023644Y015138D01*
+X023644Y015076D01*
+X023489Y014921D01*
+X022889Y014921D01*
+X023050Y015083D01*
+X023109Y015107D01*
+X023212Y015211D01*
+X023269Y015346D01*
+X023269Y015493D01*
+X023212Y015628D01*
+X023109Y015732D01*
+X022973Y015788D01*
+X022826Y015788D01*
+X022691Y015732D01*
+X022587Y015628D01*
+X022531Y015493D01*
+X022531Y015346D01*
+X022561Y015273D01*
+X022407Y015118D01*
+X019702Y015118D01*
+X019614Y015082D01*
+X019547Y015014D01*
+X018427Y013895D01*
+X018427Y014098D02*
+X018630Y014098D01*
+X018427Y014336D02*
+X018869Y014336D01*
+X019107Y014575D02*
+X018507Y014575D01*
+X018507Y014813D02*
+X019346Y014813D01*
+X019547Y015014D02*
+X019547Y015014D01*
+X019584Y015052D02*
+X018507Y015052D01*
+X018507Y015290D02*
+X022554Y015290D01*
+X022546Y015529D02*
+X018454Y015529D01*
+X017687Y015529D02*
+X017687Y015529D01*
+X017687Y015617D02*
+X017687Y014997D01*
+X017687Y016112D01*
+X018187Y016612D01*
+X018187Y017417D01*
+X018188Y017417D02*
+X018537Y017417D01*
+X018188Y017417D01*
+X018188Y017417D01*
+X018187Y017199D02*
+X018187Y017199D01*
+X018187Y016960D02*
+X018187Y016960D01*
+X018056Y016722D02*
+X026715Y016722D01*
+X026715Y016960D02*
+X018530Y016960D01*
+X018537Y017199D02*
+X026715Y017199D01*
+X026715Y017437D02*
+X018537Y017437D01*
+X018537Y017676D02*
+X026715Y017676D01*
+X026715Y016483D02*
+X017943Y016483D01*
+X017666Y016244D02*
+X026715Y016244D01*
+X026715Y016006D02*
+X017431Y016006D01*
+X017647Y015767D02*
+X022776Y015767D01*
+X023024Y015767D02*
+X023760Y015767D01*
+X024008Y015767D02*
+X024794Y015767D01*
+X025041Y015767D02*
+X025778Y015767D01*
+X026026Y015767D02*
+X026715Y015767D01*
+X026715Y015529D02*
+X026256Y015529D01*
+X026247Y015290D02*
+X026715Y015290D01*
+X026715Y015052D02*
+X026142Y015052D01*
+X025662Y015052D02*
+X025158Y015052D01*
+X025263Y015290D02*
+X025556Y015290D01*
+X025548Y015529D02*
+X025271Y015529D01*
+X024564Y015529D02*
+X024238Y015529D01*
+X024230Y015290D02*
+X024572Y015290D01*
+X024604Y015052D02*
+X024124Y015052D01*
+X024060Y014813D02*
+X024366Y014813D01*
+X024806Y014575D02*
+X025357Y014575D01*
+X025596Y014813D02*
+X025044Y014813D01*
+X025559Y014098D02*
+X026715Y014098D01*
+X026715Y014336D02*
+X025798Y014336D01*
+X026036Y014575D02*
+X026715Y014575D01*
+X026715Y014813D02*
+X026142Y014813D01*
+X026715Y013859D02*
+X020005Y013859D01*
+X019767Y013620D02*
+X026715Y013620D01*
+X026715Y013382D02*
+X022460Y013382D01*
+X022521Y013143D02*
+X026715Y013143D01*
+X026715Y012905D02*
+X022439Y012905D01*
+X021663Y012666D02*
+X026715Y012666D01*
+X026715Y012428D02*
+X021663Y012428D01*
+X021663Y012189D02*
+X026715Y012189D01*
+X026715Y011951D02*
+X021663Y011951D01*
+X021663Y011712D02*
+X026715Y011712D01*
+X026715Y011474D02*
+X021663Y011474D01*
+X021183Y011474D02*
+X020906Y011474D01*
+X020862Y011712D02*
+X021183Y011712D01*
+X021183Y011951D02*
+X020778Y011951D01*
+X020712Y012189D02*
+X021183Y012189D01*
+X021183Y012428D02*
+X020473Y012428D01*
+X021183Y012666D02*
+X018813Y012666D01*
+X019051Y012905D02*
+X021202Y012905D01*
+X021416Y013143D02*
+X019290Y013143D01*
+X019528Y013382D02*
+X021687Y013382D01*
+X023019Y015052D02*
+X023620Y015052D01*
+X023538Y015290D02*
+X023245Y015290D01*
+X023254Y015529D02*
+X023530Y015529D01*
+X020169Y011474D02*
+X019940Y011474D01*
+X019940Y011235D02*
+X020313Y011235D01*
+X019940Y010996D02*
+X020893Y010996D01*
+X020762Y011235D02*
+X021132Y011235D01*
+X021334Y010758D02*
+X026715Y010758D01*
+X026715Y010519D02*
+X021095Y010519D01*
+X020856Y010281D02*
+X026715Y010281D01*
+X026715Y010042D02*
+X020349Y010042D01*
+X020587Y009804D02*
+X026715Y009804D01*
+X026715Y009565D02*
+X020826Y009565D01*
+X021261Y009327D02*
+X026715Y009327D01*
+X026715Y009088D02*
+X021500Y009088D01*
+X021738Y008850D02*
+X026715Y008850D01*
+X026715Y008611D02*
+X023355Y008611D01*
+X023593Y008373D02*
+X026715Y008373D01*
+X026715Y008134D02*
+X024006Y008134D01*
+X024056Y007895D02*
+X026715Y007895D01*
+X026591Y007250D02*
+X026591Y005872D01*
+X024475Y005872D01*
+X023933Y006414D01*
+X023687Y006414D01*
+X023687Y006660D01*
+X023884Y006660D01*
+X023884Y006709D01*
+X024425Y007250D01*
+X026591Y007250D01*
+X026591Y007180D02*
+X024355Y007180D01*
+X024116Y006941D02*
+X026591Y006941D01*
+X026591Y006703D02*
+X023884Y006703D01*
+X023687Y006464D02*
+X026591Y006464D01*
+X026591Y006226D02*
+X024121Y006226D01*
+X024360Y005987D02*
+X026591Y005987D01*
+X026715Y005380D02*
+X026715Y003274D01*
+X026662Y003327D01*
+X026456Y003413D01*
+X026233Y003413D01*
+X026027Y003327D01*
+X025870Y003170D01*
+X025853Y003128D01*
+X025835Y003170D01*
+X025678Y003327D01*
+X025472Y003413D01*
+X025249Y003413D01*
+X025043Y003327D01*
+X024886Y003170D01*
+X024868Y003128D01*
+X024851Y003170D01*
+X024693Y003327D01*
+X024576Y003376D01*
+X024576Y003713D01*
+X024784Y003713D01*
+X024856Y003640D01*
+X024992Y003584D01*
+X025139Y003584D01*
+X025274Y003640D01*
+X025378Y003744D01*
+X025434Y003880D01*
+X025434Y004026D01*
+X025378Y004162D01*
+X025305Y004234D01*
+X025305Y004591D01*
+X025269Y004679D01*
+X025201Y004747D01*
+X025054Y004895D01*
+X024965Y004931D01*
+X024870Y004931D01*
+X024328Y004931D01*
+X023971Y005288D01*
+X023883Y005325D01*
+X023787Y005325D01*
+X023618Y005325D01*
+X023618Y005406D01*
+X023664Y005453D01*
+X023736Y005380D01*
+X026715Y005380D01*
+X026715Y005271D02*
+X023988Y005271D01*
+X024226Y005033D02*
+X026715Y005033D01*
+X026715Y004794D02*
+X025154Y004794D01*
+X025305Y004556D02*
+X026715Y004556D01*
+X026715Y004317D02*
+X025305Y004317D01*
+X025412Y004079D02*
+X026715Y004079D01*
+X026715Y003840D02*
+X025418Y003840D01*
+X025181Y003602D02*
+X026715Y003602D01*
+X026715Y003363D02*
+X026576Y003363D01*
+X026114Y003363D02*
+X025591Y003363D01*
+X025130Y003363D02*
+X024607Y003363D01*
+X024576Y003602D02*
+X024950Y003602D01*
+X022358Y005325D02*
+X020539Y005325D01*
+X020329Y005534D01*
+X020451Y005534D01*
+X020451Y006366D01*
+X020644Y006366D01*
+X020644Y005534D01*
+X021010Y005534D01*
+X021066Y005549D01*
+X021116Y005578D01*
+X021157Y005619D01*
+X021186Y005669D01*
+X021201Y005725D01*
+X021201Y006366D01*
+X020645Y006366D01*
+X020645Y006559D01*
+X021201Y006559D01*
+X021201Y007200D01*
+X021186Y007256D01*
+X021157Y007307D01*
+X021116Y007348D01*
+X021066Y007376D01*
+X021010Y007391D01*
+X020644Y007391D01*
+X020644Y006560D01*
+X020451Y006560D01*
+X020451Y007391D01*
+X020187Y007391D01*
+X020187Y007990D01*
+X020187Y008085D01*
+X020151Y008174D01*
+X019393Y008931D01*
+X019472Y009010D01*
+X019515Y009114D01*
+X020544Y008086D01*
+X020544Y008039D01*
+X020580Y007951D01*
+X021041Y007490D01*
+X021130Y007453D01*
+X021225Y007453D01*
+X021520Y007453D01*
+X021609Y007490D01*
+X021676Y007557D01*
+X021769Y007650D01*
+X022358Y007650D01*
+X022358Y007643D01*
+X022231Y007643D01*
+X022131Y007602D01*
+X022055Y007526D01*
+X021558Y007028D01*
+X021498Y007028D01*
+X021362Y006972D01*
+X021259Y006869D01*
+X021202Y006733D01*
+X021202Y006586D01*
+X021259Y006451D01*
+X021362Y006347D01*
+X021498Y006291D01*
+X021644Y006291D01*
+X021780Y006347D01*
+X021884Y006451D01*
+X021940Y006586D01*
+X021940Y006647D01*
+X022358Y007065D01*
+X022358Y007054D01*
+X022469Y006943D01*
+X022937Y006943D01*
+X022917Y006923D01*
+X022519Y006923D01*
+X022463Y006908D01*
+X022413Y006879D01*
+X022372Y006838D01*
+X022343Y006788D01*
+X022328Y006732D01*
+X022328Y006463D01*
+X022851Y006463D01*
+X022851Y006463D01*
+X022328Y006463D01*
+X022328Y006194D01*
+X022343Y006138D01*
+X022372Y006088D01*
+X022413Y006047D01*
+X022463Y006018D01*
+X022519Y006003D01*
+X022988Y006003D01*
+X023114Y006003D01*
+X023134Y005983D01*
+X022469Y005983D01*
+X022358Y005872D01*
+X022358Y005325D01*
+X022358Y005510D02*
+X020353Y005510D01*
+X020451Y005749D02*
+X020644Y005749D01*
+X020644Y005987D02*
+X020451Y005987D01*
+X020451Y006226D02*
+X020644Y006226D01*
+X020645Y006464D02*
+X021253Y006464D01*
+X021201Y006226D02*
+X022328Y006226D01*
+X022328Y006464D02*
+X021889Y006464D01*
+X021996Y006703D02*
+X022328Y006703D01*
+X022234Y006941D02*
+X022935Y006941D01*
+X022988Y006129D02*
+X022988Y006128D01*
+X022988Y006003D01*
+X022988Y006129D01*
+X023129Y005987D02*
+X021201Y005987D01*
+X021201Y005749D02*
+X022358Y005749D01*
+X021202Y006703D02*
+X021201Y006703D01*
+X021201Y006941D02*
+X021331Y006941D01*
+X021201Y007180D02*
+X021709Y007180D01*
+X021948Y007418D02*
+X020187Y007418D01*
+X020187Y007657D02*
+X020874Y007657D01*
+X020636Y007895D02*
+X020187Y007895D01*
+X020167Y008134D02*
+X020496Y008134D01*
+X020257Y008373D02*
+X019952Y008373D01*
+X020018Y008611D02*
+X019713Y008611D01*
+X019780Y008850D02*
+X019474Y008850D01*
+X019505Y009088D02*
+X019541Y009088D01*
+X018054Y007994D02*
+X018054Y007955D01*
+X018069Y007900D01*
+X018084Y007874D01*
+X018084Y007709D01*
+X018084Y007512D01*
+X018084Y007315D01*
+X018195Y007204D01*
+X018329Y007204D01*
+X018329Y005713D01*
+X018120Y005922D01*
+X018120Y006381D01*
+X018123Y006384D01*
+X018123Y007132D01*
+X018012Y007243D01*
+X017815Y007243D01*
+X017618Y007243D01*
+X017421Y007243D01*
+X017225Y007243D01*
+X017028Y007243D01*
+X016831Y007243D01*
+X016666Y007243D01*
+X016640Y007258D01*
+X016584Y007273D01*
+X016545Y007273D01*
+X016545Y007347D01*
+X016545Y007348D01*
+X016608Y007410D01*
+X016638Y007381D01*
+X016773Y007324D01*
+X016920Y007324D01*
+X017056Y007381D01*
+X017159Y007484D01*
+X017215Y007620D01*
+X017215Y007766D01*
+X017159Y007902D01*
+X017129Y007932D01*
+X017192Y007994D01*
+X018054Y007994D01*
+X018071Y007895D02*
+X017162Y007895D01*
+X017215Y007657D02*
+X018084Y007657D01*
+X018084Y007418D02*
+X017093Y007418D01*
+X018076Y007180D02*
+X018329Y007180D01*
+X018329Y006941D02*
+X018123Y006941D01*
+X018123Y006703D02*
+X018329Y006703D01*
+X018329Y006464D02*
+X018123Y006464D01*
+X018120Y006226D02*
+X018329Y006226D01*
+X018329Y005987D02*
+X018120Y005987D01*
+X018294Y005749D02*
+X018329Y005749D01*
+X016336Y005574D02*
+X016336Y005077D01*
+X016219Y005028D01*
+X016116Y004925D01*
+X016060Y004789D01*
+X016060Y004642D01*
+X016116Y004507D01*
+X016188Y004434D01*
+X016188Y004324D01*
+X016225Y004235D01*
+X016292Y004168D01*
+X016401Y004059D01*
+X016401Y003963D01*
+X016460Y003904D01*
+X016401Y003845D01*
+X016401Y003413D01*
+X016391Y003413D01*
+X016185Y003327D01*
+X016027Y003170D01*
+X016010Y003128D01*
+X015993Y003170D01*
+X015835Y003327D01*
+X015629Y003413D01*
+X015407Y003413D01*
+X015201Y003327D01*
+X015043Y003170D01*
+X014977Y003009D01*
+X014910Y003170D01*
+X014752Y003327D01*
+X014691Y003353D01*
+X014752Y003378D01*
+X014910Y003535D01*
+X014995Y003741D01*
+X014995Y003964D01*
+X014910Y004170D01*
+X014894Y004186D01*
+X015016Y004186D01*
+X015127Y004297D01*
+X015127Y004471D01*
+X015248Y004421D01*
+X015394Y004421D01*
+X015530Y004477D01*
+X015634Y004581D01*
+X015649Y004618D01*
+X015788Y004618D01*
+X015924Y004674D01*
+X016027Y004778D01*
+X016084Y004913D01*
+X016084Y005060D01*
+X016027Y005195D01*
+X015924Y005299D01*
+X015788Y005355D01*
+X015685Y005355D01*
+X015654Y005387D01*
+X015566Y005423D01*
+X014870Y005423D01*
+X014797Y005393D01*
+X014583Y005393D01*
+X014268Y005393D01*
+X013992Y005393D01*
+X013643Y005393D01*
+X013643Y005408D01*
+X013594Y005524D01*
+X013638Y005524D01*
+X013805Y005524D01*
+X013861Y005539D01*
+X013911Y005568D01*
+X013915Y005573D01*
+X013933Y005554D01*
+X014366Y005554D01*
+X014478Y005666D01*
+X014478Y006177D01*
+X014382Y006273D01*
+X014469Y006273D01*
+X014666Y006273D01*
+X014862Y006273D01*
+X014992Y006273D01*
+X015256Y006273D01*
+X015374Y006273D01*
+X015328Y006227D01*
+X015328Y005715D01*
+X015439Y005604D01*
+X015872Y005604D01*
+X015890Y005622D01*
+X015895Y005617D01*
+X015945Y005589D01*
+X016001Y005574D01*
+X016167Y005574D01*
+X016167Y005970D01*
+X016168Y005970D01*
+X016168Y005574D01*
+X016334Y005574D01*
+X016336Y005574D01*
+X016336Y005510D02*
+X013600Y005510D01*
+X013638Y005524D02*
+X013638Y005921D01*
+X013638Y005524D01*
+X013638Y005749D02*
+X013638Y005749D01*
+X013638Y005921D02*
+X013638Y005921D01*
+X013280Y005921D01*
+X013280Y005719D01*
+X013177Y005719D01*
+X013150Y005708D01*
+X013150Y005753D01*
+X013091Y005895D01*
+X012982Y006005D01*
+X012839Y006064D01*
+X012685Y006064D01*
+X012542Y006005D01*
+X012491Y005954D01*
+X012490Y005955D01*
+X012347Y006015D01*
+X012193Y006015D01*
+X012050Y005955D01*
+X011999Y005905D01*
+X011998Y005906D01*
+X011855Y005965D01*
+X011701Y005965D01*
+X011558Y005906D01*
+X011449Y005797D01*
+X011389Y005654D01*
+X011389Y005500D01*
+X011408Y005455D01*
+X011363Y005473D01*
+X011208Y005473D01*
+X011066Y005414D01*
+X010956Y005305D01*
+X010897Y005162D01*
+X010897Y005008D01*
+X010956Y004865D01*
+X011066Y004756D01*
+X011208Y004696D01*
+X011363Y004696D01*
+X011430Y004724D01*
+X011430Y004358D01*
+X011299Y004413D01*
+X011076Y004413D01*
+X010870Y004327D01*
+X010843Y004300D01*
+X010843Y004593D01*
+X010646Y004593D01*
+X010597Y004544D01*
+X009760Y004544D01*
+X009760Y004777D01*
+X009798Y004793D01*
+X009865Y004860D01*
+X009902Y004949D01*
+X009902Y005871D01*
+X011981Y007951D01*
+X011981Y007906D01*
+X011981Y007709D01*
+X011981Y007512D01*
+X011981Y007315D01*
+X012093Y007204D01*
+X012841Y007204D01*
+X012952Y007315D01*
+X012952Y007512D01*
+X012952Y007709D01*
+X012952Y007906D01*
+X012952Y008103D01*
+X012952Y008299D01*
+X012952Y008313D01*
+X013082Y008259D01*
+X013229Y008259D01*
+X013365Y008316D01*
+X013468Y008419D01*
+X013524Y008555D01*
+X013524Y008702D01*
+X013468Y008837D01*
+X013406Y008900D01*
+X013406Y009017D01*
+X013614Y009225D01*
+X013631Y009268D01*
+X013647Y009274D01*
+X013703Y009218D01*
+X013703Y007515D01*
+X013665Y007607D01*
+X013561Y007710D01*
+X013426Y007767D01*
+X013279Y007767D01*
+X013144Y007710D01*
+X013040Y007607D01*
+X012984Y007471D01*
+X012984Y007324D01*
+X013019Y007239D01*
+X012913Y007132D01*
+X012913Y007017D01*
+X012885Y007028D01*
+X012738Y007028D01*
+X012602Y006972D01*
+X012499Y006869D01*
+X012443Y006733D01*
+X012443Y006586D01*
+X012499Y006451D01*
+X012571Y006378D01*
+X012571Y006366D01*
+X012608Y006278D01*
+X012675Y006210D01*
+X012774Y006112D01*
+X012862Y006075D01*
+X012957Y006075D01*
+X013280Y006075D01*
+X013280Y005922D01*
+X013638Y005922D01*
+X013638Y005921D01*
+X013811Y005921D01*
+X013810Y005922D01*
+X013638Y005922D01*
+X013638Y005921D01*
+X013280Y005987D02*
+X013000Y005987D01*
+X013150Y005749D02*
+X013280Y005749D01*
+X012660Y006226D02*
+X010256Y006226D01*
+X010494Y006464D02*
+X012493Y006464D01*
+X012443Y006703D02*
+X010733Y006703D01*
+X010972Y006941D02*
+X012571Y006941D01*
+X012960Y007180D02*
+X011210Y007180D01*
+X011449Y007418D02*
+X011981Y007418D01*
+X011981Y007657D02*
+X011687Y007657D01*
+X011926Y007895D02*
+X011981Y007895D01*
+X012952Y007895D02*
+X013703Y007895D01*
+X013703Y007657D02*
+X013615Y007657D01*
+X013090Y007657D02*
+X012952Y007657D01*
+X012952Y007418D02*
+X012984Y007418D01*
+X012952Y008134D02*
+X013703Y008134D01*
+X013703Y008373D02*
+X013422Y008373D01*
+X013524Y008611D02*
+X013703Y008611D01*
+X013703Y008850D02*
+X013456Y008850D01*
+X013477Y009088D02*
+X013703Y009088D01*
+X013647Y009274D02*
+X013647Y009274D01*
+X014429Y006226D02*
+X015328Y006226D01*
+X015328Y005987D02*
+X014478Y005987D01*
+X014478Y005749D02*
+X015328Y005749D01*
+X015951Y005271D02*
+X016336Y005271D01*
+X016231Y005033D02*
+X016084Y005033D01*
+X016062Y004794D02*
+X016034Y004794D01*
+X016096Y004556D02*
+X015609Y004556D01*
+X015127Y004317D02*
+X016191Y004317D01*
+X016381Y004079D02*
+X014948Y004079D01*
+X014995Y003840D02*
+X016401Y003840D01*
+X016401Y003602D02*
+X014937Y003602D01*
+X014717Y003363D02*
+X015287Y003363D01*
+X015024Y003125D02*
+X014929Y003125D01*
+X015749Y003363D02*
+X016271Y003363D01*
+X016167Y005749D02*
+X016168Y005749D01*
+X012782Y004563D02*
+X012427Y004563D01*
+X012112Y004563D01*
+X011758Y004563D01*
+X011430Y004556D02*
+X010843Y004556D01*
+X010609Y004556D02*
+X009760Y004556D01*
+X009799Y004794D02*
+X011027Y004794D01*
+X010897Y005033D02*
+X009902Y005033D01*
+X009902Y005271D02*
+X010943Y005271D01*
+X011389Y005510D02*
+X009902Y005510D01*
+X009902Y005749D02*
+X011428Y005749D01*
+X012126Y005987D02*
+X010017Y005987D01*
+X010843Y004317D02*
+X010860Y004317D01*
+X012414Y005987D02*
+X012524Y005987D01*
+X019054Y010758D02*
+X019212Y010758D01*
+X019167Y010996D02*
+X019054Y010996D01*
+X019063Y011235D02*
+X019078Y011235D01*
+X019895Y010758D02*
+X020655Y010758D01*
+X020644Y007180D02*
+X020451Y007180D01*
+X020451Y006941D02*
+X020644Y006941D01*
+X020644Y006703D02*
+X020451Y006703D01*
+X020439Y000853D02*
+X019849Y000853D01*
+X019455Y000853D01*
+X019455Y000852D01*
+X019849Y000852D01*
+X020439Y000852D01*
+X020439Y000853D01*
+X020440Y000853D02*
+X020833Y000853D01*
+X021423Y000853D01*
+X021423Y000852D01*
+X020833Y000852D01*
+X020440Y000852D01*
+X020440Y000853D01*
+X021424Y000853D02*
+X022013Y000853D01*
+X022407Y000853D01*
+X022407Y000852D01*
+X022013Y000852D01*
+X021424Y000852D01*
+X021424Y000853D01*
+X022408Y000853D02*
+X022802Y000853D01*
+X023392Y000853D01*
+X023786Y000853D01*
+X024376Y000853D01*
+X024376Y000852D01*
+X023786Y000852D01*
+X023392Y000852D01*
+X023392Y000853D01*
+X023392Y000852D01*
+X022802Y000852D01*
+X022408Y000852D01*
+X022408Y000853D01*
+X024377Y000853D02*
+X024770Y000853D01*
+X025360Y000853D01*
+X025360Y000852D01*
+X024770Y000852D01*
+X024377Y000852D01*
+X024377Y000853D01*
+X025361Y000853D02*
+X025755Y000853D01*
+X026344Y000853D01*
+X026344Y000852D01*
+X025755Y000852D01*
+X025361Y000852D01*
+X025361Y000853D01*
+X019455Y000852D02*
+X018865Y000852D01*
+X018471Y000852D01*
+X018471Y000853D01*
+X018865Y000853D01*
+X019455Y000853D01*
+X019455Y000852D01*
+X018470Y000852D02*
+X017881Y000852D01*
+X017487Y000852D01*
+X017487Y000853D01*
+X017881Y000853D01*
+X018470Y000853D01*
+X018470Y000852D01*
+X017486Y000852D02*
+X017092Y000852D01*
+X016503Y000852D01*
+X016503Y000853D01*
+X016896Y000853D01*
+X017486Y000853D01*
+X017486Y000852D01*
+X016502Y000852D02*
+X015912Y000852D01*
+X015518Y000852D01*
+X015518Y000853D01*
+X015912Y000853D01*
+X016502Y000853D01*
+X016502Y000852D01*
+X015518Y000852D02*
+X014928Y000852D01*
+X014436Y000852D01*
+X014436Y000853D01*
+X014928Y000853D01*
+X015518Y000853D01*
+X015518Y000852D01*
+X014435Y000852D02*
+X013845Y000852D01*
+X013353Y000852D01*
+X013353Y000853D01*
+X013845Y000853D01*
+X014435Y000853D01*
+X014435Y000852D01*
+X013352Y000852D02*
+X012860Y000852D01*
+X012270Y000852D01*
+X012270Y000853D01*
+X012860Y000853D01*
+X013352Y000853D01*
+X013352Y000852D01*
+X012269Y000852D02*
+X011680Y000852D01*
+X011188Y000852D01*
+X011188Y000853D01*
+X011680Y000853D01*
+X012269Y000853D01*
+X012269Y000852D01*
+X004304Y005510D02*
+X004291Y005510D01*
+X002831Y006464D02*
+X002831Y006464D01*
+X010787Y015052D02*
+X010850Y015052D01*
+X010850Y015290D02*
+X010787Y015290D01*
+X010787Y015529D02*
+X010996Y015529D01*
+X010996Y015767D02*
+X010522Y015767D01*
+X007742Y017676D02*
+X016367Y017676D01*
+X017687Y015617D02*
+X017687Y014997D01*
+X017687Y014997D01*
+X017687Y015052D02*
+X017687Y015052D01*
+X017687Y015290D02*
+X017687Y015290D01*
+D41*
+X017290Y015666D03*
+X016847Y016453D03*
+X017687Y016748D03*
+X018471Y015862D03*
+X019307Y015862D03*
+X018864Y016650D03*
+X018618Y017683D03*
+X020439Y016256D03*
+X021374Y016010D03*
+X020734Y015469D03*
+X022359Y016010D03*
+X022900Y015420D03*
+X023441Y016010D03*
+X023884Y015420D03*
+X024425Y016059D03*
+X024918Y015420D03*
+X025459Y016010D03*
+X025902Y015420D03*
+X026492Y014829D03*
+X026492Y013845D03*
+X026443Y013254D03*
+X026492Y012418D03*
+X025508Y011679D03*
+X025016Y011679D03*
+X026542Y011433D03*
+X026492Y010646D03*
+X026542Y009859D03*
+X026492Y009071D03*
+X025459Y009416D03*
+X024967Y009416D03*
+X023687Y007939D03*
+X023097Y007890D03*
+X021276Y008234D03*
+X022457Y009416D03*
+X022998Y009416D03*
+X020538Y010006D03*
+X020439Y010892D03*
+X020046Y011138D03*
+X020538Y011532D03*
+X020144Y011925D03*
+X019307Y012860D03*
+X016896Y012122D03*
+X015912Y011925D03*
+X015813Y010646D03*
+X017093Y010498D03*
+X017536Y010498D03*
+X017536Y010006D03*
+X017979Y009957D03*
+X017782Y009268D03*
+X017929Y008825D03*
+X019160Y009219D03*
+X016847Y007693D03*
+X015862Y005429D03*
+X015715Y004986D03*
+X015321Y004790D03*
+X016428Y004716D03*
+X016945Y004642D03*
+X017462Y004863D03*
+X017929Y004839D03*
+X018372Y004888D03*
+X018717Y004593D03*
+X020439Y003855D03*
+X020882Y003510D03*
+X020784Y004248D03*
+X020734Y005479D03*
+X021670Y005675D03*
+X022162Y005823D03*
+X021916Y006315D03*
+X021571Y006660D03*
+X023589Y004544D03*
+X024721Y004347D03*
+X025065Y003953D03*
+X025508Y004839D03*
+X026394Y005183D03*
+X026246Y004150D03*
+X022408Y011679D03*
+X021916Y011679D03*
+X024229Y013057D03*
+X024425Y013845D03*
+X022211Y013845D03*
+X018864Y014829D03*
+X016207Y013500D03*
+X016059Y014091D03*
+X015321Y013549D03*
+X013549Y013549D03*
+X012516Y013549D03*
+X011384Y012073D03*
+X011778Y011187D03*
+X013303Y011286D03*
+X013549Y011729D03*
+X013992Y011925D03*
+X013057Y009957D03*
+X013500Y009612D03*
+X013549Y009022D03*
+X013156Y008628D03*
+X013353Y007398D03*
+X012811Y006660D03*
+X011679Y007103D03*
+X011138Y006512D03*
+X010794Y005479D03*
+X010154Y004888D03*
+X008825Y007742D03*
+X009859Y008087D03*
+X009268Y009170D03*
+X010695Y009219D03*
+X011876Y009760D03*
+X009809Y011040D03*
+X009268Y010547D03*
+X007693Y011433D03*
+X007103Y011089D03*
+X007546Y010597D03*
+X007546Y009957D03*
+X006168Y008923D03*
+X005626Y009317D03*
+X006807Y008628D03*
+X007546Y008727D03*
+X005823Y011483D03*
+X008677Y013500D03*
+X008166Y013727D03*
+X010154Y015764D03*
+X007841Y015862D03*
+X007890Y017683D03*
+X010351Y017683D03*
+X012122Y017683D03*
+X013697Y017634D03*
+X015370Y017634D03*
+X013205Y015862D03*
+X013205Y015370D03*
+X015764Y015223D03*
+X015764Y015764D03*
+X026443Y015912D03*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBO b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBO
new file mode 100644
index 0000000..4f94fcc
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBO
@@ -0,0 +1,289 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0060*%
+%ADD11C,0.0020*%
+%ADD12R,0.0180X0.0300*%
+%ADD13R,0.0300X0.0180*%
+%ADD14C,0.0300*%
+%ADD15C,0.0220*%
+%ADD16C,0.0080*%
+%ADD17R,0.0787X0.0394*%
+D10*
+X000784Y004455D02*
+X001020Y004455D01*
+X001020Y004927D02*
+X000784Y004927D01*
+X001177Y005095D02*
+X001414Y005095D01*
+X001414Y005567D02*
+X001177Y005567D01*
+X001916Y004927D02*
+X002152Y004927D01*
+X002152Y004455D02*
+X001916Y004455D01*
+X003047Y004455D02*
+X003284Y004455D01*
+X003284Y004927D02*
+X003047Y004927D01*
+X003047Y005095D02*
+X003284Y005095D01*
+X003284Y005567D02*
+X003047Y005567D01*
+X004179Y005567D02*
+X004416Y005567D01*
+X004416Y005095D02*
+X004179Y005095D01*
+X004179Y004927D02*
+X004416Y004927D01*
+X004416Y004455D02*
+X004179Y004455D01*
+X009573Y010134D02*
+X009573Y010370D01*
+X010046Y010370D02*
+X010046Y010134D01*
+X009140Y010853D02*
+X008904Y010853D01*
+X008904Y011325D02*
+X009140Y011325D01*
+X012812Y012515D02*
+X012812Y007399D01*
+X013107Y007103D01*
+X018224Y007103D01*
+X018224Y012515D01*
+X012812Y012515D01*
+X012939Y014150D02*
+X013175Y014150D01*
+X013175Y014622D02*
+X012939Y014622D01*
+X016437Y015587D02*
+X016437Y016827D01*
+X016439Y016850D01*
+X016444Y016873D01*
+X016453Y016895D01*
+X016466Y016915D01*
+X016481Y016933D01*
+X016499Y016948D01*
+X016519Y016961D01*
+X016541Y016970D01*
+X016564Y016975D01*
+X016587Y016977D01*
+X018287Y016977D01*
+X018310Y016975D01*
+X018333Y016970D01*
+X018355Y016961D01*
+X018375Y016948D01*
+X018393Y016933D01*
+X018408Y016915D01*
+X018421Y016895D01*
+X018430Y016873D01*
+X018435Y016850D01*
+X018437Y016827D01*
+X018437Y016407D01*
+X018437Y016007D01*
+X018437Y015587D01*
+X018435Y015564D01*
+X018430Y015541D01*
+X018421Y015519D01*
+X018408Y015499D01*
+X018393Y015481D01*
+X018375Y015466D01*
+X018355Y015453D01*
+X018333Y015444D01*
+X018310Y015439D01*
+X018287Y015437D01*
+X016587Y015437D01*
+X016564Y015439D01*
+X016541Y015444D01*
+X016519Y015453D01*
+X016499Y015466D01*
+X016481Y015481D01*
+X016466Y015499D01*
+X016453Y015519D01*
+X016444Y015541D01*
+X016439Y015564D01*
+X016437Y015587D01*
+X017319Y014376D02*
+X017555Y014376D01*
+X017555Y013904D02*
+X017319Y013904D01*
+X018437Y016007D02*
+X018410Y016009D01*
+X018383Y016014D01*
+X018357Y016024D01*
+X018333Y016036D01*
+X018311Y016052D01*
+X018291Y016070D01*
+X018274Y016092D01*
+X018259Y016115D01*
+X018249Y016140D01*
+X018241Y016166D01*
+X018237Y016193D01*
+X018237Y016221D01*
+X018241Y016248D01*
+X018249Y016274D01*
+X018259Y016299D01*
+X018274Y016322D01*
+X018291Y016344D01*
+X018311Y016362D01*
+X018333Y016378D01*
+X018357Y016390D01*
+X018383Y016400D01*
+X018410Y016405D01*
+X018437Y016407D01*
+X013352Y008038D02*
+X013354Y008077D01*
+X013360Y008116D01*
+X013370Y008154D01*
+X013383Y008191D01*
+X013400Y008226D01*
+X013420Y008260D01*
+X013444Y008291D01*
+X013471Y008320D01*
+X013500Y008346D01*
+X013532Y008369D01*
+X013566Y008389D01*
+X013602Y008405D01*
+X013639Y008417D01*
+X013678Y008426D01*
+X013717Y008431D01*
+X013756Y008432D01*
+X013795Y008429D01*
+X013834Y008422D01*
+X013871Y008411D01*
+X013908Y008397D01*
+X013943Y008379D01*
+X013976Y008358D01*
+X014007Y008333D01*
+X014035Y008306D01*
+X014060Y008276D01*
+X014082Y008243D01*
+X014101Y008209D01*
+X014116Y008173D01*
+X014128Y008135D01*
+X014136Y008097D01*
+X014140Y008058D01*
+X014140Y008018D01*
+X014136Y007979D01*
+X014128Y007941D01*
+X014116Y007903D01*
+X014101Y007867D01*
+X014082Y007833D01*
+X014060Y007800D01*
+X014035Y007770D01*
+X014007Y007743D01*
+X013976Y007718D01*
+X013943Y007697D01*
+X013908Y007679D01*
+X013871Y007665D01*
+X013834Y007654D01*
+X013795Y007647D01*
+X013756Y007644D01*
+X013717Y007645D01*
+X013678Y007650D01*
+X013639Y007659D01*
+X013602Y007671D01*
+X013566Y007687D01*
+X013532Y007707D01*
+X013500Y007730D01*
+X013471Y007756D01*
+X013444Y007785D01*
+X013420Y007816D01*
+X013400Y007850D01*
+X013383Y007885D01*
+X013370Y007922D01*
+X013360Y007960D01*
+X013354Y007999D01*
+X013352Y008038D01*
+D11*
+X016437Y015577D02*
+X018437Y015577D01*
+D12*
+X015124Y014042D03*
+X004445Y016109D03*
+X004445Y016945D03*
+D13*
+X011236Y014681D03*
+X012073Y014681D03*
+X019553Y011433D03*
+X009268Y005331D03*
+X008185Y005331D03*
+X007299Y005331D03*
+X006217Y005331D03*
+X006217Y004051D03*
+X007299Y004051D03*
+X008185Y004051D03*
+X009268Y004051D03*
+D14*
+X006490Y013648D02*
+X006492Y013669D01*
+X006498Y013690D01*
+X006507Y013710D01*
+X006520Y013727D01*
+X006535Y013742D01*
+X006553Y013754D01*
+X006573Y013762D01*
+X006594Y013767D01*
+X006615Y013768D01*
+X006637Y013765D01*
+X006657Y013758D01*
+X006676Y013748D01*
+X006693Y013735D01*
+X006707Y013719D01*
+X006718Y013700D01*
+X006726Y013680D01*
+X006730Y013659D01*
+X006730Y013637D01*
+X006726Y013616D01*
+X006718Y013596D01*
+X006707Y013577D01*
+X006693Y013561D01*
+X006676Y013548D01*
+X006657Y013538D01*
+X006637Y013531D01*
+X006615Y013528D01*
+X006594Y013529D01*
+X006573Y013534D01*
+X006553Y013542D01*
+X006535Y013554D01*
+X006520Y013569D01*
+X006507Y013586D01*
+X006498Y013606D01*
+X006492Y013627D01*
+X006490Y013648D01*
+D15*
+X004605Y013796D02*
+X004581Y013796D01*
+X004605Y015026D02*
+X004581Y015026D01*
+X010388Y014927D02*
+X010412Y014927D01*
+X010412Y013697D02*
+X010388Y013697D01*
+D16*
+X002221Y008008D02*
+X000961Y008008D01*
+X000961Y006984D02*
+X002221Y006984D01*
+X002221Y006827D02*
+X000961Y006827D01*
+X000961Y005803D02*
+X002221Y005803D01*
+X002831Y005803D02*
+X004091Y005803D01*
+X004091Y006827D02*
+X002831Y006827D01*
+X021118Y007753D02*
+X021118Y005173D01*
+X022418Y005173D01*
+X022418Y007753D01*
+X021118Y007753D01*
+D17*
+X000754Y002319D03*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBS b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBS
new file mode 100644
index 0000000..625b20b
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GBS
@@ -0,0 +1,377 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10R,0.0340X0.0880*%
+%ADD11R,0.0395X0.0552*%
+%ADD12R,0.0552X0.0395*%
+%ADD13R,0.0513X0.0474*%
+%ADD14R,0.0474X0.0513*%
+%ADD15C,0.0820*%
+%ADD16R,0.0820X0.0820*%
+%ADD17R,0.0671X0.0186*%
+%ADD18R,0.0186X0.0671*%
+%ADD19R,0.0946X0.0316*%
+%ADD20R,0.0682X0.0682*%
+%ADD21R,0.1386X0.1386*%
+%ADD22R,0.0277X0.0356*%
+%ADD23R,0.0356X0.0356*%
+%ADD24R,0.0552X0.0867*%
+%ADD25C,0.0907*%
+%ADD26R,0.0560X0.0438*%
+%ADD27R,0.0434X0.0356*%
+%ADD28R,0.0356X0.0434*%
+%ADD29R,0.0960X0.0560*%
+%ADD30R,0.0946X0.1497*%
+%ADD31C,0.0595*%
+D10*
+X016687Y014997D03*
+X017187Y014997D03*
+X017687Y014997D03*
+X018187Y014997D03*
+X018187Y017417D03*
+X017687Y017417D03*
+X017187Y017417D03*
+X016687Y017417D03*
+D11*
+X013412Y014386D03*
+X012703Y014386D03*
+X017083Y014140D03*
+X017792Y014140D03*
+X009376Y011089D03*
+X008668Y011089D03*
+X004652Y005331D03*
+X004652Y004691D03*
+X003943Y004691D03*
+X003520Y004691D03*
+X002811Y004691D03*
+X002388Y004691D03*
+X001679Y004691D03*
+X001256Y004691D03*
+X000547Y004691D03*
+X000941Y005331D03*
+X001650Y005331D03*
+X002811Y005331D03*
+X003520Y005331D03*
+X003943Y005331D03*
+D12*
+X009809Y009898D03*
+X009809Y010607D03*
+D13*
+X014790Y014042D03*
+X015459Y014042D03*
+X004780Y016109D03*
+X004110Y016109D03*
+X004110Y016945D03*
+X004780Y016945D03*
+D14*
+X004593Y015360D03*
+X004593Y014691D03*
+X004593Y014130D03*
+X004593Y013461D03*
+X010400Y013362D03*
+X010400Y014032D03*
+X010400Y014593D03*
+X011236Y014347D03*
+X011236Y015016D03*
+X012073Y015016D03*
+X012073Y014347D03*
+X010400Y015262D03*
+X019553Y011768D03*
+X019553Y011099D03*
+X009268Y005666D03*
+X009268Y004996D03*
+X009268Y004386D03*
+X009268Y003717D03*
+X008185Y003717D03*
+X008185Y004386D03*
+X008185Y004996D03*
+X008185Y005666D03*
+X007299Y005666D03*
+X007299Y004996D03*
+X007299Y004386D03*
+X007299Y003717D03*
+X006217Y003717D03*
+X006217Y004386D03*
+X006217Y004996D03*
+X006217Y005666D03*
+D15*
+X006266Y002853D03*
+X007250Y002853D03*
+X008234Y002853D03*
+X009219Y002853D03*
+X009219Y001853D03*
+X008234Y001853D03*
+X007250Y001853D03*
+X006266Y001853D03*
+X006266Y000853D03*
+X007250Y000853D03*
+X008234Y000853D03*
+X009219Y000853D03*
+X011187Y001853D03*
+X012270Y001853D03*
+X013353Y001853D03*
+X014435Y001853D03*
+X015518Y001853D03*
+X016502Y001853D03*
+X017486Y001853D03*
+X018471Y001853D03*
+X019455Y001853D03*
+X020439Y001853D03*
+X021423Y001853D03*
+X022408Y001853D03*
+X023392Y001853D03*
+X024376Y001853D03*
+X025360Y001853D03*
+X026345Y001853D03*
+X026345Y002853D03*
+X025360Y002853D03*
+X024376Y002853D03*
+X023392Y002853D03*
+X022408Y002853D03*
+X021423Y002853D03*
+X020439Y002853D03*
+X019455Y002853D03*
+X018471Y002853D03*
+X017486Y002853D03*
+X016502Y002853D03*
+X015518Y002853D03*
+X014435Y002853D03*
+X014435Y003853D03*
+X013353Y003853D03*
+X013353Y002853D03*
+X012270Y002853D03*
+X012270Y003853D03*
+X011187Y003853D03*
+X011187Y002853D03*
+X015518Y000853D03*
+X016502Y000853D03*
+X017486Y000853D03*
+X018471Y000853D03*
+X019455Y000853D03*
+X020439Y000853D03*
+X021423Y000853D03*
+X022408Y000853D03*
+X023392Y000853D03*
+X024376Y000853D03*
+X025360Y000853D03*
+X026345Y000853D03*
+X009695Y012171D03*
+X008695Y012171D03*
+X007695Y012171D03*
+D16*
+X010695Y012171D03*
+X011187Y000853D03*
+X012270Y000853D03*
+X013353Y000853D03*
+X014435Y000853D03*
+D17*
+X012467Y007447D03*
+X012467Y007644D03*
+X012467Y007841D03*
+X012467Y008038D03*
+X012467Y008234D03*
+X012467Y008431D03*
+X012467Y008628D03*
+X012467Y008825D03*
+X012467Y009022D03*
+X012467Y009219D03*
+X012467Y009416D03*
+X012467Y009612D03*
+X012467Y009809D03*
+X012467Y010006D03*
+X012467Y010203D03*
+X012467Y010400D03*
+X012467Y010597D03*
+X012467Y010794D03*
+X012467Y010990D03*
+X012467Y011187D03*
+X012467Y011384D03*
+X012467Y011581D03*
+X012467Y011778D03*
+X012467Y011975D03*
+X012467Y012171D03*
+X018569Y012171D03*
+X018569Y011975D03*
+X018569Y011778D03*
+X018569Y011581D03*
+X018569Y011384D03*
+X018569Y011187D03*
+X018569Y010990D03*
+X018569Y010794D03*
+X018569Y010597D03*
+X018569Y010400D03*
+X018569Y010203D03*
+X018569Y010006D03*
+X018569Y009809D03*
+X018569Y009612D03*
+X018569Y009416D03*
+X018569Y009219D03*
+X018569Y009022D03*
+X018569Y008825D03*
+X018569Y008628D03*
+X018569Y008431D03*
+X018569Y008234D03*
+X018569Y008038D03*
+X018569Y007841D03*
+X018569Y007644D03*
+X018569Y007447D03*
+D18*
+X017880Y006758D03*
+X017683Y006758D03*
+X017486Y006758D03*
+X017290Y006758D03*
+X017093Y006758D03*
+X016896Y006758D03*
+X016699Y006758D03*
+X016502Y006758D03*
+X016305Y006758D03*
+X016109Y006758D03*
+X015912Y006758D03*
+X015715Y006758D03*
+X015518Y006758D03*
+X015321Y006758D03*
+X015124Y006758D03*
+X014927Y006758D03*
+X014731Y006758D03*
+X014534Y006758D03*
+X014337Y006758D03*
+X014140Y006758D03*
+X013943Y006758D03*
+X013746Y006758D03*
+X013549Y006758D03*
+X013353Y006758D03*
+X013156Y006758D03*
+X013156Y012860D03*
+X013353Y012860D03*
+X013549Y012860D03*
+X013746Y012860D03*
+X013943Y012860D03*
+X014140Y012860D03*
+X014337Y012860D03*
+X014534Y012860D03*
+X014731Y012860D03*
+X014927Y012860D03*
+X015124Y012860D03*
+X015321Y012860D03*
+X015518Y012860D03*
+X015715Y012860D03*
+X015912Y012860D03*
+X016109Y012860D03*
+X016305Y012860D03*
+X016502Y012860D03*
+X016699Y012860D03*
+X016896Y012860D03*
+X017093Y012860D03*
+X017290Y012860D03*
+X017486Y012860D03*
+X017683Y012860D03*
+X017880Y012860D03*
+D19*
+X009406Y013670D03*
+X009406Y014170D03*
+X009406Y014670D03*
+X009406Y015170D03*
+X009406Y015670D03*
+X009406Y016170D03*
+X009406Y016670D03*
+X009406Y017170D03*
+X005784Y017170D03*
+X005784Y016670D03*
+X005784Y016170D03*
+X005784Y015670D03*
+X005784Y015170D03*
+X005784Y014670D03*
+X005784Y014170D03*
+X005784Y013670D03*
+D20*
+X003018Y013845D03*
+X003018Y014829D03*
+X001738Y014829D03*
+X001738Y013845D03*
+D21*
+X002112Y011967D03*
+X002112Y016707D03*
+D22*
+X012112Y005114D03*
+X012427Y005114D03*
+X012427Y004563D03*
+X012112Y004563D03*
+X014130Y004514D03*
+X014445Y004514D03*
+X014445Y005065D03*
+X014130Y005065D03*
+X017083Y004179D03*
+X017398Y004179D03*
+X017398Y003628D03*
+X017083Y003628D03*
+X018756Y003628D03*
+X019071Y003628D03*
+X019071Y004179D03*
+X018756Y004179D03*
+X023579Y004081D03*
+X023894Y004081D03*
+X023894Y003530D03*
+X023579Y003530D03*
+D23*
+X023225Y003530D03*
+X023225Y004081D03*
+X024248Y004081D03*
+X024248Y003530D03*
+X019425Y003628D03*
+X019425Y004179D03*
+X018402Y004179D03*
+X017752Y004179D03*
+X017752Y003628D03*
+X018402Y003628D03*
+X016729Y003628D03*
+X016729Y004179D03*
+X014799Y004514D03*
+X014799Y005065D03*
+X013776Y005065D03*
+X013776Y004514D03*
+X012782Y004563D03*
+X012782Y005114D03*
+X011758Y005114D03*
+X011758Y004563D03*
+D24*
+X004091Y006315D03*
+X002831Y006315D03*
+X002221Y006315D03*
+X002221Y007496D03*
+X000961Y007496D03*
+X000961Y006315D03*
+D25*
+X002998Y003215D02*
+X003825Y003215D01*
+X003825Y001246D02*
+X002998Y001246D01*
+D26*
+X000754Y001439D03*
+X000754Y002727D03*
+D27*
+X011138Y008963D03*
+X011138Y009475D03*
+X011532Y010144D03*
+X011532Y010656D03*
+X014042Y013835D03*
+X014042Y014347D03*
+D28*
+X014150Y005921D03*
+X013638Y005921D03*
+X015656Y005971D03*
+X016168Y005971D03*
+D29*
+X022988Y005553D03*
+X022988Y006463D03*
+X022988Y007373D03*
+D30*
+X020548Y006463D03*
+D31*
+X010351Y002329D03*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTL b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTL
new file mode 100644
index 0000000..30f0871
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTL
@@ -0,0 +1,4273 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0000*%
+%ADD11R,0.0394X0.0433*%
+%ADD12R,0.0472X0.0472*%
+%ADD13R,0.0472X0.0315*%
+%ADD14R,0.1014X0.0748*%
+%ADD15C,0.0740*%
+%ADD16R,0.0740X0.0740*%
+%ADD17R,0.0225X0.0666*%
+%ADD18R,0.0500X0.1000*%
+%ADD19R,0.0602X0.0602*%
+%ADD20R,0.1306X0.1306*%
+%ADD21R,0.2028X0.0299*%
+%ADD22R,0.1555X0.0965*%
+%ADD23R,0.0104X0.0189*%
+%ADD24R,0.0926X0.0138*%
+%ADD25R,0.0630X0.0138*%
+%ADD26R,0.0315X0.0472*%
+%ADD27R,0.0433X0.0394*%
+%ADD28R,0.0748X0.1339*%
+%ADD29R,0.0315X0.0354*%
+%ADD30R,0.2106X0.3362*%
+%ADD31R,0.0350X0.1205*%
+%ADD32C,0.0827*%
+%ADD33R,0.0315X0.0236*%
+%ADD34R,0.0480X0.0880*%
+%ADD35R,0.1417X0.0866*%
+%ADD36C,0.0120*%
+%ADD37C,0.0397*%
+%ADD38C,0.0100*%
+%ADD39C,0.0515*%
+%ADD40C,0.0240*%
+%ADD41C,0.0700*%
+%ADD42C,0.0500*%
+%ADD43C,0.0320*%
+%ADD44C,0.0436*%
+%ADD45C,0.0357*%
+%ADD46C,0.0400*%
+%ADD47C,0.0160*%
+D10*
+X000262Y000262D02*
+X000262Y017979D01*
+X026935Y017979D01*
+X026935Y000262D01*
+X000262Y000262D01*
+D11*
+X005233Y003569D03*
+X005233Y004238D03*
+X013648Y010114D03*
+X013648Y010784D03*
+X017536Y008421D03*
+X017536Y007752D03*
+X018372Y007752D03*
+X018372Y008421D03*
+X019209Y008421D03*
+X019209Y007752D03*
+D12*
+X019209Y007171D03*
+X018372Y007171D03*
+X017536Y007171D03*
+X017536Y006345D03*
+X018372Y006345D03*
+X019209Y006345D03*
+X014288Y012693D03*
+X014288Y013520D03*
+X005233Y003038D03*
+X005233Y002211D03*
+D13*
+X005479Y001601D03*
+X005479Y000892D03*
+X010301Y000843D03*
+X010301Y001551D03*
+X008530Y008175D03*
+X008530Y008884D03*
+X006857Y011768D03*
+X006857Y012477D03*
+X021079Y007457D03*
+X021079Y006748D03*
+D14*
+X010631Y009947D03*
+X010631Y011049D03*
+X008495Y011049D03*
+X008495Y009947D03*
+D15*
+X008695Y012171D03*
+X007695Y012171D03*
+X009695Y012171D03*
+X011187Y003853D03*
+X011187Y002853D03*
+X012270Y002853D03*
+X012270Y003853D03*
+X013353Y003853D03*
+X013353Y002853D03*
+X014435Y002853D03*
+X015518Y002853D03*
+X016502Y002853D03*
+X017486Y002853D03*
+X018471Y002853D03*
+X019455Y002853D03*
+X020439Y002853D03*
+X021423Y002853D03*
+X022408Y002853D03*
+X023392Y002853D03*
+X024376Y002853D03*
+X025360Y002853D03*
+X026345Y002853D03*
+X026345Y001853D03*
+X025360Y001853D03*
+X024376Y001853D03*
+X023392Y001853D03*
+X022408Y001853D03*
+X021423Y001853D03*
+X020439Y001853D03*
+X019455Y001853D03*
+X018471Y001853D03*
+X017486Y001853D03*
+X016502Y001853D03*
+X015518Y001853D03*
+X014435Y001853D03*
+X013353Y001853D03*
+X012270Y001853D03*
+X011187Y001853D03*
+X009219Y001853D03*
+X008234Y001853D03*
+X007250Y001853D03*
+X006266Y001853D03*
+X006266Y002853D03*
+X007250Y002853D03*
+X008234Y002853D03*
+X009219Y002853D03*
+X009219Y000853D03*
+X008234Y000853D03*
+X007250Y000853D03*
+X006266Y000853D03*
+X014435Y003853D03*
+X015518Y000853D03*
+X016502Y000853D03*
+X017486Y000853D03*
+X018471Y000853D03*
+X019455Y000853D03*
+X020439Y000853D03*
+X021423Y000853D03*
+X022408Y000853D03*
+X023392Y000853D03*
+X024376Y000853D03*
+X025360Y000853D03*
+X026345Y000853D03*
+D16*
+X014435Y000853D03*
+X013353Y000853D03*
+X012270Y000853D03*
+X011187Y000853D03*
+X010695Y012171D03*
+D17*
+X021986Y012278D03*
+X022486Y012278D03*
+X022986Y012278D03*
+X023486Y012278D03*
+X023986Y012278D03*
+X024486Y012278D03*
+X024986Y012278D03*
+X025486Y012278D03*
+X025486Y008522D03*
+X024986Y008522D03*
+X024486Y008522D03*
+X023986Y008522D03*
+X023486Y008522D03*
+X022986Y008522D03*
+X022486Y008522D03*
+X021986Y008522D03*
+D18*
+X022925Y013973D03*
+X023925Y013973D03*
+X024925Y013973D03*
+X025925Y013973D03*
+X025925Y017359D03*
+X024925Y017359D03*
+X023925Y017359D03*
+X022925Y017359D03*
+D19*
+X003018Y014829D03*
+X003018Y013845D03*
+X001738Y013845D03*
+X001738Y014829D03*
+D20*
+X002112Y016707D03*
+X002112Y011967D03*
+D21*
+X011929Y014120D03*
+X011929Y014620D03*
+X011929Y015120D03*
+X011929Y015620D03*
+X011929Y016120D03*
+X011929Y016620D03*
+X014481Y016620D03*
+X014481Y016120D03*
+X014481Y015620D03*
+X014481Y015120D03*
+X014481Y014620D03*
+X014481Y014120D03*
+D22*
+X021006Y013412D03*
+X021006Y017329D03*
+X005404Y017329D03*
+X005404Y013412D03*
+D23*
+X011876Y005081D03*
+X012073Y005081D03*
+X012270Y005081D03*
+X012467Y005081D03*
+X012664Y005081D03*
+X012860Y005081D03*
+X012860Y004597D03*
+X012664Y004597D03*
+X012467Y004597D03*
+X012270Y004597D03*
+X012073Y004597D03*
+X011876Y004597D03*
+X015173Y004392D03*
+X015370Y004392D03*
+X015567Y004392D03*
+X015764Y004392D03*
+X015961Y004392D03*
+X016158Y004392D03*
+X016158Y003908D03*
+X015961Y003908D03*
+X015764Y003908D03*
+X015567Y003908D03*
+X015370Y003908D03*
+X015173Y003908D03*
+X017486Y003711D03*
+X017683Y003711D03*
+X017880Y003711D03*
+X018077Y003711D03*
+X018274Y003711D03*
+X018471Y003711D03*
+X018471Y004195D03*
+X018274Y004195D03*
+X018077Y004195D03*
+X017880Y004195D03*
+X017683Y004195D03*
+X017486Y004195D03*
+X022998Y004096D03*
+X023195Y004096D03*
+X023392Y004096D03*
+X023589Y004096D03*
+X023786Y004096D03*
+X023983Y004096D03*
+X023983Y003613D03*
+X023786Y003613D03*
+X023589Y003613D03*
+X023392Y003613D03*
+X023195Y003613D03*
+X022998Y003613D03*
+X008038Y003760D03*
+X007841Y003760D03*
+X007644Y003760D03*
+X007447Y003760D03*
+X007250Y003760D03*
+X007053Y003760D03*
+X007053Y004244D03*
+X007250Y004244D03*
+X007447Y004244D03*
+X007644Y004244D03*
+X007841Y004244D03*
+X008038Y004244D03*
+D24*
+X007546Y004002D03*
+X012368Y004839D03*
+X015666Y004150D03*
+X017979Y003953D03*
+X023490Y003855D03*
+D25*
+X008845Y004760D03*
+X008845Y005016D03*
+X008845Y005272D03*
+X008845Y005528D03*
+X008845Y005784D03*
+X008845Y006040D03*
+X008845Y006296D03*
+X006640Y006296D03*
+X006640Y006040D03*
+X006640Y005784D03*
+X006640Y005528D03*
+X006640Y005272D03*
+X006640Y005016D03*
+X006640Y004760D03*
+D26*
+X007388Y006857D03*
+X008097Y006857D03*
+X012211Y010892D03*
+X012920Y010892D03*
+X020577Y012270D03*
+X021286Y012270D03*
+X023038Y006561D03*
+X023746Y006561D03*
+D27*
+X023727Y007299D03*
+X023057Y007299D03*
+X022496Y007693D03*
+X021827Y007693D03*
+X024288Y007742D03*
+X024957Y007742D03*
+X024829Y013057D03*
+X025498Y013057D03*
+X023677Y013057D03*
+X023008Y013057D03*
+D28*
+X024593Y006561D03*
+X026128Y006561D03*
+D29*
+X026374Y007546D03*
+X025626Y007546D03*
+X026000Y008372D03*
+D30*
+X002526Y008010D03*
+D31*
+X002526Y005134D03*
+X003026Y005134D03*
+X003526Y005134D03*
+X004026Y005134D03*
+X002026Y005134D03*
+X001526Y005134D03*
+X001026Y005134D03*
+D32*
+X002998Y003215D02*
+X003825Y003215D01*
+X003825Y001246D02*
+X002998Y001246D01*
+D33*
+X010252Y008648D03*
+X010252Y009199D03*
+X011630Y009199D03*
+X011630Y008648D03*
+D34*
+X007422Y007703D03*
+X006512Y007703D03*
+X005602Y007703D03*
+D35*
+X006512Y010144D03*
+D36*
+X009612Y013008D02*
+X011138Y013008D01*
+X012368Y011778D01*
+X009612Y013008D02*
+X009317Y013303D01*
+X009317Y015272D01*
+X009809Y015764D01*
+X010154Y015764D01*
+X009416Y006857D02*
+X008097Y006857D01*
+X007388Y006857D02*
+X006069Y006857D01*
+X006069Y005528D01*
+X006640Y005528D01*
+X006640Y006040D02*
+X006640Y006296D01*
+X007841Y005183D02*
+X007841Y004244D01*
+X008038Y004244D02*
+X008038Y004642D01*
+X007644Y004244D02*
+X007644Y005040D01*
+X008845Y005528D02*
+X009416Y005528D01*
+X009416Y003569D01*
+X008776Y003569D01*
+X008776Y003707D01*
+X008382Y003707D01*
+X008382Y004002D01*
+X007546Y004002D01*
+X009416Y005528D02*
+X009416Y006857D01*
+X008845Y006296D02*
+X008845Y006040D01*
+X010400Y004199D02*
+X010744Y004544D01*
+X011384Y004544D01*
+X010400Y004199D02*
+X010400Y002378D01*
+X010351Y002329D01*
+D37*
+X008776Y003569D03*
+X008776Y004248D03*
+X006709Y004248D03*
+X007299Y006168D03*
+X008185Y006168D03*
+X011286Y005085D03*
+X011778Y005577D03*
+X012270Y005626D03*
+X012762Y005675D03*
+X013254Y005331D03*
+X013205Y004790D03*
+X001542Y003855D03*
+D38*
+X005675Y003559D02*
+X005675Y001837D01*
+X006266Y001837D01*
+X006266Y001853D01*
+X006266Y002853D02*
+X006266Y003067D01*
+X006660Y003461D01*
+X007447Y003461D01*
+X007447Y003760D01*
+X007644Y003760D02*
+X007644Y003246D01*
+X007250Y002853D01*
+X007841Y003246D02*
+X008234Y002853D01*
+X008284Y003362D02*
+X008038Y003609D01*
+X008038Y003760D01*
+X007841Y003760D02*
+X007841Y003246D01*
+X008284Y003362D02*
+X008530Y003362D01*
+X009040Y002853D01*
+X009219Y002853D01*
+X008845Y004248D02*
+X008776Y004248D01*
+X008845Y004248D02*
+X008845Y005016D01*
+X008845Y004760D01*
+X008845Y005272D02*
+X008274Y005272D01*
+X008038Y005036D01*
+X008038Y004642D01*
+X007644Y005040D02*
+X007644Y005331D01*
+X007201Y005774D01*
+X006650Y005774D01*
+X006640Y005784D01*
+X006069Y005528D02*
+X006069Y003953D01*
+X005675Y003559D01*
+X005675Y004396D01*
+X006640Y004317D02*
+X006709Y004248D01*
+X006640Y004317D02*
+X006640Y004760D01*
+X006640Y005016D01*
+X006640Y005272D02*
+X007162Y005272D01*
+X007447Y004986D01*
+X007447Y004244D01*
+X007841Y005183D02*
+X007841Y005331D01*
+X008294Y005784D01*
+X008845Y005784D01*
+X008313Y006296D02*
+X008185Y006168D01*
+X008313Y006296D02*
+X008845Y006296D01*
+X007299Y006168D02*
+X007171Y006296D01*
+X006640Y006296D01*
+X010134Y008648D02*
+X010154Y008628D01*
+X010252Y009199D02*
+X010272Y009219D01*
+X010695Y009219D01*
+X011630Y009199D02*
+X011876Y009445D01*
+X011876Y009760D01*
+X012565Y010203D02*
+X012811Y009957D01*
+X013057Y009957D01*
+X012565Y010203D02*
+X012565Y011581D01*
+X012368Y011778D01*
+X012910Y011679D02*
+X013303Y011286D01*
+X013303Y011276D01*
+X012920Y010892D01*
+X013294Y011286D02*
+X013303Y011286D01*
+X013648Y010941D01*
+X013648Y010784D01*
+X014042Y010508D02*
+X014042Y011236D01*
+X013549Y011729D01*
+X013549Y012664D01*
+X013579Y012693D01*
+X014288Y012693D01*
+X015400Y012693D01*
+X016207Y013500D01*
+X016699Y014091D02*
+X016170Y014620D01*
+X014481Y014620D01*
+X014481Y015120D02*
+X015662Y015120D01*
+X015764Y015223D01*
+X015620Y015620D02*
+X015764Y015764D01*
+X015620Y015620D02*
+X014481Y015620D01*
+X014481Y016120D02*
+X015900Y016120D01*
+X016207Y015813D01*
+X016207Y014927D01*
+X017290Y013845D01*
+X017290Y012073D01*
+X016748Y011532D01*
+X015666Y011532D01*
+X014878Y010744D01*
+X014878Y008923D01*
+X013353Y007398D01*
+X013205Y007742D02*
+X012811Y007742D01*
+X012418Y007349D01*
+X012418Y006512D01*
+X011827Y005921D01*
+X011827Y005577D01*
+X011778Y005577D01*
+X011827Y005577D02*
+X012073Y005331D01*
+X012073Y005081D01*
+X011876Y005081D02*
+X011290Y005081D01*
+X011286Y005085D01*
+X011384Y005183D01*
+X011384Y005823D01*
+X012171Y006610D01*
+X012171Y007447D01*
+X012713Y007988D01*
+X013107Y007988D01*
+X014337Y009219D01*
+X014337Y011778D01*
+X014731Y012171D01*
+X015321Y012171D02*
+X014583Y011433D01*
+X014583Y009120D01*
+X013205Y007742D01*
+X013107Y006660D02*
+X012811Y006660D01*
+X013107Y006660D02*
+X015075Y008628D01*
+X015075Y010597D01*
+X015813Y011335D01*
+X016896Y011335D01*
+X017536Y011975D01*
+X017536Y013943D01*
+X016453Y015026D01*
+X016453Y015912D01*
+X015744Y016620D01*
+X014481Y016620D01*
+X013205Y015862D02*
+X012963Y015620D01*
+X011929Y015620D01*
+X011929Y015120D02*
+X012955Y015120D01*
+X013205Y015370D01*
+X013431Y014120D02*
+X012910Y013599D01*
+X012910Y011679D01*
+X012162Y010941D02*
+X012211Y010892D01*
+X011286Y011581D02*
+X010695Y012171D01*
+X011384Y012073D02*
+X011433Y012122D01*
+X011433Y012418D01*
+X011089Y012762D01*
+X009286Y012762D01*
+X008695Y012171D01*
+X007939Y011581D02*
+X007792Y011433D01*
+X007693Y011433D01*
+X007939Y011581D02*
+X011286Y011581D01*
+X010631Y011049D02*
+X009819Y011049D01*
+X009809Y011040D01*
+X009268Y010547D02*
+X008668Y009947D01*
+X008495Y009947D01*
+X007792Y009919D02*
+X005675Y009919D01*
+X005675Y009821D02*
+X007792Y009821D01*
+X007792Y009722D02*
+X005675Y009722D01*
+X005675Y009624D02*
+X007792Y009624D01*
+X007792Y009525D02*
+X005675Y009525D01*
+X005675Y009427D02*
+X007792Y009427D01*
+X007792Y009328D02*
+X005675Y009328D01*
+X005675Y009229D02*
+X007792Y009229D01*
+X007792Y009219D02*
+X007792Y010695D01*
+X005675Y010695D01*
+X005675Y009219D01*
+X007792Y009219D01*
+X007792Y010018D02*
+X005675Y010018D01*
+X005675Y010116D02*
+X007792Y010116D01*
+X007792Y010215D02*
+X005675Y010215D01*
+X005675Y010313D02*
+X007792Y010313D01*
+X007792Y010412D02*
+X005675Y010412D01*
+X005675Y010511D02*
+X007792Y010511D01*
+X007792Y010609D02*
+X005675Y010609D01*
+X011581Y008628D02*
+X011601Y008648D01*
+X011630Y008648D01*
+X013500Y009612D02*
+X013648Y009760D01*
+X013648Y010114D01*
+X014042Y010508D01*
+X015321Y009563D02*
+X015321Y008530D01*
+X012860Y006069D01*
+X012516Y006069D01*
+X012270Y005823D01*
+X012270Y005626D01*
+X012270Y005081D01*
+X012467Y005081D02*
+X012467Y005282D01*
+X012762Y005577D01*
+X012762Y005675D01*
+X015567Y008481D01*
+X015567Y009416D01*
+X017044Y010892D01*
+X017191Y010892D01*
+X017831Y011532D01*
+X020538Y011532D01*
+X020144Y011925D02*
+X017831Y011925D01*
+X016994Y011089D01*
+X016847Y011089D01*
+X015321Y009563D01*
+X015813Y009219D02*
+X015813Y008431D01*
+X013254Y005872D01*
+X013254Y005331D01*
+X012762Y005331D01*
+X012664Y005233D01*
+X012664Y005081D01*
+X012860Y005081D02*
+X012914Y005081D01*
+X013205Y004790D01*
+X013254Y004790D01*
+X013648Y005183D01*
+X013648Y005921D01*
+X016059Y008333D01*
+X016059Y009022D01*
+X017536Y010498D01*
+X017093Y010498D02*
+X015813Y009219D01*
+X016355Y008825D02*
+X016355Y008234D01*
+X014091Y005971D01*
+X014091Y005474D01*
+X015173Y004392D01*
+X015173Y004642D01*
+X015321Y004790D01*
+X015715Y004691D02*
+X015764Y004642D01*
+X015764Y004392D01*
+X015666Y004150D02*
+X016305Y004150D01*
+X016453Y004002D01*
+X016453Y003904D01*
+X016453Y003855D01*
+X016207Y003609D01*
+X016059Y003609D01*
+X015862Y003412D01*
+X015321Y003412D01*
+X015026Y003116D01*
+X015026Y000902D01*
+X015075Y000853D01*
+X015518Y002853D02*
+X015648Y002853D01*
+X016158Y003362D01*
+X016256Y003362D01*
+X016605Y003711D01*
+X017486Y003711D01*
+X017683Y003711D02*
+X017683Y003559D01*
+X017585Y003461D01*
+X017110Y003461D01*
+X016502Y002853D01*
+X015666Y003609D02*
+X015191Y003609D01*
+X014435Y002853D01*
+X013894Y003394D02*
+X013353Y002853D01*
+X013894Y003394D02*
+X013894Y004150D01*
+X013648Y004396D01*
+X013062Y004396D01*
+X012860Y004597D01*
+X012664Y004597D02*
+X012664Y004445D01*
+X013256Y003853D01*
+X013353Y003853D01*
+X012811Y004051D02*
+X012811Y003394D01*
+X012270Y002853D01*
+X011729Y003394D02*
+X011187Y002853D01*
+X011729Y003394D02*
+X011729Y004051D01*
+X012073Y004396D01*
+X012073Y004597D01*
+X011876Y004597D02*
+X011876Y004542D01*
+X011187Y003853D01*
+X011384Y004544D02*
+X011679Y004839D01*
+X012368Y004839D01*
+X012270Y004597D02*
+X012270Y003853D01*
+X012811Y004051D02*
+X012467Y004396D01*
+X012467Y004597D01*
+X014435Y003853D02*
+X014491Y003908D01*
+X015173Y003908D01*
+X015666Y003609D02*
+X015764Y003707D01*
+X015764Y003908D01*
+X016453Y003904D02*
+X017044Y003904D01*
+X017093Y003953D01*
+X017979Y003953D01*
+X018077Y003711D02*
+X018077Y003246D01*
+X018471Y002853D01*
+X017880Y003246D02*
+X017880Y003711D01*
+X018274Y003711D02*
+X018274Y003559D01*
+X018372Y003461D01*
+X018847Y003461D01*
+X019455Y002853D01*
+X019581Y003711D02*
+X018471Y003711D01*
+X018471Y004195D02*
+X018717Y004441D01*
+X018717Y004593D01*
+X018372Y004642D02*
+X018274Y004544D01*
+X018274Y004195D01*
+X018077Y004195D02*
+X018077Y004691D01*
+X017929Y004839D01*
+X017880Y004445D02*
+X017462Y004863D01*
+X017486Y004544D02*
+X017044Y004544D01*
+X016945Y004642D01*
+X016699Y004199D02*
+X016703Y004195D01*
+X017486Y004195D01*
+X017683Y004195D02*
+X017683Y004347D01*
+X017486Y004544D01*
+X017880Y004445D02*
+X017880Y004195D01*
+X018372Y004642D02*
+X018372Y004888D01*
+X019581Y003711D02*
+X020439Y002853D01*
+X020931Y003116D02*
+X021670Y003855D01*
+X023490Y003855D01*
+X023392Y003613D02*
+X023392Y002853D01*
+X023097Y003362D02*
+X022918Y003362D01*
+X022408Y002853D01*
+X023097Y003362D02*
+X023195Y003461D01*
+X023195Y003613D01*
+X022998Y003613D02*
+X022184Y003613D01*
+X021423Y002853D01*
+X020931Y003116D02*
+X020931Y000853D01*
+X017880Y003246D02*
+X017486Y002853D01*
+X016699Y004199D02*
+X016428Y004470D01*
+X016428Y004716D01*
+X015715Y004691D02*
+X015715Y004986D01*
+X014829Y005872D01*
+X014829Y006315D01*
+X016650Y008136D01*
+X016650Y008628D01*
+X017979Y009957D01*
+X017536Y010006D02*
+X016355Y008825D01*
+X017536Y009022D02*
+X017536Y008421D01*
+X017929Y008825D02*
+X018333Y008421D01*
+X018372Y008421D01*
+X018372Y007752D02*
+X018372Y007171D01*
+X017536Y007171D02*
+X017536Y007752D01*
+X016847Y007693D02*
+X016847Y007034D01*
+X017536Y006345D01*
+X018372Y006345D01*
+X019209Y006345D01*
+X019209Y007171D02*
+X019209Y007752D01*
+X019209Y008421D02*
+X019209Y009170D01*
+X019160Y009219D01*
+X017782Y009268D02*
+X017536Y009022D01*
+X021276Y008234D02*
+X021571Y008530D01*
+X021571Y011975D01*
+X021874Y012278D01*
+X021986Y012278D01*
+X022486Y012278D02*
+X022486Y012782D01*
+X022112Y013156D01*
+X022925Y013973D02*
+X022925Y015394D01*
+X022900Y015420D01*
+X023884Y015420D02*
+X023925Y015378D01*
+X023925Y013973D01*
+X024925Y013973D02*
+X024925Y015412D01*
+X024918Y015420D01*
+X025902Y015420D02*
+X025925Y015396D01*
+X025925Y013973D01*
+X023986Y008522D02*
+X023986Y008238D01*
+X023687Y007939D01*
+X023486Y008280D02*
+X023097Y007890D01*
+X023486Y008280D02*
+X023486Y008522D01*
+X023589Y004544D02*
+X023589Y004096D01*
+X023786Y004096D02*
+X023786Y004297D01*
+X023933Y004445D01*
+X024622Y004445D01*
+X024721Y004347D01*
+X025065Y003953D02*
+X024179Y003953D01*
+X024032Y004101D01*
+X023987Y004101D01*
+X023983Y004096D01*
+X023983Y003613D02*
+X025584Y003613D01*
+X026345Y002853D01*
+X025360Y002853D02*
+X024851Y003362D01*
+X023884Y003362D01*
+X023786Y003461D01*
+X023786Y003613D01*
+X023589Y003613D02*
+X023589Y003412D01*
+X024148Y002853D01*
+X024376Y002853D01*
+X023392Y004096D02*
+X023392Y004297D01*
+X023146Y004544D01*
+X021079Y004544D01*
+X020784Y004248D01*
+X020931Y003855D02*
+X020439Y003855D01*
+X020931Y003855D02*
+X021423Y004347D01*
+X023097Y004347D01*
+X023195Y004248D01*
+X023195Y004096D01*
+X022998Y004096D02*
+X021468Y004096D01*
+X020882Y003510D01*
+X014442Y003859D02*
+X014435Y003853D01*
+X006266Y000853D02*
+X005518Y000853D01*
+X005479Y000892D01*
+X016896Y012122D02*
+X016699Y012319D01*
+X016699Y014091D01*
+X015321Y013549D02*
+X015292Y013520D01*
+X014288Y013520D01*
+X014481Y014120D02*
+X013431Y014120D01*
+X013549Y013549D02*
+X013549Y012664D01*
+D39*
+X010351Y002329D03*
+D40*
+X010603Y001853D02*
+X010301Y001551D01*
+X009520Y001551D01*
+X009219Y001853D01*
+X009219Y000853D02*
+X009229Y000843D01*
+X010301Y000843D01*
+X010311Y000853D01*
+X011187Y000853D01*
+X011187Y001853D02*
+X010603Y001853D01*
+X007422Y007703D02*
+X007894Y008175D01*
+X008530Y008175D01*
+X009012Y008175D01*
+X009484Y008648D01*
+X010134Y008648D01*
+X010252Y008648D01*
+X010154Y008628D02*
+X011581Y008628D01*
+X013156Y008628D01*
+X005528Y011089D02*
+X005479Y011040D01*
+X021079Y006748D02*
+X021168Y006660D01*
+X021571Y006660D01*
+X021940Y006703D02*
+X022660Y006703D01*
+X022660Y006826D02*
+X022660Y006561D01*
+X022660Y006364D01*
+X021797Y006364D01*
+X021884Y006451D01*
+X021940Y006586D01*
+X021940Y006733D01*
+X021884Y006869D01*
+X021780Y006972D01*
+X021644Y007028D01*
+X021620Y007028D01*
+X021620Y007306D01*
+X022122Y007306D01*
+X022140Y007325D01*
+X022145Y007320D01*
+X022195Y007291D01*
+X022251Y007276D01*
+X022496Y007276D01*
+X022496Y007693D01*
+X022496Y007693D01*
+X022890Y007299D01*
+X023057Y007299D01*
+X022811Y007299D01*
+X022812Y007300D01*
+X023057Y007300D01*
+X023057Y007299D01*
+X022621Y007276D02*
+X022621Y007074D01*
+X022636Y007018D01*
+X022665Y006968D01*
+X022703Y006930D01*
+X022675Y006882D01*
+X022660Y006826D01*
+X022691Y006941D02*
+X021811Y006941D01*
+X021620Y007180D02*
+X022621Y007180D01*
+X022621Y007276D02*
+X022496Y007276D01*
+X022496Y007693D01*
+X022486Y007703D01*
+X022486Y008522D01*
+X022486Y009075D01*
+X022345Y009075D01*
+X022289Y009060D01*
+X022239Y009031D01*
+X022215Y009007D01*
+X022178Y009045D01*
+X021811Y009045D01*
+X021811Y011755D01*
+X022178Y011755D01*
+X022236Y011814D01*
+X022295Y011755D01*
+X022678Y011755D01*
+X022736Y011814D01*
+X022795Y011755D01*
+X023178Y011755D01*
+X023215Y011793D01*
+X023239Y011769D01*
+X023289Y011740D01*
+X023345Y011725D01*
+X023486Y011725D01*
+X023486Y012278D01*
+X023677Y012469D01*
+X023677Y013057D01*
+X023008Y013057D02*
+X022986Y013036D01*
+X022986Y012278D01*
+X023486Y012278D02*
+X023487Y012278D01*
+X023654Y012278D01*
+X023986Y012278D01*
+X023986Y012278D01*
+X023654Y012278D01*
+X023487Y012278D01*
+X023487Y012278D01*
+X023487Y011725D01*
+X023628Y011725D01*
+X023684Y011740D01*
+X023734Y011769D01*
+X023736Y011771D01*
+X023739Y011769D01*
+X023789Y011740D01*
+X023845Y011725D01*
+X023986Y011725D01*
+X023986Y012278D01*
+X023987Y012278D01*
+X024154Y012278D01*
+X024486Y012278D01*
+X024486Y012278D01*
+X024154Y012278D01*
+X023987Y012278D01*
+X023987Y012278D01*
+X023987Y011725D01*
+X024128Y011725D01*
+X024184Y011740D01*
+X024234Y011769D01*
+X024236Y011771D01*
+X024239Y011769D01*
+X024289Y011740D01*
+X024345Y011725D01*
+X024486Y011725D01*
+X024486Y012278D01*
+X024487Y012278D01*
+X024654Y012278D01*
+X024986Y012278D01*
+X024986Y012278D01*
+X024654Y012278D01*
+X024487Y012278D01*
+X024487Y012278D01*
+X024487Y011725D01*
+X024628Y011725D01*
+X024684Y011740D01*
+X024734Y011769D01*
+X024736Y011771D01*
+X024739Y011769D01*
+X024789Y011740D01*
+X024845Y011725D01*
+X024986Y011725D01*
+X024986Y012278D01*
+X024829Y012435D01*
+X024829Y013057D01*
+X025486Y013046D02*
+X025486Y012713D01*
+X026000Y012199D01*
+X026000Y008372D01*
+X025486Y008522D02*
+X025486Y007685D01*
+X025626Y007546D01*
+X026128Y007044D01*
+X026128Y006561D01*
+X025564Y006464D02*
+X023638Y006464D01*
+X023638Y006226D02*
+X025564Y006226D01*
+X025564Y005987D02*
+X023638Y005987D01*
+X023638Y005971D02*
+X023638Y007447D01*
+X023762Y007571D01*
+X023896Y007627D01*
+X024000Y007730D01*
+X024055Y007864D01*
+X024130Y007939D01*
+X024130Y007999D01*
+X024178Y007999D01*
+X024217Y008038D01*
+X024570Y008038D01*
+X024550Y008018D01*
+X024550Y007467D01*
+X024662Y007356D01*
+X025252Y007356D01*
+X025279Y007382D01*
+X025279Y007290D01*
+X025390Y007178D01*
+X025555Y007178D01*
+X025564Y007169D01*
+X025564Y005971D01*
+X023638Y005971D01*
+X023037Y006561D02*
+X022660Y006561D01*
+X023037Y006561D01*
+X023037Y006561D01*
+X022660Y006464D02*
+X021889Y006464D01*
+X022496Y007418D02*
+X022496Y007418D01*
+X022496Y007657D02*
+X022496Y007657D01*
+X021986Y007853D02*
+X021827Y007693D01*
+X021986Y007853D02*
+X021986Y008522D01*
+X022486Y008522D02*
+X022487Y008522D01*
+X022654Y008522D01*
+X022986Y008522D01*
+X022986Y008521D01*
+X022819Y008521D01*
+X022487Y008521D01*
+X022487Y008522D01*
+X022487Y009075D01*
+X022628Y009075D01*
+X022684Y009060D01*
+X022734Y009031D01*
+X022736Y009028D01*
+X022739Y009031D01*
+X022789Y009060D01*
+X022845Y009075D01*
+X022986Y009075D01*
+X022986Y008522D01*
+X022987Y008522D01*
+X022987Y009075D01*
+X023128Y009075D01*
+X023184Y009060D01*
+X023234Y009031D01*
+X023258Y009007D01*
+X023295Y009045D01*
+X023678Y009045D01*
+X023736Y008986D01*
+X023795Y009045D01*
+X024178Y009045D01*
+X024236Y008986D01*
+X024295Y009045D01*
+X024678Y009045D01*
+X024700Y009022D01*
+X024730Y009022D01*
+X024739Y009031D01*
+X024789Y009060D01*
+X024845Y009075D01*
+X024986Y009075D01*
+X024986Y009022D01*
+X024987Y009022D01*
+X024987Y009075D01*
+X025128Y009075D01*
+X025184Y009060D01*
+X025234Y009031D01*
+X025243Y009022D01*
+X025272Y009022D01*
+X025295Y009045D01*
+X025678Y009045D01*
+X025690Y009032D01*
+X025690Y011768D01*
+X025678Y011755D01*
+X025295Y011755D01*
+X025258Y011793D01*
+X025234Y011769D01*
+X025184Y011740D01*
+X025128Y011725D01*
+X024987Y011725D01*
+X024987Y012278D01*
+X024986Y012278D01*
+X024986Y012189D02*
+X024987Y012189D01*
+X024986Y011951D02*
+X024987Y011951D01*
+X024487Y011951D02*
+X024486Y011951D01*
+X023987Y011951D02*
+X023986Y011951D01*
+X023986Y012189D02*
+X023987Y012189D01*
+X024486Y012189D02*
+X024487Y012189D01*
+X023487Y012189D02*
+X023486Y012189D01*
+X023486Y011951D02*
+X023487Y011951D01*
+X021811Y011712D02*
+X025690Y011712D01*
+X025690Y011474D02*
+X021811Y011474D01*
+X021811Y011235D02*
+X025690Y011235D01*
+X025690Y010996D02*
+X021811Y010996D01*
+X021811Y010758D02*
+X025690Y010758D01*
+X025690Y010519D02*
+X021811Y010519D01*
+X021811Y010281D02*
+X025690Y010281D01*
+X025690Y010042D02*
+X021811Y010042D01*
+X021811Y009804D02*
+X025690Y009804D01*
+X025690Y009565D02*
+X021811Y009565D01*
+X021811Y009327D02*
+X025690Y009327D01*
+X025690Y009088D02*
+X021811Y009088D01*
+X022486Y008850D02*
+X022487Y008850D01*
+X022486Y008611D02*
+X022487Y008611D01*
+X022986Y008611D02*
+X022987Y008611D01*
+X022986Y008850D02*
+X022987Y008850D01*
+X024086Y007895D02*
+X024550Y007895D01*
+X024550Y007657D02*
+X023926Y007657D01*
+X023638Y007418D02*
+X024599Y007418D01*
+X024288Y007742D02*
+X024288Y008097D01*
+X024486Y008296D01*
+X024486Y008522D01*
+X024986Y008522D02*
+X024986Y007772D01*
+X024957Y007742D01*
+X025389Y007180D02*
+X023638Y007180D01*
+X023638Y006941D02*
+X025564Y006941D01*
+X025564Y006703D02*
+X023638Y006703D01*
+X025486Y012278D02*
+X025486Y012713D01*
+X025486Y013046D02*
+X025498Y013057D01*
+D41*
+X025360Y000853D02*
+X024376Y000853D01*
+X023392Y000853D01*
+X022408Y000853D01*
+X021423Y000853D01*
+X020931Y000853D01*
+X020439Y000853D01*
+X019455Y000853D01*
+X018471Y000853D01*
+X017486Y000853D01*
+X016502Y000853D01*
+X015518Y000853D01*
+X015075Y000853D02*
+X014435Y000853D01*
+X013353Y000853D01*
+X012270Y000853D01*
+X006364Y000853D01*
+X006266Y001853D02*
+X007250Y001853D01*
+X008234Y001853D01*
+X009219Y001853D01*
+X025360Y000853D02*
+X026345Y000853D01*
+D42*
+X015518Y000853D02*
+X015075Y000853D01*
+X006266Y000853D02*
+X003805Y000853D01*
+X003412Y001246D01*
+D43*
+X003412Y001246D01*
+X004498Y001246D01*
+X004498Y001202D01*
+X004487Y001115D01*
+X004464Y001029D01*
+X004430Y000948D01*
+X004386Y000871D01*
+X004332Y000801D01*
+X004270Y000739D01*
+X004200Y000685D01*
+X004124Y000641D01*
+X004042Y000607D01*
+X003957Y000584D01*
+X003869Y000573D01*
+X003412Y000573D01*
+X003412Y001246D01*
+X003411Y001246D01*
+X002325Y001246D01*
+X002325Y001202D01*
+X002336Y001115D01*
+X002359Y001029D01*
+X002393Y000948D01*
+X002437Y000871D01*
+X002491Y000801D01*
+X002553Y000739D01*
+X002623Y000685D01*
+X002700Y000641D01*
+X002781Y000607D01*
+X002867Y000584D01*
+X002954Y000573D01*
+X003411Y000573D01*
+X003411Y001246D01*
+X003411Y001246D01*
+X002325Y001246D01*
+X002325Y001290D01*
+X002336Y001378D01*
+X002359Y001463D01*
+X002393Y001545D01*
+X002437Y001621D01*
+X002491Y001691D01*
+X002553Y001754D01*
+X002623Y001807D01*
+X002700Y001851D01*
+X002781Y001885D01*
+X002867Y001908D01*
+X002954Y001920D01*
+X003411Y001920D01*
+X003411Y001247D01*
+X003412Y001247D01*
+X003412Y001920D01*
+X003869Y001920D01*
+X003957Y001908D01*
+X004042Y001885D01*
+X004124Y001851D01*
+X004200Y001807D01*
+X004270Y001754D01*
+X004332Y001691D01*
+X004386Y001621D01*
+X004430Y001545D01*
+X004464Y001463D01*
+X004487Y001378D01*
+X004498Y001290D01*
+X004498Y001246D01*
+X003412Y001246D01*
+X003411Y001218D02*
+X003412Y001218D01*
+X003411Y001536D02*
+X003412Y001536D01*
+X003411Y001855D02*
+X003412Y001855D01*
+X004116Y001855D02*
+X004224Y001855D01*
+X000522Y001855D01*
+X002708Y001855D01*
+X002390Y001536D02*
+X000522Y001536D01*
+X004489Y001536D01*
+X004434Y001536D01*
+X004544Y001482D02*
+X004544Y000522D01*
+X000522Y000522D01*
+X000522Y010105D01*
+X004297Y010105D01*
+X006390Y012197D01*
+X006390Y012196D01*
+X006418Y012153D01*
+X006455Y012117D01*
+X006474Y012104D01*
+X006390Y012021D01*
+X006390Y011515D01*
+X006525Y011380D01*
+X007188Y011380D01*
+X007265Y011458D01*
+X007353Y011458D01*
+X007467Y011505D01*
+X007546Y011584D01*
+X007576Y011571D01*
+X007811Y011571D01*
+X007758Y011519D01*
+X007758Y010580D01*
+X007840Y010498D01*
+X007758Y010416D01*
+X007758Y009478D01*
+X007893Y009343D01*
+X009097Y009343D01*
+X009232Y009478D01*
+X009232Y010116D01*
+X009255Y010139D01*
+X009349Y010139D01*
+X009499Y010201D01*
+X009614Y010316D01*
+X009677Y010466D01*
+X009677Y010629D01*
+X009665Y010657D01*
+X009728Y010631D01*
+X009891Y010631D01*
+X009894Y010632D01*
+X009894Y010580D01*
+X009976Y010498D01*
+X009894Y010416D01*
+X009894Y009478D01*
+X009912Y009460D01*
+X009865Y009412D01*
+X009865Y008998D01*
+X009414Y008998D01*
+X009286Y008945D01*
+X009187Y008846D01*
+X009022Y008681D01*
+X009026Y008701D01*
+X009026Y008884D01*
+X008530Y008884D01*
+X008530Y008884D01*
+X009026Y008884D01*
+X009026Y009067D01*
+X009016Y009117D01*
+X008996Y009165D01*
+X008968Y009207D01*
+X008932Y009244D01*
+X008889Y009272D01*
+X008842Y009292D01*
+X008792Y009302D01*
+X008530Y009302D01*
+X008530Y008884D01*
+X008530Y008884D01*
+X008530Y009302D01*
+X008268Y009302D01*
+X008218Y009292D01*
+X008170Y009272D01*
+X008128Y009244D01*
+X008092Y009207D01*
+X008063Y009165D01*
+X008044Y009117D01*
+X008034Y009067D01*
+X008034Y008884D01*
+X008034Y008701D01*
+X008044Y008651D01*
+X008063Y008603D01*
+X008092Y008561D01*
+X008127Y008525D01*
+X007824Y008525D01*
+X007696Y008472D01*
+X007597Y008374D01*
+X007597Y008373D01*
+X007087Y008373D01*
+X006981Y008268D01*
+X006954Y008309D01*
+X006918Y008345D01*
+X006875Y008374D01*
+X006828Y008393D01*
+X006778Y008403D01*
+X006512Y008403D01*
+X006246Y008403D01*
+X006196Y008393D01*
+X006149Y008374D01*
+X006106Y008345D01*
+X006070Y008309D01*
+X006043Y008268D01*
+X005937Y008373D01*
+X005267Y008373D01*
+X005132Y008239D01*
+X005132Y007168D01*
+X005210Y007090D01*
+X004578Y006458D01*
+X004437Y006400D01*
+X004311Y006274D01*
+X004243Y006109D01*
+X004243Y005966D01*
+X003755Y005966D01*
+X003255Y005966D01*
+X002825Y005966D01*
+X002824Y005967D01*
+X002777Y005986D01*
+X002727Y005996D01*
+X002526Y005996D01*
+X002526Y005996D01*
+X002526Y005134D01*
+X002526Y004272D01*
+X002583Y004272D01*
+X002570Y004239D01*
+X002570Y004061D01*
+X002638Y003896D01*
+X002733Y003801D01*
+X002634Y003760D01*
+X002478Y003605D01*
+X001898Y003605D01*
+X001905Y003612D01*
+X001962Y003751D01*
+X002123Y003751D01*
+X002288Y003819D01*
+X002414Y003945D01*
+X002482Y004110D01*
+X002482Y004272D01*
+X002526Y004272D01*
+X002526Y005134D01*
+X002526Y005134D01*
+X002526Y005134D01*
+X002526Y005996D01*
+X002325Y005996D01*
+X002275Y005986D01*
+X002227Y005967D01*
+X002227Y005966D01*
+X001796Y005966D01*
+X001296Y005966D01*
+X000755Y005966D01*
+X000621Y005832D01*
+X000621Y004436D01*
+X000636Y004421D01*
+X000636Y003808D01*
+X000636Y003653D01*
+X000695Y003510D01*
+X000857Y003348D01*
+X000798Y003206D01*
+X000798Y003027D01*
+X000866Y002863D01*
+X000992Y002736D01*
+X001157Y002668D01*
+X001335Y002668D01*
+X001476Y002726D01*
+X001619Y002726D01*
+X001762Y002786D01*
+X001802Y002825D01*
+X002478Y002825D01*
+X002634Y002669D01*
+X002870Y002571D01*
+X003953Y002571D01*
+X004189Y002669D01*
+X004203Y002683D01*
+X004203Y002259D01*
+X004203Y002104D01*
+X004203Y002062D01*
+X004203Y001907D01*
+X004262Y001764D01*
+X004646Y001380D01*
+X004756Y001270D01*
+X004899Y001211D01*
+X005037Y001211D01*
+X005012Y001173D01*
+X004992Y001125D01*
+X004982Y001075D01*
+X004982Y000892D01*
+X005478Y000892D01*
+X005478Y000892D01*
+X004982Y000892D01*
+X004982Y000709D01*
+X004992Y000659D01*
+X005012Y000611D01*
+X005040Y000569D01*
+X005077Y000533D01*
+X005092Y000522D01*
+X000522Y000522D01*
+X000522Y010105D01*
+X004544Y010105D01*
+X004544Y006444D01*
+X004437Y006400D01*
+X004311Y006274D01*
+X004243Y006109D01*
+X004243Y005966D01*
+X003755Y005966D01*
+X003255Y005966D01*
+X002755Y005966D01*
+X002621Y005832D01*
+X002621Y004436D01*
+X002636Y004421D01*
+X002636Y004398D01*
+X002570Y004239D01*
+X002570Y004061D01*
+X002638Y003896D01*
+X002733Y003801D01*
+X002634Y003760D01*
+X002478Y003605D01*
+X001898Y003605D01*
+X001905Y003612D01*
+X001962Y003751D01*
+X002123Y003751D01*
+X002288Y003819D01*
+X002414Y003945D01*
+X002482Y004110D01*
+X002482Y004288D01*
+X002424Y004428D01*
+X002424Y004429D01*
+X002431Y004436D01*
+X002431Y005832D01*
+X002296Y005966D01*
+X001796Y005966D01*
+X001296Y005966D01*
+X000755Y005966D01*
+X000621Y005832D01*
+X000621Y004436D01*
+X000636Y004421D01*
+X000636Y003808D01*
+X000636Y003653D01*
+X000695Y003510D01*
+X000857Y003348D01*
+X000798Y003206D01*
+X000798Y003027D01*
+X000866Y002863D01*
+X000992Y002736D01*
+X001157Y002668D01*
+X001335Y002668D01*
+X001476Y002726D01*
+X001619Y002726D01*
+X001762Y002786D01*
+X001801Y002825D01*
+X002478Y002825D01*
+X002634Y002669D01*
+X002870Y002571D01*
+X003953Y002571D01*
+X004189Y002669D01*
+X004203Y002683D01*
+X004203Y002259D01*
+X004203Y002104D01*
+X004203Y002062D01*
+X004203Y001907D01*
+X004262Y001764D01*
+X004544Y001482D01*
+X004544Y001218D02*
+X000522Y001218D01*
+X002325Y001218D01*
+X002421Y000899D02*
+X000522Y000899D01*
+X004544Y000899D01*
+X004402Y000899D02*
+X004982Y000899D01*
+X004882Y001218D02*
+X004498Y001218D01*
+X004977Y001601D02*
+X005479Y001601D01*
+X005731Y001853D01*
+X006266Y001853D01*
+X005233Y002211D02*
+X005203Y002181D01*
+X004593Y002181D01*
+X004593Y003855D01*
+X004026Y004421D01*
+X004026Y005134D01*
+X004691Y005799D01*
+X004691Y006020D01*
+X005602Y006931D01*
+X005602Y007703D01*
+X005132Y007589D02*
+X003839Y007589D01*
+X003839Y007850D02*
+X002686Y007850D01*
+X002686Y008170D01*
+X003839Y008170D01*
+X003839Y009717D01*
+X003829Y009767D01*
+X003809Y009814D01*
+X003781Y009857D01*
+X003745Y009893D01*
+X003702Y009922D01*
+X003655Y009941D01*
+X003605Y009951D01*
+X002686Y009951D01*
+X002686Y008170D01*
+X002366Y008170D01*
+X002366Y009951D01*
+X001447Y009951D01*
+X001397Y009941D01*
+X001349Y009922D01*
+X001307Y009893D01*
+X001271Y009857D01*
+X001242Y009814D01*
+X001223Y009767D01*
+X001213Y009717D01*
+X001213Y008170D01*
+X002366Y008170D01*
+X002366Y007850D01*
+X002686Y007850D01*
+X002686Y006069D01*
+X003605Y006069D01*
+X003655Y006079D01*
+X003702Y006099D01*
+X003745Y006127D01*
+X003781Y006163D01*
+X003809Y006206D01*
+X003829Y006253D01*
+X003839Y006303D01*
+X003839Y007850D01*
+X003839Y008226D02*
+X005132Y008226D01*
+X005132Y007907D02*
+X002686Y007907D01*
+X002686Y007589D02*
+X002366Y007589D01*
+X002366Y007850D02*
+X002366Y006069D01*
+X001447Y006069D01*
+X001397Y006079D01*
+X001349Y006099D01*
+X001307Y006127D01*
+X001271Y006163D01*
+X001242Y006206D01*
+X001223Y006253D01*
+X001213Y006303D01*
+X001213Y007850D01*
+X002366Y007850D01*
+X002366Y007907D02*
+X000522Y007907D01*
+X004544Y007907D01*
+X004544Y007589D02*
+X000522Y007589D01*
+X001213Y007589D01*
+X001213Y007270D02*
+X000522Y007270D01*
+X004544Y007270D01*
+X004544Y006951D02*
+X000522Y006951D01*
+X001213Y006951D01*
+X001213Y006633D02*
+X000522Y006633D01*
+X004544Y006633D01*
+X004753Y006633D02*
+X003839Y006633D01*
+X003839Y006314D02*
+X004352Y006314D01*
+X000522Y006314D01*
+X001213Y006314D01*
+X000522Y005996D02*
+X002322Y005996D01*
+X002366Y006314D02*
+X002686Y006314D01*
+X002686Y006633D02*
+X002366Y006633D01*
+X002366Y006951D02*
+X002686Y006951D01*
+X002686Y007270D02*
+X002366Y007270D01*
+X002366Y008226D02*
+X002686Y008226D01*
+X002686Y008544D02*
+X002366Y008544D01*
+X002366Y008863D02*
+X002686Y008863D01*
+X002686Y009181D02*
+X002366Y009181D01*
+X002366Y009500D02*
+X002686Y009500D01*
+X002686Y009818D02*
+X002366Y009818D01*
+X001245Y009818D02*
+X000522Y009818D01*
+X004544Y009818D01*
+X004494Y010055D02*
+X005479Y011040D01*
+X005285Y011093D02*
+X007758Y011093D01*
+X007758Y010774D02*
+X007391Y010774D01*
+X007386Y010779D02*
+X007344Y010807D01*
+X007297Y010827D01*
+X007246Y010837D01*
+X006569Y010837D01*
+X006569Y010200D01*
+X007481Y010200D01*
+X007481Y010602D01*
+X007471Y010652D01*
+X007451Y010700D01*
+X007423Y010742D01*
+X007386Y010779D01*
+X007481Y010455D02*
+X007798Y010455D01*
+X007758Y010137D02*
+X006569Y010137D01*
+X006569Y010087D02*
+X006569Y010200D01*
+X006455Y010200D01*
+X006455Y010087D01*
+X005543Y010087D01*
+X005543Y009685D01*
+X005553Y009635D01*
+X005573Y009587D01*
+X005601Y009545D01*
+X005638Y009509D01*
+X005680Y009480D01*
+X005728Y009460D01*
+X005778Y009450D01*
+X006455Y009450D01*
+X006455Y010087D01*
+X006569Y010087D01*
+X007481Y010087D01*
+X007481Y009685D01*
+X007471Y009635D01*
+X007451Y009587D01*
+X007423Y009545D01*
+X007386Y009509D01*
+X007344Y009480D01*
+X007297Y009460D01*
+X007246Y009450D01*
+X006569Y009450D01*
+X006569Y010087D01*
+X006455Y010137D02*
+X004330Y010137D01*
+X004648Y010455D02*
+X005543Y010455D01*
+X005543Y010602D02*
+X005543Y010200D01*
+X006455Y010200D01*
+X006455Y010837D01*
+X005778Y010837D01*
+X005728Y010827D01*
+X005680Y010807D01*
+X005638Y010779D01*
+X005601Y010742D01*
+X005573Y010700D01*
+X005553Y010652D01*
+X005543Y010602D01*
+X005633Y010774D02*
+X004967Y010774D01*
+X004494Y011433D02*
+X003025Y011433D01*
+X003025Y011900D01*
+X002179Y011900D01*
+X002179Y012033D01*
+X003025Y012033D01*
+X003025Y012645D01*
+X003015Y012695D01*
+X002996Y012743D01*
+X002967Y012785D01*
+X002931Y012821D01*
+X002888Y012850D01*
+X002841Y012869D01*
+X002791Y012879D01*
+X002179Y012879D01*
+X002179Y012033D01*
+X002046Y012033D01*
+X002046Y011900D01*
+X001200Y011900D01*
+X001200Y011433D01*
+X000522Y011433D01*
+X000522Y017719D01*
+X004366Y017719D01*
+X004366Y017410D01*
+X005322Y017410D01*
+X005322Y017248D01*
+X004366Y017248D01*
+X004366Y016821D01*
+X004376Y016771D01*
+X004396Y016724D01*
+X004424Y016681D01*
+X004460Y016645D01*
+X004503Y016616D01*
+X004550Y016597D01*
+X004601Y016587D01*
+X005323Y016587D01*
+X005323Y017248D01*
+X005485Y017248D01*
+X005485Y017410D01*
+X006441Y017410D01*
+X006441Y017719D01*
+X006512Y017719D01*
+X006512Y013451D01*
+X006391Y013330D01*
+X005485Y013330D01*
+X005485Y012669D01*
+X005730Y012669D01*
+X004494Y011433D01*
+X004791Y011730D02*
+X003025Y011730D01*
+X003025Y012048D02*
+X005109Y012048D01*
+X005428Y012367D02*
+X003025Y012367D01*
+X003017Y012685D02*
+X004536Y012685D01*
+X004550Y012679D02*
+X004601Y012669D01*
+X005323Y012669D01*
+X005323Y013330D01*
+X005485Y013330D01*
+X005485Y013493D01*
+X005323Y013493D01*
+X005323Y014154D01*
+X004601Y014154D01*
+X004550Y014144D01*
+X004503Y014124D01*
+X004460Y014096D01*
+X004424Y014060D01*
+X004396Y014017D01*
+X004376Y013970D01*
+X004366Y013920D01*
+X004366Y013493D01*
+X005322Y013493D01*
+X005322Y013330D01*
+X004366Y013330D01*
+X004366Y012904D01*
+X004376Y012854D01*
+X004396Y012806D01*
+X004424Y012764D01*
+X004460Y012727D01*
+X004503Y012699D01*
+X004550Y012679D01*
+X004366Y013004D02*
+X000522Y013004D01*
+X000522Y013322D02*
+X001300Y013322D01*
+X001314Y013313D02*
+X001361Y013294D01*
+X001412Y013284D01*
+X001738Y013284D01*
+X001738Y013844D01*
+X001739Y013844D01*
+X001739Y013845D01*
+X002299Y013845D01*
+X002299Y014171D01*
+X002289Y014222D01*
+X002270Y014269D01*
+X002241Y014312D01*
+X002205Y014348D01*
+X002193Y014356D01*
+X002269Y014433D01*
+X002269Y015225D01*
+X002135Y015360D01*
+X001342Y015360D01*
+X001207Y015225D01*
+X001207Y014433D01*
+X001284Y014356D01*
+X001272Y014348D01*
+X001235Y014312D01*
+X001207Y014269D01*
+X001187Y014222D01*
+X001177Y014171D01*
+X001177Y013845D01*
+X001738Y013845D01*
+X001738Y013844D01*
+X001177Y013844D01*
+X001177Y013518D01*
+X001187Y013468D01*
+X001207Y013420D01*
+X001235Y013378D01*
+X001272Y013342D01*
+X001314Y013313D01*
+X001177Y013641D02*
+X000522Y013641D01*
+X000522Y013959D02*
+X001177Y013959D01*
+X001213Y014278D02*
+X000522Y014278D01*
+X000522Y014596D02*
+X001207Y014596D01*
+X001207Y014915D02*
+X000522Y014915D01*
+X000522Y015234D02*
+X001216Y015234D01*
+X001384Y015804D02*
+X001336Y015824D01*
+X001294Y015852D01*
+X001258Y015888D01*
+X001229Y015931D01*
+X001210Y015978D01*
+X001200Y016029D01*
+X001200Y016640D01*
+X002046Y016640D01*
+X002179Y016640D01*
+X002179Y015794D01*
+X002791Y015794D01*
+X002841Y015804D01*
+X002888Y015824D01*
+X002931Y015852D01*
+X002967Y015888D01*
+X002996Y015931D01*
+X003015Y015978D01*
+X003025Y016029D01*
+X003025Y016640D01*
+X002179Y016640D01*
+X002179Y016773D01*
+X003025Y016773D01*
+X003025Y017385D01*
+X003015Y017436D01*
+X002996Y017483D01*
+X002967Y017525D01*
+X002931Y017562D01*
+X002888Y017590D01*
+X002841Y017610D01*
+X002791Y017620D01*
+X002179Y017620D01*
+X002179Y016774D01*
+X002046Y016774D01*
+X002046Y017620D01*
+X001434Y017620D01*
+X001384Y017610D01*
+X001336Y017590D01*
+X001294Y017562D01*
+X001258Y017525D01*
+X001229Y017483D01*
+X001210Y017436D01*
+X001200Y017385D01*
+X001200Y016773D01*
+X002046Y016773D01*
+X002046Y016640D01*
+X002046Y015794D01*
+X001434Y015794D01*
+X001384Y015804D01*
+X001275Y015871D02*
+X000522Y015871D01*
+X000522Y016189D02*
+X001200Y016189D01*
+X001200Y016508D02*
+X000522Y016508D01*
+X000522Y016826D02*
+X001200Y016826D01*
+X001200Y017145D02*
+X000522Y017145D01*
+X000522Y017463D02*
+X001221Y017463D01*
+X002046Y017463D02*
+X002179Y017463D01*
+X002179Y017145D02*
+X002046Y017145D01*
+X002046Y016826D02*
+X002179Y016826D01*
+X002179Y016508D02*
+X002046Y016508D01*
+X002046Y016189D02*
+X002179Y016189D01*
+X002179Y015871D02*
+X002046Y015871D01*
+X002261Y015234D02*
+X002495Y015234D01*
+X002487Y015225D02*
+X002487Y014433D01*
+X002583Y014337D01*
+X002487Y014241D01*
+X002487Y013448D01*
+X002622Y013314D01*
+X003414Y013314D01*
+X003549Y013448D01*
+X003549Y014241D01*
+X003453Y014337D01*
+X003549Y014433D01*
+X003549Y015225D01*
+X003414Y015360D01*
+X002622Y015360D01*
+X002487Y015225D01*
+X002487Y014915D02*
+X002269Y014915D01*
+X002269Y014596D02*
+X002487Y014596D01*
+X002524Y014278D02*
+X002264Y014278D01*
+X002299Y013959D02*
+X002487Y013959D01*
+X002299Y013844D02*
+X001739Y013844D01*
+X001739Y013284D01*
+X002065Y013284D01*
+X002115Y013294D01*
+X002163Y013313D01*
+X002205Y013342D01*
+X002241Y013378D01*
+X002270Y013420D01*
+X002289Y013468D01*
+X002299Y013518D01*
+X002299Y013844D01*
+X002299Y013641D02*
+X002487Y013641D01*
+X002613Y013322D02*
+X002176Y013322D01*
+X001739Y013322D02*
+X001738Y013322D01*
+X001738Y013641D02*
+X001739Y013641D01*
+X001434Y012879D02*
+X001384Y012869D01*
+X001336Y012850D01*
+X001294Y012821D01*
+X001258Y012785D01*
+X001229Y012743D01*
+X001210Y012695D01*
+X001200Y012645D01*
+X001200Y012033D01*
+X002046Y012033D01*
+X002046Y012879D01*
+X001434Y012879D01*
+X001208Y012685D02*
+X000522Y012685D01*
+X000522Y012367D02*
+X001200Y012367D01*
+X001200Y012048D02*
+X000522Y012048D01*
+X000522Y011730D02*
+X001200Y011730D01*
+X002046Y012048D02*
+X002179Y012048D01*
+X002179Y012367D02*
+X002046Y012367D01*
+X002046Y012685D02*
+X002179Y012685D01*
+X003423Y013322D02*
+X004366Y013322D01*
+X004366Y013641D02*
+X003549Y013641D01*
+X003549Y013959D02*
+X004374Y013959D01*
+X005323Y013959D02*
+X005485Y013959D01*
+X005485Y014154D02*
+X005485Y013493D01*
+X006441Y013493D01*
+X006441Y013920D01*
+X006431Y013970D01*
+X006412Y014017D01*
+X006383Y014060D01*
+X006347Y014096D01*
+X006304Y014124D01*
+X006257Y014144D01*
+X006207Y014154D01*
+X005485Y014154D01*
+X005485Y013641D02*
+X005323Y013641D01*
+X005323Y013322D02*
+X005485Y013322D01*
+X005485Y013004D02*
+X005323Y013004D01*
+X005323Y012685D02*
+X005485Y012685D01*
+X006168Y011975D02*
+X006670Y012477D01*
+X006856Y012477D01*
+X006856Y012476D01*
+X006669Y012476D01*
+X006670Y012477D01*
+X006857Y012664D01*
+X006857Y012477D01*
+X006856Y012477D01*
+X006856Y012663D01*
+X006857Y012664D01*
+X007103Y012910D01*
+X007118Y012894D02*
+X007087Y012894D01*
+X007742Y013549D01*
+X007742Y017719D01*
+X019969Y017719D01*
+X019969Y017410D01*
+X020925Y017410D01*
+X020925Y017248D01*
+X019969Y017248D01*
+X019969Y017067D01*
+X019581Y017454D01*
+X019467Y017501D01*
+X019344Y017501D01*
+X018565Y017501D01*
+X018544Y017522D01*
+X018401Y017581D01*
+X018302Y017581D01*
+X018147Y017581D01*
+X009141Y017581D01*
+X008998Y017522D01*
+X008888Y017412D01*
+X008396Y016920D01*
+X008337Y016777D01*
+X008337Y016621D01*
+X008337Y013737D01*
+X008331Y013732D01*
+X008269Y013582D01*
+X008269Y013419D01*
+X008331Y013269D01*
+X008446Y013154D01*
+X008596Y013091D01*
+X008759Y013091D01*
+X008909Y013154D01*
+X009024Y013269D01*
+X009027Y013277D01*
+X009027Y013246D01*
+X009071Y013139D01*
+X009186Y013024D01*
+X009127Y012999D01*
+X008874Y012747D01*
+X008814Y012771D01*
+X008576Y012771D01*
+X008355Y012680D01*
+X008195Y012520D01*
+X008035Y012680D01*
+X007814Y012771D01*
+X007576Y012771D01*
+X007355Y012680D01*
+X007350Y012675D01*
+X007343Y012710D01*
+X007323Y012757D01*
+X007295Y012800D01*
+X007258Y012836D01*
+X007216Y012864D01*
+X007169Y012884D01*
+X007118Y012894D01*
+X007197Y013004D02*
+X009138Y013004D01*
+X009607Y013424D02*
+X009607Y015152D01*
+X009898Y015442D01*
+X009922Y015417D01*
+X010072Y015355D01*
+X010235Y015355D01*
+X010385Y015417D01*
+X010500Y015532D01*
+X010562Y015683D01*
+X010562Y015845D01*
+X010500Y015996D01*
+X010385Y016111D01*
+X010235Y016173D01*
+X010072Y016173D01*
+X009922Y016111D01*
+X009866Y016054D01*
+X009752Y016054D01*
+X009645Y016010D01*
+X009153Y015518D01*
+X009117Y015481D01*
+X009117Y016537D01*
+X009380Y016801D01*
+X010686Y016801D01*
+X010686Y016375D01*
+X010691Y016370D01*
+X010686Y016365D01*
+X010686Y015875D01*
+X010691Y015870D01*
+X010686Y015865D01*
+X010686Y015375D01*
+X010691Y015370D01*
+X010686Y015365D01*
+X010686Y014875D01*
+X010691Y014870D01*
+X010686Y014865D01*
+X010686Y014375D01*
+X010691Y014370D01*
+X010686Y014365D01*
+X010686Y013875D01*
+X010820Y013741D01*
+X012666Y013741D01*
+X012630Y013654D01*
+X012630Y011912D01*
+X012624Y011918D01*
+X012614Y011942D01*
+X011302Y013254D01*
+X011196Y013298D01*
+X011080Y013298D01*
+X009733Y013298D01*
+X009607Y013424D01*
+X009708Y013322D02*
+X012630Y013322D01*
+X012630Y013004D02*
+X011552Y013004D01*
+X011871Y012685D02*
+X012630Y012685D01*
+X012630Y012367D02*
+X012190Y012367D01*
+X012508Y012048D02*
+X012630Y012048D01*
+X012006Y011730D02*
+X011619Y011730D01*
+X011616Y011727D02*
+X011731Y011842D01*
+X011779Y011957D01*
+X012204Y011532D01*
+X012228Y011522D01*
+X012285Y011465D01*
+X012285Y011388D01*
+X012211Y011388D01*
+X012211Y010892D01*
+X012211Y010892D01*
+X012211Y010396D01*
+X012285Y010396D01*
+X012285Y010259D01*
+X012285Y010147D01*
+X012328Y010044D01*
+X012574Y009798D01*
+X012653Y009720D01*
+X012756Y009677D01*
+X012759Y009677D01*
+X012826Y009610D01*
+X012976Y009548D01*
+X013091Y009548D01*
+X013091Y009531D01*
+X013154Y009381D01*
+X013269Y009266D01*
+X013419Y009204D01*
+X013582Y009204D01*
+X013732Y009266D01*
+X013847Y009381D01*
+X013909Y009531D01*
+X013909Y009659D01*
+X013913Y009668D01*
+X013940Y009668D01*
+X014057Y009785D01*
+X014057Y009335D01*
+X013526Y008803D01*
+X013502Y008860D01*
+X013387Y008975D01*
+X013237Y009037D01*
+X013074Y009037D01*
+X012933Y008978D01*
+X012010Y008978D01*
+X012018Y008986D01*
+X012018Y009191D01*
+X012035Y009208D01*
+X012114Y009286D01*
+X012156Y009389D01*
+X012156Y009462D01*
+X012223Y009529D01*
+X012285Y009679D01*
+X012285Y009841D01*
+X012223Y009992D01*
+X012108Y010107D01*
+X011958Y010169D01*
+X011795Y010169D01*
+X011645Y010107D01*
+X011530Y009992D01*
+X011467Y009841D01*
+X011467Y009679D01*
+X011522Y009547D01*
+X011377Y009547D01*
+X011368Y009538D01*
+X011368Y010416D01*
+X011286Y010498D01*
+X011368Y010580D01*
+X011368Y011519D01*
+X011259Y011628D01*
+X011267Y011636D01*
+X011290Y011670D01*
+X011303Y011664D01*
+X011465Y011664D01*
+X011616Y011727D01*
+X011368Y011411D02*
+X012285Y011411D01*
+X012211Y011388D02*
+X012028Y011388D01*
+X011978Y011378D01*
+X011930Y011359D01*
+X011888Y011330D01*
+X011851Y011294D01*
+X011823Y011251D01*
+X011803Y011204D01*
+X011793Y011154D01*
+X011793Y010892D01*
+X012210Y010892D01*
+X012210Y010892D01*
+X011793Y010892D01*
+X011793Y010630D01*
+X011803Y010580D01*
+X011823Y010533D01*
+X011851Y010490D01*
+X011888Y010454D01*
+X011930Y010425D01*
+X011978Y010406D01*
+X012028Y010396D01*
+X012211Y010396D01*
+X012211Y010892D01*
+X012211Y010892D01*
+X012211Y011388D01*
+X012211Y011093D02*
+X012211Y011093D01*
+X012211Y010774D02*
+X012211Y010774D01*
+X011793Y010774D02*
+X011368Y010774D01*
+X011368Y011093D02*
+X011793Y011093D01*
+X011886Y010455D02*
+X011329Y010455D01*
+X011368Y010137D02*
+X011718Y010137D01*
+X012035Y010137D02*
+X012289Y010137D01*
+X012285Y009818D02*
+X012554Y009818D01*
+X012194Y009500D02*
+X013104Y009500D01*
+X013499Y008863D02*
+X013585Y008863D01*
+X013903Y009181D02*
+X012018Y009181D01*
+X011467Y009818D02*
+X011368Y009818D01*
+X012211Y010455D02*
+X012211Y010455D01*
+X013896Y009500D02*
+X014057Y009500D01*
+X015355Y009993D02*
+X015355Y010481D01*
+X015929Y011055D01*
+X016417Y011055D01*
+X015355Y009993D01*
+X015355Y010137D02*
+X015499Y010137D01*
+X015355Y010455D02*
+X015817Y010455D01*
+X015648Y010774D02*
+X016136Y010774D01*
+X016628Y011812D02*
+X015610Y011812D01*
+X015584Y011801D01*
+X015701Y011918D01*
+X015769Y012082D01*
+X015769Y012261D01*
+X015701Y012425D01*
+X015614Y012512D01*
+X015637Y012535D01*
+X016194Y013091D01*
+X016288Y013091D01*
+X016419Y013146D01*
+X016419Y012263D01*
+X016462Y012161D01*
+X016487Y012135D01*
+X016487Y012041D01*
+X016549Y011891D01*
+X016628Y011812D01*
+X016487Y012048D02*
+X015755Y012048D01*
+X015725Y012367D02*
+X016419Y012367D01*
+X016419Y012685D02*
+X015788Y012685D01*
+X016106Y013004D02*
+X016419Y013004D01*
+X015798Y013487D02*
+X015695Y013384D01*
+X015730Y013468D01*
+X015730Y013631D01*
+X015668Y013781D01*
+X015649Y013800D01*
+X015724Y013875D01*
+X015724Y014340D01*
+X016054Y014340D01*
+X016419Y013975D01*
+X016419Y013855D01*
+X016288Y013909D01*
+X016126Y013909D01*
+X015975Y013847D01*
+X015860Y013732D01*
+X015798Y013582D01*
+X015798Y013487D01*
+X015823Y013641D02*
+X015726Y013641D01*
+X015724Y013959D02*
+X016419Y013959D01*
+X016116Y014278D02*
+X015724Y014278D01*
+X016733Y015142D02*
+X016733Y015967D01*
+X016690Y016070D01*
+X016682Y016079D01*
+X016765Y016044D01*
+X016928Y016044D01*
+X017078Y016106D01*
+X017193Y016221D01*
+X017255Y016372D01*
+X017255Y016534D01*
+X017193Y016684D01*
+X017078Y016799D01*
+X017074Y016801D01*
+X017279Y016801D01*
+X017279Y016667D01*
+X017341Y016517D01*
+X017456Y016402D01*
+X017469Y016396D01*
+X017103Y016031D01*
+X017058Y016012D01*
+X016943Y015897D01*
+X016881Y015747D01*
+X016881Y015584D01*
+X016943Y015434D01*
+X017058Y015319D01*
+X017208Y015257D01*
+X017371Y015257D01*
+X017521Y015319D01*
+X017636Y015434D01*
+X017655Y015479D01*
+X018555Y016380D01*
+X018615Y016523D01*
+X018615Y016678D01*
+X018615Y016881D01*
+X019277Y016881D01*
+X019489Y016669D01*
+X019489Y013070D01*
+X019489Y012946D01*
+X019537Y012832D01*
+X020043Y012326D01*
+X019912Y012272D01*
+X019846Y012205D01*
+X017887Y012205D01*
+X017816Y012205D01*
+X017816Y013999D01*
+X017773Y014102D01*
+X017694Y014180D01*
+X016733Y015142D01*
+X016733Y015234D02*
+X019489Y015234D01*
+X019489Y015552D02*
+X017728Y015552D01*
+X018046Y015871D02*
+X019489Y015871D01*
+X019489Y016189D02*
+X018365Y016189D01*
+X018608Y016508D02*
+X019489Y016508D01*
+X019332Y016826D02*
+X018615Y016826D01*
+X018225Y016601D02*
+X018225Y017191D01*
+X018274Y017191D01*
+X018323Y017191D01*
+X018225Y017191D02*
+X009219Y017191D01*
+X008727Y016699D01*
+X008727Y013549D01*
+X008677Y013500D01*
+X008293Y013641D02*
+X007742Y013641D01*
+X007742Y013959D02*
+X008337Y013959D01*
+X008185Y013746D02*
+X008166Y013727D01*
+X008185Y013746D02*
+X008185Y016994D01*
+X008874Y017683D01*
+X018618Y017683D01*
+X020652Y017683D01*
+X020963Y017372D01*
+X020925Y017248D02*
+X021087Y017248D01*
+X021087Y016587D01*
+X021809Y016587D01*
+X021860Y016597D01*
+X021907Y016616D01*
+X021949Y016645D01*
+X021986Y016681D01*
+X022014Y016724D01*
+X022034Y016771D01*
+X022044Y016821D01*
+X022044Y017248D01*
+X021088Y017248D01*
+X021088Y017410D01*
+X022044Y017410D01*
+X022044Y017719D01*
+X022415Y017719D01*
+X022415Y017359D01*
+X022925Y017359D01*
+X022925Y017358D01*
+X022926Y017358D01*
+X022926Y017359D01*
+X023435Y017359D01*
+X023925Y017359D01*
+X023925Y017358D01*
+X023926Y017358D01*
+X023926Y017359D01*
+X024415Y017359D01*
+X024925Y017359D01*
+X024925Y017358D01*
+X024926Y017358D01*
+X024926Y017359D01*
+X025415Y017359D01*
+X025925Y017359D01*
+X025925Y017358D01*
+X025926Y017358D01*
+X025926Y017359D01*
+X026435Y017359D01*
+X026435Y017719D01*
+X026675Y017719D01*
+X026675Y008431D01*
+X026388Y008431D01*
+X026388Y008645D01*
+X026350Y008682D01*
+X026350Y012129D01*
+X026350Y012269D01*
+X026297Y012397D01*
+X025937Y012757D01*
+X025945Y012765D01*
+X025945Y013243D01*
+X026271Y013243D01*
+X026405Y013377D01*
+X026405Y014568D01*
+X026271Y014703D01*
+X026205Y014703D01*
+X026205Y015145D01*
+X026248Y015188D01*
+X026311Y015338D01*
+X026311Y015501D01*
+X026248Y015651D01*
+X026133Y015766D01*
+X025983Y015828D01*
+X025820Y015828D01*
+X025670Y015766D01*
+X025555Y015651D01*
+X025493Y015501D01*
+X025493Y015338D01*
+X025555Y015188D01*
+X025645Y015098D01*
+X025645Y014703D01*
+X025580Y014703D01*
+X025445Y014568D01*
+X025445Y013484D01*
+X025405Y013484D01*
+X025405Y014568D01*
+X025271Y014703D01*
+X025205Y014703D01*
+X025205Y015129D01*
+X025264Y015188D01*
+X025326Y015338D01*
+X025326Y015501D01*
+X025264Y015651D01*
+X025149Y015766D01*
+X024999Y015828D01*
+X024836Y015828D01*
+X024686Y015766D01*
+X024571Y015651D01*
+X024509Y015501D01*
+X024509Y015338D01*
+X024571Y015188D01*
+X024645Y015114D01*
+X024645Y014703D01*
+X024580Y014703D01*
+X024445Y014568D01*
+X024445Y013455D01*
+X024410Y013420D01*
+X024405Y013412D01*
+X024405Y014568D01*
+X024271Y014703D01*
+X024205Y014703D01*
+X024205Y015163D01*
+X024231Y015188D01*
+X024293Y015338D01*
+X024293Y015501D01*
+X024231Y015651D01*
+X024116Y015766D01*
+X023965Y015828D01*
+X023803Y015828D01*
+X023653Y015766D01*
+X023538Y015651D01*
+X023475Y015501D01*
+X023475Y015338D01*
+X023538Y015188D01*
+X023645Y015080D01*
+X023645Y014703D01*
+X023580Y014703D01*
+X023445Y014568D01*
+X023445Y013514D01*
+X023435Y013514D01*
+X023405Y013508D01*
+X023405Y014568D01*
+X023271Y014703D01*
+X023205Y014703D01*
+X023205Y015147D01*
+X023246Y015188D01*
+X023309Y015338D01*
+X023309Y015501D01*
+X023246Y015651D01*
+X023131Y015766D01*
+X022981Y015828D01*
+X022819Y015828D01*
+X022668Y015766D01*
+X022553Y015651D01*
+X022491Y015501D01*
+X022491Y015338D01*
+X022553Y015188D01*
+X022645Y015096D01*
+X022645Y014703D01*
+X022580Y014703D01*
+X022445Y014568D01*
+X022445Y013456D01*
+X022366Y013536D01*
+X022202Y013604D01*
+X022044Y013604D01*
+X022044Y013920D01*
+X022034Y013970D01*
+X022014Y014017D01*
+X021986Y014060D01*
+X021949Y014096D01*
+X021907Y014124D01*
+X021860Y014144D01*
+X021809Y014154D01*
+X021087Y014154D01*
+X021087Y013493D01*
+X020925Y013493D01*
+X020925Y014154D01*
+X020203Y014154D01*
+X020153Y014144D01*
+X020109Y014126D01*
+X020109Y016615D01*
+X020153Y016597D01*
+X020203Y016587D01*
+X020925Y016587D01*
+X020925Y017248D01*
+X020925Y017145D02*
+X021087Y017145D01*
+X021087Y016826D02*
+X020925Y016826D01*
+X020109Y016508D02*
+X026675Y016508D01*
+X026675Y016826D02*
+X026434Y016826D01*
+X026435Y016833D02*
+X026435Y017358D01*
+X025926Y017358D01*
+X025926Y016599D01*
+X026201Y016599D01*
+X026251Y016609D01*
+X026299Y016628D01*
+X026341Y016657D01*
+X026377Y016693D01*
+X026406Y016735D01*
+X026425Y016783D01*
+X026435Y016833D01*
+X026435Y017145D02*
+X026675Y017145D01*
+X026675Y017463D02*
+X026435Y017463D01*
+X025925Y017359D02*
+X024925Y017359D01*
+X023925Y017359D01*
+X022925Y017359D01*
+X022925Y017358D02*
+X022415Y017358D01*
+X022415Y016833D01*
+X022425Y016783D01*
+X022445Y016735D01*
+X022473Y016693D01*
+X022510Y016657D01*
+X022552Y016628D01*
+X022600Y016609D01*
+X022650Y016599D01*
+X022925Y016599D01*
+X022925Y017358D01*
+X022926Y017358D02*
+X022926Y016599D01*
+X023201Y016599D01*
+X023251Y016609D01*
+X023299Y016628D01*
+X023341Y016657D01*
+X023377Y016693D01*
+X023406Y016735D01*
+X023425Y016783D01*
+X023425Y016783D01*
+X023425Y016783D01*
+X023445Y016735D01*
+X023473Y016693D01*
+X023510Y016657D01*
+X023552Y016628D01*
+X023600Y016609D01*
+X023650Y016599D01*
+X023925Y016599D01*
+X023925Y017358D01*
+X023435Y017358D01*
+X022926Y017358D01*
+X022925Y017145D02*
+X022926Y017145D01*
+X022925Y016826D02*
+X022926Y016826D01*
+X022417Y016826D02*
+X022044Y016826D01*
+X022044Y017145D02*
+X022415Y017145D01*
+X022415Y017463D02*
+X022044Y017463D01*
+X023926Y017358D02*
+X023926Y016599D01*
+X024201Y016599D01*
+X024251Y016609D01*
+X024299Y016628D01*
+X024341Y016657D01*
+X024377Y016693D01*
+X024406Y016735D01*
+X024425Y016783D01*
+X024425Y016783D01*
+X024425Y016783D01*
+X024445Y016735D01*
+X024473Y016693D01*
+X024510Y016657D01*
+X024552Y016628D01*
+X024600Y016609D01*
+X024650Y016599D01*
+X024925Y016599D01*
+X024925Y017358D01*
+X024415Y017358D01*
+X023926Y017358D01*
+X023925Y017145D02*
+X023926Y017145D01*
+X023925Y016826D02*
+X023926Y016826D01*
+X024925Y016826D02*
+X024926Y016826D01*
+X024926Y016599D02*
+X025201Y016599D01*
+X025251Y016609D01*
+X025299Y016628D01*
+X025341Y016657D01*
+X025377Y016693D01*
+X025406Y016735D01*
+X025425Y016783D01*
+X025425Y016783D01*
+X025425Y016783D01*
+X025445Y016735D01*
+X025473Y016693D01*
+X025510Y016657D01*
+X025552Y016628D01*
+X025600Y016609D01*
+X025650Y016599D01*
+X025925Y016599D01*
+X025925Y017358D01*
+X025415Y017358D01*
+X024926Y017358D01*
+X024926Y016599D01*
+X024925Y017145D02*
+X024926Y017145D01*
+X025925Y017145D02*
+X025926Y017145D01*
+X025925Y016826D02*
+X025926Y016826D01*
+X026675Y016189D02*
+X020109Y016189D01*
+X020109Y015871D02*
+X026675Y015871D01*
+X026675Y015552D02*
+X026289Y015552D01*
+X026267Y015234D02*
+X026675Y015234D01*
+X026675Y014915D02*
+X026205Y014915D01*
+X026377Y014596D02*
+X026675Y014596D01*
+X026675Y014278D02*
+X026405Y014278D01*
+X026405Y013959D02*
+X026675Y013959D01*
+X026675Y013641D02*
+X026405Y013641D01*
+X026350Y013322D02*
+X026675Y013322D01*
+X026675Y013004D02*
+X025945Y013004D01*
+X026009Y012685D02*
+X026675Y012685D01*
+X026675Y012367D02*
+X026310Y012367D01*
+X026350Y012048D02*
+X026675Y012048D01*
+X026675Y011730D02*
+X026350Y011730D01*
+X026350Y011411D02*
+X026675Y011411D01*
+X026675Y011093D02*
+X026350Y011093D01*
+X026350Y010774D02*
+X026675Y010774D01*
+X026675Y010455D02*
+X026350Y010455D01*
+X026350Y010137D02*
+X026675Y010137D01*
+X026675Y009818D02*
+X026350Y009818D01*
+X026350Y009500D02*
+X026675Y009500D01*
+X026675Y009181D02*
+X026350Y009181D01*
+X026350Y008863D02*
+X026675Y008863D01*
+X026675Y008544D02*
+X026388Y008544D01*
+X025650Y009085D02*
+X025279Y009085D01*
+X025256Y009062D01*
+X025222Y009085D01*
+X025175Y009105D01*
+X025125Y009115D01*
+X024987Y009115D01*
+X024987Y008522D01*
+X024986Y008522D01*
+X024986Y009115D01*
+X024848Y009115D01*
+X024798Y009105D01*
+X024751Y009085D01*
+X024717Y009062D01*
+X024694Y009085D01*
+X024279Y009085D01*
+X024236Y009042D01*
+X024194Y009085D01*
+X023779Y009085D01*
+X023736Y009042D01*
+X023694Y009085D01*
+X023279Y009085D01*
+X023256Y009062D01*
+X023222Y009085D01*
+X023175Y009105D01*
+X023125Y009115D01*
+X022987Y009115D01*
+X022987Y008522D01*
+X022986Y008522D01*
+X022986Y008521D01*
+X022859Y008521D01*
+X022487Y008521D01*
+X022487Y008522D01*
+X022614Y008522D01*
+X022986Y008522D01*
+X022986Y009115D01*
+X022848Y009115D01*
+X022798Y009105D01*
+X022751Y009085D01*
+X022736Y009075D01*
+X022722Y009085D01*
+X022675Y009105D01*
+X022625Y009115D01*
+X022487Y009115D01*
+X022487Y008522D01*
+X022486Y008522D01*
+X022486Y009115D01*
+X022348Y009115D01*
+X022298Y009105D01*
+X022251Y009085D01*
+X022217Y009062D01*
+X022194Y009085D01*
+X021851Y009085D01*
+X021851Y011715D01*
+X022194Y011715D01*
+X022236Y011757D01*
+X022279Y011715D01*
+X022694Y011715D01*
+X022736Y011757D01*
+X022779Y011715D01*
+X023194Y011715D01*
+X023217Y011737D01*
+X023251Y011715D01*
+X023298Y011695D01*
+X023348Y011685D01*
+X023486Y011685D01*
+X023486Y012278D01*
+X023487Y012278D01*
+X023614Y012278D01*
+X023986Y012278D01*
+X023986Y012278D01*
+X023614Y012278D01*
+X023487Y012278D01*
+X023487Y012278D01*
+X023487Y011685D01*
+X023625Y011685D01*
+X023675Y011695D01*
+X023722Y011715D01*
+X023736Y011724D01*
+X023751Y011715D01*
+X023798Y011695D01*
+X023848Y011685D01*
+X023986Y011685D01*
+X023986Y012278D01*
+X023987Y012278D01*
+X024114Y012278D01*
+X024486Y012278D01*
+X024486Y012278D01*
+X024114Y012278D01*
+X023987Y012278D01*
+X023987Y012278D01*
+X023987Y011685D01*
+X024125Y011685D01*
+X024175Y011695D01*
+X024222Y011715D01*
+X024236Y011724D01*
+X024251Y011715D01*
+X024298Y011695D01*
+X024348Y011685D01*
+X024486Y011685D01*
+X024486Y012278D01*
+X024487Y012278D01*
+X024614Y012278D01*
+X024986Y012278D01*
+X024986Y012278D01*
+X024614Y012278D01*
+X024487Y012278D01*
+X024487Y012278D01*
+X024487Y011685D01*
+X024625Y011685D01*
+X024675Y011695D01*
+X024722Y011715D01*
+X024736Y011724D01*
+X024751Y011715D01*
+X024798Y011695D01*
+X024848Y011685D01*
+X024986Y011685D01*
+X024986Y012278D01*
+X024987Y012278D01*
+X024987Y011685D01*
+X025125Y011685D01*
+X025175Y011695D01*
+X025222Y011715D01*
+X025256Y011737D01*
+X025279Y011715D01*
+X025650Y011715D01*
+X025650Y009085D01*
+X025650Y009181D02*
+X021851Y009181D01*
+X021851Y009500D02*
+X025650Y009500D01*
+X025650Y009818D02*
+X021851Y009818D01*
+X021851Y010137D02*
+X025650Y010137D01*
+X025650Y010455D02*
+X021851Y010455D01*
+X021851Y010774D02*
+X025650Y010774D01*
+X025650Y011093D02*
+X021851Y011093D01*
+X021851Y011411D02*
+X025650Y011411D01*
+X025264Y011730D02*
+X025244Y011730D01*
+X024987Y011730D02*
+X024986Y011730D01*
+X024986Y012048D02*
+X024987Y012048D01*
+X024487Y012048D02*
+X024486Y012048D01*
+X023987Y012048D02*
+X023986Y012048D01*
+X023986Y011730D02*
+X023987Y011730D01*
+X024486Y011730D02*
+X024487Y011730D01*
+X023487Y011730D02*
+X023486Y011730D01*
+X023228Y011730D02*
+X023209Y011730D01*
+X023486Y012048D02*
+X023487Y012048D01*
+X022764Y011730D02*
+X022709Y011730D01*
+X022264Y011730D02*
+X022209Y011730D01*
+X021291Y011730D02*
+X021241Y011730D01*
+X021241Y011774D02*
+X021285Y011774D01*
+X021285Y012269D01*
+X021286Y012269D01*
+X021286Y011774D01*
+X021291Y011774D01*
+X021291Y008646D01*
+X021289Y008643D01*
+X021194Y008643D01*
+X021044Y008581D01*
+X020929Y008466D01*
+X020867Y008316D01*
+X020867Y008153D01*
+X020929Y008003D01*
+X021044Y007888D01*
+X021077Y007874D01*
+X020848Y007874D01*
+X020848Y009041D01*
+X021194Y009388D01*
+X021241Y009502D01*
+X021241Y009625D01*
+X021241Y011774D01*
+X021285Y012048D02*
+X021286Y012048D01*
+X021276Y012280D02*
+X021276Y013142D01*
+X021087Y013641D02*
+X020925Y013641D01*
+X020925Y013959D02*
+X021087Y013959D01*
+X022036Y013959D02*
+X022445Y013959D01*
+X022445Y013641D02*
+X022044Y013641D01*
+X022445Y014278D02*
+X020109Y014278D01*
+X020109Y014596D02*
+X022474Y014596D01*
+X022645Y014915D02*
+X020109Y014915D01*
+X020109Y015234D02*
+X022534Y015234D01*
+X022512Y015552D02*
+X020109Y015552D01*
+X019489Y014915D02*
+X016960Y014915D01*
+X017278Y014596D02*
+X019489Y014596D01*
+X019489Y014278D02*
+X017597Y014278D01*
+X017816Y013959D02*
+X019489Y013959D01*
+X019489Y013641D02*
+X017816Y013641D01*
+X017816Y013322D02*
+X019489Y013322D01*
+X019489Y013004D02*
+X017816Y013004D01*
+X017816Y012685D02*
+X019684Y012685D01*
+X020002Y012367D02*
+X017816Y012367D01*
+X017947Y011252D02*
+X020240Y011252D01*
+X020306Y011185D01*
+X020456Y011123D01*
+X020619Y011123D01*
+X020621Y011124D01*
+X020621Y009692D01*
+X020362Y009432D01*
+X020275Y009345D01*
+X020228Y009231D01*
+X020228Y007410D01*
+X020228Y007287D01*
+X020275Y007173D01*
+X020613Y006835D01*
+X020613Y006496D01*
+X020747Y006361D01*
+X020975Y006361D01*
+X021098Y006310D01*
+X021348Y006310D01*
+X021490Y006251D01*
+X021652Y006251D01*
+X021803Y006313D01*
+X021918Y006428D01*
+X021980Y006578D01*
+X021980Y006741D01*
+X021918Y006891D01*
+X021803Y007006D01*
+X021652Y007068D01*
+X021490Y007068D01*
+X021481Y007065D01*
+X021462Y007085D01*
+X021481Y007097D01*
+X021517Y007134D01*
+X021546Y007176D01*
+X021565Y007224D01*
+X021574Y007266D01*
+X022139Y007266D01*
+X022146Y007273D01*
+X022157Y007266D01*
+X022204Y007246D01*
+X022254Y007236D01*
+X022496Y007236D01*
+X022496Y007693D01*
+X022496Y007693D01*
+X022496Y007236D01*
+X022581Y007236D01*
+X022581Y007077D01*
+X022591Y007027D01*
+X022610Y006979D01*
+X022639Y006937D01*
+X022652Y006924D01*
+X022650Y006921D01*
+X022630Y006873D01*
+X022620Y006823D01*
+X022620Y006561D01*
+X022620Y006299D01*
+X022630Y006249D01*
+X022650Y006202D01*
+X022678Y006159D01*
+X022714Y006123D01*
+X022757Y006095D01*
+X022804Y006075D01*
+X022855Y006065D01*
+X023037Y006065D01*
+X023037Y006561D01*
+X022620Y006561D01*
+X023037Y006561D01*
+X023037Y006561D01*
+X023038Y006561D01*
+X023038Y006065D01*
+X023146Y006065D01*
+X023146Y005577D01*
+X026675Y005577D01*
+X026675Y003365D01*
+X026464Y003453D01*
+X026225Y003453D01*
+X026165Y003428D01*
+X025743Y003850D01*
+X025640Y003893D01*
+X025529Y003893D01*
+X025474Y003893D01*
+X025474Y004034D01*
+X025412Y004184D01*
+X025297Y004299D01*
+X025146Y004362D01*
+X025129Y004362D01*
+X025129Y004428D01*
+X025067Y004578D01*
+X024952Y004693D01*
+X024802Y004755D01*
+X024639Y004755D01*
+X024566Y004725D01*
+X023956Y004725D01*
+X023935Y004775D01*
+X023820Y004890D01*
+X023670Y004952D01*
+X023507Y004952D01*
+X023357Y004890D01*
+X023265Y004797D01*
+X023202Y004824D01*
+X021135Y004824D01*
+X021023Y004824D01*
+X020920Y004781D01*
+X020796Y004657D01*
+X020702Y004657D01*
+X020552Y004595D01*
+X020437Y004480D01*
+X020375Y004330D01*
+X020375Y004263D01*
+X020358Y004263D01*
+X020208Y004201D01*
+X020093Y004086D01*
+X020030Y003936D01*
+X020030Y003773D01*
+X020093Y003623D01*
+X020208Y003508D01*
+X020342Y003453D01*
+X020320Y003453D01*
+X020260Y003428D01*
+X019739Y003949D01*
+X019636Y003991D01*
+X019525Y003991D01*
+X018739Y003991D01*
+X018753Y004005D01*
+X018753Y004081D01*
+X018897Y004225D01*
+X018948Y004246D01*
+X019063Y004361D01*
+X019125Y004511D01*
+X019125Y004674D01*
+X019063Y004824D01*
+X018948Y004939D01*
+X018798Y005001D01*
+X018768Y005001D01*
+X018719Y005120D01*
+X018604Y005235D01*
+X018454Y005297D01*
+X018291Y005297D01*
+X018141Y005235D01*
+X018112Y005206D01*
+X018011Y005248D01*
+X017848Y005248D01*
+X017712Y005191D01*
+X017693Y005210D01*
+X017543Y005272D01*
+X017381Y005272D01*
+X017230Y005210D01*
+X017115Y005095D01*
+X017087Y005026D01*
+X017026Y005051D01*
+X016864Y005051D01*
+X016728Y004994D01*
+X016660Y005062D01*
+X016510Y005124D01*
+X016347Y005124D01*
+X016197Y005062D01*
+X016124Y004989D01*
+X016124Y005068D01*
+X016061Y005218D01*
+X015946Y005333D01*
+X015796Y005395D01*
+X015702Y005395D01*
+X015109Y005988D01*
+X015109Y006199D01*
+X016462Y007553D01*
+X016500Y007462D01*
+X016567Y007395D01*
+X016567Y007089D01*
+X016567Y006978D01*
+X016609Y006875D01*
+X017069Y006415D01*
+X017069Y006013D01*
+X017204Y005879D01*
+X017867Y005879D01*
+X017954Y005965D01*
+X018041Y005879D01*
+X018704Y005879D01*
+X018791Y005965D01*
+X018877Y005879D01*
+X019540Y005879D01*
+X019675Y006013D01*
+X019675Y006676D01*
+X019593Y006758D01*
+X019675Y006840D01*
+X019675Y007503D01*
+X019636Y007542D01*
+X019636Y008064D01*
+X019613Y008087D01*
+X019636Y008110D01*
+X019636Y008733D01*
+X019501Y008868D01*
+X019489Y008868D01*
+X019489Y008970D01*
+X019506Y008987D01*
+X019568Y009137D01*
+X019568Y009300D01*
+X019506Y009450D01*
+X019391Y009565D01*
+X019241Y009627D01*
+X019078Y009627D01*
+X018928Y009565D01*
+X018813Y009450D01*
+X018751Y009300D01*
+X018751Y009137D01*
+X018813Y008987D01*
+X018928Y008872D01*
+X018929Y008872D01*
+X018929Y008868D01*
+X018917Y008868D01*
+X018791Y008742D01*
+X018664Y008868D01*
+X018338Y008868D01*
+X018338Y008906D01*
+X018276Y009057D01*
+X018177Y009155D01*
+X018190Y009187D01*
+X018190Y009349D01*
+X018128Y009499D01*
+X018074Y009554D01*
+X018210Y009610D01*
+X018325Y009725D01*
+X018387Y009876D01*
+X018387Y010038D01*
+X018325Y010188D01*
+X018210Y010303D01*
+X018060Y010366D01*
+X017923Y010366D01*
+X017944Y010417D01*
+X017944Y010580D01*
+X017882Y010730D01*
+X017767Y010845D01*
+X017617Y010907D01*
+X017602Y010907D01*
+X017947Y011252D01*
+X017788Y011093D02*
+X020621Y011093D01*
+X020621Y010774D02*
+X017838Y010774D01*
+X017944Y010455D02*
+X020621Y010455D01*
+X020621Y010137D02*
+X018346Y010137D01*
+X018364Y009818D02*
+X020621Y009818D01*
+X020430Y009500D02*
+X019457Y009500D01*
+X019568Y009181D02*
+X020228Y009181D01*
+X020228Y008863D02*
+X019506Y008863D01*
+X019636Y008544D02*
+X020228Y008544D01*
+X020228Y008226D02*
+X019636Y008226D01*
+X019636Y007907D02*
+X020228Y007907D01*
+X020228Y007589D02*
+X019636Y007589D01*
+X019675Y007270D02*
+X020235Y007270D01*
+X020496Y006951D02*
+X019675Y006951D01*
+X019675Y006633D02*
+X020613Y006633D01*
+X021087Y006314D02*
+X019675Y006314D01*
+X019658Y005996D02*
+X023146Y005996D01*
+X023146Y005677D02*
+X015420Y005677D01*
+X015109Y005996D02*
+X017087Y005996D01*
+X017069Y006314D02*
+X015224Y006314D01*
+X015543Y006633D02*
+X016851Y006633D01*
+X016578Y006951D02*
+X015861Y006951D01*
+X016180Y007270D02*
+X016567Y007270D01*
+X018670Y008863D02*
+X018912Y008863D01*
+X018751Y009181D02*
+X018188Y009181D01*
+X018128Y009500D02*
+X018863Y009500D01*
+X020848Y008863D02*
+X021291Y008863D01*
+X021007Y008544D02*
+X020848Y008544D01*
+X020848Y008226D02*
+X020867Y008226D01*
+X020848Y007907D02*
+X021025Y007907D01*
+X021079Y007874D02*
+X021079Y007874D01*
+X021079Y007457D01*
+X021079Y007874D01*
+X021079Y007589D02*
+X021079Y007589D01*
+X021079Y007457D02*
+X021079Y007457D01*
+X021857Y006951D02*
+X022629Y006951D01*
+X022496Y007270D02*
+X022496Y007270D01*
+X022150Y007270D02*
+X022142Y007270D01*
+X022496Y007589D02*
+X022496Y007589D01*
+X022883Y007299D02*
+X023057Y007299D01*
+X023057Y007300D01*
+X022884Y007300D01*
+X022883Y007299D01*
+X022620Y006633D02*
+X021980Y006633D01*
+X021804Y006314D02*
+X022620Y006314D01*
+X023037Y006314D02*
+X023038Y006314D01*
+X024884Y004722D02*
+X026675Y004722D01*
+X026675Y005040D02*
+X018752Y005040D01*
+X019106Y004722D02*
+X020861Y004722D01*
+X020405Y004403D02*
+X019081Y004403D01*
+X018756Y004085D02*
+X020092Y004085D01*
+X020033Y003766D02*
+X019922Y003766D01*
+X020240Y003447D02*
+X020308Y003447D01*
+X020439Y000853D02*
+X019809Y000853D01*
+X019455Y000853D01*
+X019455Y000852D01*
+X019809Y000852D01*
+X020439Y000852D01*
+X020439Y000853D01*
+X020440Y000853D02*
+X021069Y000853D01*
+X021423Y000853D01*
+X021423Y000852D01*
+X021069Y000852D01*
+X020440Y000852D01*
+X020440Y000853D01*
+X021424Y000853D02*
+X021778Y000853D01*
+X022407Y000853D01*
+X022407Y000852D01*
+X021778Y000852D01*
+X021424Y000852D01*
+X021424Y000853D01*
+X022408Y000853D02*
+X022762Y000853D01*
+X023392Y000853D01*
+X023746Y000853D01*
+X024376Y000853D01*
+X024376Y000852D01*
+X023746Y000852D01*
+X023392Y000852D01*
+X023392Y000853D01*
+X023392Y000852D01*
+X022762Y000852D01*
+X022408Y000852D01*
+X022408Y000853D01*
+X024377Y000853D02*
+X024730Y000853D01*
+X025360Y000853D01*
+X025360Y000852D01*
+X024730Y000852D01*
+X024377Y000852D01*
+X024377Y000853D01*
+X025361Y000853D02*
+X025990Y000853D01*
+X026344Y000853D01*
+X026344Y000852D01*
+X025990Y000852D01*
+X025361Y000852D01*
+X025361Y000853D01*
+X026146Y003447D02*
+X026213Y003447D01*
+X026476Y003447D02*
+X026675Y003447D01*
+X026675Y003766D02*
+X025827Y003766D01*
+X025453Y004085D02*
+X026675Y004085D01*
+X026675Y004403D02*
+X025129Y004403D01*
+X026675Y005359D02*
+X015884Y005359D01*
+X016124Y005040D02*
+X016175Y005040D01*
+X016682Y005040D02*
+X016839Y005040D01*
+X017052Y005040D02*
+X017093Y005040D01*
+X016440Y004062D02*
+X016462Y004040D01*
+X016522Y003980D01*
+X016446Y003949D01*
+X016440Y003942D01*
+X016440Y004062D01*
+X016502Y000853D02*
+X015872Y000853D01*
+X015518Y000853D01*
+X015518Y000852D01*
+X016148Y000852D01*
+X016502Y000852D01*
+X016502Y000853D01*
+X016503Y000853D02*
+X016856Y000853D01*
+X017486Y000853D01*
+X017486Y000852D01*
+X016856Y000852D01*
+X016503Y000852D01*
+X016503Y000853D01*
+X017487Y000853D02*
+X017841Y000853D01*
+X018470Y000853D01*
+X018470Y000852D01*
+X017841Y000852D01*
+X017487Y000852D01*
+X017487Y000853D01*
+X018471Y000853D02*
+X018825Y000853D01*
+X019455Y000853D01*
+X019455Y000852D01*
+X018825Y000852D01*
+X018471Y000852D01*
+X018471Y000853D01*
+X015518Y000852D02*
+X014888Y000852D01*
+X014436Y000852D01*
+X014436Y000853D01*
+X014888Y000853D01*
+X015518Y000853D01*
+X015518Y000852D01*
+X014435Y000852D02*
+X013805Y000852D01*
+X013648Y000852D01*
+X013648Y000853D01*
+X013805Y000853D01*
+X014435Y000853D01*
+X014435Y000852D01*
+X010154Y004544D02*
+X009760Y004544D01*
+X009760Y007349D01*
+X008300Y007349D01*
+X008280Y007353D01*
+X008097Y007353D01*
+X008097Y007349D01*
+X008096Y007349D01*
+X008096Y007353D01*
+X007914Y007353D01*
+X007893Y007349D01*
+X007892Y007349D01*
+X007892Y007678D01*
+X008039Y007825D01*
+X008161Y007825D01*
+X008198Y007788D01*
+X008861Y007788D01*
+X008899Y007825D01*
+X009081Y007825D01*
+X009210Y007879D01*
+X009308Y007977D01*
+X009308Y007977D01*
+X009629Y008298D01*
+X010037Y008298D01*
+X010084Y008278D01*
+X011511Y008278D01*
+X012933Y008278D01*
+X012956Y008268D01*
+X012657Y008268D01*
+X012554Y008226D01*
+X012475Y008147D01*
+X011934Y007606D01*
+X011891Y007503D01*
+X011891Y007391D01*
+X011891Y006726D01*
+X011147Y005982D01*
+X011104Y005879D01*
+X011104Y005767D01*
+X011104Y005473D01*
+X011043Y005448D01*
+X010922Y005328D01*
+X010883Y005233D01*
+X010843Y005233D01*
+X010154Y004544D01*
+X010332Y004722D02*
+X009760Y004722D01*
+X009760Y005040D02*
+X010650Y005040D01*
+X010954Y005359D02*
+X009760Y005359D01*
+X009760Y005677D02*
+X011104Y005677D01*
+X011161Y005996D02*
+X009760Y005996D01*
+X009760Y006314D02*
+X011479Y006314D01*
+X011798Y006633D02*
+X009760Y006633D01*
+X009760Y006951D02*
+X011891Y006951D01*
+X011891Y007270D02*
+X009760Y007270D01*
+X009238Y007907D02*
+X012236Y007907D01*
+X011927Y007589D02*
+X007892Y007589D01*
+X008108Y008544D02*
+X003839Y008544D01*
+X003839Y008863D02*
+X008034Y008863D01*
+X008034Y008884D02*
+X008529Y008884D01*
+X008529Y008884D01*
+X008034Y008884D01*
+X008074Y009181D02*
+X003839Y009181D01*
+X003839Y009500D02*
+X005651Y009500D01*
+X005543Y009818D02*
+X003807Y009818D01*
+X004544Y009500D02*
+X000522Y009500D01*
+X001213Y009500D01*
+X001213Y009181D02*
+X000522Y009181D01*
+X004544Y009181D01*
+X004544Y008863D02*
+X000522Y008863D01*
+X001213Y008863D01*
+X001213Y008544D02*
+X000522Y008544D01*
+X004544Y008544D01*
+X004544Y008226D02*
+X000522Y008226D01*
+X001213Y008226D01*
+X003839Y007270D02*
+X005132Y007270D01*
+X005071Y006951D02*
+X003839Y006951D01*
+X004243Y005996D02*
+X002730Y005996D01*
+X002621Y005677D02*
+X002431Y005677D01*
+X002526Y005677D02*
+X002526Y005677D01*
+X002526Y005359D02*
+X002526Y005359D01*
+X002431Y005359D02*
+X002621Y005359D01*
+X002621Y005040D02*
+X002431Y005040D01*
+X002526Y005040D02*
+X002526Y005040D01*
+X002526Y004722D02*
+X002526Y004722D01*
+X002431Y004722D02*
+X002621Y004722D01*
+X002636Y004403D02*
+X002434Y004403D01*
+X002526Y004403D02*
+X002526Y004403D01*
+X002570Y004085D02*
+X002471Y004085D01*
+X002570Y004085D01*
+X002648Y003766D02*
+X002159Y003766D01*
+X002648Y003766D01*
+X003018Y004150D02*
+X003026Y004158D01*
+X003026Y005134D01*
+X003526Y005134D02*
+X003526Y004134D01*
+X003658Y004002D01*
+X004431Y004568D02*
+X004431Y004988D01*
+X004912Y005469D01*
+X005022Y005579D01*
+X005081Y005722D01*
+X005081Y005791D01*
+X005129Y005906D01*
+X005779Y006556D01*
+X005779Y005585D01*
+X005779Y005470D01*
+X005789Y005446D01*
+X005789Y004652D01*
+X005731Y004676D01*
+X005620Y004676D01*
+X005587Y004662D01*
+X005553Y004685D01*
+X005505Y004705D01*
+X005455Y004715D01*
+X005233Y004715D01*
+X005233Y004239D01*
+X005232Y004239D01*
+X005232Y004715D01*
+X005010Y004715D01*
+X004960Y004705D01*
+X004912Y004685D01*
+X004870Y004657D01*
+X004834Y004621D01*
+X004805Y004578D01*
+X004786Y004531D01*
+X004776Y004481D01*
+X004776Y004239D01*
+X005232Y004239D01*
+X005232Y004238D01*
+X004776Y004238D01*
+X004776Y004223D01*
+X004431Y004568D01*
+X004431Y004722D02*
+X005789Y004722D01*
+X005789Y005040D02*
+X004483Y005040D01*
+X004802Y005359D02*
+X005789Y005359D01*
+X005779Y005677D02*
+X005063Y005677D01*
+X005219Y005996D02*
+X005779Y005996D01*
+X005779Y006314D02*
+X005537Y006314D01*
+X004243Y005996D02*
+X000522Y005996D01*
+X000522Y005677D02*
+X000621Y005677D01*
+X000522Y005677D01*
+X000522Y005359D02*
+X000621Y005359D01*
+X000522Y005359D01*
+X000522Y005040D02*
+X000621Y005040D01*
+X000522Y005040D01*
+X000522Y004722D02*
+X000621Y004722D01*
+X000522Y004722D01*
+X000522Y004403D02*
+X000636Y004403D01*
+X000522Y004403D01*
+X000522Y004085D02*
+X000636Y004085D01*
+X000522Y004085D01*
+X000522Y003766D02*
+X000636Y003766D01*
+X000522Y003766D01*
+X000522Y003447D02*
+X000757Y003447D01*
+X000522Y003447D01*
+X000522Y003129D02*
+X000798Y003129D01*
+X000522Y003129D01*
+X000522Y002810D02*
+X000919Y002810D01*
+X000522Y002810D01*
+X000522Y002492D02*
+X004203Y002492D01*
+X000522Y002492D01*
+X000522Y002173D02*
+X004203Y002173D01*
+X000522Y002173D01*
+X001246Y003116D02*
+X001542Y003116D01*
+X001640Y003215D01*
+X003412Y003215D01*
+X002493Y002810D02*
+X001787Y002810D01*
+X002493Y002810D01*
+X001640Y003215D02*
+X001542Y003215D01*
+X001026Y003731D01*
+X001026Y005134D01*
+X001526Y005134D02*
+X001526Y003870D01*
+X001542Y003855D01*
+X002034Y004199D02*
+X002034Y005126D01*
+X002026Y005134D01*
+X004596Y004403D02*
+X004776Y004403D01*
+X005232Y004403D02*
+X005233Y004403D01*
+X005233Y003569D02*
+X005233Y003038D01*
+X004593Y002181D02*
+X004593Y001984D01*
+X004977Y001601D01*
+X005032Y000581D02*
+X003927Y000581D01*
+X003412Y000581D02*
+X003411Y000581D01*
+X003411Y000899D02*
+X003412Y000899D01*
+X002896Y000581D02*
+X000522Y000581D01*
+X004544Y000581D01*
+X006512Y007704D02*
+X006512Y008403D01*
+X006512Y007704D01*
+X006512Y007704D01*
+X006512Y007907D02*
+X006512Y007907D01*
+X006512Y008226D02*
+X006512Y008226D01*
+X006455Y009500D02*
+X006569Y009500D01*
+X006569Y009818D02*
+X006455Y009818D01*
+X006455Y010455D02*
+X006569Y010455D01*
+X006569Y010774D02*
+X006455Y010774D01*
+X006494Y011411D02*
+X005604Y011411D01*
+X005923Y011730D02*
+X006390Y011730D01*
+X006418Y012048D02*
+X006241Y012048D01*
+X006670Y012477D02*
+X006857Y012477D01*
+X006857Y012664D01*
+X007348Y012685D02*
+X007368Y012685D01*
+X008023Y012685D02*
+X008368Y012685D01*
+X008309Y013322D02*
+X007515Y013322D01*
+X006512Y013641D02*
+X006441Y013641D01*
+X006433Y013959D02*
+X006512Y013959D01*
+X006512Y014278D02*
+X003512Y014278D01*
+X003549Y014596D02*
+X006512Y014596D01*
+X006512Y014915D02*
+X003549Y014915D01*
+X003541Y015234D02*
+X006512Y015234D01*
+X006512Y015552D02*
+X000522Y015552D01*
+X002949Y015871D02*
+X006512Y015871D01*
+X006512Y016189D02*
+X003025Y016189D01*
+X003025Y016508D02*
+X006512Y016508D01*
+X006347Y016645D02*
+X006304Y016616D01*
+X006257Y016597D01*
+X006207Y016587D01*
+X005485Y016587D01*
+X005485Y017248D01*
+X006441Y017248D01*
+X006441Y016821D01*
+X006431Y016771D01*
+X006412Y016724D01*
+X006383Y016681D01*
+X006347Y016645D01*
+X006441Y016826D02*
+X006512Y016826D01*
+X006512Y017145D02*
+X006441Y017145D01*
+X006441Y017463D02*
+X006512Y017463D01*
+X005485Y017145D02*
+X005323Y017145D01*
+X005323Y016826D02*
+X005485Y016826D01*
+X004366Y016826D02*
+X003025Y016826D01*
+X003025Y017145D02*
+X004366Y017145D01*
+X004366Y017463D02*
+X003004Y017463D01*
+X007742Y017463D02*
+X008939Y017463D01*
+X008621Y017145D02*
+X007742Y017145D01*
+X007742Y016826D02*
+X008357Y016826D01*
+X008337Y016508D02*
+X007742Y016508D01*
+X007742Y016189D02*
+X008337Y016189D01*
+X008337Y015871D02*
+X007742Y015871D01*
+X007742Y015552D02*
+X008337Y015552D01*
+X008337Y015234D02*
+X007742Y015234D01*
+X007742Y014915D02*
+X008337Y014915D01*
+X008337Y014596D02*
+X007742Y014596D01*
+X007742Y014278D02*
+X008337Y014278D01*
+X009607Y014278D02*
+X010686Y014278D01*
+X010686Y014596D02*
+X009607Y014596D01*
+X009607Y014915D02*
+X010686Y014915D01*
+X010686Y015234D02*
+X009689Y015234D01*
+X009187Y015552D02*
+X009117Y015552D01*
+X009117Y015871D02*
+X009506Y015871D01*
+X009117Y016189D02*
+X010686Y016189D01*
+X010690Y015871D02*
+X010552Y015871D01*
+X010508Y015552D02*
+X010686Y015552D01*
+X010686Y016508D02*
+X009117Y016508D01*
+X009607Y013959D02*
+X010686Y013959D01*
+X009607Y013641D02*
+X012630Y013641D01*
+X013829Y012354D02*
+X013956Y012227D01*
+X014282Y012227D01*
+X014282Y012119D01*
+X014099Y011936D01*
+X014057Y011833D01*
+X014057Y011722D01*
+X014057Y011617D01*
+X013958Y011716D01*
+X013958Y011810D01*
+X013896Y011960D01*
+X013829Y012027D01*
+X013829Y012354D01*
+X013829Y012048D02*
+X014211Y012048D01*
+X014057Y011730D02*
+X013958Y011730D01*
+X009933Y010455D02*
+X009672Y010455D01*
+X009894Y010137D02*
+X009253Y010137D01*
+X009232Y009818D02*
+X009894Y009818D01*
+X009894Y009500D02*
+X009232Y009500D01*
+X008985Y009181D02*
+X009865Y009181D01*
+X009204Y008863D02*
+X009026Y008863D01*
+X009187Y008846D02*
+X009187Y008846D01*
+X008530Y009181D02*
+X008530Y009181D01*
+X007758Y009500D02*
+X007373Y009500D01*
+X007481Y009818D02*
+X007758Y009818D01*
+X007758Y011411D02*
+X007219Y011411D01*
+X009557Y008226D02*
+X012554Y008226D01*
+X020988Y009181D02*
+X021291Y009181D01*
+X021291Y009500D02*
+X021241Y009500D01*
+X021241Y009818D02*
+X021291Y009818D01*
+X021291Y010137D02*
+X021241Y010137D01*
+X021241Y010455D02*
+X021291Y010455D01*
+X021291Y010774D02*
+X021241Y010774D01*
+X021241Y011093D02*
+X021291Y011093D01*
+X021291Y011411D02*
+X021241Y011411D01*
+X023678Y013057D02*
+X023678Y013057D01*
+X024154Y013057D01*
+X024154Y012865D01*
+X024175Y012861D01*
+X024222Y012841D01*
+X024236Y012832D01*
+X024251Y012841D01*
+X024298Y012861D01*
+X024348Y012871D01*
+X024352Y012871D01*
+X024352Y013057D01*
+X024829Y013057D01*
+X024829Y013057D01*
+X024352Y013057D01*
+X024352Y013280D01*
+X024362Y013330D01*
+X024366Y013338D01*
+X024271Y013243D01*
+X024154Y013243D01*
+X024154Y013057D01*
+X023678Y013057D01*
+X024154Y013004D02*
+X024352Y013004D01*
+X024350Y013322D02*
+X024361Y013322D01*
+X024405Y013641D02*
+X024445Y013641D01*
+X024445Y013959D02*
+X024405Y013959D01*
+X024405Y014278D02*
+X024445Y014278D01*
+X024474Y014596D02*
+X024377Y014596D01*
+X024205Y014915D02*
+X024645Y014915D01*
+X024552Y015234D02*
+X024249Y015234D01*
+X024272Y015552D02*
+X024530Y015552D01*
+X025305Y015552D02*
+X025514Y015552D01*
+X025536Y015234D02*
+X025283Y015234D01*
+X025205Y014915D02*
+X025645Y014915D01*
+X025474Y014596D02*
+X025377Y014596D01*
+X025405Y014278D02*
+X025445Y014278D01*
+X025445Y013959D02*
+X025405Y013959D01*
+X025405Y013641D02*
+X025445Y013641D01*
+X023445Y013641D02*
+X023405Y013641D01*
+X023405Y013959D02*
+X023445Y013959D01*
+X023445Y014278D02*
+X023405Y014278D01*
+X023377Y014596D02*
+X023474Y014596D01*
+X023645Y014915D02*
+X023205Y014915D01*
+X023265Y015234D02*
+X023519Y015234D01*
+X023497Y015552D02*
+X023287Y015552D01*
+X019969Y017145D02*
+X019890Y017145D01*
+X019969Y017463D02*
+X019559Y017463D01*
+X018225Y016601D02*
+X017290Y015666D01*
+X016894Y015552D02*
+X016733Y015552D01*
+X016733Y015871D02*
+X016932Y015871D01*
+X017161Y016189D02*
+X017262Y016189D01*
+X017255Y016508D02*
+X017350Y016508D01*
+X022486Y008863D02*
+X022487Y008863D01*
+X022486Y008544D02*
+X022487Y008544D01*
+X022986Y008544D02*
+X022987Y008544D01*
+X022986Y008863D02*
+X022987Y008863D01*
+X024986Y008863D02*
+X024987Y008863D01*
+X024986Y008544D02*
+X024987Y008544D01*
+D44*
+X025262Y007004D03*
+X025262Y006118D03*
+X022112Y013156D03*
+X015321Y012171D03*
+X014731Y012171D03*
+X005183Y004888D03*
+X004691Y006020D03*
+X004445Y007004D03*
+X004002Y007447D03*
+X004494Y007792D03*
+X004002Y008136D03*
+X004445Y008530D03*
+X004002Y008973D03*
+X004051Y010006D03*
+X003412Y010006D03*
+X002772Y010006D03*
+X002132Y010006D03*
+X001443Y010006D03*
+X000754Y010006D03*
+X000754Y009120D03*
+X000754Y008530D03*
+X002034Y004199D03*
+X002280Y003707D03*
+X003018Y004150D03*
+X003658Y004002D03*
+X001246Y003116D03*
+D45*
+X006807Y008628D03*
+X006168Y008923D03*
+X005626Y009317D03*
+X007546Y008727D03*
+X008825Y007742D03*
+X009859Y008087D03*
+X009268Y009170D03*
+X010695Y009219D03*
+X011876Y009760D03*
+X013057Y009957D03*
+X013500Y009612D03*
+X013549Y009022D03*
+X013156Y008628D03*
+X013353Y007398D03*
+X012811Y006660D03*
+X011679Y007103D03*
+X011138Y006512D03*
+X010794Y005479D03*
+X010154Y004888D03*
+X015321Y004790D03*
+X015715Y004986D03*
+X015862Y005429D03*
+X016428Y004716D03*
+X016945Y004642D03*
+X017462Y004863D03*
+X017929Y004839D03*
+X018372Y004888D03*
+X018717Y004593D03*
+X020439Y003855D03*
+X020882Y003510D03*
+X020784Y004248D03*
+X020734Y005479D03*
+X021670Y005675D03*
+X022162Y005823D03*
+X021916Y006315D03*
+X021571Y006660D03*
+X023097Y007890D03*
+X023687Y007939D03*
+X022998Y009416D03*
+X022457Y009416D03*
+X021276Y008234D03*
+X019160Y009219D03*
+X017979Y009957D03*
+X017536Y010006D03*
+X017536Y010498D03*
+X017093Y010498D03*
+X015813Y010646D03*
+X015912Y011925D03*
+X016896Y012122D03*
+X016207Y013500D03*
+X016059Y014091D03*
+X015321Y013549D03*
+X013549Y013549D03*
+X012516Y013549D03*
+X011384Y012073D03*
+X011778Y011187D03*
+X013303Y011286D03*
+X013549Y011729D03*
+X013992Y011925D03*
+X017782Y009268D03*
+X017929Y008825D03*
+X016847Y007693D03*
+X020538Y010006D03*
+X020439Y010892D03*
+X020046Y011138D03*
+X020538Y011532D03*
+X020144Y011925D03*
+X019307Y012860D03*
+X018864Y014829D03*
+X018471Y015862D03*
+X019307Y015862D03*
+X018864Y016650D03*
+X018618Y017683D03*
+X017687Y016748D03*
+X016847Y016453D03*
+X017290Y015666D03*
+X015764Y015764D03*
+X015764Y015223D03*
+X013205Y015370D03*
+X013205Y015862D03*
+X013697Y017634D03*
+X012122Y017683D03*
+X010351Y017683D03*
+X010154Y015764D03*
+X007841Y015862D03*
+X007890Y017683D03*
+X008166Y013727D03*
+X008677Y013500D03*
+X007693Y011433D03*
+X007103Y011089D03*
+X007546Y010597D03*
+X007546Y009957D03*
+X009268Y010547D03*
+X009809Y011040D03*
+X005823Y011483D03*
+X015370Y017634D03*
+X020439Y016256D03*
+X021374Y016010D03*
+X020734Y015469D03*
+X022359Y016010D03*
+X022900Y015420D03*
+X023441Y016010D03*
+X023884Y015420D03*
+X024425Y016059D03*
+X024918Y015420D03*
+X025459Y016010D03*
+X025902Y015420D03*
+X026492Y014829D03*
+X026492Y013845D03*
+X026443Y013254D03*
+X026492Y012418D03*
+X025508Y011679D03*
+X025016Y011679D03*
+X026542Y011433D03*
+X026492Y010646D03*
+X026542Y009859D03*
+X026492Y009071D03*
+X025459Y009416D03*
+X024967Y009416D03*
+X022408Y011679D03*
+X021916Y011679D03*
+X024229Y013057D03*
+X024425Y013845D03*
+X022211Y013845D03*
+X026443Y015912D03*
+X026394Y005183D03*
+X025508Y004839D03*
+X024721Y004347D03*
+X025065Y003953D03*
+X026246Y004150D03*
+X023589Y004544D03*
+D46*
+X021006Y013412D02*
+X021006Y017329D01*
+X020963Y017372D01*
+D47*
+X019799Y016797D02*
+X019799Y013008D01*
+X020577Y012231D01*
+X020931Y011876D01*
+X020931Y009563D01*
+X020538Y009170D01*
+X020538Y007349D01*
+X021079Y006807D01*
+X021079Y006748D01*
+X021522Y007053D02*
+X021079Y007496D01*
+X021079Y007457D01*
+X021079Y007496D02*
+X020882Y007693D01*
+X020882Y009022D01*
+X021276Y009416D01*
+X021276Y012280D01*
+X021286Y012270D01*
+X020577Y012270D02*
+X020577Y012231D01*
+X021276Y013142D02*
+X021006Y013412D01*
+X019799Y016797D02*
+X019406Y017191D01*
+X018274Y017191D01*
+X008481Y012762D02*
+X007142Y012762D01*
+X006857Y012477D01*
+X007292Y011768D02*
+X007695Y012171D01*
+X007292Y011768D02*
+X006857Y011768D01*
+X008166Y013077D02*
+X008481Y012762D01*
+X008166Y013077D02*
+X008166Y013727D01*
+X005404Y013412D02*
+X003959Y011967D01*
+X002112Y011967D01*
+X002112Y016707D02*
+X002734Y017329D01*
+X005404Y017329D01*
+X022998Y006522D02*
+X023038Y006561D01*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTO b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTO
new file mode 100644
index 0000000..e938934
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTO
@@ -0,0 +1,830 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0060*%
+%ADD11C,0.0110*%
+%ADD12R,0.0300X0.0180*%
+%ADD13R,0.0079X0.0079*%
+%ADD14C,0.0080*%
+%ADD15C,0.0200*%
+%ADD16C,0.0050*%
+%ADD17C,0.0040*%
+%ADD18C,0.0220*%
+D10*
+X005242Y001128D02*
+X005242Y001364D01*
+X005715Y001364D02*
+X005715Y001128D01*
+X010065Y001079D02*
+X010065Y001315D01*
+X010538Y001315D02*
+X010538Y001079D01*
+X010576Y005804D02*
+X010746Y005804D01*
+X010803Y005861D01*
+X010803Y006087D01*
+X010746Y006144D01*
+X010576Y006144D01*
+X010576Y005804D01*
+X010434Y005804D02*
+X010434Y006144D01*
+X010208Y006144D02*
+X010434Y005804D01*
+X010208Y005804D02*
+X010208Y006144D01*
+X010066Y006087D02*
+X010009Y006144D01*
+X009896Y006144D01*
+X009839Y006087D01*
+X009839Y005861D01*
+X009896Y005804D01*
+X010009Y005804D01*
+X010066Y005861D01*
+X010066Y005974D01*
+X009953Y005974D01*
+X009994Y006394D02*
+X009938Y006451D01*
+X009994Y006394D02*
+X010108Y006394D01*
+X010165Y006451D01*
+X010165Y006565D01*
+X010108Y006621D01*
+X010051Y006621D01*
+X009938Y006565D01*
+X009938Y006735D01*
+X010165Y006735D01*
+X010306Y006735D02*
+X010306Y006508D01*
+X010419Y006394D01*
+X010533Y006508D01*
+X010533Y006735D01*
+X010305Y006985D02*
+X010135Y006985D01*
+X010135Y007325D01*
+X010305Y007325D01*
+X010361Y007269D01*
+X010361Y007212D01*
+X010305Y007155D01*
+X010135Y007155D01*
+X010305Y007155D02*
+X010361Y007098D01*
+X010361Y007042D01*
+X010305Y006985D01*
+X010361Y007526D02*
+X010361Y007753D01*
+X010248Y007867D01*
+X010135Y007753D01*
+X010135Y007526D01*
+X010135Y007696D02*
+X010361Y007696D01*
+X008766Y008412D02*
+X008766Y008648D01*
+X008294Y008648D02*
+X008294Y008412D01*
+X007860Y007093D02*
+X007624Y007093D01*
+X007624Y006620D02*
+X007860Y006620D01*
+X007366Y010676D02*
+X007196Y010676D01*
+X007196Y011016D01*
+X007366Y011016D01*
+X007423Y010959D01*
+X007423Y010733D01*
+X007366Y010676D01*
+X007055Y010676D02*
+X007055Y011016D01*
+X006828Y011016D02*
+X007055Y010676D01*
+X006828Y010676D02*
+X006828Y011016D01*
+X006686Y010959D02*
+X006630Y011016D01*
+X006516Y011016D01*
+X006460Y010959D01*
+X006460Y010733D01*
+X006516Y010676D01*
+X006630Y010676D01*
+X006686Y010733D01*
+X006686Y010846D01*
+X006573Y010846D01*
+X005950Y010846D02*
+X005723Y010846D01*
+X005723Y010903D02*
+X005836Y011016D01*
+X005950Y010903D01*
+X005950Y010676D01*
+X005723Y010676D02*
+X005723Y010903D01*
+X005581Y010959D02*
+X005581Y010733D01*
+X005525Y010676D01*
+X005355Y010676D01*
+X005355Y011016D01*
+X005525Y011016D01*
+X005581Y010959D01*
+X005213Y010959D02*
+X005156Y011016D01*
+X005043Y011016D01*
+X004986Y010959D01*
+X004986Y010903D01*
+X005043Y010846D01*
+X005156Y010846D01*
+X005213Y010789D01*
+X005213Y010733D01*
+X005156Y010676D01*
+X005043Y010676D01*
+X004986Y010733D01*
+X004477Y010676D02*
+X004250Y010676D01*
+X004250Y011016D01*
+X004108Y010959D02*
+X004052Y011016D01*
+X003938Y011016D01*
+X003881Y010959D01*
+X003881Y010733D01*
+X003938Y010676D01*
+X004052Y010676D01*
+X004108Y010733D01*
+X003740Y010733D02*
+X003683Y010676D01*
+X003570Y010676D01*
+X003513Y010733D01*
+X003570Y010846D02*
+X003513Y010903D01*
+X003513Y010959D01*
+X003570Y011016D01*
+X003683Y011016D01*
+X003740Y010959D01*
+X003683Y010846D02*
+X003740Y010789D01*
+X003740Y010733D01*
+X003683Y010846D02*
+X003570Y010846D01*
+X003003Y010789D02*
+X003003Y011016D01*
+X002776Y011016D02*
+X002776Y010789D01*
+X002890Y010676D01*
+X003003Y010789D01*
+X002635Y010733D02*
+X002578Y010676D01*
+X002465Y010676D01*
+X002408Y010733D01*
+X002408Y010846D02*
+X002522Y010903D01*
+X002578Y010903D01*
+X002635Y010846D01*
+X002635Y010733D01*
+X002408Y010846D02*
+X002408Y011016D01*
+X002635Y011016D01*
+X006620Y012004D02*
+X006620Y012240D01*
+X007093Y012240D02*
+X007093Y012004D01*
+X012447Y011128D02*
+X012683Y011128D01*
+X012683Y010656D02*
+X012447Y010656D01*
+X019093Y005540D02*
+X019093Y005483D01*
+X019150Y005426D01*
+X019263Y005426D01*
+X019320Y005370D01*
+X019320Y005313D01*
+X019263Y005256D01*
+X019150Y005256D01*
+X019093Y005313D01*
+X019093Y005540D02*
+X019150Y005596D01*
+X019263Y005596D01*
+X019320Y005540D01*
+X019462Y005596D02*
+X019575Y005596D01*
+X019518Y005596D02*
+X019518Y005256D01*
+X019462Y005256D02*
+X019575Y005256D01*
+X019707Y005313D02*
+X019764Y005256D01*
+X019877Y005256D01*
+X019934Y005313D01*
+X019934Y005426D01*
+X019821Y005426D01*
+X019934Y005540D02*
+X019877Y005596D01*
+X019764Y005596D01*
+X019707Y005540D01*
+X019707Y005313D01*
+X019609Y005006D02*
+X019609Y004779D01*
+X019722Y004666D01*
+X019836Y004779D01*
+X019836Y005006D01*
+X019467Y005006D02*
+X019240Y005006D01*
+X019240Y004836D01*
+X019354Y004893D01*
+X019411Y004893D01*
+X019467Y004836D01*
+X019467Y004722D01*
+X019411Y004666D01*
+X019297Y004666D01*
+X019240Y004722D01*
+X019288Y004465D02*
+X019175Y004465D01*
+X019118Y004408D01*
+X019118Y004181D01*
+X019175Y004124D01*
+X019288Y004124D01*
+X019345Y004181D01*
+X019345Y004294D01*
+X019232Y004294D01*
+X019345Y004408D02*
+X019288Y004465D01*
+X019487Y004465D02*
+X019713Y004124D01*
+X019713Y004465D01*
+X019855Y004465D02*
+X020025Y004465D01*
+X020082Y004408D01*
+X020082Y004181D01*
+X020025Y004124D01*
+X019855Y004124D01*
+X019855Y004465D01*
+X019487Y004465D02*
+X019487Y004124D01*
+X020843Y006984D02*
+X020843Y007221D01*
+X021315Y007221D02*
+X021315Y006984D01*
+X023274Y006797D02*
+X023510Y006797D01*
+X023510Y006325D02*
+X023274Y006325D01*
+X021049Y012034D02*
+X020813Y012034D01*
+X020813Y012506D02*
+X021049Y012506D01*
+D11*
+X001055Y003216D02*
+X000661Y003216D01*
+X000858Y003019D02*
+X000858Y003413D01*
+X000956Y001444D02*
+X000956Y001050D01*
+D12*
+X005233Y003904D03*
+X013648Y010449D03*
+X017536Y008087D03*
+X018372Y008087D03*
+X019209Y008087D03*
+D13*
+X019209Y006797D03*
+X018372Y006797D03*
+X017536Y006797D03*
+X014288Y013146D03*
+X005233Y002664D03*
+D14*
+X005766Y002603D02*
+X005766Y003103D01*
+X006016Y003353D01*
+X006516Y003353D01*
+X006766Y003103D01*
+X006766Y002603D01*
+X006516Y002353D01*
+X006766Y002103D01*
+X006766Y001603D01*
+X006516Y001353D01*
+X006766Y001103D01*
+X006766Y000603D01*
+X006516Y000353D01*
+X006016Y000353D01*
+X005766Y000603D01*
+X005766Y001103D01*
+X006016Y001353D01*
+X005766Y001603D01*
+X005766Y002103D01*
+X006016Y002353D01*
+X005766Y002603D01*
+X006750Y002603D02*
+X006750Y003103D01*
+X007000Y003353D01*
+X007500Y003353D01*
+X007750Y003103D01*
+X007750Y002603D01*
+X007500Y002353D01*
+X007750Y002103D01*
+X007750Y001603D01*
+X007500Y001353D01*
+X007750Y001103D01*
+X007750Y000603D01*
+X007500Y000353D01*
+X007000Y000353D01*
+X006750Y000603D01*
+X006750Y001103D01*
+X007000Y001353D01*
+X006750Y001603D01*
+X006750Y002103D01*
+X007000Y002353D01*
+X006750Y002603D01*
+X007734Y002603D02*
+X007734Y003103D01*
+X007984Y003353D01*
+X008484Y003353D01*
+X008734Y003103D01*
+X008734Y002603D01*
+X008484Y002353D01*
+X008734Y002103D01*
+X008734Y001603D01*
+X008484Y001353D01*
+X008734Y001103D01*
+X008734Y000603D01*
+X008484Y000353D01*
+X007984Y000353D01*
+X007734Y000603D01*
+X007734Y001103D01*
+X007984Y001353D01*
+X007734Y001603D01*
+X007734Y002103D01*
+X007984Y002353D01*
+X007734Y002603D01*
+X008719Y002603D02*
+X008969Y002353D01*
+X008719Y002103D01*
+X008719Y001603D01*
+X008969Y001353D01*
+X008719Y001103D01*
+X008719Y000603D01*
+X008969Y000353D01*
+X009469Y000353D01*
+X009719Y000603D01*
+X009719Y001103D01*
+X009469Y001353D01*
+X009719Y001603D01*
+X009719Y002103D01*
+X009469Y002353D01*
+X009719Y002603D01*
+X009719Y003103D01*
+X009469Y003353D01*
+X008969Y003353D01*
+X008719Y003103D01*
+X008719Y002603D01*
+X015018Y002603D02*
+X015018Y003103D01*
+X015268Y003353D01*
+X015768Y003353D01*
+X016018Y003103D01*
+X016018Y002603D01*
+X015768Y002353D01*
+X016018Y002103D01*
+X016018Y001603D01*
+X015768Y001353D01*
+X016018Y001103D01*
+X016018Y000603D01*
+X015768Y000353D01*
+X015268Y000353D01*
+X015018Y000603D01*
+X015018Y001103D01*
+X015268Y001353D01*
+X015018Y001603D01*
+X015018Y002103D01*
+X015268Y002353D01*
+X015018Y002603D01*
+X016002Y002603D02*
+X016002Y003103D01*
+X016252Y003353D01*
+X016752Y003353D01*
+X017002Y003103D01*
+X017002Y002603D01*
+X016752Y002353D01*
+X017002Y002103D01*
+X017002Y001603D01*
+X016752Y001353D01*
+X017002Y001103D01*
+X017002Y000603D01*
+X016752Y000353D01*
+X016252Y000353D01*
+X016002Y000603D01*
+X016002Y001103D01*
+X016252Y001353D01*
+X016002Y001603D01*
+X016002Y002103D01*
+X016252Y002353D01*
+X016002Y002603D01*
+X016986Y002603D02*
+X016986Y003103D01*
+X017236Y003353D01*
+X017736Y003353D01*
+X017986Y003103D01*
+X017986Y002603D01*
+X017736Y002353D01*
+X017986Y002103D01*
+X017986Y001603D01*
+X017736Y001353D01*
+X017986Y001103D01*
+X017986Y000603D01*
+X017736Y000353D01*
+X017236Y000353D01*
+X016986Y000603D01*
+X016986Y001103D01*
+X017236Y001353D01*
+X016986Y001603D01*
+X016986Y002103D01*
+X017236Y002353D01*
+X016986Y002603D01*
+X017971Y002603D02*
+X017971Y003103D01*
+X018221Y003353D01*
+X018721Y003353D01*
+X018971Y003103D01*
+X018971Y002603D01*
+X018721Y002353D01*
+X018971Y002103D01*
+X018971Y001603D01*
+X018721Y001353D01*
+X018971Y001103D01*
+X018971Y000603D01*
+X018721Y000353D01*
+X018221Y000353D01*
+X017971Y000603D01*
+X017971Y001103D01*
+X018221Y001353D01*
+X017971Y001603D01*
+X017971Y002103D01*
+X018221Y002353D01*
+X017971Y002603D01*
+X018955Y002603D02*
+X018955Y003103D01*
+X019205Y003353D01*
+X019705Y003353D01*
+X019955Y003103D01*
+X019955Y002603D01*
+X019705Y002353D01*
+X019955Y002103D01*
+X019955Y001603D01*
+X019705Y001353D01*
+X019955Y001103D01*
+X019955Y000603D01*
+X019705Y000353D01*
+X019205Y000353D01*
+X018955Y000603D01*
+X018955Y001103D01*
+X019205Y001353D01*
+X018955Y001603D01*
+X018955Y002103D01*
+X019205Y002353D01*
+X018955Y002603D01*
+X019939Y002603D02*
+X019939Y003103D01*
+X020189Y003353D01*
+X020689Y003353D01*
+X020939Y003103D01*
+X020939Y002603D01*
+X020689Y002353D01*
+X020939Y002103D01*
+X020939Y001603D01*
+X020689Y001353D01*
+X020939Y001103D01*
+X020939Y000603D01*
+X020689Y000353D01*
+X020189Y000353D01*
+X019939Y000603D01*
+X019939Y001103D01*
+X020189Y001353D01*
+X019939Y001603D01*
+X019939Y002103D01*
+X020189Y002353D01*
+X019939Y002603D01*
+X020923Y002603D02*
+X020923Y003103D01*
+X021173Y003353D01*
+X021673Y003353D01*
+X021923Y003103D01*
+X021923Y002603D01*
+X021673Y002353D01*
+X021923Y002103D01*
+X021923Y001603D01*
+X021673Y001353D01*
+X021923Y001103D01*
+X021923Y000603D01*
+X021673Y000353D01*
+X021173Y000353D01*
+X020923Y000603D01*
+X020923Y001103D01*
+X021173Y001353D01*
+X020923Y001603D01*
+X020923Y002103D01*
+X021173Y002353D01*
+X020923Y002603D01*
+X021908Y002603D02*
+X021908Y003103D01*
+X022158Y003353D01*
+X022658Y003353D01*
+X022908Y003103D01*
+X022908Y002603D01*
+X022658Y002353D01*
+X022908Y002103D01*
+X022908Y001603D01*
+X022658Y001353D01*
+X022908Y001103D01*
+X022908Y000603D01*
+X022658Y000353D01*
+X022158Y000353D01*
+X021908Y000603D01*
+X021908Y001103D01*
+X022158Y001353D01*
+X021908Y001603D01*
+X021908Y002103D01*
+X022158Y002353D01*
+X021908Y002603D01*
+X022892Y002603D02*
+X023142Y002353D01*
+X022892Y002103D01*
+X022892Y001603D01*
+X023142Y001353D01*
+X022892Y001103D01*
+X022892Y000603D01*
+X023142Y000353D01*
+X023642Y000353D01*
+X023892Y000603D01*
+X023892Y001103D01*
+X023642Y001353D01*
+X023892Y001603D01*
+X023892Y002103D01*
+X023642Y002353D01*
+X023892Y002603D01*
+X023892Y003103D01*
+X023642Y003353D01*
+X023142Y003353D01*
+X022892Y003103D01*
+X022892Y002603D01*
+X023876Y002603D02*
+X023876Y003103D01*
+X024126Y003353D01*
+X024626Y003353D01*
+X024876Y003103D01*
+X024876Y002603D01*
+X024626Y002353D01*
+X024876Y002103D01*
+X024876Y001603D01*
+X024626Y001353D01*
+X024876Y001103D01*
+X024876Y000603D01*
+X024626Y000353D01*
+X024126Y000353D01*
+X023876Y000603D01*
+X023876Y001103D01*
+X024126Y001353D01*
+X023876Y001603D01*
+X023876Y002103D01*
+X024126Y002353D01*
+X023876Y002603D01*
+X024860Y002603D02*
+X024860Y003103D01*
+X025110Y003353D01*
+X025610Y003353D01*
+X025860Y003103D01*
+X025860Y002603D01*
+X025610Y002353D01*
+X025860Y002103D01*
+X025860Y001603D01*
+X025610Y001353D01*
+X025860Y001103D01*
+X025860Y000603D01*
+X025610Y000353D01*
+X025110Y000353D01*
+X024860Y000603D01*
+X024860Y001103D01*
+X025110Y001353D01*
+X024860Y001603D01*
+X024860Y002103D01*
+X025110Y002353D01*
+X024860Y002603D01*
+X025845Y002603D02*
+X025845Y003103D01*
+X026095Y003353D01*
+X026595Y003353D01*
+X026845Y003103D01*
+X026845Y002603D01*
+X026595Y002353D01*
+X026845Y002103D01*
+X026845Y001603D01*
+X026595Y001353D01*
+X026845Y001103D01*
+X026845Y000603D01*
+X026595Y000353D01*
+X026095Y000353D01*
+X025845Y000603D01*
+X025845Y001103D01*
+X026095Y001353D01*
+X025845Y001603D01*
+X025845Y002103D01*
+X026095Y002353D01*
+X025845Y002603D01*
+X025449Y007900D02*
+X025449Y008215D01*
+X025685Y008215D01*
+X026315Y008215D02*
+X026551Y008215D01*
+X026551Y007900D01*
+X007802Y008273D02*
+X005222Y008273D01*
+X005222Y009573D01*
+X007802Y009573D01*
+X007802Y008273D01*
+D15*
+X021815Y009101D02*
+X021817Y009121D01*
+X021822Y009141D01*
+X021831Y009159D01*
+X021844Y009175D01*
+X021859Y009189D01*
+X021876Y009199D01*
+X021895Y009207D01*
+X021915Y009211D01*
+X021935Y009211D01*
+X021955Y009207D01*
+X021974Y009199D01*
+X021991Y009189D01*
+X022006Y009175D01*
+X022019Y009159D01*
+X022028Y009141D01*
+X022033Y009121D01*
+X022035Y009101D01*
+X022033Y009081D01*
+X022028Y009061D01*
+X022019Y009043D01*
+X022006Y009027D01*
+X021991Y009013D01*
+X021974Y009003D01*
+X021955Y008995D01*
+X021935Y008991D01*
+X021915Y008991D01*
+X021895Y008995D01*
+X021876Y009003D01*
+X021859Y009013D01*
+X021844Y009027D01*
+X021831Y009043D01*
+X021822Y009061D01*
+X021817Y009081D01*
+X021815Y009101D01*
+D16*
+X000341Y000853D02*
+X000341Y000262D01*
+X004671Y000262D01*
+X004671Y004199D01*
+X000341Y004199D01*
+X000341Y003609D01*
+X001364Y003609D01*
+X001364Y002821D01*
+X000341Y002821D01*
+X000341Y003609D01*
+X000341Y002821D02*
+X000341Y001640D01*
+X001364Y001640D01*
+X001364Y000853D01*
+X000341Y000853D01*
+X000341Y001640D01*
+X007103Y006296D02*
+X007105Y006318D01*
+X007111Y006340D01*
+X007120Y006360D01*
+X007133Y006378D01*
+X007149Y006394D01*
+X007167Y006407D01*
+X007187Y006416D01*
+X007209Y006422D01*
+X007231Y006424D01*
+X007253Y006422D01*
+X007275Y006416D01*
+X007295Y006407D01*
+X007313Y006394D01*
+X007329Y006378D01*
+X007342Y006360D01*
+X007351Y006340D01*
+X007357Y006318D01*
+X007359Y006296D01*
+X007357Y006274D01*
+X007351Y006252D01*
+X007342Y006232D01*
+X007329Y006214D01*
+X007313Y006198D01*
+X007295Y006185D01*
+X007275Y006176D01*
+X007253Y006170D01*
+X007231Y006168D01*
+X007209Y006170D01*
+X007187Y006176D01*
+X007167Y006185D01*
+X007149Y006198D01*
+X007133Y006214D01*
+X007120Y006232D01*
+X007111Y006252D01*
+X007105Y006274D01*
+X007103Y006296D01*
+X005758Y012768D02*
+X005758Y012855D01*
+X005758Y012768D02*
+X011695Y012768D01*
+X011695Y013886D01*
+X014715Y013886D02*
+X014715Y012768D01*
+X020652Y012768D01*
+X020652Y012855D01*
+X020652Y013973D02*
+X020652Y016768D01*
+X020652Y017886D02*
+X020652Y017973D01*
+X014715Y017973D01*
+X014715Y016855D01*
+X011695Y016855D02*
+X011695Y017973D01*
+X005758Y017973D01*
+X005758Y017886D01*
+X005758Y016768D02*
+X005758Y013973D01*
+X022075Y013303D02*
+X022075Y018028D01*
+X026776Y018028D01*
+X026776Y013303D01*
+X022075Y013303D01*
+D17*
+X022138Y013252D02*
+X022292Y013099D01*
+X022292Y012792D01*
+X022292Y013022D02*
+X021985Y013022D01*
+X021985Y013099D02*
+X022138Y013252D01*
+X021985Y013099D02*
+X021985Y012792D01*
+X021755Y012792D02*
+X021755Y013252D01*
+X021525Y013022D01*
+X021832Y013022D01*
+X026025Y013099D02*
+X026178Y013252D01*
+X026178Y012792D01*
+X026025Y012792D02*
+X026332Y012792D01*
+X026485Y012792D02*
+X026485Y013099D01*
+X026638Y013252D01*
+X026792Y013099D01*
+X026792Y012792D01*
+X026792Y013022D02*
+X026485Y013022D01*
+X022215Y017579D02*
+X021985Y017579D01*
+X021985Y018040D01*
+X022215Y018040D01*
+X022292Y017963D01*
+X022292Y017886D01*
+X022215Y017809D01*
+X021985Y017809D01*
+X021832Y017809D02*
+X021525Y017809D01*
+X021755Y018040D01*
+X021755Y017579D01*
+X022215Y017579D02*
+X022292Y017656D01*
+X022292Y017733D01*
+X022215Y017809D01*
+X026025Y018079D02*
+X026332Y018079D01*
+X026485Y018079D02*
+X026715Y018079D01*
+X026792Y018156D01*
+X026792Y018233D01*
+X026715Y018309D01*
+X026485Y018309D01*
+X026485Y018079D02*
+X026485Y018540D01*
+X026715Y018540D01*
+X026792Y018463D01*
+X026792Y018386D01*
+X026715Y018309D01*
+X026178Y018540D02*
+X026178Y018079D01*
+X026025Y018386D02*
+X026178Y018540D01*
+D18*
+X025164Y013069D02*
+X025164Y013045D01*
+X023343Y013069D02*
+X023343Y013045D01*
+X024622Y007754D02*
+X024622Y007730D01*
+X023392Y007311D02*
+X023392Y007287D01*
+X022162Y007681D02*
+X022162Y007705D01*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTP b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTP
new file mode 100644
index 0000000..5a1be3d
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTP
@@ -0,0 +1,242 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10R,0.0394X0.0433*%
+%ADD11R,0.0472X0.0472*%
+%ADD12R,0.0472X0.0315*%
+%ADD13R,0.1014X0.0748*%
+%ADD14R,0.0225X0.0666*%
+%ADD15R,0.0500X0.1000*%
+%ADD16R,0.2028X0.0299*%
+%ADD17R,0.1555X0.0965*%
+%ADD18R,0.0104X0.0189*%
+%ADD19R,0.0926X0.0138*%
+%ADD20R,0.0630X0.0138*%
+%ADD21R,0.0315X0.0472*%
+%ADD22R,0.0433X0.0394*%
+%ADD23R,0.0748X0.1339*%
+%ADD24R,0.0315X0.0354*%
+%ADD25R,0.2106X0.3362*%
+%ADD26R,0.0350X0.1205*%
+%ADD27R,0.0315X0.0236*%
+%ADD28R,0.0480X0.0880*%
+%ADD29R,0.1417X0.0866*%
+D10*
+X005233Y003569D03*
+X005233Y004238D03*
+X013648Y010114D03*
+X013648Y010784D03*
+X017536Y008421D03*
+X017536Y007752D03*
+X018372Y007752D03*
+X018372Y008421D03*
+X019209Y008421D03*
+X019209Y007752D03*
+D11*
+X005233Y002211D03*
+X005233Y003038D03*
+X017536Y006345D03*
+X018372Y006345D03*
+X019209Y006345D03*
+X019209Y007171D03*
+X018372Y007171D03*
+X017536Y007171D03*
+X014288Y012693D03*
+X014288Y013520D03*
+D12*
+X008530Y008884D03*
+X008530Y008175D03*
+X006857Y011768D03*
+X006857Y012477D03*
+X021079Y007457D03*
+X021079Y006748D03*
+X010301Y001551D03*
+X010301Y000843D03*
+X005479Y000892D03*
+X005479Y001601D03*
+D13*
+X008495Y009947D03*
+X008495Y011049D03*
+X010631Y011049D03*
+X010631Y009947D03*
+D14*
+X021986Y008522D03*
+X022486Y008522D03*
+X022986Y008522D03*
+X023486Y008522D03*
+X023986Y008522D03*
+X024486Y008522D03*
+X024986Y008522D03*
+X025486Y008522D03*
+X025486Y012278D03*
+X024986Y012278D03*
+X024486Y012278D03*
+X023986Y012278D03*
+X023486Y012278D03*
+X022986Y012278D03*
+X022486Y012278D03*
+X021986Y012278D03*
+D15*
+X022925Y013973D03*
+X023925Y013973D03*
+X024925Y013973D03*
+X025925Y013973D03*
+X025925Y017359D03*
+X024925Y017359D03*
+X023925Y017359D03*
+X022925Y017359D03*
+D16*
+X014481Y016620D03*
+X014481Y016120D03*
+X014481Y015620D03*
+X014481Y015120D03*
+X014481Y014620D03*
+X014481Y014120D03*
+X011929Y014120D03*
+X011929Y014620D03*
+X011929Y015120D03*
+X011929Y015620D03*
+X011929Y016120D03*
+X011929Y016620D03*
+D17*
+X005404Y017329D03*
+X005404Y013412D03*
+X021006Y013412D03*
+X021006Y017329D03*
+D18*
+X012860Y005081D03*
+X012664Y005081D03*
+X012467Y005081D03*
+X012270Y005081D03*
+X012073Y005081D03*
+X011876Y005081D03*
+X011876Y004597D03*
+X012073Y004597D03*
+X012270Y004597D03*
+X012467Y004597D03*
+X012664Y004597D03*
+X012860Y004597D03*
+X015173Y004392D03*
+X015370Y004392D03*
+X015567Y004392D03*
+X015764Y004392D03*
+X015961Y004392D03*
+X016158Y004392D03*
+X016158Y003908D03*
+X015961Y003908D03*
+X015764Y003908D03*
+X015567Y003908D03*
+X015370Y003908D03*
+X015173Y003908D03*
+X017486Y003711D03*
+X017683Y003711D03*
+X017880Y003711D03*
+X018077Y003711D03*
+X018274Y003711D03*
+X018471Y003711D03*
+X018471Y004195D03*
+X018274Y004195D03*
+X018077Y004195D03*
+X017880Y004195D03*
+X017683Y004195D03*
+X017486Y004195D03*
+X022998Y004096D03*
+X023195Y004096D03*
+X023392Y004096D03*
+X023589Y004096D03*
+X023786Y004096D03*
+X023983Y004096D03*
+X023983Y003613D03*
+X023786Y003613D03*
+X023589Y003613D03*
+X023392Y003613D03*
+X023195Y003613D03*
+X022998Y003613D03*
+X008038Y003760D03*
+X007841Y003760D03*
+X007644Y003760D03*
+X007447Y003760D03*
+X007250Y003760D03*
+X007053Y003760D03*
+X007053Y004244D03*
+X007250Y004244D03*
+X007447Y004244D03*
+X007644Y004244D03*
+X007841Y004244D03*
+X008038Y004244D03*
+D19*
+X007546Y004002D03*
+X012368Y004839D03*
+X015666Y004150D03*
+X017979Y003953D03*
+X023490Y003855D03*
+D20*
+X008845Y004760D03*
+X008845Y005016D03*
+X008845Y005272D03*
+X008845Y005528D03*
+X008845Y005784D03*
+X008845Y006040D03*
+X008845Y006296D03*
+X006640Y006296D03*
+X006640Y006040D03*
+X006640Y005784D03*
+X006640Y005528D03*
+X006640Y005272D03*
+X006640Y005016D03*
+X006640Y004760D03*
+D21*
+X007388Y006857D03*
+X008097Y006857D03*
+X012211Y010892D03*
+X012920Y010892D03*
+X020577Y012270D03*
+X021286Y012270D03*
+X023038Y006561D03*
+X023746Y006561D03*
+D22*
+X023727Y007299D03*
+X023057Y007299D03*
+X022496Y007693D03*
+X021827Y007693D03*
+X024288Y007742D03*
+X024957Y007742D03*
+X024829Y013057D03*
+X025498Y013057D03*
+X023677Y013057D03*
+X023008Y013057D03*
+D23*
+X024593Y006561D03*
+X026128Y006561D03*
+D24*
+X026374Y007546D03*
+X025626Y007546D03*
+X026000Y008372D03*
+D25*
+X002526Y008010D03*
+D26*
+X002526Y005134D03*
+X003026Y005134D03*
+X003526Y005134D03*
+X004026Y005134D03*
+X002026Y005134D03*
+X001526Y005134D03*
+X001026Y005134D03*
+D27*
+X010252Y008648D03*
+X010252Y009199D03*
+X011630Y009199D03*
+X011630Y008648D03*
+D28*
+X007422Y007703D03*
+X006512Y007703D03*
+X005602Y007703D03*
+D29*
+X006512Y010144D03*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTS b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTS
new file mode 100644
index 0000000..5e8f467
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.GTS
@@ -0,0 +1,333 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10R,0.0474X0.0513*%
+%ADD11R,0.0552X0.0552*%
+%ADD12R,0.0552X0.0395*%
+%ADD13R,0.1094X0.0828*%
+%ADD14C,0.0820*%
+%ADD15R,0.0820X0.0820*%
+%ADD16R,0.0305X0.0746*%
+%ADD17R,0.0580X0.1080*%
+%ADD18R,0.0682X0.0682*%
+%ADD19R,0.1386X0.1386*%
+%ADD20R,0.2108X0.0379*%
+%ADD21R,0.1635X0.1045*%
+%ADD22R,0.0184X0.0269*%
+%ADD23R,0.1006X0.0218*%
+%ADD24R,0.0710X0.0218*%
+%ADD25R,0.0395X0.0552*%
+%ADD26R,0.0513X0.0474*%
+%ADD27R,0.0828X0.1419*%
+%ADD28R,0.0395X0.0434*%
+%ADD29R,0.2186X0.3442*%
+%ADD30R,0.0430X0.1285*%
+%ADD31C,0.0907*%
+%ADD32R,0.0395X0.0316*%
+%ADD33R,0.0560X0.0960*%
+%ADD34R,0.1497X0.0946*%
+%ADD35C,0.0595*%
+D10*
+X005233Y003569D03*
+X005233Y004238D03*
+X013648Y010114D03*
+X013648Y010784D03*
+X017536Y008421D03*
+X017536Y007752D03*
+X018372Y007752D03*
+X018372Y008421D03*
+X019209Y008421D03*
+X019209Y007752D03*
+D11*
+X019209Y007171D03*
+X018372Y007171D03*
+X017536Y007171D03*
+X017536Y006345D03*
+X018372Y006345D03*
+X019209Y006345D03*
+X014288Y012693D03*
+X014288Y013520D03*
+X005233Y003038D03*
+X005233Y002211D03*
+D12*
+X005479Y001601D03*
+X005479Y000892D03*
+X010301Y000843D03*
+X010301Y001551D03*
+X008530Y008175D03*
+X008530Y008884D03*
+X006857Y011768D03*
+X006857Y012477D03*
+X021079Y007457D03*
+X021079Y006748D03*
+D13*
+X010631Y009947D03*
+X010631Y011049D03*
+X008495Y011049D03*
+X008495Y009947D03*
+D14*
+X008695Y012171D03*
+X007695Y012171D03*
+X009695Y012171D03*
+X011187Y003853D03*
+X011187Y002853D03*
+X012270Y002853D03*
+X012270Y003853D03*
+X013353Y003853D03*
+X013353Y002853D03*
+X014435Y002853D03*
+X015518Y002853D03*
+X016502Y002853D03*
+X017486Y002853D03*
+X018471Y002853D03*
+X019455Y002853D03*
+X020439Y002853D03*
+X021423Y002853D03*
+X022408Y002853D03*
+X023392Y002853D03*
+X024376Y002853D03*
+X025360Y002853D03*
+X026345Y002853D03*
+X026345Y001853D03*
+X025360Y001853D03*
+X024376Y001853D03*
+X023392Y001853D03*
+X022408Y001853D03*
+X021423Y001853D03*
+X020439Y001853D03*
+X019455Y001853D03*
+X018471Y001853D03*
+X017486Y001853D03*
+X016502Y001853D03*
+X015518Y001853D03*
+X014435Y001853D03*
+X013353Y001853D03*
+X012270Y001853D03*
+X011187Y001853D03*
+X009219Y001853D03*
+X008234Y001853D03*
+X007250Y001853D03*
+X006266Y001853D03*
+X006266Y002853D03*
+X007250Y002853D03*
+X008234Y002853D03*
+X009219Y002853D03*
+X009219Y000853D03*
+X008234Y000853D03*
+X007250Y000853D03*
+X006266Y000853D03*
+X014435Y003853D03*
+X015518Y000853D03*
+X016502Y000853D03*
+X017486Y000853D03*
+X018471Y000853D03*
+X019455Y000853D03*
+X020439Y000853D03*
+X021423Y000853D03*
+X022408Y000853D03*
+X023392Y000853D03*
+X024376Y000853D03*
+X025360Y000853D03*
+X026345Y000853D03*
+D15*
+X014435Y000853D03*
+X013353Y000853D03*
+X012270Y000853D03*
+X011187Y000853D03*
+X010695Y012171D03*
+D16*
+X021986Y012278D03*
+X022486Y012278D03*
+X022986Y012278D03*
+X023486Y012278D03*
+X023986Y012278D03*
+X024486Y012278D03*
+X024986Y012278D03*
+X025486Y012278D03*
+X025486Y008522D03*
+X024986Y008522D03*
+X024486Y008522D03*
+X023986Y008522D03*
+X023486Y008522D03*
+X022986Y008522D03*
+X022486Y008522D03*
+X021986Y008522D03*
+D17*
+X022925Y013973D03*
+X023925Y013973D03*
+X024925Y013973D03*
+X025925Y013973D03*
+X025925Y017359D03*
+X024925Y017359D03*
+X023925Y017359D03*
+X022925Y017359D03*
+D18*
+X003018Y014829D03*
+X003018Y013845D03*
+X001738Y013845D03*
+X001738Y014829D03*
+D19*
+X002112Y016707D03*
+X002112Y011967D03*
+D20*
+X011929Y014120D03*
+X011929Y014620D03*
+X011929Y015120D03*
+X011929Y015620D03*
+X011929Y016120D03*
+X011929Y016620D03*
+X014481Y016620D03*
+X014481Y016120D03*
+X014481Y015620D03*
+X014481Y015120D03*
+X014481Y014620D03*
+X014481Y014120D03*
+D21*
+X021006Y013412D03*
+X021006Y017329D03*
+X005404Y017329D03*
+X005404Y013412D03*
+D22*
+X011876Y005081D03*
+X012073Y005081D03*
+X012270Y005081D03*
+X012467Y005081D03*
+X012664Y005081D03*
+X012860Y005081D03*
+X012860Y004597D03*
+X012664Y004597D03*
+X012467Y004597D03*
+X012270Y004597D03*
+X012073Y004597D03*
+X011876Y004597D03*
+X015173Y004392D03*
+X015370Y004392D03*
+X015567Y004392D03*
+X015764Y004392D03*
+X015961Y004392D03*
+X016158Y004392D03*
+X016158Y003908D03*
+X015961Y003908D03*
+X015764Y003908D03*
+X015567Y003908D03*
+X015370Y003908D03*
+X015173Y003908D03*
+X017486Y003711D03*
+X017683Y003711D03*
+X017880Y003711D03*
+X018077Y003711D03*
+X018274Y003711D03*
+X018471Y003711D03*
+X018471Y004195D03*
+X018274Y004195D03*
+X018077Y004195D03*
+X017880Y004195D03*
+X017683Y004195D03*
+X017486Y004195D03*
+X022998Y004096D03*
+X023195Y004096D03*
+X023392Y004096D03*
+X023589Y004096D03*
+X023786Y004096D03*
+X023983Y004096D03*
+X023983Y003613D03*
+X023786Y003613D03*
+X023589Y003613D03*
+X023392Y003613D03*
+X023195Y003613D03*
+X022998Y003613D03*
+X008038Y003760D03*
+X007841Y003760D03*
+X007644Y003760D03*
+X007447Y003760D03*
+X007250Y003760D03*
+X007053Y003760D03*
+X007053Y004244D03*
+X007250Y004244D03*
+X007447Y004244D03*
+X007644Y004244D03*
+X007841Y004244D03*
+X008038Y004244D03*
+D23*
+X007546Y004002D03*
+X012368Y004839D03*
+X015666Y004150D03*
+X017979Y003953D03*
+X023490Y003855D03*
+D24*
+X008845Y004760D03*
+X008845Y005016D03*
+X008845Y005272D03*
+X008845Y005528D03*
+X008845Y005784D03*
+X008845Y006040D03*
+X008845Y006296D03*
+X006640Y006296D03*
+X006640Y006040D03*
+X006640Y005784D03*
+X006640Y005528D03*
+X006640Y005272D03*
+X006640Y005016D03*
+X006640Y004760D03*
+D25*
+X007388Y006857D03*
+X008097Y006857D03*
+X012211Y010892D03*
+X012920Y010892D03*
+X020577Y012270D03*
+X021286Y012270D03*
+X023038Y006561D03*
+X023746Y006561D03*
+D26*
+X023727Y007299D03*
+X023057Y007299D03*
+X022496Y007693D03*
+X021827Y007693D03*
+X024288Y007742D03*
+X024957Y007742D03*
+X024829Y013057D03*
+X025498Y013057D03*
+X023677Y013057D03*
+X023008Y013057D03*
+D27*
+X024593Y006561D03*
+X026128Y006561D03*
+D28*
+X026374Y007546D03*
+X025626Y007546D03*
+X026000Y008372D03*
+D29*
+X002526Y008010D03*
+D30*
+X002526Y005134D03*
+X003026Y005134D03*
+X003526Y005134D03*
+X004026Y005134D03*
+X002026Y005134D03*
+X001526Y005134D03*
+X001026Y005134D03*
+D31*
+X002998Y001246D02*
+X003825Y001246D01*
+X003825Y003215D02*
+X002998Y003215D01*
+D32*
+X010252Y008648D03*
+X010252Y009199D03*
+X011630Y009199D03*
+X011630Y008648D03*
+D33*
+X007422Y007703D03*
+X006512Y007703D03*
+X005602Y007703D03*
+D34*
+X006512Y010144D03*
+D35*
+X010351Y002329D03*
+M02*
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.TXT b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.TXT
new file mode 100644
index 0000000..4584106
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.TXT
@@ -0,0 +1,267 @@
+%
+M48
+M72
+T01C0.0157
+T02C0.0197
+T03C0.0236
+T04C0.0315
+T05C0.0362
+T06C0.0400
+T07C0.0551
+T08C0.0906
+%
+T01
+X10154Y4888
+X10794Y5479
+X11138Y6512
+X11679Y7103
+X12811Y6660
+X13353Y7398
+X13156Y8628
+X13549Y9022
+X13500Y9612
+X13057Y9957
+X11876Y9760
+X10695Y9219
+X9268Y9170
+X9859Y8087
+X8825Y7742
+X7546Y8727
+X6807Y8628
+X6168Y8923
+X5626Y9317
+X7546Y9957
+X7546Y10597
+X7103Y11089
+X7693Y11433
+X9268Y10547
+X9809Y11040
+X11384Y12073
+X11778Y11187
+X13303Y11286
+X13549Y11729
+X13992Y11925
+X15912Y11925
+X16896Y12122
+X16207Y13500
+X16059Y14091
+X15321Y13549
+X13549Y13549
+X12516Y13549
+X13205Y15370
+X13205Y15862
+X13697Y17634
+X12122Y17683
+X10351Y17683
+X10154Y15764
+X7841Y15862
+X7890Y17683
+X8166Y13727
+X8677Y13500
+X5823Y11483
+X15370Y17634
+X16847Y16453
+X17687Y16748
+X18471Y15862
+X19307Y15862
+X18864Y16650
+X18618Y17683
+X20439Y16256
+X21374Y16010
+X20734Y15469
+X22359Y16010
+X22900Y15420
+X23441Y16010
+X23884Y15420
+X24425Y16059
+X24918Y15420
+X25459Y16010
+X25902Y15420
+X26492Y14829
+X26492Y13845
+X26443Y13254
+X26492Y12418
+X25508Y11679
+X25016Y11679
+X26542Y11433
+X26492Y10646
+X26542Y9859
+X26492Y9071
+X25459Y9416
+X24967Y9416
+X23687Y7939
+X23097Y7890
+X21276Y8234
+X22457Y9416
+X22998Y9416
+X20538Y10006
+X20439Y10892
+X20046Y11138
+X20538Y11532
+X20144Y11925
+X19307Y12860
+X18864Y14829
+X17290Y15666
+X15764Y15764
+X15764Y15223
+X15813Y10646
+X17093Y10498
+X17536Y10498
+X17536Y10006
+X17979Y9957
+X17782Y9268
+X17929Y8825
+X19160Y9219
+X16847Y7693
+X15862Y5429
+X15715Y4986
+X15321Y4790
+X16428Y4716
+X16945Y4642
+X17462Y4863
+X17929Y4839
+X18372Y4888
+X18717Y4593
+X20439Y3855
+X20882Y3510
+X20784Y4248
+X20734Y5479
+X21670Y5675
+X22162Y5823
+X21916Y6315
+X21571Y6660
+X23589Y4544
+X24721Y4347
+X25065Y3953
+X25508Y4839
+X26394Y5183
+X26246Y4150
+X22408Y11679
+X21916Y11679
+X24229Y13057
+X24425Y13845
+X22211Y13845
+X26443Y15912
+T02
+X12762Y5675
+X12270Y5626
+X11778Y5577
+X11286Y5085
+X13205Y4790
+X13254Y5331
+X8776Y4248
+X8776Y3569
+X6709Y4248
+X7299Y6168
+X8185Y6168
+X1542Y3855
+T03
+X2034Y4199
+X2280Y3707
+X3018Y4150
+X3658Y4002
+X5183Y4888
+X4691Y6020
+X4445Y7004
+X4002Y7447
+X4494Y7792
+X4002Y8136
+X4445Y8530
+X4002Y8973
+X4051Y10006
+X3412Y10006
+X2772Y10006
+X2132Y10006
+X1443Y10006
+X754Y10006
+X754Y9120
+X754Y8530
+X1246Y3116
+X14731Y12171
+X15321Y12171
+X22112Y13156
+X25262Y7004
+X25262Y6118
+T04
+X10351Y2329
+T05
+X3018Y13845
+X3018Y14829
+X1738Y14829
+X1738Y13845
+T06
+X7695Y12171
+X8695Y12171
+X9695Y12171
+X10695Y12171
+X11187Y3853
+X11187Y2853
+X12270Y2853
+X12270Y3853
+X13353Y3853
+X13353Y2853
+X14435Y2853
+X15518Y2853
+X16502Y2853
+X17486Y2853
+X18471Y2853
+X19455Y2853
+X20439Y2853
+X21423Y2853
+X22408Y2853
+X23392Y2853
+X24376Y2853
+X25360Y2853
+X26345Y2853
+X26345Y1853
+X25360Y1853
+X24376Y1853
+X23392Y1853
+X22408Y1853
+X21423Y1853
+X20439Y1853
+X19455Y1853
+X18471Y1853
+X17486Y1853
+X16502Y1853
+X15518Y1853
+X14435Y1853
+X13353Y1853
+X12270Y1853
+X11187Y1853
+X11187Y853
+X12270Y853
+X13353Y853
+X14435Y853
+X15518Y853
+X16502Y853
+X17486Y853
+X18471Y853
+X19455Y853
+X20439Y853
+X21423Y853
+X22408Y853
+X23392Y853
+X24376Y853
+X25360Y853
+X26345Y853
+X14435Y3853
+X9219Y2853
+X8234Y2853
+X7250Y2853
+X6266Y2853
+X6266Y1853
+X7250Y1853
+X8234Y1853
+X9219Y1853
+X9219Y853
+X8234Y853
+X7250Y853
+X6266Y853
+T07
+X3412Y1246
+X3412Y3215
+T08
+X2112Y11967
+X2112Y16707
+M30
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.ipc b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.ipc
new file mode 100644
index 0000000..c7ec27f
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.ipc
@@ -0,0 +1,689 @@
+C  IPC-D-356 generated by EAGLE Version 5.11.0 Copyright (c) 1988-2010 CadSoft
+C  Database /home/austin/local/robotics/frc971/2012/trunk/src/gyro_board/schematic/gyro_motherboard.brd -- Exported at 1/23/12 2:33 AM
+C  
+P  JOB EAGLE 5.11 NETLIST, DATE: 1/23/12 2:33 AM
+P  UNITS CUST 0
+P  DIM N
+3173.3V             VIA         D  15PA00X  12893Y   8366X 357Y 357             
+3173.3V             VIA         D  15PA00X  13238Y   9350X 357Y 357             
+3173.3V             VIA         D  15PA00X  13287Y  13287X 357Y 357             
+3173.3V             VIA         D  15PA00X  13287Y  11466X 357Y 357             
+3173.3V             VIA         D  15PA00X  15944Y  13238X 357Y 357             
+3173.3V             VIA         D  15PA00X  16584Y   7431X 357Y 357             
+3175V               VIA         D  23PA00X   4429Y   5757X 436Y 436             
+3175V               VIA         D  15PA00X   8415Y  13238X 357Y 357             
+3175V               VIA         D  15PA00X  17027Y  15403X 357Y 357             
+3175V               VIA         D  15PA00X  21309Y   6397X 357Y 357             
+317BTLDR            VIA         D  15PA00X  16633Y  11860X 357Y 357             
+317CANH             VIA         D  15PA00X  15501Y  14960X 357Y 357             
+317CANH             VIA         D  15PA00X  17425Y  16486X 357Y 357             
+317CANH             VIA         D  15PA00X  12942Y  15600X 357Y 357             
+317CANL             VIA         D  15PA00X  15501Y  15501X 357Y 357             
+317CANL             VIA         D  15PA00X  16584Y  16190X 357Y 357             
+317CANL             VIA         D  15PA00X  12942Y  15108X 357Y 357             
+317DBG              VIA         D  15PA00X  18897Y   8956X 357Y 357             
+317DIO1             VIA         D  15PA00X  16166Y   4453X 357Y 357             
+317DIO2             VIA         D  15PA00X  16683Y   4379X 357Y 357             
+317DIO3             VIA         D  15PA00X  17199Y   4601X 357Y 357             
+317DIO4             VIA         D  15PA00X  17667Y   4576X 357Y 357             
+317DIO5             VIA         D  15PA00X  18110Y   4625X 357Y 357             
+317DIO6             VIA         D  15PA00X  18454Y   4330X 357Y 357             
+317DIO7             VIA         D  15PA00X  20620Y   3248X 357Y 357             
+317DIO8             VIA         D  15PA00X  20177Y   3592X 357Y 357             
+317DIO9             VIA         D  15PA00X  20521Y   3986X 357Y 357             
+317DIO10            VIA         D  15PA00X  23326Y   4281X 357Y 357             
+317DIO11            VIA         D  15PA00X  24458Y   4084X 357Y 357             
+317DIO12            VIA         D  15PA00X  24803Y   3690X 357Y 357             
+317DIP0             VIA         D  15PA00X  25639Y  15157X 357Y 357             
+317DIP1             VIA         D  15PA00X  24655Y  15157X 357Y 357             
+317DIP2             VIA         D  15PA00X  23622Y  15157X 357Y 357             
+317DIP3             VIA         D  15PA00X  22637Y  15157X 357Y 357             
+317ENC0A            VIA         D  19PA00X  11023Y   4822X 396Y 396             
+317ENC0A            VIA         D  23PA00X  14468Y  11909X 436Y 436             
+317ENC0B            VIA         D  19PA00X  11515Y   5314X 396Y 396             
+317ENC0B            VIA         D  23PA00X  15059Y  11909X 436Y 436             
+317ENC1A            VIA         D  19PA00X  12007Y   5364X 396Y 396             
+317ENC1A            VIA         D  15PA00X  19881Y  11663X 357Y 357             
+317ENC1B            VIA         D  19PA00X  12500Y   5413X 396Y 396             
+317ENC1B            VIA         D  15PA00X  20275Y  11269X 357Y 357             
+317ENC2A            VIA         D  19PA00X  12992Y   5068X 396Y 396             
+317ENC2A            VIA         D  15PA00X  16830Y  10236X 357Y 357             
+317ENC2B            VIA         D  19PA00X  12942Y   4527X 396Y 396             
+317ENC2B            VIA         D  15PA00X  17273Y  10236X 357Y 357             
+317ENC3A            VIA         D  15PA00X  17273Y   9744X 357Y 357             
+317ENC3A            VIA         D  15PA00X  15059Y   4527X 357Y 357             
+317ENC3B            VIA         D  15PA00X  17716Y   9694X 357Y 357             
+317ENC3B            VIA         D  15PA00X  15452Y   4724X 357Y 357             
+317ERR              VIA         D  15PA00X  17519Y   9005X 357Y 357             
+317GND              VIA         D  19PA00X   8513Y   3307X 396Y 396             
+317GND              VIA         D  31PA00X  10088Y   2066X 514Y 514             
+317GND              VIA         D  23PA00X    492Y   9744X 436Y 436             
+317GND              VIA         D  23PA00X   1181Y   9744X 436Y 436             
+317GND              VIA         D  23PA00X   1870Y   9744X 436Y 436             
+317GND              VIA         D  23PA00X   2509Y   9744X 436Y 436             
+317GND              VIA         D  23PA00X   3149Y   9744X 436Y 436             
+317GND              VIA         D  23PA00X   3789Y   9744X 436Y 436             
+317GND              VIA         D  23PA00X    492Y   8858X 436Y 436             
+317GND              VIA         D  23PA00X   4183Y   6742X 436Y 436             
+317GND              VIA         D  23PA00X   3740Y   7185X 436Y 436             
+317GND              VIA         D  23PA00X   3740Y   8710X 436Y 436             
+317GND              VIA         D  23PA00X    492Y   8267X 436Y 436             
+317GND              VIA         D  23PA00X   4183Y   8267X 436Y 436             
+317GND              VIA         D  23PA00X   3740Y   7874X 436Y 436             
+317GND              VIA         D  23PA00X   4232Y   7529X 436Y 436             
+317GND              VIA         D  23PA00X   2017Y   3444X 436Y 436             
+317GND              VIA         D  23PA00X   4921Y   4625X 436Y 436             
+317GND              VIA         D  15PA00X   7903Y  13464X 357Y 357             
+317GND              VIA         D  15PA00X  18356Y  17421X 357Y 357             
+317GND              VIA         D  15PA00X  21653Y   6053X 357Y 357             
+317GND              VIA         D  15PA00X   7431Y  11171X 357Y 357             
+317GND              VIA         D  15PA00X   6840Y  10826X 357Y 357             
+317GND              VIA         D  15PA00X   7283Y  10334X 357Y 357             
+317GND              VIA         D  15PA00X   6545Y   8366X 357Y 357             
+317GND              VIA         D  15PA00X   5364Y   9055X 357Y 357             
+317GND              VIA         D  15PA00X   7283Y   8464X 357Y 357             
+317GND              VIA         D  15PA00X   8562Y   7480X 357Y 357             
+317GND              VIA         D  15PA00X   9596Y   7824X 357Y 357             
+317GND              VIA         D  15PA00X   9005Y   8907X 357Y 357             
+317GND              VIA         D  15PA00X  11417Y   6840X 357Y 357             
+317GND              VIA         D  15PA00X  10875Y   6250X 357Y 357             
+317GND              VIA         D  15PA00X  10531Y   5216X 357Y 357             
+317GND              VIA         D  15PA00X   9891Y   4625X 357Y 357             
+317GND              VIA         D  15PA00X  26230Y   8809X 357Y 357             
+317GND              VIA         D  15PA00X  26279Y   9596X 357Y 357             
+317GND              VIA         D  15PA00X  26230Y  10383X 357Y 357             
+317GND              VIA         D  15PA00X  26279Y  11171X 357Y 357             
+317GND              VIA         D  15PA00X  26230Y  12155X 357Y 357             
+317GND              VIA         D  15PA00X  26181Y  12992X 357Y 357             
+317GND              VIA         D  15PA00X  26181Y  15649X 357Y 357             
+317GND              VIA         D  15PA00X  25196Y  15748X 357Y 357             
+317GND              VIA         D  15PA00X  24163Y  15797X 357Y 357             
+317GND              VIA         D  15PA00X  23179Y  15748X 357Y 357             
+317GND              VIA         D  15PA00X  22096Y  15748X 357Y 357             
+317GND              VIA         D  15PA00X  21112Y  15748X 357Y 357             
+317GND              VIA         D  15PA00X  20177Y  15994X 357Y 357             
+317GND              VIA         D  15PA00X  20472Y  15206X 357Y 357             
+317GND              VIA         D  15PA00X  18602Y  16387X 357Y 357             
+317GND              VIA         D  15PA00X  19045Y  15600X 357Y 357             
+317GND              VIA         D  15PA00X  18208Y  15600X 357Y 357             
+317GND              VIA         D  15PA00X  18602Y  14566X 357Y 357             
+317GND              VIA         D  15PA00X  13435Y  17372X 357Y 357             
+317GND              VIA         D  15PA00X  15108Y  17372X 357Y 357             
+317GND              VIA         D  15PA00X  11860Y  17421X 357Y 357             
+317GND              VIA         D  15PA00X  10088Y  17421X 357Y 357             
+317GND              VIA         D  15PA00X   7627Y  17421X 357Y 357             
+317GND              VIA         D  15PA00X   7578Y  15600X 357Y 357             
+317GND              VIA         D  15PA00X   5561Y  11220X 357Y 357             
+317GND              VIA         D  15PA00X  21899Y   5561X 357Y 357             
+317GND              VIA         D  15PA00X  20472Y   5216X 357Y 357             
+317GND              VIA         D  15PA00X  21407Y   5413X 357Y 357             
+317GND              VIA         D  15PA00X  15600Y   5167X 357Y 357             
+317GND              VIA         D  15PA00X  26131Y   4921X 357Y 357             
+317GND              VIA         D  15PA00X  25246Y   4576X 357Y 357             
+317GND              VIA         D  15PA00X  25984Y   3887X 357Y 357             
+317GND              VIA         D  15PA00X  24163Y  13582X 357Y 357             
+317GND              VIA         D  15PA00X  26230Y  13582X 357Y 357             
+317GND              VIA         D  15PA00X  22194Y   9153X 357Y 357             
+317GND              VIA         D  15PA00X  22736Y   9153X 357Y 357             
+317GND              VIA         D  15PA00X  24704Y   9153X 357Y 357             
+317GND              VIA         D  15PA00X  25196Y   9153X 357Y 357             
+317GND              VIA         D  15PA00X  25246Y  11417X 357Y 357             
+317GND              VIA         D  15PA00X  24753Y  11417X 357Y 357             
+317GND              VIA         D  15PA00X  21653Y  11417X 357Y 357             
+317GND              VIA         D  15PA00X  22145Y  11417X 357Y 357             
+317GND              VIA         D  15PA00X  19045Y  12598X 357Y 357             
+317GND              VIA         D  15PA00X   5905Y   8661X 357Y 357             
+317GND              VIA         D  15PA00X   7283Y   9694X 357Y 357             
+317GND              VIA         D  15PA00X  12253Y  13287X 357Y 357             
+317GND              VIA         D  15PA00X  15797Y  13828X 357Y 357             
+317GND              VIA         D  15PA00X  15551Y  10383X 357Y 357             
+317GND              VIA         D  15PA00X  15649Y  11663X 357Y 357             
+317GND              VIA         D  15PA00X  13730Y  11663X 357Y 357             
+317GND              VIA         D  15PA00X  11515Y  10925X 357Y 357             
+317GND              VIA         D  15PA00X  13287Y   8759X 357Y 357             
+317GND              VIA         D  15PA00X  20177Y  10629X 357Y 357             
+317GND              VIA         D  15PA00X  19783Y  10875X 357Y 357             
+317GND              VIA         D  15PA00X  21948Y  13582X 357Y 357             
+317GND              VIA         D  15PA00X  20275Y   9744X 357Y 357             
+317GND              VIA         D  15PA00X  23966Y  12795X 357Y 357             
+317GND              VIA         D  15PA00X  26230Y  14566X 357Y 357             
+317HB               VIA         D  15PA00X  17667Y   8562X 357Y 357             
+317MISO             VIA         D  15PA00X  23425Y   7677X 357Y 357             
+317MOSI             VIA         D  23PA00X  21850Y  12893X 436Y 436             
+317N$8              VIA         D  15PA00X   9547Y  10777X 357Y 357             
+317N$9              VIA         D  15PA00X   9005Y  10285X 357Y 357             
+317N$14             VIA         D  15PA00X  15059Y  13287X 357Y 357             
+317N$32             VIA         D  19PA00X   6446Y   3986X 396Y 396             
+317N$33             VIA         D  19PA00X   7037Y   5905X 396Y 396             
+317N$34             VIA         D  19PA00X   7923Y   5905X 396Y 396             
+317N$52             VIA         D  23PA00X   2755Y   3887X 436Y 436             
+317N$54             VIA         D  23PA00X  25000Y   6742X 436Y 436             
+317N$54             VIA         D  23PA00X  25000Y   5856X 436Y 436             
+317N$55             VIA         D  19PA00X   8513Y   3986X 396Y 396             
+317N$58             VIA         D  19PA00X   1279Y   3592X 396Y 396             
+317N$59             VIA         D  23PA00X   3395Y   3740X 436Y 436             
+317N$63             VIA         D  23PA00X   1771Y   3937X 436Y 436             
+317RESET            VIA         D  15PA00X  13041Y  11023X 357Y 357             
+317RXD0             VIA         D  15PA00X  13090Y   7135X 357Y 357             
+317SCK              VIA         D  15PA00X  21013Y   7972X 357Y 357             
+317SCL              VIA         D  15PA00X  11122Y  11811X 357Y 357             
+317SSEL             VIA         D  15PA00X  22834Y   7627X 357Y 357             
+317TXD0             VIA         D  15PA00X  12549Y   6397X 357Y 357             
+317USB_CONNECT      VIA         D  15PA00X   9891Y  15501X 357Y 357             
+317USB_CONNECT      VIA         D  15PA00X  12795Y   9694X 357Y 357             
+317VCC              VIA         D  23PA00X    984Y   2854X 436Y 436             
+317VDDA             VIA         D  15PA00X  10433Y   8956X 357Y 357             
+317VREFP            VIA         D  15PA00X  11614Y   9498X 357Y 357             
+3275V               3.3V  -1          A01X   5340Y   7441X 480Y 880R  0         
+327GND              3.3V  -2          A01X   6250Y   7441X 480Y 880R  0         
+3273.3V             3.3V  -3          A01X   7160Y   7441X 480Y 880R  0         
+327GND              3.3V  -TAB        A01X   6250Y   9881X1417Y 866R  0         
+327N$8              C1    -1          A16X   9114Y  10826X 314Y 472R180         
+327GND              C1    -2          A16X   8405Y  10826X 314Y 472R180         
+327N$9              C2    -1          A16X   9547Y  10344X 314Y 472R270         
+327GND              C2    -2          A16X   9547Y   9635X 314Y 472R270         
+327N$4              C3    -1          A16X   4330Y  13198X 433Y 393R 90         
+327USB_GND          C3    -2          A16X   4330Y  13868X 433Y 393R 90         
+3273.3V             C4    -1          A01X   8267Y   7913X 314Y 472R 90         
+327GND              C4    -2          A01X   8267Y   8622X 314Y 472R 90         
+3275V               C5    -1          A16X  10137Y  13100X 433Y 393R 90         
+327GND              C5    -2          A16X  10137Y  13769X 433Y 393R 90         
+3275V               C6    -1          A01X   6594Y  11505X 314Y 472R 90         
+327GND              C6    -2          A01X   6594Y  12214X 314Y 472R 90         
+327RESET            C7    -1          A01X  12657Y  10629X 314Y 472R180         
+327GND              C7    -2          A01X  11948Y  10629X 314Y 472R180         
+327USB_GND          C8    -1          A16X   4330Y  14429X 433Y 393R 90         
+327N$5              C8    -2          A16X   4330Y  15098X 433Y 393R 90         
+327GND              C9    -1          A16X  10137Y  14330X 433Y 393R 90         
+327N$20             C9    -2          A16X  10137Y  15000X 433Y 393R 90         
+3275V               C10   -1          A01X   5216Y   1338X 314Y 472R270         
+327GND              C10   -2          A01X   5216Y    629X 314Y 472R270         
+3275V               C11   -1          A01X  20314Y  12007X 314Y 472R  0         
+327GND              C11   -2          A01X  21023Y  12007X 314Y 472R  0         
+327N$51             C12   -1          A01X  21564Y   7431X 433Y 393R  0         
+327GND              C12   -2          A01X  22234Y   7431X 433Y 393R  0         
+327N$54             C13   -1          A01X  24025Y   7480X 433Y 393R  0         
+327GND              C13   -2          A01X  24694Y   7480X 433Y 393R  0         
+327N$54             C14   -1          A01X  23464Y   7037X 433Y 393R180         
+327GND              C14   -2          A01X  22795Y   7037X 433Y 393R180         
+327N$56             C15   -1          A01X  25236Y  12795X 433Y 393R180         
+327GND              C15   -2          A01X  24566Y  12795X 433Y 393R180         
+327N$35             C16   -1          A01X  22746Y  12795X 433Y 393R  0         
+327GND              C16   -2          A01X  23415Y  12795X 433Y 393R  0         
+327N$54             C17   -1          A01X  23484Y   6299X 314Y 472R180         
+327GND              C17   -2          A01X  22775Y   6299X 314Y 472R180         
+327VCC              C18   -1          A16X    698Y   6053X 472Y 787R  0         
+327GND              C18   -2          A16X   1958Y   6053X 472Y 787R  0         
+327N$52             C19   -1          A16X   3257Y   4429X 314Y 472R180         
+327GND              C19   -2          A16X   2549Y   4429X 314Y 472R180         
+3275V               C20   -1          A16X   4389Y   5068X 314Y 472R180         
+327N$59             C20   -2          A16X   3681Y   5068X 314Y 472R180         
+3275V               C21   -1          A16X   3828Y   6053X 472Y 787R180         
+327GND              C21   -2          A16X   2568Y   6053X 472Y 787R180         
+327VCC              C22   -1          A16X    698Y   7234X 472Y 787R  0         
+327GND              C22   -2          A16X   1958Y   7234X 472Y 787R  0         
+3275V               C23   -1          A01X  10039Y   1289X 314Y 472R270         
+327GND              C23   -2          A01X  10039Y    580X 314Y 472R270         
+3275V               C24   -1          A01X   7125Y   6594X 314Y 472R  0         
+327GND              C24   -2          A01X   7834Y   6594X 314Y 472R  0         
+3275V               C25   -1          A16X  16820Y  13877X 314Y 472R  0         
+327GND              C25   -2          A16X  17529Y  13877X 314Y 472R  0         
+3275V               C26   -1          A01X  20816Y   6486X 314Y 472R 90         
+327GND              C26   -2          A01X  20816Y   7194X 314Y 472R 90         
+327VREFP            C27   -1          A16X  11269Y   9881X 275Y 354R 90         
+327GND              C27   -2          A16X  11269Y  10393X 275Y 354R 90         
+3273.3V             C28   -1          A16X  13887Y   5659X 275Y 354R180         
+327GND              C28   -2          A16X  13375Y   5659X 275Y 354R180         
+327VDDA             C29   -1          A16X  10875Y   8700X 275Y 354R 90         
+327GND              C29   -2          A16X  10875Y   9212X 275Y 354R 90         
+3273.3V             C30   -1          A16X  15393Y   5708X 275Y 354R  0         
+327GND              C30   -2          A16X  15905Y   5708X 275Y 354R  0         
+3273.3V             C31   -1          A16X  13779Y  14084X 275Y 354R270         
+327GND              C31   -2          A16X  13779Y  13572X 275Y 354R270         
+327N$1              CAN1  -1          A16X  17925Y  14734X 260Y 800R180         
+327GND              CAN1  -2          A16X  17425Y  14734X 260Y 800R180         
+3275V               CAN1  -3          A16X  16925Y  14734X 260Y 800R180         
+327N$2              CAN1  -4          A16X  16425Y  14734X 260Y 800R180         
+327                 CAN1  -5          A16X  16425Y  17154X 260Y 800R180         
+327CANL             CAN1  -6          A16X  16925Y  17154X 260Y 800R180         
+327CANH             CAN1  -7          A16X  17425Y  17154X 260Y 800R180         
+327GND              CAN1  -8          A16X  17925Y  17154X 260Y 800R180         
+327N$44             D1    -1          A01X  25364Y   7283X 314Y 354R  0         
+327                 D1    -2          A01X  26112Y   7283X 314Y 354R  0         
+327N$56             D1    -3          A01X  25738Y   8110X 314Y 354R  0         
+3273.3V             ERR   -A          A01X  17273Y   6082X 472Y 472R  0         
+327N$19             ERR   -C          A01X  17273Y   6909X 472Y 472R  0         
+3273.3V             ERR1  -A          A01X  18946Y   6082X 472Y 472R  0         
+327N$3              ERR1  -C          A01X  18946Y   6909X 472Y 472R  0         
+3273.3V             HB    -A          A01X  18110Y   6082X 472Y 472R  0         
+327N$26             HB    -C          A01X  18110Y   6909X 472Y 472R  0         
+3275V               IC1   -1          A16X  22725Y   7110X 480Y 880R270         
+327GND              IC1   -2          A16X  22725Y   6200X 480Y 880R270         
+327N$54             IC1   -3          A16X  22725Y   5290X 480Y 880R270         
+327GND              IC1   -TAB        A16X  20285Y   6200X1417Y 866R270         
+327                 IC3   -1          A16X  12204Y   7185X 106Y 590R 90         
+327                 IC3   -2          A16X  12204Y   7381X 106Y 590R 90         
+327                 IC3   -3          A16X  12204Y   7578X 106Y 590R 90         
+327                 IC3   -4          A16X  12204Y   7775X 106Y 590R 90         
+327                 IC3   -5          A16X  12204Y   7972X 106Y 590R 90         
+327AIN3             IC3   -6          A16X  12204Y   8169X 106Y 590R 90         
+327AIN2             IC3   -7          A16X  12204Y   8366X 106Y 590R 90         
+327AIN1             IC3   -8          A16X  12204Y   8562X 106Y 590R 90         
+327AIN0             IC3   -9          A16X  12204Y   8759X 106Y 590R 90         
+327VDDA             IC3   -10         A16X  12204Y   8956X 106Y 590R 90         
+327GND              IC3   -11         A16X  12204Y   9153X 106Y 590R 90         
+327VREFP            IC3   -12         A16X  12204Y   9350X 106Y 590R 90         
+327                 IC3   -13         A16X  12204Y   9547X 106Y 590R 90         
+327                 IC3   -14         A16X  12204Y   9744X 106Y 590R 90         
+327GND              IC3   -15         A16X  12204Y   9940X 106Y 590R 90         
+327                 IC3   -16         A16X  12204Y  10137X 106Y 590R 90         
+327RESET            IC3   -17         A16X  12204Y  10334X 106Y 590R 90         
+327                 IC3   -18         A16X  12204Y  10531X 106Y 590R 90         
+3273.3V             IC3   -19         A16X  12204Y  10728X 106Y 590R 90         
+327                 IC3   -20         A16X  12204Y  10925X 106Y 590R 90         
+327                 IC3   -21         A16X  12204Y  11122X 106Y 590R 90         
+327N$9              IC3   -22         A16X  12204Y  11318X 106Y 590R 90         
+327N$8              IC3   -23         A16X  12204Y  11515X 106Y 590R 90         
+327SCL              IC3   -24         A16X  12204Y  11712X 106Y 590R 90         
+327SDA              IC3   -25         A16X  12204Y  11909X 106Y 590R 90         
+327                 IC3   -26         A16X  12893Y  12598X 590Y 106R 90         
+327                 IC3   -27         A16X  13090Y  12598X 590Y 106R 90         
+3273.3V             IC3   -28         A16X  13287Y  12598X 590Y 106R 90         
+327D+               IC3   -29         A16X  13484Y  12598X 590Y 106R 90         
+327D-               IC3   -30         A16X  13681Y  12598X 590Y 106R 90         
+327GND              IC3   -31         A16X  13877Y  12598X 590Y 106R 90         
+327N$7              IC3   -32         A16X  14074Y  12598X 590Y 106R 90         
+327                 IC3   -33         A16X  14271Y  12598X 590Y 106R 90         
+327ENC0A            IC3   -34         A16X  14468Y  12598X 590Y 106R 90         
+327                 IC3   -35         A16X  14665Y  12598X 590Y 106R 90         
+327                 IC3   -36         A16X  14862Y  12598X 590Y 106R 90         
+327ENC0B            IC3   -37         A16X  15059Y  12598X 590Y 106R 90         
+327                 IC3   -38         A16X  15255Y  12598X 590Y 106R 90         
+327                 IC3   -39         A16X  15452Y  12598X 590Y 106R 90         
+327                 IC3   -40         A16X  15649Y  12598X 590Y 106R 90         
+327GND              IC3   -41         A16X  15846Y  12598X 590Y 106R 90         
+3273.3V             IC3   -42         A16X  16043Y  12598X 590Y 106R 90         
+327                 IC3   -43         A16X  16240Y  12598X 590Y 106R 90         
+327                 IC3   -44         A16X  16437Y  12598X 590Y 106R 90         
+327DIP0             IC3   -45         A16X  16633Y  12598X 590Y 106R 90         
+327N$2              IC3   -46         A16X  16830Y  12598X 590Y 106R 90         
+327N$1              IC3   -47         A16X  17027Y  12598X 590Y 106R 90         
+327DIP3             IC3   -48         A16X  17224Y  12598X 590Y 106R 90         
+327DIP2             IC3   -49         A16X  17421Y  12598X 590Y 106R 90         
+327DIP1             IC3   -50         A16X  17618Y  12598X 590Y 106R 90         
+327ENC1B            IC3   -51         A16X  18307Y  11909X 106Y 590R 90         
+327ENC1A            IC3   -52         A16X  18307Y  11712X 106Y 590R 90         
+327BTLDR            IC3   -53         A16X  18307Y  11515X 106Y 590R 90         
+3273.3V             IC3   -54         A16X  18307Y  11318X 106Y 590R 90         
+327GND              IC3   -55         A16X  18307Y  11122X 106Y 590R 90         
+327ENC2A            IC3   -56         A16X  18307Y  10925X 106Y 590R 90         
+327ENC2B            IC3   -57         A16X  18307Y  10728X 106Y 590R 90         
+327ENC3A            IC3   -58         A16X  18307Y  10531X 106Y 590R 90         
+327ENC3B            IC3   -59         A16X  18307Y  10334X 106Y 590R 90         
+327MOSI             IC3   -60         A16X  18307Y  10137X 106Y 590R 90         
+327MISO             IC3   -61         A16X  18307Y   9940X 106Y 590R 90         
+327SCK              IC3   -62         A16X  18307Y   9744X 106Y 590R 90         
+327SSEL             IC3   -63         A16X  18307Y   9547X 106Y 590R 90         
+327USB_CONNECT      IC3   -64         A16X  18307Y   9350X 106Y 590R 90         
+327ERR              IC3   -65         A16X  18307Y   9153X 106Y 590R 90         
+327HB               IC3   -66         A16X  18307Y   8956X 106Y 590R 90         
+327DBG              IC3   -67         A16X  18307Y   8759X 106Y 590R 90         
+327DIO12            IC3   -68         A16X  18307Y   8562X 106Y 590R 90         
+327DIO11            IC3   -69         A16X  18307Y   8366X 106Y 590R 90         
+327DIO10            IC3   -70         A16X  18307Y   8169X 106Y 590R 90         
+3273.3V             IC3   -71         A16X  18307Y   7972X 106Y 590R 90         
+327GND              IC3   -72         A16X  18307Y   7775X 106Y 590R 90         
+327DIO9             IC3   -73         A16X  18307Y   7578X 106Y 590R 90         
+327DIO8             IC3   -74         A16X  18307Y   7381X 106Y 590R 90         
+327DIO7             IC3   -75         A16X  18307Y   7185X 106Y 590R 90         
+327DIO6             IC3   -76         A16X  17618Y   6496X 590Y 106R 90         
+327DIO5             IC3   -77         A16X  17421Y   6496X 590Y 106R 90         
+327DIO4             IC3   -78         A16X  17224Y   6496X 590Y 106R 90         
+327DIO3             IC3   -79         A16X  17027Y   6496X 590Y 106R 90         
+327DIO2             IC3   -80         A16X  16830Y   6496X 590Y 106R 90         
+327DIO1             IC3   -81         A16X  16633Y   6496X 590Y 106R 90         
+327                 IC3   -82         A16X  16437Y   6496X 590Y 106R 90         
+327GND              IC3   -83         A16X  16240Y   6496X 590Y 106R 90         
+3273.3V             IC3   -84         A16X  16043Y   6496X 590Y 106R 90         
+327                 IC3   -85         A16X  15846Y   6496X 590Y 106R 90         
+327                 IC3   -86         A16X  15649Y   6496X 590Y 106R 90         
+327                 IC3   -87         A16X  15452Y   6496X 590Y 106R 90         
+327                 IC3   -88         A16X  15255Y   6496X 590Y 106R 90         
+327                 IC3   -89         A16X  15059Y   6496X 590Y 106R 90         
+327                 IC3   -90         A16X  14862Y   6496X 590Y 106R 90         
+327                 IC3   -91         A16X  14665Y   6496X 590Y 106R 90         
+327                 IC3   -92         A16X  14468Y   6496X 590Y 106R 90         
+327                 IC3   -93         A16X  14271Y   6496X 590Y 106R 90         
+327                 IC3   -94         A16X  14074Y   6496X 590Y 106R 90         
+327                 IC3   -95         A16X  13877Y   6496X 590Y 106R 90         
+3273.3V             IC3   -96         A16X  13681Y   6496X 590Y 106R 90         
+327GND              IC3   -97         A16X  13484Y   6496X 590Y 106R 90         
+327TXD0             IC3   -98         A16X  13287Y   6496X 590Y 106R 90         
+327RXD0             IC3   -99         A16X  13090Y   6496X 590Y 106R 90         
+327                 IC3   -100        A16X  12893Y   6496X 590Y 106R 90         
+317GND              JP1   -1    D  40PA00X  15255Y    590X 740Y 740R180         
+3175V               JP1   -2    D  40PA00X  15255Y   1590X 740Y 740R180         
+317N$31             JP1   -3    D  40PA00X  15255Y   2590X 740Y 740R180         
+317GND              JP2   -1    D  40PA00X  16240Y    590X 740Y 740R180         
+3175V               JP2   -2    D  40PA00X  16240Y   1590X 740Y 740R180         
+317N$30             JP2   -3    D  40PA00X  16240Y   2590X 740Y 740R180         
+317GND              JP3   -1    D  40PA00X  17224Y    590X 740Y 740R180         
+3175V               JP3   -2    D  40PA00X  17224Y   1590X 740Y 740R180         
+317N$29             JP3   -3    D  40PA00X  17224Y   2590X 740Y 740R180         
+317GND              JP4   -1    D  40PA00X  18208Y    590X 740Y 740R180         
+3175V               JP4   -2    D  40PA00X  18208Y   1590X 740Y 740R180         
+317N$28             JP4   -3    D  40PA00X  18208Y   2590X 740Y 740R180         
+317GND              JP5   -1    D  40PA00X  19192Y    590X 740Y 740R180         
+3175V               JP5   -2    D  40PA00X  19192Y   1590X 740Y 740R180         
+317N$27             JP5   -3    D  40PA00X  19192Y   2590X 740Y 740R180         
+317GND              JP6   -1    D  40PA00X  20177Y    590X 740Y 740R180         
+3175V               JP6   -2    D  40PA00X  20177Y   1590X 740Y 740R180         
+317N$25             JP6   -3    D  40PA00X  20177Y   2590X 740Y 740R180         
+317GND              JP7   -1    D  40PA00X  21161Y    590X 740Y 740R180         
+3175V               JP7   -2    D  40PA00X  21161Y   1590X 740Y 740R180         
+317N$24             JP7   -3    D  40PA00X  21161Y   2590X 740Y 740R180         
+317GND              JP8   -1    D  40PA00X  22145Y    590X 740Y 740R180         
+3175V               JP8   -2    D  40PA00X  22145Y   1590X 740Y 740R180         
+317N$23             JP8   -3    D  40PA00X  22145Y   2590X 740Y 740R180         
+317GND              JP9   -1    D  40PA00X  23129Y    590X 740Y 740R180         
+3175V               JP9   -2    D  40PA00X  23129Y   1590X 740Y 740R180         
+317N$22             JP9   -3    D  40PA00X  23129Y   2590X 740Y 740R180         
+317GND              JP10  -1    D  40PA00X  24114Y    590X 740Y 740R180         
+3175V               JP10  -2    D  40PA00X  24114Y   1590X 740Y 740R180         
+317N$21             JP10  -3    D  40PA00X  24114Y   2590X 740Y 740R180         
+317GND              JP11  -1    D  40PA00X  25098Y    590X 740Y 740R180         
+3175V               JP11  -2    D  40PA00X  25098Y   1590X 740Y 740R180         
+317N$18             JP11  -3    D  40PA00X  25098Y   2590X 740Y 740R180         
+317GND              JP12  -1    D  40PA00X  26082Y    590X 740Y 740R180         
+3175V               JP12  -2    D  40PA00X  26082Y   1590X 740Y 740R180         
+317N$17             JP12  -3    D  40PA00X  26082Y   2590X 740Y 740R180         
+317GND              JP13  -1    D  40PA00X  10925Y    590X 740Y 740R180         
+3175V               JP13  -2    D  40PA00X  10925Y   1590X 740Y 740R180         
+317N$41             JP13  -3    D  40PA00X  10925Y   2590X 740Y 740R180         
+317N$36             JP13  -4    D  40PA00X  10925Y   3590X 740Y 740R180         
+317GND              JP14  -1    D  40PA00X  13090Y    590X 740Y 740R180         
+3175V               JP14  -2    D  40PA00X  13090Y   1590X 740Y 740R180         
+317N$40             JP14  -3    D  40PA00X  13090Y   2590X 740Y 740R180         
+317N$37             JP14  -4    D  40PA00X  13090Y   3590X 740Y 740R180         
+317GND              JP15  -1    D  40PA00X  14173Y    590X 740Y 740R180         
+3175V               JP15  -2    D  40PA00X  14173Y   1590X 740Y 740R180         
+317N$39             JP15  -3    D  40PA00X  14173Y   2590X 740Y 740R180         
+317N$38             JP15  -4    D  40PA00X  14173Y   3590X 740Y 740R180         
+317GND              JP16  -1    D  40PA00X   6003Y    590X 740Y 740R180         
+3175V               JP16  -2    D  40PA00X   6003Y   1590X 740Y 740R180         
+317N$42             JP16  -3    D  40PA00X   6003Y   2590X 740Y 740R180         
+317GND              JP17  -1    D  40PA00X   6988Y    590X 740Y 740R180         
+3175V               JP17  -2    D  40PA00X   6988Y   1590X 740Y 740R180         
+317N$48             JP17  -3    D  40PA00X   6988Y   2590X 740Y 740R180         
+317GND              JP18  -1    D  40PA00X   7972Y    590X 740Y 740R180         
+3175V               JP18  -2    D  40PA00X   7972Y   1590X 740Y 740R180         
+317N$53             JP18  -3    D  40PA00X   7972Y   2590X 740Y 740R180         
+317GND              JP19  -1    D  40PA00X   8956Y    590X 740Y 740R180         
+3175V               JP19  -2    D  40PA00X   8956Y   1590X 740Y 740R180         
+317N$49             JP19  -3    D  40PA00X   8956Y   2590X 740Y 740R180         
+317GND              JP20  -1    D  40PA00X  10433Y  11909X 740Y 740R 90         
+317SDA              JP20  -2    D  40PA00X   9433Y  11909X 740Y 740R 90         
+317SCL              JP20  -3    D  40PA00X   8433Y  11909X 740Y 740R 90         
+3175V               JP20  -4    D  40PA00X   7433Y  11909X 740Y 740R 90         
+317GND              JP21  -1    D  40PA00X  12007Y    590X 740Y 740R180         
+3175V               JP21  -2    D  40PA00X  12007Y   1590X 740Y 740R180         
+317N$60             JP21  -3    D  40PA00X  12007Y   2590X 740Y 740R180         
+317N$57             JP21  -4    D  40PA00X  12007Y   3590X 740Y 740R180         
+3275V               POW   -A          A01X   4970Y   1948X 472Y 472R  0         
+327N$10             POW   -C          A01X   4970Y   2775X 472Y 472R  0         
+327GND              R1    -1          A01X   4970Y   3976X 433Y 393R270         
+327N$10             R1    -2          A01X   4970Y   3307X 433Y 393R270         
+327N$11             R2    -1          A16X  10974Y  14753X 433Y 393R270         
+327D-               R2    -2          A16X  10974Y  14084X 433Y 393R270         
+327N$15             R3    -1          A16X   4517Y  15846X 433Y 393R180         
+327N$13             R3    -2          A16X   3848Y  15846X 433Y 393R180         
+327N$16             R4    -1          A16X   4517Y  16683X 433Y 393R180         
+327N$12             R4    -2          A16X   3848Y  16683X 433Y 393R180         
+327N$7              R5    -1          A16X  14527Y  13779X 433Y 393R  0         
+327N$14             R5    -2          A16X  15196Y  13779X 433Y 393R  0         
+3273.3V             R6    -1          A01X  13385Y   9852X 433Y 393R 90         
+327RESET            R6    -2          A01X  13385Y  10521X 433Y 393R 90         
+3273.3V             R7    -1          A16X  19291Y  10836X 433Y 393R 90         
+327BTLDR            R7    -2          A16X  19291Y  11505X 433Y 393R 90         
+327N$6              R8    -1          A16X  11811Y  14753X 433Y 393R270         
+327D+               R8    -2          A16X  11811Y  14084X 433Y 393R270         
+327AIN0             R9    -1          A16X   5954Y   4734X 433Y 393R 90         
+327N$32             R9    -2          A16X   5954Y   5403X 433Y 393R 90         
+327AIN0             R10   -1          A16X   5954Y   4124X 433Y 393R270         
+327GND              R10   -2          A16X   5954Y   3454X 433Y 393R270         
+327HB               R11   -1          A01X  18110Y   8159X 433Y 393R270         
+327N$26             R11   -2          A01X  18110Y   7490X 433Y 393R270         
+327ERR              R12   -1          A01X  17273Y   8159X 433Y 393R270         
+327N$19             R12   -2          A01X  17273Y   7490X 433Y 393R270         
+327DBG              R13   -1          A01X  18946Y   8159X 433Y 393R270         
+327N$3              R13   -2          A01X  18946Y   7490X 433Y 393R270         
+327N$33             R14   -1          A16X   7037Y   5403X 433Y 393R270         
+327AIN1             R14   -2          A16X   7037Y   4734X 433Y 393R270         
+327GND              R15   -1          A16X   7037Y   3454X 433Y 393R 90         
+327AIN1             R15   -2          A16X   7037Y   4124X 433Y 393R 90         
+327AIN2             R16   -1          A16X   7923Y   4734X 433Y 393R 90         
+327N$34             R16   -2          A16X   7923Y   5403X 433Y 393R 90         
+327AIN2             R17   -1          A16X   7923Y   4124X 433Y 393R270         
+327GND              R17   -2          A16X   7923Y   3454X 433Y 393R270         
+327N$55             R18   -1          A16X   9005Y   5403X 433Y 393R270         
+327AIN3             R18   -2          A16X   9005Y   4734X 433Y 393R270         
+327GND              R19   -1          A16X   9005Y   3454X 433Y 393R 90         
+327AIN3             R19   -2          A16X   9005Y   4124X 433Y 393R 90         
+327VCC              R20   -1          A16X    285Y   4429X 314Y 472R  0         
+327N$58             R20   -2          A16X    994Y   4429X 314Y 472R  0         
+327GND              R21   -1          A16X   2125Y   4429X 314Y 472R180         
+327N$63             R21   -2          A16X   1417Y   4429X 314Y 472R180         
+327N$63             R22   -1          A16X   1387Y   5068X 314Y 472R180         
+327VCC              R22   -2          A16X    679Y   5068X 314Y 472R180         
+327GND              R23   -1          A16X   2549Y   5068X 314Y 472R  0         
+327N$59             R23   -2          A16X   3257Y   5068X 314Y 472R  0         
+327N$59             R24   -1          A16X   3681Y   4429X 314Y 472R  0         
+3275V               R24   -2          A16X   4389Y   4429X 314Y 472R  0         
+3273.3V             R25   -1          A16X  13149Y  14124X 314Y 472R180         
+327D+               R25   -2          A16X  12440Y  14124X 314Y 472R180         
+327                 U$2   -P$1        A01X   8233Y  10787X1013Y 748R  0         
+327N$8              U$2   -P$2        A01X  10369Y  10787X1013Y 748R  0         
+327                 U$2   -P$3        A01X  10369Y   9685X1013Y 748R  0         
+327N$9              U$2   -P$4        A01X   8233Y   9685X1013Y 748R  0         
+327N$4              U$4   -1          A16X   5521Y  13407X 236Y 866R 90         
+327USB_GND          U$4   -2          A16X   5521Y  13907X 236Y 866R 90         
+327N$5              U$4   -3          A16X   5521Y  14407X 236Y 866R 90         
+327N$5              U$4   -4          A16X   5521Y  14907X 236Y 866R 90         
+327N$5              U$4   -5          A16X   5521Y  15407X 236Y 866R 90         
+327N$15             U$4   -6          A16X   5521Y  15907X 236Y 866R 90         
+327N$16             U$4   -7          A16X   5521Y  16407X 236Y 866R 90         
+327USB_GND          U$4   -8          A16X   5521Y  16907X 236Y 866R 90         
+327GND              U$4   -9          A16X   9143Y  16907X 236Y 866R 90         
+327N$6              U$4   -10         A16X   9143Y  16407X 236Y 866R 90         
+327N$11             U$4   -11         A16X   9143Y  15907X 236Y 866R 90         
+327USB_CONNECT      U$4   -12         A16X   9143Y  15407X 236Y 866R 90         
+327N$20             U$4   -13         A16X   9143Y  14907X 236Y 866R 90         
+327N$20             U$4   -14         A16X   9143Y  14407X 236Y 866R 90         
+327GND              U$4   -15         A16X   9143Y  13907X 236Y 866R 90         
+3275V               U$4   -16         A16X   9143Y  13407X 236Y 866R 90         
+327N$51             U$5   -1          A01X  21724Y   8259X 225Y 665R  0         
+327GND              U$5   -2          A01X  22224Y   8259X 225Y 665R  0         
+327GND              U$5   -3          A01X  22724Y   8259X 225Y 665R  0         
+327SSEL             U$5   -4          A01X  23224Y   8259X 225Y 665R  0         
+327MISO             U$5   -5          A01X  23724Y   8259X 225Y 665R  0         
+327N$54             U$5   -6          A01X  24224Y   8259X 225Y 665R  0         
+327GND              U$5   -7          A01X  24724Y   8259X 225Y 665R  0         
+327N$44             U$5   -8          A01X  25224Y   8259X 225Y 665R  0         
+327N$56             U$5   -9          A01X  25224Y  12015X 225Y 665R  0         
+327GND              U$5   -10         A01X  24724Y  12015X 225Y 665R  0         
+327GND              U$5   -11         A01X  24224Y  12015X 225Y 665R  0         
+327GND              U$5   -12         A01X  23724Y  12015X 225Y 665R  0         
+327GND              U$5   -13         A01X  23224Y  12015X 225Y 665R  0         
+327N$35             U$5   -14         A01X  22724Y  12015X 225Y 665R  0         
+327MOSI             U$5   -15         A01X  22224Y  12015X 225Y 665R  0         
+327SCK              U$5   -16         A01X  21724Y  12015X 225Y 665R  0         
+327DIP0             U$6   -1A         A01X  25663Y  13710X1000Y 500R270         
+327GND              U$6   -1B         A01X  25663Y  17096X1000Y 500R270         
+327DIP1             U$6   -2A         A01X  24663Y  13710X1000Y 500R270         
+327GND              U$6   -2B         A01X  24663Y  17096X1000Y 500R270         
+327DIP2             U$6   -3A         A01X  23663Y  13710X1000Y 500R270         
+327GND              U$6   -3B         A01X  23663Y  17096X1000Y 500R270         
+327DIP3             U$6   -4A         A01X  22663Y  13710X1000Y 500R270         
+327GND              U$6   -4B         A01X  22663Y  17096X1000Y 500R270         
+327RESET            U$8   -1          A01X  14218Y  13858X2027Y 299R  0         
+327BTLDR            U$8   -2          A01X  14218Y  14358X2027Y 299R  0         
+327CANH             U$8   -3          A01X  14218Y  14858X2027Y 299R  0         
+327CANL             U$8   -4          A01X  14218Y  15358X2027Y 299R  0         
+327RXD0             U$8   -5          A01X  14218Y  15858X2027Y 299R  0         
+327TXD0             U$8   -6          A01X  14218Y  16358X2027Y 299R  0         
+327GND              U$8   -P$0        A01X  20744Y  13149X1555Y 964R  0         
+327GND              U$8   -P$1        A01X  20744Y  17066X1555Y 964R  0         
+317N$12             U$9   -D+   D  36PA00X   1476Y  14566X 602Y 602R 90         
+317N$13             U$9   -D-   D  36PA00X   2755Y  14566X 602Y 602R 90         
+317USB_GND          U$9   -GND  D  36PA00X   1476Y  13582X 602Y 602R 90         
+317USB_GND          U$9   -P$0  D  90PA00X   1850Y  11704X1305Y1305R 90         
+317USB_GND          U$9   -P$1  D  90PA00X   1850Y  16444X1305Y1305R 90         
+317N$4              U$9   -VCC  D  36PA00X   2755Y  13582X 602Y 602R 90         
+327                 U$10  -1          A01X  11667Y  16358X2027Y 299R180         
+327                 U$10  -2          A01X  11667Y  15858X2027Y 299R180         
+327CANH             U$10  -3          A01X  11667Y  15358X2027Y 299R180         
+327CANL             U$10  -4          A01X  11667Y  14858X2027Y 299R180         
+327                 U$10  -5          A01X  11667Y  14358X2027Y 299R180         
+327                 U$10  -6          A01X  11667Y  13858X2027Y 299R180         
+327USB_GND          U$10  -P$0        A01X   5141Y  17066X1555Y 964R180         
+327USB_GND          U$10  -P$1        A01X   5141Y  13149X1555Y 964R180         
+327N$24             U$13  -1          A01X  22736Y   3350X 188Y 104R 90         
+327N$23             U$13  -2          A01X  22933Y   3350X 188Y 104R 90         
+327N$22             U$13  -3          A01X  23129Y   3350X 188Y 104R 90         
+327N$21             U$13  -4          A01X  23326Y   3350X 188Y 104R 90         
+327N$18             U$13  -5          A01X  23523Y   3350X 188Y 104R 90         
+327N$17             U$13  -6          A01X  23720Y   3350X 188Y 104R 90         
+327DIO12            U$13  -7          A01X  23720Y   3834X 188Y 104R 90         
+327DIO11            U$13  -8          A01X  23523Y   3834X 188Y 104R 90         
+327DIO10            U$13  -9          A01X  23326Y   3834X 188Y 104R 90         
+327DIO9             U$13  -10         A01X  23129Y   3834X 188Y 104R 90         
+327DIO8             U$13  -11         A01X  22933Y   3834X 188Y 104R 90         
+327DIO7             U$13  -12         A01X  22736Y   3834X 188Y 104R 90         
+327GND              U$13  -GND        A01X  23228Y   3592X 138Y 925R 90         
+327N$31             U$14  -1          A01X  17224Y   3449X 188Y 104R 90         
+327N$30             U$14  -2          A01X  17421Y   3449X 188Y 104R 90         
+327N$29             U$14  -3          A01X  17618Y   3449X 188Y 104R 90         
+327N$28             U$14  -4          A01X  17814Y   3449X 188Y 104R 90         
+327N$27             U$14  -5          A01X  18011Y   3449X 188Y 104R 90         
+327N$25             U$14  -6          A01X  18208Y   3449X 188Y 104R 90         
+327DIO6             U$14  -7          A01X  18208Y   3932X 188Y 104R 90         
+327DIO5             U$14  -8          A01X  18011Y   3932X 188Y 104R 90         
+327DIO4             U$14  -9          A01X  17814Y   3932X 188Y 104R 90         
+327DIO3             U$14  -10         A01X  17618Y   3932X 188Y 104R 90         
+327DIO2             U$14  -11         A01X  17421Y   3932X 188Y 104R 90         
+327DIO1             U$14  -12         A01X  17224Y   3932X 188Y 104R 90         
+327GND              U$14  -GND        A01X  17716Y   3690X 138Y 925R 90         
+327N$36             U$15  -1          A01X  11614Y   4335X 188Y 104R 90         
+327N$41             U$15  -2          A01X  11811Y   4335X 188Y 104R 90         
+327N$57             U$15  -3          A01X  12007Y   4335X 188Y 104R 90         
+327N$60             U$15  -4          A01X  12204Y   4335X 188Y 104R 90         
+327N$37             U$15  -5          A01X  12401Y   4335X 188Y 104R 90         
+327N$40             U$15  -6          A01X  12598Y   4335X 188Y 104R 90         
+327ENC2B            U$15  -7          A01X  12598Y   4818X 188Y 104R 90         
+327ENC2A            U$15  -8          A01X  12401Y   4818X 188Y 104R 90         
+327ENC1B            U$15  -9          A01X  12204Y   4818X 188Y 104R 90         
+327ENC1A            U$15  -10         A01X  12007Y   4818X 188Y 104R 90         
+327ENC0B            U$15  -11         A01X  11811Y   4818X 188Y 104R 90         
+327ENC0A            U$15  -12         A01X  11614Y   4818X 188Y 104R 90         
+327GND              U$15  -GND        A01X  12106Y   4576X 138Y 925R 90         
+327N$33             U$16  -P1         A01X   6377Y   6033X 137Y 629R270         
+327N$33             U$16  -P2         A01X   6377Y   5777X 137Y 629R270         
+327N$47             U$16  -P3         A01X   6377Y   5521X 137Y 629R270         
+3275V               U$16  -P4         A01X   6377Y   5265X 137Y 629R270         
+327N$43             U$16  -P5         A01X   6377Y   5009X 137Y 629R270         
+327N$32             U$16  -P6         A01X   6377Y   4753X 137Y 629R270         
+327N$32             U$16  -P7         A01X   6377Y   4498X 137Y 629R270         
+327N$55             U$16  -P8         A01X   8582Y   4498X 137Y 629R270         
+327N$55             U$16  -P9         A01X   8582Y   4753X 137Y 629R270         
+327N$50             U$16  -P10        A01X   8582Y   5009X 137Y 629R270         
+327GND              U$16  -P11        A01X   8582Y   5265X 137Y 629R270         
+327N$46             U$16  -P12        A01X   8582Y   5521X 137Y 629R270         
+327N$34             U$16  -P13        A01X   8582Y   5777X 137Y 629R270         
+327N$34             U$16  -P14        A01X   8582Y   6033X 137Y 629R270         
+327                 U$19  -1          A01X   6791Y   3498X 188Y 104R 90         
+327                 U$19  -2          A01X   6988Y   3498X 188Y 104R 90         
+327N$42             U$19  -3          A01X   7185Y   3498X 188Y 104R 90         
+327N$48             U$19  -4          A01X   7381Y   3498X 188Y 104R 90         
+327N$53             U$19  -5          A01X   7578Y   3498X 188Y 104R 90         
+327N$49             U$19  -6          A01X   7775Y   3498X 188Y 104R 90         
+327N$50             U$19  -7          A01X   7775Y   3981X 188Y 104R 90         
+327N$46             U$19  -8          A01X   7578Y   3981X 188Y 104R 90         
+327N$47             U$19  -9          A01X   7381Y   3981X 188Y 104R 90         
+327N$43             U$19  -10         A01X   7185Y   3981X 188Y 104R 90         
+327                 U$19  -11         A01X   6988Y   3981X 188Y 104R 90         
+327                 U$19  -12         A01X   6791Y   3981X 188Y 104R 90         
+327GND              U$19  -GND        A01X   7283Y   3740X 138Y 925R 90         
+327DIO9             U$21  -P1         A16X  22962Y   3818X 275Y 275R270         
+327DIO10            U$21  -P2         A16X  23316Y   3818X 275Y 196R270         
+327DIO11            U$21  -P3         A16X  23631Y   3818X 275Y 196R270         
+327DIO12            U$21  -P4         A16X  23986Y   3818X 275Y 275R270         
+3275V               U$21  -P5         A16X  23986Y   3267X 275Y 275R270         
+3275V               U$21  -P6         A16X  23631Y   3267X 275Y 196R270         
+3275V               U$21  -P7         A16X  23316Y   3267X 275Y 196R270         
+3275V               U$21  -P8         A16X  22962Y   3267X 275Y 275R270         
+327DIO5             U$22  -P1         A16X  18139Y   3917X 275Y 275R270         
+327DIO6             U$22  -P2         A16X  18494Y   3917X 275Y 196R270         
+327DIO7             U$22  -P3         A16X  18809Y   3917X 275Y 196R270         
+327DIO8             U$22  -P4         A16X  19163Y   3917X 275Y 275R270         
+3275V               U$22  -P5         A16X  19163Y   3366X 275Y 275R270         
+3275V               U$22  -P6         A16X  18809Y   3366X 275Y 196R270         
+3275V               U$22  -P7         A16X  18494Y   3366X 275Y 196R270         
+3275V               U$22  -P8         A16X  18139Y   3366X 275Y 275R270         
+327DIO1             U$23  -P1         A16X  16466Y   3917X 275Y 275R270         
+327DIO2             U$23  -P2         A16X  16820Y   3917X 275Y 196R270         
+327DIO3             U$23  -P3         A16X  17135Y   3917X 275Y 196R270         
+327DIO4             U$23  -P4         A16X  17490Y   3917X 275Y 275R270         
+3275V               U$23  -P5         A16X  17490Y   3366X 275Y 275R270         
+3275V               U$23  -P6         A16X  17135Y   3366X 275Y 196R270         
+3275V               U$23  -P7         A16X  16820Y   3366X 275Y 196R270         
+3275V               U$23  -P8         A16X  16466Y   3366X 275Y 275R270         
+327N$44             U$36  -1          A01X  25866Y   6299X 748Y1338R180         
+327N$54             U$36  -2          A01X  24330Y   6299X 748Y1338R180         
+327GND              U$39  -GND        A01X   2263Y   7748X2106Y3362R  0         
+327VCC              U$39  -P1         A01X    763Y   4872X1204Y 350R 90         
+327N$58             U$39  -P2         A01X   1263Y   4872X1204Y 350R 90         
+327N$63             U$39  -P3         A01X   1763Y   4872X1204Y 350R 90         
+327GND              U$39  -P4         A01X   2263Y   4872X1204Y 350R 90         
+327N$52             U$39  -P5         A01X   2763Y   4872X1204Y 350R 90         
+327N$59             U$39  -P6         A01X   3263Y   4872X1204Y 350R 90         
+3275V               U$39  -P7         A01X   3763Y   4872X1204Y 350R 90         
+317VCC              U$43  -P$1  D  55PA00X   3149Y   2952X 826Y1653R  0         
+317GND              U$43  -P$2  D  55PA00X   3149Y    984X 826Y1653R  0         
+327N$38             U$44  -1          A01X  14911Y   3646X 188Y 104R 90         
+327                 U$44  -2          A01X  15108Y   3646X 188Y 104R 90         
+327                 U$44  -3          A01X  15305Y   3646X 188Y 104R 90         
+327N$39             U$44  -4          A01X  15501Y   3646X 188Y 104R 90         
+327                 U$44  -5          A01X  15698Y   3646X 188Y 104R 90         
+327                 U$44  -6          A01X  15895Y   3646X 188Y 104R 90         
+327                 U$44  -7          A01X  15895Y   4129X 188Y 104R 90         
+327                 U$44  -8          A01X  15698Y   4129X 188Y 104R 90         
+327ENC3B            U$44  -9          A01X  15501Y   4129X 188Y 104R 90         
+327                 U$44  -10         A01X  15305Y   4129X 188Y 104R 90         
+327                 U$44  -11         A01X  15108Y   4129X 188Y 104R 90         
+327ENC3A            U$44  -12         A01X  14911Y   4129X 188Y 104R 90         
+327GND              U$44  -GND        A01X  15403Y   3887X 138Y 925R 90         
+327ENC2A            U$45  -P1         A16X  13513Y   4803X 275Y 275R270         
+327ENC2B            U$45  -P2         A16X  13868Y   4803X 275Y 196R270         
+327ENC3A            U$45  -P3         A16X  14183Y   4803X 275Y 196R270         
+327ENC3B            U$45  -P4         A16X  14537Y   4803X 275Y 275R270         
+3275V               U$45  -P5         A16X  14537Y   4251X 275Y 275R270         
+3275V               U$45  -P6         A16X  14183Y   4251X 275Y 196R270         
+3275V               U$45  -P7         A16X  13868Y   4251X 275Y 196R270         
+3275V               U$45  -P8         A16X  13513Y   4251X 275Y 275R270         
+327ENC0A            U$46  -P1         A16X  11496Y   4852X 275Y 275R270         
+327ENC0B            U$46  -P2         A16X  11850Y   4852X 275Y 196R270         
+327ENC1A            U$46  -P3         A16X  12165Y   4852X 275Y 196R270         
+327ENC1B            U$46  -P4         A16X  12519Y   4852X 275Y 275R270         
+3275V               U$46  -P5         A16X  12519Y   4301X 275Y 275R270         
+3275V               U$46  -P6         A16X  12165Y   4301X 275Y 196R270         
+3275V               U$46  -P7         A16X  11850Y   4301X 275Y 196R270         
+3275V               U$46  -P8         A16X  11496Y   4301X 275Y 275R270         
+327VDDA             U$52  -P$1        A01X   9990Y   8937X 314Y 236R  0         
+3273.3V             U$52  -P$2        A01X   9990Y   8385X 314Y 236R  0         
+327VREFP            U$53  -P$1        A01X  11368Y   8937X 314Y 236R  0         
+3273.3V             U$53  -P$2        A01X  11368Y   8385X 314Y 236R  0         
+3273.3V             USB   -A          A01X  14025Y  12431X 472Y 472R  0         
+327N$14             USB   -C          A01X  14025Y  13257X 472Y 472R  0         
+327GND              Z1    -ANODE       A16X    492Y   1177X 358Y 480R 90         
+327VCC              Z1    -CATHODE       A16X    492Y   2464X 358Y 480R 90         
+999
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.parts.txt b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.parts.txt
new file mode 100644
index 0000000..eb59a7b
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.parts.txt
@@ -0,0 +1,119 @@
+Partlist
+
+Exported from gyro_motherboard.brd at 1/23/12 2:45 AM
+
+EAGLE Version 5.11.0 Copyright (c) 1988-2010 CadSoft
+
+Part     Value          Package       Library      Position (mm)         Orientation
+
+3.3V                    SOT223        custom_parts (15.875 22)           R0
+C1       18pf           0805          SparkFun     (22.25 27.5)          MR0
+C2       18pf           0805          SparkFun     (24.25 25.375)        MR270
+C3       0.1 uf         0603-CAP      SparkFun     (11 34.375)           MR90
+C4       10 uF          0805          SparkFun     (21 21)               R90
+C5       0.1 uf         0603-CAP      SparkFun     (25.75 34.125)        MR90
+C6       10 uF          0805          SparkFun     (16.75 30.125)        R90
+C7       100 nF         0805          SparkFun     (31.25 27)            R180
+C8       0.1 uf         0603-CAP      SparkFun     (11 37.5)             MR90
+C9       0.1 uf         0603-CAP      SparkFun     (25.75 37.25)         MR90
+C10      10 uF          0805          SparkFun     (13.25 2.5)           R270
+C11      10 uF          0805          SparkFun     (52.5 30.5)           R0
+C12      1 uF           0603-CAP      SparkFun     (55.625 18.875)       R0
+C13      1 uF           0603-CAP      SparkFun     (61.875 19)           R0
+C14      1 uF           0603-CAP      SparkFun     (58.75 17.875)        R180
+C15      100 nF         0603-CAP      SparkFun     (63.25 32.5)          R180
+C16      1 uF           0603-CAP      SparkFun     (58.625 32.5)         R0
+C17      10 uF          0805          SparkFun     (58.75 16)            R180
+C18      10 uF          1210          SparkFun     (3.375 15.375)        MR180
+C19      10 nF          0805          SparkFun     (7.375 11.25)         MR0
+C20      22 nF          0805          SparkFun     (10.25 12.875)        MR0
+C21      100 uF         1210          SparkFun     (8.125 15.375)        MR0
+C22      10 uF          1210          SparkFun     (3.375 18.375)        MR180
+C23      10 uF          0805          SparkFun     (25.5 2.375)          R270
+C24      10 uF          0805          SparkFun     (19 16.75)            R0
+C25      10 uF          0805          SparkFun     (43.625 35.25)        MR180
+C26      10 uF          0805          SparkFun     (52.875 17.375)       R90
+C27      100 nF         C0402         rcl          (28.625 25.75)        MR90
+C28      100 nF         C0402         rcl          (34.625 14.375)       MR0
+C29      100 nF         C0402         rcl          (27.625 22.75)        MR90
+C30      100 nF         C0402         rcl          (39.75 14.5)          MR180
+C31      100 nF         C0402         rcl          (35 35.125)           MR270
+CAN1     MCP2551SO8     SO08          can          (43.625 40.5)         MR0
+D1                      SOT23-3       SparkFun     (65.375 19.5)         R0
+ERR                     CHIPLED_0805  led          (43.875 16.5)         R0
+ERR1                    CHIPLED_0805  led          (48.125 16.5)         R0
+HB                      CHIPLED_0805  led          (46 16.5)             R0
+IC1                     SOT223        custom_parts (54.625 15.75)        MR270
+IC3      LPC1768        LQFP100-14X14 lpc1xxx-v6   (38.75 24.25)         MR90
+JP1                     1X03          SparkFun     (38.75 1.5)           R90
+JP2                     1X03          SparkFun     (41.25 1.5)           R90
+JP3                     1X03          SparkFun     (43.75 1.5)           R90
+JP4                     1X03          SparkFun     (46.25 1.5)           R90
+JP5                     1X03          SparkFun     (48.75 1.5)           R90
+JP6                     1X03          SparkFun     (51.25 1.5)           R90
+JP7                     1X03          SparkFun     (53.75 1.5)           R90
+JP8                     1X03          SparkFun     (56.25 1.5)           R90
+JP9                     1X03          SparkFun     (58.75 1.5)           R90
+JP10                    1X03          SparkFun     (61.25 1.5)           R90
+JP11                    1X03          SparkFun     (63.75 1.5)           R90
+JP12                    1X03          SparkFun     (66.25 1.5)           R90
+JP13                    1X04_NO_SILK  SparkFun     (27.75 1.5)           R90
+JP14                    1X04_NO_SILK  SparkFun     (33.25 1.5)           R90
+JP15                    1X04_NO_SILK  SparkFun     (36 1.5)              R90
+JP16                    1X03          SparkFun     (15.25 1.5)           R90
+JP17                    1X03          SparkFun     (17.75 1.5)           R90
+JP18                    1X03          SparkFun     (20.25 1.5)           R90
+JP19                    1X03          SparkFun     (22.75 1.5)           R90
+JP20                    1X04_NO_SILK  SparkFun     (26.5 30.25)          MR0
+JP21                    1X04_NO_SILK  SparkFun     (30.5 1.5)            R90
+POW                     CHIPLED_0805  led          (12.625 6)            R0
+R1       300            0603-RES      SparkFun     (12.625 9.25)         R270
+R2       24 ohm 1%      0603-RES      SparkFun     (27.875 36.625)       MR270
+R3       24 ohm 1%      0603-RES      SparkFun     (10.625 40.25)        MR0
+R4       24 ohm 1%      0603-RES      SparkFun     (10.625 42.375)       MR0
+R5       130            0603-RES      SparkFun     (37.75 35)            MR180
+R6       47k            0603-RES      SparkFun     (34 25.875)           R90
+R7       47k            0603-RES      SparkFun     (49 28.375)           MR90
+R8       24 ohm 1%      0603-RES      SparkFun     (30 36.625)           MR270
+R9       28k            0603-RES      SparkFun     (15.125 12.875)       MR90
+R10      31.6k          0603-RES      SparkFun     (15.125 9.625)        MR270
+R11      130            0603-RES      SparkFun     (46 19.875)           R270
+R12      130            0603-RES      SparkFun     (43.875 19.875)       R270
+R13      130            0603-RES      SparkFun     (48.125 19.875)       R270
+R14      28k            0603-RES      SparkFun     (17.875 12.875)       MR270
+R15      31.6k          0603-RES      SparkFun     (17.875 9.625)        MR90
+R16      28k            0603-RES      SparkFun     (20.125 12.875)       MR90
+R17      31.6k          0603-RES      SparkFun     (20.125 9.625)        MR270
+R18      28k            0603-RES      SparkFun     (22.875 12.875)       MR270
+R19      31.6k          0603-RES      SparkFun     (22.875 9.625)        MR90
+R20      154.0 kOhm     0805          SparkFun     (1.625 11.25)         MR180
+R21       9.31 kOhm     0805          SparkFun     (4.5 11.25)           MR0
+R22      34.0 kOhm      0805          SparkFun     (2.625 12.875)        MR0
+R23      1.27 kOhm      0805          SparkFun     (7.375 12.875)        MR180
+R24      6.65 kOhm      0805          SparkFun     (10.25 11.25)         MR180
+R25      1.5K 1%        0805          SparkFun     (32.5 35.875)         MR0
+U$2      CRYSTAL        CRYSTAL       MC33887      (23.625 26)           R0
+U$4      ADUM3160       SOIC_W        custom_parts (18.625 38.5)         MR90
+U$5      ADXRS450       SOIC_CAV      custom_parts (59.625 25.75)        R0
+U$6      DIP_SWITCH_X4  219-4LPST     custom_parts (61.375 39.125)       R180
+U$8      RJ16           85510-5019    custom_parts (44.25 38.375)        R270
+U$9      USB            M701-330442   custom_parts (5.375 35.75)         R90
+U$10     RJ16           85510-5019    custom_parts (21.5 38.375)         R90
+U$13     NUF6406M       DFN12         custom_parts (59 9.125)            R90
+U$14     NUF6406M       DFN12         custom_parts (45 9.375)            R90
+U$15     NUF6406M       DFN12         custom_parts (30.75 11.625)        R90
+U$16     TL974IPWR      TSSOP-14      custom_parts (19 13.375)           R270
+U$19     NUF6406M       DFN12         custom_parts (18.5 9.5)            R90
+U$21     WA06X103JTL    0603X4        custom_parts (59.625 9)            MR270
+U$22     WA06X103JTL    0603X4        custom_parts (47.375 9.25)         MR270
+U$23     WA06X103JTL    0603X4        custom_parts (43.125 9.25)         MR270
+U$36     LQH43MN471J03L L1812         custom_parts (63.75 16)            R180
+U$39     LMZ12002       TZA07A        custom_parts (5.75 12.375)         R0
+U$43     39543-020239   39543-0202    custom_parts (8 5)                 R270
+U$44     NUF6406M       DFN12         custom_parts (39.125 9.875)        R90
+U$45     WA06X103JTL    0603X4        custom_parts (35.625 11.5)         MR270
+U$46     WA06X103JTL    0603X4        custom_parts (30.5 11.625)         MR270
+U$52     1608_INDUCTOR  L1608         custom_parts (25.375 22)           R270
+U$53     1608_INDUCTOR  L1608         custom_parts (28.875 22)           R270
+USB                     CHIPLED_0805  led          (35.625 32.625)       R0
+Z1       MMSZ5242BT1G   SOD-123       custom_parts (1.25 4.625)          MR90
diff --git a/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.parts_mapping.txt b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.parts_mapping.txt
new file mode 100644
index 0000000..28d8b3b
--- /dev/null
+++ b/gyro_board/schematic/gyro_motherboard_1.19.2012/gyro_motherboard.parts_mapping.txt
@@ -0,0 +1,45 @@
+CAN1	579-MCP2551-I/SN	SOIC-8 CAN Tranciever
+U$8,U$10	538-85510-5019	RJ16 connectors 85510-5019
+U$6	774-2194LPST	x4 dip switch 219-4LPST
+U$9	855-M701-330442	usb standard B connector M701-330442
+U$4	ADUM3160BRWZ-ND	usb digital isolator ADuM3160
+R2,R3,R4,R8	667-ERJ-3EKF24R0V	0603 24ohm 1/10W 1% resistors
+C3,C5,C8,C9,C15	81-GRM39X104K50D	0603 0.1 uF 50V caps
+R25	292-1.5K-RC	0805 1.5K 1% resistor
+U$5	ADXRS450	gyro ADXRS450
+U$36	81-LQH43MN471J03L	1812 470uH inductor
+D1	771-PMBD914-T/R	SOT-23 215MA 70V diode
+C12,C13,C14,C16	81-GRM39R105K6.3	0603 1 uF 6.3V caps
+U$44,U$13,U$14,U$15,U$19	863-NUF6406MNT1G	EMI filter w/ ESD protection
+U$16	579-MCP604-E/ST	rail to rail op-amp
+R9,R14,R16,R18	302-31.6K-RC	0603 28K 1/10W resistors
+R10,R15,R17,R19	302-28K-RC	0603 31.6K 1/10W resistors
+U$21,U$22,U$23,U$45,U$46	791-WA06X103JTL	Quad resistor pack, 10k ohms
+JP1,JP2,JP3,JP4,JP5,JP6,JP7,JP8,JP9,JP10,JP11,JP12,JP16,JP17,JP18,JP19	649-69190-103HLF	3-pin 0.1" headers
+JP13,JP14,JP15,JP20,JP21	517-9611046804AR	4-pin 0.1" headers
+3.3V,IC1	579-TC1262-3.3VDBTR	TC1262 3.3 V LDO Very low noise
+U$52,U$53	810-MPZ1608S221A	ferrite bead, 220 ohm @ 100 MHz
+C17,C23,C4,C24,C6,C10,C11,C25,C26	81-GRM219R60J106KE9D	0805 10 uF 6.3V capacitors
+IC3	771-LPC1768FBD100551	LQFP-100 LPC1768 microcontroller
+C27,C28,C29,C30,C31	80-C0402C104K4RAUTO	0402 0.1 uF 16V cap
+U$2	815-ABMM2-12-E2T	ABMM2-12.000MHZ-E2-T Crystal
+C1,C2	81-GRM40C180G50D	18 pf C0805 Capacitor
+C7	81-GCM21BR71H104KA7L	0805 0.1 uF 50V cap
+R6,R7	301-47K-RC	0603 47K 50V resistors
+R21	71-CRCW0805-9.31K-E3	0805 9.31K 1/8W resistor
+R22	71-CRCW0805-34K-E3	0805 34K 1/8W resistor
+R23	71-CRCW0805-1.27K-E3	0805 1.27K 1/8W resistor
+R24	71-CRCW0805-6.65K-E3	0805 6.65K 1/8W resistor
+R20	71-CRCW0805154KFKEA	0805 154K 1/8W resistor
+C20	311-1138-1-ND	0805 0.022 uF 50V cap
+C19	81-GRM40X103K50D	0805 0.01 uF 50V cap
+C21	810-C3225X5R0J107M	1210 100 uF 6.3V cap
+U$39	926-MZ12002TZADJNOPB	LMZ12002 switching regulator 
+R11,R12,R13,R5	71-CRCW0603-130-E3	0603 130ohm resistors
+R1	71-CRCW0603-300-E3	0603 300ohm resistor
+C18,C22	810-C3225X7R1E106M	1210 10 uF 25V caps
+U$43	538-39543-0202	Molex 39543-0202 screw terminal
+Z1	863-MMSZ5246BT1G	zener tvs diodes (SOD-123 16V)
+ERR	720-LHR974-LP-1	red 0805 LEDs
+ERR1,USB	720-LYR971-HL-1	yellow 0805 LEDs
+HB,POW	720-LGR971-KN-1	green 0805 LEDs
diff --git a/gyro_board/schematic/parts.txt b/gyro_board/schematic/parts.txt
new file mode 100644
index 0000000..644bad5
--- /dev/null
+++ b/gyro_board/schematic/parts.txt
@@ -0,0 +1,306 @@
+// Gyro Board
+
+1 x SOIC-8 CAN Tranciever
+	http://www.mouser.com/ProductDetail/Microchip-Technology/MCP2551-I-SN/?qs=sGAEpiMZZMtR4K0UGiQLxkAdUXdHWcECBcWuIPVAEFY%3d
+// CAN1
+
+2 x RJ16 connectors 85510-5019
+	http://www.mouser.com/ProductDetail/Molex/85510-5019/?qs=KUIzHt%2fe91mKBlbhXSCoig%3d%3d
+// U$8, U$10
+
+1 x x4 dip switch 219-4LPST
+	http://www.mouser.com/ProductDetail/CTS-Electronic-Components/219-4LPST/?qs=sGAEpiMZZMv%2f%252b2JhlA6ysGbG22VYatTYq6uUsyqguGg%3d
+// U$6
+
+
+// USB
+1 x usb standard B connector M701-330442
+	http://www.mouser.com/ProductDetail/Harwin/M701-330442/?qs=x6EjVpvqMVOIQFAB0splYQ%3d%3d
+// U$9
+
+1 x usb digital isolator ADuM3160
+	http://search.digikey.com/us/en/products/ADUM3160BRWZ/ADUM3160BRWZ-ND/2361054
+//	http://components.arrow.com/part/detail/49232507S8707474N2771
+// U$4
+
+4 x 0603 24ohm 1/10W 1% resistors
+	http://www.mouser.com/ProductDetail/Panasonic-Electronic-Components/ERJ-3EKF24R0V/?qs=sGAEpiMZZMvdGkrng054tx7%2f6%252bNA3LAJhBtYhhhPO3Q%3d
+// R2-4, R8
+
+5 x 0603 0.1 uF 50V caps
+	http://www.mouser.com/ProductDetail/Murata/GRM188R71H104KA93D/?qs=sGAEpiMZZMvQvaS66kI3TkRuIXEcJckyG4bGsWbvdFs%3d
+// C3, C5, C8, C9, C15
+
+1 x 0805 1.5K 1% resistor
+	http://www.mouser.com/ProductDetail/Xicon/292-15K-RC/?qs=sGAEpiMZZMvdGkrng054t8ia9GW93QJBe7qcDRfqN2o%3d
+// R25
+
+
+// Gyro
+1 x gyro ADXRS450
+	analog.com
+// U$5
+
+1 x 1812 470uH inductor
+	http://www.mouser.com/ProductDetail/Murata/LQH43MN471J03L/?qs=sGAEpiMZZMsg%252by3WlYCkU25dZqFWCljlwjP2vUu0CFs%3d
+// U$36
+
+1 x SOT-23 215MA 70V diode
+	http://www.mouser.com/ProductDetail/NXP-Semiconductors/PMBD914215/?qs=sGAEpiMZZMtEwUVCuofpuLm5lH6nRxWrLW61Tj%2fBato%3d
+// D1
+
+4 x 0603 1 uF 6.3V caps
+	http://mouser.com/ProductDetail/Murata/GRM188R60J105KA01D/?qs=sGAEpiMZZMvQvaS66kI3TuvVCQuX7KDAuQpwwjtFuLU%3d
+// C12, C13, C14, C16
+
+
+
+// Analog and Digital ports
+
+5 x EMI filter w/ ESD protection
+	http://www.mouser.com/ProductDetail/ON-Semiconductor/NUF6406MNT1G/?qs=ZXBb0xZ9WeAjNOnJtXU0bw%3d%3d
+// U$44, U$13-15, U$19
+
+1 x rail to rail op-amp
+//	http://www.mouser.com/ProductDetail/Texas-Instruments/TL974IPWR/?qs=sGAEpiMZZMtOXy69nW9rM2tUIZtrISKoe5L5aXiIMX4%3d
+//	http://www.mouser.com/ProductDetail/ON-Semiconductor/MC33204DG/?qs=dFKnUM%2fquJaMYcSqRg0JgQ%3d%3d
+	http://www.mouser.com/ProductDetail/Microchip-Technology/MCP604-E-ST/?qs=sGAEpiMZZMtCHixnSjNA6E1AMjZhJrEHzigwDZ2KRDU%3d
+// U$16
+
+4 x 0603 28K 1/10W resistors
+	http://www.mouser.com/ProductDetail/Xicon/302-316K-RC/?qs=sGAEpiMZZMu61qfTUdNhG%252bwbnI1D53ApRq8kd7Nz6xY%3d
+// R9, R14, R16, R18
+
+4 x 0603 31.6K 1/10W resistors
+	http://www.mouser.com/ProductDetail/302-28K-RC?qs=vouMN99EJGBIU3mqbTRj%2F6LPzvi3PxeO
+// R10, R15, R17, R19
+
+5 x Quad resistor pack, 10k ohms
+	http://www.mouser.com/ProductDetail/Walsin/WA06X103JTL/?qs=sGAEpiMZZMvrmc6UYKmaNZko%252bNlity%2FEV4c2Bk25eAg%3D
+// U$21-23, U$45-46
+
+16 x 3-pin 0.1" headers
+	http://www.mouser.com/ProductDetail/FCI/69190-103HLF/?qs=sGAEpiMZZMtsLRyDR9nM1%252bmbmmVUI0dA0Z1OFUoOXHc%3d
+// JP1-12, JP16-19
+
+5 x 4-pin 0.1" headers
+	http://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/961104-6804-AR/?qs=sGAEpiMZZMtsLRyDR9nM17VtKPchIJvtC4eCEPRcQ7o%3d
+// JP13-15, JP20-21
+
+
+
+// LDO Power Regulator
+2 x TC1262 3.3 V LDO Very low noise
+	http://www.mouser.com/ProductDetail/Microchip-Technology/TC1262-33VDBTR/?qs=sGAEpiMZZMug9GoBKXZ756PgbqWOUSEIIbRZGUP71Lc%3d
+// 3.3V, IC1
+
+2 x ferrite bead, 220 ohm @ 100 MHz
+	http://www.mouser.com/ProductDetail/TDK/MPZ1608S221AT/?qs=cdpe0LUyr8B%252bn20qbL9n2Q%3d%3d
+// U$52-53
+
+9 x 0805 10 uF 6.3V capacitors
+	http://mouser.com/Search/ProductDetail.aspx?qs=Ilq%252bLDnc%2fNgDxdJFi6Qw%252bA%3d%3d
+// C17, C23, C4, C24, C6, C10, C11, C25, C26
+
+
+// Clock and Microcontroller
+1 x LQFP-100 LPC1768 microcontroller
+	http://www.mouser.com/ProductDetail/NXP-Semiconductors/LPC1768FBD100551/?qs=sGAEpiMZZMsX0CFs5rpLHt3sQgsucMfJ
+// IC3
+
+5 x 0402 0.1 uF 16V cap
+	http://www.mouser.com/ProductDetail/Kemet/C0402C104K4RACAUTO/?qs=sGAEpiMZZMvQvaS66kI3TgF3DT3m3%252btw8OliBjglQbc%3d
+// C27-31
+
+1 x ABMM2-12.000MHZ-E2-T Crystal
+	http://www.mouser.com/ProductDetail/ABRACON/ABMM2-12000MHZ-E2-T/?qs=sGAEpiMZZMsBj6bBr9Q9aUe%252bp9Tek3UM1B79/CaETLU%3d
+// U$2
+
+2 x 18 pf C0805 Capacitor
+	http://mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMvQvaS66kI3TjYve3QTKmtDqi2WjmiWmCU%3d
+// C1, C2
+
+1 x 0805 0.1 uF 50V cap
+	http://www.mouser.com/ProductDetail/Murata/GCM21BR71H104KA37L/?qs=sGAEpiMZZMvQvaS66kI3TjDz0r7iCaoLWvMByZfsvEE%3d
+// C7
+//(needs wire routed through)
+
+2 x 0603 47K 50V resistors
+	http://www.mouser.com/ProductDetail/Xicon/301-47K-RC/?qs=sGAEpiMZZMvdGkrng054t47dxWVYf%2fwUfr4QUm8F33w%3d
+// R6, R7
+
+
+// 5V switching regulator
+1 x 0805 9.31K 1/8W resistor
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW08059K31FKEA/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GtPxzExJ4uZY%3d
+// R21
+
+1 x 0805 34K 1/8W resistor
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW080534K0FKEA/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GyKXWrLMq0UQ%3d
+// R22
+
+1 x 0805 1.27K 1/8W resistor
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW08051K27FKEA/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GIBJd%2f1ZakPQ%3d
+// R23
+
+1 x 0805 6.65K 1/8W resistor
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW08056K65FKEA/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3Gj77LBod1WW0%3d
+// R24
+
+1 x 0805 154K 1/8W resistor
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW0805154KFKEA/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GDAV2Bz5Sypk%3d
+// R20
+
+1 x 0805 0.022 uF 50V cap
+	http://search.digikey.com/us/en/products/CC0805KRX7R9BB223/311-1138-1-ND/303048
+// C20
+//might have to order 10
+
+1 x 0805 0.01 uF 50V cap
+	http://www.mouser.com/ProductDetail/Murata/GRM216R71H103KA01D/?qs=jTOxOOerCX5IOhunCLQr%252bA%3d%3d
+// C19
+
+1 x 1210 100 uF 6.3V cap
+	http://www.mouser.com/ProductDetail/TDK/C3225X5R0J107MT/?qs=nUVS3y17YY6kd51cqgJddg%3d%3d
+// C21
+
+1 x LMZ12002 switching regulator 
+	http://www.mouser.com/ProductDetail/National-Semiconductor-TI/LMZ12002TZ-ADJ-NOPB/?qs=7lkVKPoqpbaSgUnhjfEk4A%3d%3d
+// U$39
+
+
+4 x 0603 130ohm resistors
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW0603130RFKEA/?qs=sGAEpiMZZMvdGkrng054txtDEx%2fRoWGKoIkxqW8xqJQ%3d
+// R11-13, R5
+
+1 x 0603 300ohm resistor
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW0603300RFKEA/?qs=sGAEpiMZZMvdGkrng054t27YQJ%252bwbTvXi4D6ehZcvac%3d
+// R1
+
+
+// Common
+
+9 x 1210 10 uF 25V caps
+	http://www.mouser.com/ProductDetail/TDK/C3225X7R1E106MT/?qs=nUVS3y17YY4s9OT5qYCJ9w%3d%3d
+// C18, C22 gyro
+// CIN$0, CIN$1, CIN$2, CSEP$0, CSEP$1, CSEP$2, CSEP$3 regulator
+
+4 x Molex 39543-0202 screw terminal
+	http://www.mouser.com/ProductDetail/Molex/39543-0202/?qs=4dAX1jW9NQp7F8cTdTMv1g%3d%3d
+// IN, OUT, OUT1 regulator
+// U$43 gyro
+
+2 x zener tvs diodes (SOD-123 16V)
+	http://www.mouser.com/ProductDetail/ON-Semiconductor/MMSZ5246BT1G/?qs=sGAEpiMZZMstCHp3EWKGl1Xq7JMFNrq0wSn4l1OCWWw%3d
+// DTVS regulator
+// Z1 gyro
+
+1 x red 0805 LEDs
+	http://mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMuus4pmcqQnznNefzl5FSbKZuuQ5hy9Amc%3d
+// ERR gyro
+
+2 x yellow 0805 LEDs
+	http://mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMuus4pmcqQnzirNWwQCfkT50pLh9X4iQpA%3d
+// ERR1, USB gyro
+
+4 x green 0805 LEDs
+	http://mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMuus4pmcqQnznNefzl5FSbKDY8WDxSjdus%3d
+// OPOW, IPOW regulator
+// HB, POW gyro
+
+// Power Regulator
+
+2 x 1206 1K resistor
+	http://www.mouser.com/ProductDetail/Panasonic-Electronic-Components/ERJ-P08J102V/?qs=sGAEpiMZZMtlubZbdhIBINKPHGpBD%2fvfOjyxXi5XYWU%3d
+// RIPOW, ROPOW
+
+1 x webench rbp (0402 20 ohms)
+	http://www.mouser.com/ProductDetail/Vishay/CRCW040220R0FKED/?qs=YX%252bK5oaHNYqeZBUMt4U2Kw%3d%3d
+// RBP
+
+1 x webench cbp (0603 0.1 uF 50V)
+	http://www.mouser.com/ProductDetail/Kemet/C0603C104K5RACTU/?qs=sGAEpiMZZMvQvaS66kI3TqSH%2fSbCyFvgGhDuN4BnElU%3d
+// CBP
+
+1 x webench rcomp (0402 1.58K)
+	http://www.mouser.com/ProductDetail/Vishay/CRCW04021K58FKED/?qs=YX%252bK5oaHNYpT6hP7ZtdbHA%3d%3d
+// RCOMP
+
+1 x webench ruvlo1 (0402 68.1K)
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW040268K1FKED/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GyRWnWg46jmQ%3d
+// RUVLO1
+
+1 x webench ruvlo2 (0402 100K)
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW0402100KFKED/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GqPf2An0kBCw%3d
+// RUVLO2
+
+1 x webench ccomp2 (0603 1600 pF 50V)
+	http://www.mouser.com/ProductDetail/Murata/GRM1885C1H162JA01D/?qs=2YjXvJr3xvj9dMpk%252bcTsdg%3d%3d
+// CCOMP2
+
+1 x webench ccomp (0402 0.18 uF 4V)
+	http://www.mouser.com/ProductDetail/Murata/GRM155C80G184KE01D/?qs=MY6wChARw2xkpToUm96GCw%3d%3d
+// CCOMP
+
+1 x webench lin (1.5uH 3.15mOhms)
+	http://www.coilcraft.com/xal1060.cfm XAL1060-152MEB
+// LIN
+
+1 x webench lout (15uH 17.75mOhms)
+	http://www.coilcraft.com/xal1010.cfm XAL1010-153MEB
+// LOUT
+
+1 x webench rramp (0402 100 ohms)
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW0402100RFKED/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GufIDDbTfwUk%3d
+// RRAMP
+
+1 x webench ccc (0402 0.22 uF 10V)
+	http://www.mouser.com/ProductDetail/Murata/GRM155R61A224KE19D/?qs=5bAuhL3RhmP2%252bUJqdGBuag%3d%3d
+// CCC
+
+1 x webench rfadj (0402 33.2K 50V)
+	http://www.mouser.com/ProductDetail/Vishay/CRCW040233K2FKED/?qs=TNtMkGKFKOxaNJ4fnQ3loQ%3d%3d
+// RFADJ
+
+1 x webench m1 (12A 2.1W 40V drain +-20V gate)
+//	http://www.mouser.com/ProductDetail/Infineon/BSZ097N04LS-G/?qs=9Vqdt%252bdHmfJifwIkIsZrEQ%3d%3d
+//	issue: mouser might take a few months...
+	http://search.digikey.com/us/en/products/BSZ097N04LS%20G/BSZ097N04LSGINCT-ND/1936398
+// M1
+
+1 x webench rsense
+	http://search.digikey.com/us/en/products/CSNL1206FT2L00/CSNL1206FT2L00CT-ND/1788121
+// RSENSE
+
+1 x webench d1 (12A 0.95V)
+	http://www.mouser.com/ProductDetail/Vishay/VS-12CWQ10FNPBF/?qs=JM62hPbbLXPWrWgEKbyKBA%3d%3d
+// D1
+
+1 x webench rfb2 (0402 84.5K)
+	http://www.mouser.com/ProductDetail/Vishay/CRCW040284K5FKED/?qs=lxmYmG9KtX%252bHRS58fwsZYQ%3d%3d
+// RFB2
+
+1 x webench rfb1 (0402 10K)
+	http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW040210K0FKED/?qs=sGAEpiMZZMu61qfTUdNhG2DpbjADlD3GcalbOv9utCY%3d
+// RFB1
+
+//3 x webench cout (150 uF 16V)
+//	http://www.mouser.com/ProductDetail/United-Chemi-Con-UCC/APXA160ARA151MJ80G/?qs=T4Ji%252bqW8zB8OyxZT4KKAgw%3d%3d
+
+2 x webench cout replacement (330 uF 16V)
+	http://www.mouser.com/ProductDetail/Nichicon/RR71C331MDN1/?qs=bW1g5Sys4u33GoIae2uX7g%3d%3d
+// COUT$0, COUT$1
+
+1 x webench cramp (0805 560 pF 50V)
+	http://search.digikey.com/us/en/products/CC0805KRX7R9BB561/311-1125-1-ND/303035
+// might have to get 10
+// CRAMP
+
+1 x switching regulator controller
+	http://www.mouser.com/ProductDetail/National-Semiconductor-TI/LM3481MM-NOPB/?qs=sGAEpiMZZMvFgFrcgbsedf6UbclRl4cqDguUT%2f8Yt0E%3d
+// U$1
+
+// Other
+
+1 x FIT-PC power connector
+	http://www.mouser.com/ProductDetail/Kobiconn/171-PA35135-E/?qs=sGAEpiMZZMv0W4pxf2HiVxfWv8xR5CDgzpvGedjd4Rg%3D
diff --git a/gyro_board/schematic/power_converter.brd b/gyro_board/schematic/power_converter.brd
new file mode 100644
index 0000000..bf8db75
--- /dev/null
+++ b/gyro_board/schematic/power_converter.brd
@@ -0,0 +1,1125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE eagle SYSTEM "eagle.dtd">
+<eagle version="6.4">
+<drawing>
+<settings>
+<setting alwaysvectorfont="no"/>
+<setting verticaltext="up"/>
+</settings>
+<grid distance="0.125" unitdist="mm" unit="mm" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="inch" altunit="inch"/>
+<layers>
+<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
+<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
+<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
+<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
+<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
+<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
+<layer number="25" name="tNames" color="7" fill="1" visible="no" active="yes"/>
+<layer number="26" name="bNames" color="7" fill="1" visible="no" active="yes"/>
+<layer number="27" name="tValues" color="7" fill="1" visible="no" active="yes"/>
+<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
+<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
+<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
+<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
+<layer number="32" name="bCream" color="7" fill="5" visible="yes" active="yes"/>
+<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
+<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
+<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
+<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
+<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
+<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
+<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
+<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
+<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>
+<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>
+<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
+<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
+<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
+<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
+<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
+<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
+<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
+<layer number="50" name="dxf" color="7" fill="1" visible="no" active="yes"/>
+<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="yes"/>
+<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="yes"/>
+<layer number="53" name="tGND_GNDA" color="7" fill="1" visible="no" active="yes"/>
+<layer number="54" name="bGND_GNDA" color="7" fill="1" visible="no" active="yes"/>
+<layer number="56" name="wert" color="7" fill="1" visible="no" active="yes"/>
+<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
+<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
+<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
+<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
+<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
+<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
+<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
+<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
+<layer number="99" name="Anatomie" color="7" fill="1" visible="no" active="no"/>
+<layer number="100" name="Muster" color="7" fill="1" visible="no" active="yes"/>
+<layer number="101" name="Patch_Top" color="7" fill="1" visible="no" active="yes"/>
+<layer number="102" name="Brücken" color="7" fill="1" visible="no" active="yes"/>
+<layer number="103" name="CableCode" color="7" fill="1" visible="no" active="yes"/>
+<layer number="104" name="Name" color="7" fill="1" visible="no" active="yes"/>
+<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
+<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
+<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
+<layer number="110" name="tdokum" color="7" fill="1" visible="no" active="yes"/>
+<layer number="111" name="bdokum" color="7" fill="1" visible="no" active="yes"/>
+<layer number="116" name="Patch_BOT" color="7" fill="1" visible="no" active="yes"/>
+<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
+<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
+<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
+<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
+<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
+<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
+<layer number="199" name="L$199" color="7" fill="1" visible="no" active="yes"/>
+<layer number="200" name="200bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="201" name="201bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="202" name="202bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
+<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
+<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
+<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
+<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
+<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
+<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
+<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
+<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
+<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
+<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
+<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
+<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
+<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
+<layer number="250" name="Descript" color="7" fill="1" visible="no" active="yes"/>
+<layer number="251" name="SMDround" color="7" fill="1" visible="no" active="yes"/>
+<layer number="254" name="Cool" color="7" fill="1" visible="no" active="yes"/>
+</layers>
+<board>
+<plain>
+<wire x1="0" y1="0" x2="64" y2="0" width="0" layer="20"/>
+<wire x1="64" y1="0" x2="64" y2="26" width="0" layer="20"/>
+<wire x1="64" y1="26" x2="0" y2="26" width="0" layer="20"/>
+<wire x1="0" y1="26" x2="0" y2="0" width="0" layer="20"/>
+<text x="7.431" y="10.112" size="3.81" layer="21">-</text>
+<text x="53.764" y="16.181" size="3.81" layer="21" rot="R90">-</text>
+<text x="51.551" y="23.694" size="2.1844" layer="21">+</text>
+<text x="6.607" y="23.73" size="2.1844" layer="21">+</text>
+<text x="51.594" y="15.002" size="1" layer="21" font="vector" ratio="10" rot="SR270">out</text>
+<text x="5.48" y="25.479" size="1" layer="21" font="vector" ratio="10" rot="SR270">in</text>
+<text x="51.301" y="8.819" size="2.1844" layer="21">+</text>
+<text x="50.111" y="7.194" size="3.81" layer="21" rot="R270">-</text>
+<text x="62.844" y="8.752" size="0.8128" layer="21" font="vector" ratio="10" rot="SR270">gyro</text>
+<text x="62.051" y="8.944" size="2.1844" layer="21">+</text>
+<text x="62.051" y="22.194" size="2.1844" layer="21">+</text>
+<text x="0.176" y="18.694" size="2.1844" layer="21">+</text>
+<text x="0.73" y="17.354" size="1" layer="21" font="vector" ratio="10" rot="SR270">in</text>
+<text x="2.763" y="13.431" size="3.81" layer="21" rot="R90">-</text>
+<text x="60.861" y="17.944" size="3.81" layer="21" rot="R270">-</text>
+<text x="60.861" y="5.444" size="3.81" layer="21" rot="R270">-</text>
+<text x="44.176" y="2.944" size="2.1844" layer="21">+</text>
+<text x="36.676" y="5.444" size="2.1844" layer="21">+</text>
+<text x="41.931" y="2.486" size="3.81" layer="21">-</text>
+<text x="34.056" y="4.986" size="3.81" layer="21">-</text>
+</plain>
+<libraries>
+<library name="custom_parts">
+<packages>
+<package name="MSOP10">
+<description>&lt;b&gt;10-Lead Mini Small Outline Package [MSOP]&lt;/b&gt; (RM-10)&lt;p&gt;
+Source: http://www.analog.com/UploadedFiles/Data_Sheets/35641221898805SSM2167_b.pdf&lt;br&gt;
+COMPLIANT TO JEDEC STANDARDS MO-187BA</description>
+<wire x1="-1.4" y1="1.4" x2="1.4" y2="1.4" width="0.2032" layer="21"/>
+<wire x1="1.4" y1="1.4" x2="1.4" y2="-1.4" width="0.2032" layer="21"/>
+<wire x1="1.4" y1="-1.4" x2="-1.4" y2="-1.4" width="0.2032" layer="21"/>
+<wire x1="-1.4" y1="-1.4" x2="-1.4" y2="1.4" width="0.2032" layer="21"/>
+<wire x1="-0.8" y1="-1.1" x2="-0.8" y2="-0.5" width="0.2032" layer="21" curve="-180"/>
+<wire x1="-0.8" y1="-0.5" x2="-0.8" y2="-1.1" width="0.2032" layer="21"/>
+<smd name="1" x="-1" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="2" x="-0.5" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="3" x="0" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="4" x="0.5" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="5" x="1" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="6" x="1" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="7" x="0.5" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="8" x="0" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="9" x="-0.5" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="10" x="-1" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<text x="-2.032" y="-2.54" size="1.27" layer="25" ratio="10" rot="R90">&gt;NAME</text>
+<text x="3.302" y="-2.54" size="1.27" layer="27" ratio="10" rot="R90">&gt;VALUE</text>
+<rectangle x1="-1.1244" y1="-2.5" x2="-0.8744" y2="-1.5" layer="51"/>
+<rectangle x1="-0.6244" y1="-2.5" x2="-0.3744" y2="-1.5" layer="51"/>
+<rectangle x1="-0.1244" y1="-2.5" x2="0.1256" y2="-1.5" layer="51"/>
+<rectangle x1="0.3756" y1="-2.5" x2="0.6256" y2="-1.5" layer="51"/>
+<rectangle x1="0.8756" y1="-2.5" x2="1.1256" y2="-1.5" layer="51"/>
+<rectangle x1="0.8744" y1="1.5" x2="1.1244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="0.3744" y1="1.5" x2="0.6244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-0.1256" y1="1.5" x2="0.1244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-0.6256" y1="1.5" x2="-0.3756" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-1.1256" y1="1.5" x2="-0.8756" y2="2.5" layer="51" rot="R180"/>
+</package>
+<package name="1060-152">
+<description>&lt;b&gt;coilcraft inductor&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1060_.pdf"&gt;http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1060_.pdf&lt;/a&gt;</description>
+<smd name="P$1" x="-3.325" y="0" dx="2.39" dy="9.5" layer="1"/>
+<smd name="P$2" x="3.325" y="0" dx="2.39" dy="9.5" layer="1"/>
+<rectangle x1="-5" y1="-5.65" x2="5" y2="5.65" layer="39"/>
+</package>
+<package name="PG-TSDSON8">
+<description>&lt;b&gt;infineon mosfet package&lt;/b&gt;&lt;br&gt;
+created from drawings at &lt;a href="http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996"&gt;http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996&lt;/a&gt; (page 13 and TSDSON is Shrink SuperSO8)</description>
+<smd name="S$1" x="-0.325" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="S$2" x="0.325" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="G" x="0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="S$0" x="-0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="D$1" x="-0.975" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$2" x="-0.325" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$3" x="0.325" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$4" x="0.975" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$0" x="0" y="0.395" dx="2.29" dy="1.71" layer="1"/>
+<rectangle x1="-1.6" y1="-1.9" x2="1.6" y2="1.9" layer="39"/>
+</package>
+<package name="1010-153">
+<description>&lt;b&gt;coilcraft inductor&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1010_.pdf"&gt;http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1010_.pdf&lt;/a&gt;</description>
+<smd name="P$1" x="-3.325" y="0" dx="2.38" dy="8.71" layer="1"/>
+<smd name="P$2" x="3.325" y="0" dx="2.38" dy="8.71" layer="1"/>
+<rectangle x1="-5" y1="-5.65" x2="5" y2="5.65" layer="39"/>
+</package>
+<package name="ELFH0225*">
+<description>Amphenol PCD ELFH0225*</description>
+<pad name="P$1" x="2.54" y="2.54" drill="1.4" shape="square" rot="R180"/>
+<pad name="P$2" x="-2.54" y="2.54" drill="1.4" shape="square" rot="R180"/>
+<rectangle x1="-5.9944" y1="-3.556" x2="5.9944" y2="6.223" layer="39" rot="R180"/>
+<text x="-3.81" y="6.35" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.81" y="-5.08" size="1.27" layer="27">&gt;VALUE</text>
+<wire x1="5.1562" y1="0.635" x2="5.1562" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="-5.1562" y1="4.445" x2="-5.1562" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="-5.1562" y1="0.635" x2="5.1562" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="3.81" y1="4.445" x2="1.27" y2="4.445" width="0.2032" layer="21" curve="100"/>
+<wire x1="-1.27" y1="4.445" x2="-3.81" y2="4.445" width="0.2032" layer="21" curve="100"/>
+<wire x1="5.08" y1="4.445" x2="3.81" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="4.445" x2="-1.27" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="-3.81" y1="4.445" x2="-5.08" y2="4.445" width="0.2032" layer="21"/>
+</package>
+<package name="SOD-123">
+<description>&lt;b&gt;SOD-123 SMA package&lt;/b&gt;&lt;br&gt;
+using dimensions from &lt;a href="http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF"&gt;http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF&lt;/a&gt;</description>
+<smd name="CATHODE" x="1.635" y="0" dx="0.91" dy="1.22" layer="1"/>
+<smd name="ANODE" x="-1.635" y="0" dx="0.91" dy="1.22" layer="1"/>
+<rectangle x1="0.1" y1="-1" x2="1.1" y2="1" layer="21"/>
+<rectangle x1="-2" y1="-0.9" x2="2" y2="0.9" layer="39"/>
+</package>
+<package name="RR71C331MDN1">
+<description>&lt;b&gt;RR71C331MDN1 cap&lt;/b&gt;&lt;br&gt;
+dimensions from &lt;a href="http://www.nichicon.co.jp/english/products/pdf/2009fpcap_catalog_r7.pdf"&gt;http://www.nichicon.co.jp/english/products/pdf/2009fpcap_catalog_r7.pdf&lt;/a&gt;</description>
+<circle x="0" y="0" radius="5" width="0.127" layer="39"/>
+<pad name="+" x="-2.5" y="0" drill="0.9"/>
+<pad name="-" x="2.5" y="0" drill="0.9"/>
+<text x="-1.3" y="0.4" size="0.4064" layer="21" font="vector">+</text>
+<text x="1.2" y="0.4" size="0.4064" layer="21" font="vector">-</text>
+</package>
+<package name="D-PAK">
+<description>&lt;b&gt;D-PAK (TO-252AA)&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.vishay.com/docs/95016/dpak252a.pdf"&gt;http://www.vishay.com/docs/95016/dpak252a.pdf&lt;/a&gt;</description>
+<smd name="CATHODE" x="0" y="2.585" dx="6.74" dy="6.23" layer="1"/>
+<smd name="ANODE$0" x="-2.28" y="-4.56" dx="1.624" dy="2.28" layer="1"/>
+<smd name="ANODE$1" x="2.28" y="-4.56" dx="1.624" dy="2.28" layer="1"/>
+<rectangle x1="-3.5" y1="-6.3" x2="3.5" y2="6.5" layer="39"/>
+</package>
+</packages>
+</library>
+<library name="resistor">
+<packages>
+<package name="C0402">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0603">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.889" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0805">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="R0402">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="M1206">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.25 W</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="1.143" y1="0.8382" x2="-1.143" y2="0.8382" width="0.1524" layer="51"/>
+<wire x1="1.143" y1="-0.8382" x2="-1.143" y2="-0.8382" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2" layer="1"/>
+<text x="-1.27" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.9144" x2="-1.1176" y2="0.9144" layer="51"/>
+<rectangle x1="1.1176" y1="-0.9144" x2="1.7018" y2="0.9144" layer="51"/>
+<rectangle x1="-0.3" y1="-0.8001" x2="0.3" y2="0.8001" layer="35"/>
+</package>
+<package name="R1206">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="0.9525" y1="-0.8128" x2="-0.9652" y2="-0.8128" width="0.1524" layer="51"/>
+<wire x1="0.9525" y1="0.8128" x2="-0.9652" y2="0.8128" width="0.1524" layer="51"/>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<smd name="2" x="1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
+<smd name="1" x="-1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
+<text x="-1.397" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6891" y1="-0.8763" x2="-0.9525" y2="0.8763" layer="51"/>
+<rectangle x1="0.9525" y1="-0.8763" x2="1.6891" y2="0.8763" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="C1210">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+</packages>
+</library>
+<library name="led">
+<packages>
+<package name="CHIPLED_0805">
+<description>&lt;b&gt;CHIPLED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LG_R971.pdf</description>
+<wire x1="-0.35" y1="0.925" x2="0.35" y2="0.925" width="0.1016" layer="51" curve="162.394521"/>
+<wire x1="-0.35" y1="-0.925" x2="0.35" y2="-0.925" width="0.1016" layer="51" curve="-162.394521"/>
+<wire x1="0.575" y1="0.525" x2="0.575" y2="-0.525" width="0.1016" layer="51"/>
+<wire x1="-0.575" y1="-0.5" x2="-0.575" y2="0.925" width="0.1016" layer="51"/>
+<circle x="-0.45" y="0.85" radius="0.103" width="0.1016" layer="51"/>
+<smd name="C" x="0" y="1.05" dx="1.2" dy="1.2" layer="1"/>
+<smd name="A" x="0" y="-1.05" dx="1.2" dy="1.2" layer="1"/>
+<text x="-1.27" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="2.54" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="0.3" y1="0.5" x2="0.625" y2="1" layer="51"/>
+<rectangle x1="-0.325" y1="0.5" x2="-0.175" y2="0.75" layer="51"/>
+<rectangle x1="0.175" y1="0.5" x2="0.325" y2="0.75" layer="51"/>
+<rectangle x1="-0.2" y1="0.5" x2="0.2" y2="0.675" layer="51"/>
+<rectangle x1="0.3" y1="-1" x2="0.625" y2="-0.5" layer="51"/>
+<rectangle x1="-0.625" y1="-1" x2="-0.3" y2="-0.5" layer="51"/>
+<rectangle x1="0.175" y1="-0.75" x2="0.325" y2="-0.5" layer="51"/>
+<rectangle x1="-0.325" y1="-0.75" x2="-0.175" y2="-0.5" layer="51"/>
+<rectangle x1="-0.2" y1="-0.675" x2="0.2" y2="-0.5" layer="51"/>
+<rectangle x1="-0.1" y1="0" x2="0.1" y2="0.2" layer="21"/>
+<rectangle x1="-0.6" y1="0.5" x2="-0.3" y2="0.8" layer="51"/>
+<rectangle x1="-0.625" y1="0.925" x2="-0.3" y2="1" layer="51"/>
+</package>
+</packages>
+</library>
+<library name="SparkFun-Connectors">
+<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;
+In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.&lt;br&gt;&lt;br&gt;
+We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.
+&lt;br&gt;&lt;br&gt;
+&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
+<packages>
+<package name="1X03">
+<wire x1="3.81" y1="0.635" x2="4.445" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="4.445" y1="1.27" x2="5.715" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="5.715" y1="1.27" x2="6.35" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-0.635" x2="5.715" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="5.715" y1="-1.27" x2="4.445" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="4.445" y1="-1.27" x2="3.81" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-0.635" y1="1.27" x2="0.635" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="0.635" y1="1.27" x2="1.27" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="-0.635" x2="0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="0.635" x2="1.905" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="1.905" y1="1.27" x2="3.175" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="3.175" y1="1.27" x2="3.81" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="3.81" y1="-0.635" x2="3.175" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="3.175" y1="-1.27" x2="1.905" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="1.905" y1="-1.27" x2="1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="0.635" x2="-1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-0.635" y1="1.27" x2="-1.27" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-0.635" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="0.635" y1="-1.27" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="0.635" x2="6.35" y2="-0.635" width="0.2032" layer="21"/>
+<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="2" x="2.54" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="3" x="5.08" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<text x="-1.3462" y="1.8288" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
+<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
+<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
+</package>
+</packages>
+</library>
+</libraries>
+<attributes>
+</attributes>
+<variantdefs>
+</variantdefs>
+<classes>
+<class number="0" name="default" width="0" drill="0">
+</class>
+</classes>
+<designrules name="SparkFun *">
+<description language="en">&lt;b&gt;EAGLE Design Rules&lt;/b&gt;
+&lt;p&gt;
+The default Design Rules have been set to cover
+a wide range of applications. Your particular design
+may have different requirements, so please make the
+necessary adjustments and save your customized
+design rules under a new name.</description>
+<param name="layerSetup" value="(1*16)"/>
+<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
+<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
+<param name="mdWireWire" value="8mil"/>
+<param name="mdWirePad" value="8mil"/>
+<param name="mdWireVia" value="8mil"/>
+<param name="mdPadPad" value="8mil"/>
+<param name="mdPadVia" value="8mil"/>
+<param name="mdViaVia" value="8mil"/>
+<param name="mdSmdPad" value="8mil"/>
+<param name="mdSmdVia" value="8mil"/>
+<param name="mdSmdSmd" value="8mil"/>
+<param name="mdViaViaSameLayer" value="8mil"/>
+<param name="mnLayersViaInSmd" value="2"/>
+<param name="mdCopperDimension" value="10mil"/>
+<param name="mdDrill" value="8mil"/>
+<param name="mdSmdStop" value="0mil"/>
+<param name="msWidth" value="8mil"/>
+<param name="msDrill" value="20mil"/>
+<param name="msMicroVia" value="9.99mm"/>
+<param name="msBlindViaRatio" value="0.5"/>
+<param name="rvPadTop" value="0.25"/>
+<param name="rvPadInner" value="0.25"/>
+<param name="rvPadBottom" value="0.25"/>
+<param name="rvViaOuter" value="0.25"/>
+<param name="rvViaInner" value="0.25"/>
+<param name="rvMicroViaOuter" value="0.25"/>
+<param name="rvMicroViaInner" value="0.25"/>
+<param name="rlMinPadTop" value="12mil"/>
+<param name="rlMaxPadTop" value="20mil"/>
+<param name="rlMinPadInner" value="10mil"/>
+<param name="rlMaxPadInner" value="20mil"/>
+<param name="rlMinPadBottom" value="12mil"/>
+<param name="rlMaxPadBottom" value="20mil"/>
+<param name="rlMinViaOuter" value="10mil"/>
+<param name="rlMaxViaOuter" value="20mil"/>
+<param name="rlMinViaInner" value="10mil"/>
+<param name="rlMaxViaInner" value="20mil"/>
+<param name="rlMinMicroViaOuter" value="4mil"/>
+<param name="rlMaxMicroViaOuter" value="20mil"/>
+<param name="rlMinMicroViaInner" value="4mil"/>
+<param name="rlMaxMicroViaInner" value="20mil"/>
+<param name="psTop" value="-1"/>
+<param name="psBottom" value="-1"/>
+<param name="psFirst" value="-1"/>
+<param name="psElongationLong" value="100"/>
+<param name="psElongationOffset" value="100"/>
+<param name="mvStopFrame" value="1"/>
+<param name="mvCreamFrame" value="0"/>
+<param name="mlMinStopFrame" value="4mil"/>
+<param name="mlMaxStopFrame" value="4mil"/>
+<param name="mlMinCreamFrame" value="0mil"/>
+<param name="mlMaxCreamFrame" value="0mil"/>
+<param name="mlViaStopLimit" value="25mil"/>
+<param name="srRoundness" value="0"/>
+<param name="srMinRoundness" value="0mil"/>
+<param name="srMaxRoundness" value="0mil"/>
+<param name="slThermalIsolate" value="10mil"/>
+<param name="slThermalsForVias" value="0"/>
+<param name="dpMaxLengthDifference" value="10mm"/>
+<param name="dpGapFactor" value="2.5"/>
+<param name="checkGrid" value="0"/>
+<param name="checkAngle" value="1"/>
+<param name="checkFont" value="1"/>
+<param name="checkRestrict" value="1"/>
+<param name="useDiameter" value="13"/>
+<param name="maxErrors" value="50"/>
+</designrules>
+<autorouter>
+<pass name="Default">
+<param name="RoutingGrid" value="50mil"/>
+<param name="tpViaShape" value="round"/>
+<param name="PrefDir.1" value="|"/>
+<param name="PrefDir.2" value="0"/>
+<param name="PrefDir.3" value="0"/>
+<param name="PrefDir.4" value="0"/>
+<param name="PrefDir.5" value="0"/>
+<param name="PrefDir.6" value="0"/>
+<param name="PrefDir.7" value="0"/>
+<param name="PrefDir.8" value="0"/>
+<param name="PrefDir.9" value="0"/>
+<param name="PrefDir.10" value="0"/>
+<param name="PrefDir.11" value="0"/>
+<param name="PrefDir.12" value="0"/>
+<param name="PrefDir.13" value="0"/>
+<param name="PrefDir.14" value="0"/>
+<param name="PrefDir.15" value="0"/>
+<param name="PrefDir.16" value="-"/>
+<param name="cfVia" value="8"/>
+<param name="cfNonPref" value="5"/>
+<param name="cfChangeDir" value="2"/>
+<param name="cfOrthStep" value="2"/>
+<param name="cfDiagStep" value="3"/>
+<param name="cfExtdStep" value="0"/>
+<param name="cfBonusStep" value="1"/>
+<param name="cfMalusStep" value="1"/>
+<param name="cfPadImpact" value="4"/>
+<param name="cfSmdImpact" value="4"/>
+<param name="cfBusImpact" value="0"/>
+<param name="cfHugging" value="3"/>
+<param name="cfAvoid" value="4"/>
+<param name="cfPolygon" value="10"/>
+<param name="cfBase.1" value="0"/>
+<param name="cfBase.2" value="1"/>
+<param name="cfBase.3" value="1"/>
+<param name="cfBase.4" value="1"/>
+<param name="cfBase.5" value="1"/>
+<param name="cfBase.6" value="1"/>
+<param name="cfBase.7" value="1"/>
+<param name="cfBase.8" value="1"/>
+<param name="cfBase.9" value="1"/>
+<param name="cfBase.10" value="1"/>
+<param name="cfBase.11" value="1"/>
+<param name="cfBase.12" value="1"/>
+<param name="cfBase.13" value="1"/>
+<param name="cfBase.14" value="1"/>
+<param name="cfBase.15" value="1"/>
+<param name="cfBase.16" value="0"/>
+<param name="mnVias" value="20"/>
+<param name="mnSegments" value="9999"/>
+<param name="mnExtdSteps" value="9999"/>
+<param name="mnRipupLevel" value="10"/>
+<param name="mnRipupSteps" value="100"/>
+<param name="mnRipupTotal" value="100"/>
+</pass>
+<pass name="Follow-me" refer="Default" active="yes">
+</pass>
+<pass name="Busses" refer="Default" active="yes">
+<param name="cfNonPref" value="4"/>
+<param name="cfBusImpact" value="4"/>
+<param name="cfHugging" value="0"/>
+<param name="mnVias" value="0"/>
+</pass>
+<pass name="Route" refer="Default" active="yes">
+</pass>
+<pass name="Optimize1" refer="Default" active="yes">
+<param name="cfVia" value="99"/>
+<param name="cfExtdStep" value="10"/>
+<param name="cfHugging" value="1"/>
+<param name="mnExtdSteps" value="1"/>
+<param name="mnRipupLevel" value="0"/>
+</pass>
+<pass name="Optimize2" refer="Optimize1" active="yes">
+<param name="cfNonPref" value="0"/>
+<param name="cfChangeDir" value="6"/>
+<param name="cfExtdStep" value="0"/>
+<param name="cfBonusStep" value="2"/>
+<param name="cfMalusStep" value="2"/>
+<param name="cfPadImpact" value="2"/>
+<param name="cfSmdImpact" value="2"/>
+<param name="cfHugging" value="0"/>
+</pass>
+<pass name="Optimize3" refer="Optimize2" active="yes">
+<param name="cfChangeDir" value="8"/>
+<param name="cfPadImpact" value="0"/>
+<param name="cfSmdImpact" value="0"/>
+</pass>
+<pass name="Optimize4" refer="Optimize3" active="yes">
+<param name="cfChangeDir" value="25"/>
+</pass>
+</autorouter>
+<elements>
+<element name="U$1" library="custom_parts" package="MSOP10" value="LM3481" x="20.125" y="4.25"/>
+<element name="CIN$0" library="resistor" package="C1210" value="C3225X7R1E106M" x="3.25" y="10"/>
+<element name="CBP" library="resistor" package="C0603" value="C0603C104K5RACT" x="14.875" y="2.375"/>
+<element name="RBP" library="resistor" package="R0402" value="CRCW040220R0FKE" x="9.375" y="2" rot="R180"/>
+<element name="RUVLO2" library="resistor" package="R0402" value="CRCW0402100KFKE" x="9.375" y="0.75" rot="R180"/>
+<element name="RUVLO1" library="resistor" package="R0402" value="CRCW040268K1FKE" x="13.125" y="0.75" rot="R180"/>
+<element name="CCOMP2" library="resistor" package="C0603" value="GRM1885C1H162JA01" x="14.875" y="4.5" rot="R180"/>
+<element name="RCOMP" library="resistor" package="R0402" value="CRCW04021K58FKE" x="17.25" y="5" rot="R270"/>
+<element name="CCOMP" library="resistor" package="C0402" value="GRM155C80G184KE01" x="14.875" y="6.125" rot="R180"/>
+<element name="RFADJ" library="resistor" package="R0402" value="CRCW040233K2FKE" x="23.375" y="6.25" rot="R180"/>
+<element name="CCC" library="resistor" package="C0402" value="GRM155R61A224KE19D" x="23.375" y="5"/>
+<element name="RRAMP" library="resistor" package="R0402" value="CRCW0402100RFKE" x="16.375" y="9.625" rot="R180"/>
+<element name="CRAMP" library="resistor" package="C0805" value="CC0805KRX7R9BB56" x="15" y="8" rot="R180"/>
+<element name="RSENSE" library="resistor" package="M1206" value="CSNL1206FT2L00" x="15.75" y="12.5" rot="R180"/>
+<element name="LIN" library="custom_parts" package="1060-152" value="XAL1060-152ME" x="16.625" y="20.125"/>
+<element name="CSEP$0" library="resistor" package="C1210" value="C3225X7R1E106M" x="25" y="21"/>
+<element name="LOUT" library="custom_parts" package="1010-153" value="XAL1010-153ME" x="34.25" y="12.25" rot="R90"/>
+<element name="D1" library="custom_parts" package="D-PAK" value=" 12CWQ10FNPB" x="35" y="21.5" rot="R270"/>
+<element name="RFB2" library="resistor" package="R0402" value="CRCW040284K5FKE" x="24.875" y="2.125" rot="R180"/>
+<element name="RFB1" library="resistor" package="R0402" value="CRCW040210K0FKED" x="22.625" y="2.75" rot="R90"/>
+<element name="M1" library="custom_parts" package="PG-TSDSON8" value="BSZ097N04LS_G" x="20.5" y="12.5" rot="R270"/>
+<element name="CIN$1" library="resistor" package="C1210" value="C3225X7R1E106M" x="3.25" y="3.5"/>
+<element name="CIN$2" library="resistor" package="C1210" value="C3225X7R1E106M" x="3.25" y="6.75"/>
+<element name="IN" library="custom_parts" package="ELFH0225*" value="POWER_CONNECTORELFH0225*" x="4.75" y="18.125" rot="R270"/>
+<element name="OUT" library="custom_parts" package="ELFH0225*" value="POWER_CONNECTORELFH0225*" x="59.375" y="19.5" rot="R90"/>
+<element name="DTVS" library="custom_parts" package="SOD-123" value="MMSZ5246BT1G" x="3.25" y="1" rot="R180"/>
+<element name="IPOW" library="led" package="CHIPLED_0805" value="" x="11" y="5.75" rot="R90"/>
+<element name="RIPOW" library="resistor" package="R1206" value="1K" x="10.625" y="4" rot="R180"/>
+<element name="OPOW" library="led" package="CHIPLED_0805" value="" x="48.75" y="4.375" rot="R90"/>
+<element name="ROPOW" library="resistor" package="R1206" value="1K" x="51.75" y="2.875" rot="R270"/>
+<element name="CSEP$1" library="resistor" package="C1210" value="C3225X7R1E106M" x="25" y="24.25"/>
+<element name="CSEP$2" library="resistor" package="C1210" value="C3225X7R1E106M" x="25" y="17.75"/>
+<element name="CSEP$3" library="resistor" package="C1210" value="C3225X7R1E106M" x="25" y="14.5"/>
+<element name="COUT$0" library="custom_parts" package="RR71C331MDN1" value="" x="45.25" y="10.125" rot="R270"/>
+<element name="COUT$1" library="custom_parts" package="RR71C331MDN1" value="" x="47.25" y="20.5" rot="R315"/>
+<element name="OUT1" library="custom_parts" package="ELFH0225*" value="POWER_CONNECTORELFH0225*" x="59.375" y="7.25" rot="R90"/>
+<element name="JP1" library="SparkFun-Connectors" package="1X03" value="" x="42.545" y="1.7145"/>
+<element name="JP2" library="SparkFun-Connectors" package="1X03" value="" x="34.925" y="1.7145"/>
+<element name="JP3" library="SparkFun-Connectors" package="1X03" value="" x="34.925" y="4.2545"/>
+</elements>
+<signals>
+<signal name="N$1">
+<contactref element="U$1" pad="10"/>
+<contactref element="RBP" pad="1"/>
+<contactref element="CBP" pad="1"/>
+<wire x1="16.375" y1="1.625" x2="17.75" y2="3" width="0.254" layer="16"/>
+<wire x1="11.875" y1="1.625" x2="16.375" y2="1.625" width="0.254" layer="16"/>
+<wire x1="11.25" y1="2.25" x2="11.875" y2="1.625" width="0.254" layer="16"/>
+<wire x1="11.25" y1="2.25" x2="11.375" y2="2.375" width="0.254" layer="1"/>
+<wire x1="11.375" y1="2.375" x2="14.025" y2="2.375" width="0.254" layer="1"/>
+<wire x1="19.125" y1="4.125" x2="19.125" y2="6.3631" width="0.254" layer="1"/>
+<wire x1="19.625" y1="3.625" x2="19.125" y2="4.125" width="0.254" layer="1"/>
+<wire x1="17.75" y1="3" x2="19" y2="3" width="0.254" layer="16"/>
+<wire x1="19" y1="3" x2="19.625" y2="3.625" width="0.254" layer="16"/>
+<wire x1="10.275" y1="2.25" x2="11.25" y2="2.25" width="0.254" layer="1"/>
+<wire x1="10.025" y1="2" x2="10.275" y2="2.25" width="0.254" layer="1"/>
+<via x="19.625" y="3.625" extent="1-16" drill="0.6"/>
+<via x="11.25" y="2.25" extent="1-16" drill="0.6"/>
+</signal>
+<signal name="N$4">
+<contactref element="U$1" pad="2"/>
+<contactref element="RUVLO2" pad="1"/>
+<contactref element="RUVLO1" pad="2"/>
+<wire x1="19.625" y1="1.375" x2="19.625" y2="2.1369" width="0.254" layer="1"/>
+<wire x1="19.5" y1="1.25" x2="19.625" y2="1.375" width="0.254" layer="1"/>
+<wire x1="18.625" y1="1.25" x2="19.5" y2="1.25" width="0.254" layer="1"/>
+<wire x1="18.125" y1="1.75" x2="18.625" y2="1.25" width="0.254" layer="1"/>
+<wire x1="17.25" y1="0.875" x2="18.125" y2="1.75" width="0.254" layer="16"/>
+<wire x1="11.25" y1="0.875" x2="17.25" y2="0.875" width="0.254" layer="16"/>
+<wire x1="10.025" y1="0.75" x2="10.15" y2="0.875" width="0.254" layer="1"/>
+<wire x1="10.15" y1="0.875" x2="11.25" y2="0.875" width="0.254" layer="1"/>
+<wire x1="11.25" y1="0.875" x2="12.35" y2="0.875" width="0.254" layer="1"/>
+<wire x1="12.35" y1="0.875" x2="12.475" y2="0.75" width="0.254" layer="1"/>
+<via x="18.125" y="1.75" extent="1-16" drill="0.6"/>
+<via x="11.25" y="0.875" extent="1-16" drill="0.6"/>
+</signal>
+<signal name="N$5">
+<contactref element="U$1" pad="3"/>
+<contactref element="CCOMP2" pad="1"/>
+<contactref element="RCOMP" pad="2"/>
+<wire x1="20.125" y1="1" x2="20.125" y2="2.1369" width="0.254" layer="1"/>
+<wire x1="19.625" y1="0.5" x2="20.125" y2="1" width="0.254" layer="1"/>
+<wire x1="17.875" y1="0.5" x2="19.625" y2="0.5" width="0.254" layer="1"/>
+<wire x1="17" y1="1.375" x2="17.875" y2="0.5" width="0.254" layer="1"/>
+<wire x1="17" y1="1.375" x2="17" y2="4.1" width="0.254" layer="1"/>
+<wire x1="17" y1="4.1" x2="17.25" y2="4.35" width="0.254" layer="1"/>
+<wire x1="17.25" y1="4.35" x2="15.875" y2="4.35" width="0.254" layer="1"/>
+<wire x1="15.875" y1="4.35" x2="15.725" y2="4.5" width="0.254" layer="1"/>
+</signal>
+<signal name="N$7">
+<contactref element="RCOMP" pad="1"/>
+<contactref element="CCOMP" pad="1"/>
+<wire x1="15.525" y1="6.125" x2="16" y2="5.65" width="0.254" layer="1"/>
+<wire x1="16" y1="5.65" x2="17.25" y2="5.65" width="0.254" layer="1"/>
+</signal>
+<signal name="N$9">
+<contactref element="U$1" pad="6"/>
+<contactref element="RFADJ" pad="2"/>
+<wire x1="22.725" y1="6.25" x2="22.6119" y2="6.3631" width="0.254" layer="1"/>
+<wire x1="22.6119" y1="6.3631" x2="21.125" y2="6.3631" width="0.254" layer="1"/>
+</signal>
+<signal name="N$8">
+<contactref element="U$1" pad="1"/>
+<contactref element="CRAMP" pad="1"/>
+<contactref element="RRAMP" pad="2"/>
+<wire x1="16.625" y1="8" x2="15.85" y2="8" width="0.254" layer="1"/>
+<wire x1="18.625" y1="6" x2="16.625" y2="8" width="0.254" layer="1"/>
+<wire x1="18.625" y1="2.6369" x2="18.625" y2="6" width="0.254" layer="1"/>
+<wire x1="19.125" y1="2.1369" x2="18.625" y2="2.6369" width="0.254" layer="1"/>
+<wire x1="15.725" y1="8.125" x2="15.725" y2="9.625" width="0.254" layer="1"/>
+<wire x1="15.85" y1="8" x2="15.725" y2="8.125" width="0.254" layer="1"/>
+</signal>
+<signal name="N$11">
+<contactref element="M1" pad="G"/>
+<contactref element="U$1" pad="8"/>
+<wire x1="20.125" y1="6.3631" x2="20.125" y2="7.375" width="0.254" layer="1"/>
+<wire x1="20.125" y1="7.375" x2="19" y2="8.5" width="0.254" layer="1"/>
+<wire x1="19" y1="8.5" x2="19" y2="11.525" width="0.254" layer="1"/>
+</signal>
+<signal name="N$10">
+<contactref element="RSENSE" pad="1"/>
+<contactref element="RRAMP" pad="1"/>
+<contactref element="M1" pad="S$0"/>
+<contactref element="M1" pad="S$2"/>
+<contactref element="M1" pad="S$1"/>
+<wire x1="19" y1="12.825" x2="19" y2="13.475" width="0.254" layer="1"/>
+<wire x1="19" y1="12.175" x2="19" y2="12.825" width="0.254" layer="1"/>
+<wire x1="17.025" y1="9.625" x2="17.025" y2="12.375" width="0.254" layer="1"/>
+<wire x1="17.025" y1="12.375" x2="17.15" y2="12.5" width="0.254" layer="1"/>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="19.625" y="13.375"/>
+<vertex x="18.625" y="14.375"/>
+<vertex x="17.375" y="14.375"/>
+<vertex x="17.25" y="14.25"/>
+<vertex x="16.25" y="14.25"/>
+<vertex x="16.25" y="9"/>
+<vertex x="18.75" y="6.5"/>
+<vertex x="20" y="6.5"/>
+<vertex x="20" y="7.5"/>
+<vertex x="19" y="8.5"/>
+<vertex x="19" y="11.375"/>
+<vertex x="19.625" y="12"/>
+</polygon>
+</signal>
+<signal name="N$13">
+<contactref element="LIN" pad="P$2"/>
+<contactref element="M1" pad="D$0"/>
+<contactref element="M1" pad="D$1"/>
+<contactref element="M1" pad="D$3"/>
+<contactref element="M1" pad="D$2"/>
+<contactref element="M1" pad="D$4"/>
+<contactref element="CSEP$0" pad="1"/>
+<contactref element="CSEP$2" pad="1"/>
+<contactref element="CSEP$1" pad="1"/>
+<contactref element="CSEP$3" pad="1"/>
+<via x="23.25" y="12.375" extent="1-16" drill="0.6"/>
+<via x="24.625" y="12.375" extent="1-16" drill="0.6"/>
+<via x="22" y="14.5" extent="1-16" drill="0.6"/>
+<via x="20.625" y="14.5" extent="1-16" drill="0.6"/>
+<via x="17.75" y="15.5" extent="1-16" drill="0.6"/>
+<via x="17.75" y="17" extent="1-16" drill="0.6"/>
+<via x="17.75" y="18.5" extent="1-16" drill="0.6"/>
+<via x="17.75" y="20.125" extent="1-16" drill="0.6"/>
+<via x="17.75" y="21.75" extent="1-16" drill="0.6"/>
+<via x="17.75" y="23.25" extent="1-16" drill="0.6"/>
+<via x="17.75" y="24.875" extent="1-16" drill="0.6"/>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="16.875" y="26"/>
+<vertex x="16.875" y="14.875"/>
+<vertex x="18.875" y="14.875"/>
+<vertex x="20.125" y="13.625"/>
+<vertex x="20.125" y="11.625"/>
+<vertex x="19.5" y="11"/>
+<vertex x="19.5" y="8.75"/>
+<vertex x="20.625" y="7.625"/>
+<vertex x="24" y="7.625"/>
+<vertex x="25.125" y="6.5"/>
+<vertex x="26.75" y="6.5"/>
+<vertex x="27.375" y="7.125"/>
+<vertex x="27.375" y="12"/>
+<vertex x="25.625" y="12"/>
+<vertex x="24.75" y="12.875"/>
+<vertex x="24.75" y="26"/>
+</polygon>
+<polygon width="0.254" layer="16" thermals="no">
+<vertex x="27.75" y="12"/>
+<vertex x="19.75" y="12"/>
+<vertex x="19.75" y="14"/>
+<vertex x="18.875" y="14.875"/>
+<vertex x="16.875" y="14.875"/>
+<vertex x="16.875" y="26"/>
+<vertex x="32.375" y="26"/>
+<vertex x="32.375" y="14.375"/>
+<vertex x="30.125" y="14.375"/>
+</polygon>
+</signal>
+<signal name="N$12">
+<contactref element="LOUT" pad="P$2"/>
+<contactref element="D1" pad="ANODE$0"/>
+<contactref element="D1" pad="ANODE$1"/>
+<contactref element="CSEP$0" pad="2"/>
+<contactref element="CSEP$3" pad="2"/>
+<contactref element="CSEP$1" pad="2"/>
+<contactref element="CSEP$2" pad="2"/>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="25.25" y="26"/>
+<vertex x="25.25" y="13.125"/>
+<vertex x="25.875" y="12.5"/>
+<vertex x="37.125" y="12.5"/>
+<vertex x="39.125" y="14.375"/>
+<vertex x="39.125" y="16.875"/>
+<vertex x="38.75" y="17.25"/>
+<vertex x="33.75" y="17.25"/>
+<vertex x="32.375" y="18.875"/>
+<vertex x="32.375" y="26"/>
+</polygon>
+</signal>
+<signal name="N$15">
+<contactref element="RFB2" pad="2"/>
+<contactref element="RFB1" pad="1"/>
+<contactref element="U$1" pad="4"/>
+<wire x1="20.625" y1="2.1369" x2="20.625" y2="1.25" width="0.254" layer="1"/>
+<wire x1="20.625" y1="1.25" x2="20.75" y2="1.125" width="0.254" layer="1"/>
+<wire x1="20.75" y1="1.125" x2="21.65" y2="1.125" width="0.254" layer="1"/>
+<wire x1="21.65" y1="1.125" x2="22.625" y2="2.1" width="0.254" layer="1"/>
+<wire x1="22.625" y1="2.1" x2="24.2" y2="2.1" width="0.254" layer="1"/>
+<wire x1="24.2" y1="2.1" x2="24.225" y2="2.125" width="0.254" layer="1"/>
+</signal>
+<signal name="N$3">
+<contactref element="CCC" pad="1"/>
+<contactref element="U$1" pad="9"/>
+<wire x1="19.625" y1="5.625" x2="19.625" y2="6.3631" width="0.254" layer="1"/>
+<wire x1="20.25" y1="5" x2="19.625" y2="5.625" width="0.254" layer="1"/>
+<wire x1="20.25" y1="5" x2="22.725" y2="5" width="0.254" layer="1"/>
+</signal>
+<signal name="GND">
+<contactref element="CIN$0" pad="2"/>
+<contactref element="RUVLO1" pad="1"/>
+<contactref element="CCOMP2" pad="2"/>
+<contactref element="CCOMP" pad="2"/>
+<contactref element="U$1" pad="7"/>
+<contactref element="RFADJ" pad="1"/>
+<contactref element="CCC" pad="2"/>
+<contactref element="CRAMP" pad="2"/>
+<contactref element="RSENSE" pad="2"/>
+<contactref element="RFB1" pad="2"/>
+<contactref element="CBP" pad="2"/>
+<contactref element="CIN$2" pad="2"/>
+<contactref element="LOUT" pad="P$1"/>
+<contactref element="U$1" pad="5"/>
+<contactref element="CIN$1" pad="2"/>
+<contactref element="IN" pad="P$1"/>
+<contactref element="DTVS" pad="ANODE"/>
+<contactref element="IPOW" pad="C"/>
+<contactref element="OPOW" pad="C"/>
+<contactref element="COUT$1" pad="-"/>
+<contactref element="COUT$0" pad="-"/>
+<contactref element="OUT" pad="P$2"/>
+<contactref element="OUT1" pad="P$2"/>
+<wire x1="24.025" y1="4.8" x2="24.025" y2="5" width="0.254" layer="1"/>
+<wire x1="22.625" y1="3.4" x2="24.025" y2="4.8" width="0.254" layer="1"/>
+<wire x1="22.3881" y1="3.4" x2="22.625" y2="3.4" width="0.254" layer="1"/>
+<wire x1="21.375" y1="2.3869" x2="22.3881" y2="3.4" width="0.254" layer="1"/>
+<wire x1="20.625" y1="7.125" x2="20.625" y2="6.3631" width="0.254" layer="1"/>
+<wire x1="20.75" y1="7.25" x2="20.625" y2="7.125" width="0.254" layer="1"/>
+<wire x1="23.625" y1="7.25" x2="20.75" y2="7.25" width="0.254" layer="1"/>
+<wire x1="24.025" y1="6.85" x2="23.625" y2="7.25" width="0.254" layer="1"/>
+<wire x1="24.025" y1="6.25" x2="24.025" y2="6.85" width="0.254" layer="1"/>
+<wire x1="24.025" y1="5" x2="24.025" y2="6.25" width="0.254" layer="1"/>
+<wire x1="21.125" y1="2.1369" x2="21.375" y2="2.3869" width="0.254" layer="1"/>
+<wire x1="21.375" y1="2.3869" x2="21.375" y2="3.75" width="0.254" layer="1"/>
+<wire x1="21.375" y1="3.75" x2="20.875" y2="3.75" width="0.254" layer="16"/>
+<via x="21.375" y="3.75" extent="1-16" drill="0.6"/>
+<via x="31.125" y="4.625" extent="1-16" drill="0.6"/>
+<via x="54.5" y="5.75" extent="1-16" drill="0.6"/>
+<via x="54.125" y="3.25" extent="1-16" drill="0.6"/>
+<via x="53.875" y="1.5" extent="1-16" drill="0.6"/>
+<via x="48.875" y="6.375" extent="1-16" drill="0.6"/>
+<via x="43" y="4.625" extent="1-16" drill="0.6"/>
+<via x="38.875" y="6.5" extent="1-16" drill="0.6"/>
+<via x="30.5" y="2.625" extent="1-16" drill="0.6"/>
+<via x="27.625" y="1.5" extent="1-16" drill="0.6"/>
+<via x="24" y="3.625" extent="1-16" drill="0.6"/>
+<via x="26" y="5.375" extent="1-16" drill="0.6"/>
+<via x="28.5" y="6.5" extent="1-16" drill="0.6"/>
+<via x="27.875" y="3.75" extent="1-16" drill="0.6"/>
+<via x="31.125" y="6.5" extent="1-16" drill="0.6"/>
+<via x="35.5" y="6.375" extent="1-16" drill="0.6"/>
+<via x="45.5" y="4.125" extent="1-16" drill="0.6"/>
+<via x="39.875" y="12.25" extent="1-16" drill="0.6"/>
+<via x="40.75" y="9.875" extent="1-16" drill="0.6"/>
+<via x="49" y="11.875" extent="1-16" drill="0.6"/>
+<via x="47.375" y="8.5" extent="1-16" drill="0.6"/>
+<via x="46.75" y="6.5" extent="1-16" drill="0.6"/>
+<via x="52" y="6.5" extent="1-16" drill="0.6"/>
+<via x="56.625" y="7.125" extent="1-16" drill="0.6"/>
+<via x="61.25" y="6.625" extent="1-16" drill="0.6"/>
+<via x="59.125" y="10.375" extent="1-16" drill="0.6"/>
+<via x="50.75" y="13.75" extent="1-16" drill="0.6"/>
+<via x="49.5" y="17.25" extent="1-16" drill="0.6"/>
+<via x="54.5" y="16.5" extent="1-16" drill="0.6"/>
+<via x="61.75" y="17.375" extent="1-16" drill="0.6"/>
+<via x="6.75" y="11.125" extent="1-16" drill="0.6"/>
+<via x="6.75" y="8" extent="1-16" drill="0.6"/>
+<via x="6.75" y="3.875" extent="1-16" drill="0.6"/>
+<via x="8.375" y="6.25" extent="1-16" drill="0.6"/>
+<via x="11.625" y="8.5" extent="1-16" drill="0.6"/>
+<via x="13.5" y="10.125" extent="1-16" drill="0.6"/>
+<via x="12" y="13" extent="1-16" drill="0.6"/>
+<via x="9.875" y="10.25" extent="1-16" drill="0.6"/>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="63.875" y="20.375"/>
+<vertex x="55.625" y="20.375"/>
+<vertex x="54.75" y="21.25"/>
+<vertex x="48.875" y="21.25"/>
+<vertex x="47.5" y="19.875"/>
+<vertex x="47.5" y="10.5"/>
+<vertex x="42.875" y="10.5"/>
+<vertex x="40" y="13.375"/>
+<vertex x="38.875" y="13.375"/>
+<vertex x="37.25" y="11.875"/>
+<vertex x="28.375" y="11.875"/>
+<vertex x="27.875" y="11.375"/>
+<vertex x="27.875" y="6.875"/>
+<vertex x="27" y="6"/>
+<vertex x="24.875" y="6"/>
+<vertex x="23.625" y="7.125"/>
+<vertex x="20.5" y="7.125"/>
+<vertex x="20.5" y="5.5"/>
+<vertex x="19" y="5.5"/>
+<vertex x="16.875" y="7"/>
+<vertex x="16.875" y="0"/>
+<vertex x="63.875" y="0"/>
+</polygon>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="3.625" y="0"/>
+<vertex x="3.625" y="11.5"/>
+<vertex x="4.125" y="12.25"/>
+<vertex x="4.125" y="15.75"/>
+<vertex x="4.875" y="16.75"/>
+<vertex x="9.375" y="16.75"/>
+<vertex x="11.875" y="14.25"/>
+<vertex x="15.75" y="14.25"/>
+<vertex x="15.75" y="0"/>
+</polygon>
+<polygon width="0.254" layer="16" thermals="no">
+<vertex x="0" y="16.75"/>
+<vertex x="0" y="0"/>
+<vertex x="63.875" y="0"/>
+<vertex x="63.875" y="20.375"/>
+<vertex x="55.625" y="20.375"/>
+<vertex x="54.75" y="21.25"/>
+<vertex x="48.875" y="21.25"/>
+<vertex x="47.5" y="19.875"/>
+<vertex x="47.5" y="10.5"/>
+<vertex x="42.875" y="10.5"/>
+<vertex x="39.5" y="13.875"/>
+<vertex x="30.375" y="13.875"/>
+<vertex x="27.875" y="11.375"/>
+<vertex x="19" y="11.375"/>
+<vertex x="19" y="13.875"/>
+<vertex x="18.625" y="14.25"/>
+<vertex x="11.875" y="14.25"/>
+<vertex x="9.375" y="16.75"/>
+</polygon>
+<contactref element="JP1" pad="1"/>
+<contactref element="JP3" pad="1"/>
+<contactref element="JP2" pad="1"/>
+</signal>
+<signal name="N$14">
+<contactref element="D1" pad="CATHODE"/>
+<contactref element="RFB2" pad="1"/>
+<contactref element="ROPOW" pad="2"/>
+<contactref element="COUT$0" pad="+"/>
+<contactref element="COUT$1" pad="+"/>
+<contactref element="OUT" pad="P$1"/>
+<wire x1="63.125" y1="9.79" x2="63.125" y2="9.875" width="1.016" layer="16"/>
+<wire x1="63.125" y1="9.875" x2="63.125" y2="22.04" width="1.016" layer="16"/>
+<wire x1="63.125" y1="22.04" x2="56.835" y2="22.04" width="1.016" layer="16"/>
+<via x="54.625" y="23.375" extent="1-16" drill="0.6"/>
+<via x="51.875" y="23.5" extent="1-16" drill="0.6"/>
+<via x="60.125" y="22.625" extent="1-16" drill="0.6"/>
+<via x="44.375" y="20.125" extent="1-16" drill="0.6"/>
+<via x="43.75" y="23.375" extent="1-16" drill="0.6"/>
+<via x="33.625" y="23.875" extent="1-16" drill="0.6"/>
+<via x="33.625" y="22.5" extent="1-16" drill="0.6"/>
+<via x="33.625" y="21" extent="1-16" drill="0.6"/>
+<via x="33.625" y="19.625" extent="1-16" drill="0.6"/>
+<via x="41.375" y="15.75" extent="1-16" drill="0.6"/>
+<via x="45.125" y="17.125" extent="1-16" drill="0.6"/>
+<via x="40.75" y="17.25" extent="1-16" drill="0.6"/>
+<via x="43.875" y="18.75" extent="1-16" drill="0.6"/>
+<via x="47.25" y="24.625" extent="1-16" drill="0.6"/>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="33.125" y="26"/>
+<vertex x="33.125" y="19"/>
+<vertex x="34.25" y="17.75"/>
+<vertex x="39.25" y="17.75"/>
+<vertex x="39.75" y="17.25"/>
+<vertex x="39.75" y="14.375"/>
+<vertex x="43.125" y="11"/>
+<vertex x="47" y="11"/>
+<vertex x="47" y="20.25"/>
+<vertex x="48.5" y="21.75"/>
+<vertex x="55" y="21.75"/>
+<vertex x="55.875" y="20.875"/>
+<vertex x="63.875" y="20.875"/>
+<vertex x="63.875" y="26"/>
+</polygon>
+<polygon width="0.254" layer="16" thermals="no">
+<vertex x="63.875" y="26"/>
+<vertex x="33.125" y="26"/>
+<vertex x="33.125" y="19"/>
+<vertex x="34.25" y="17.75"/>
+<vertex x="39.25" y="17.75"/>
+<vertex x="39.75" y="17.25"/>
+<vertex x="39.75" y="14.375"/>
+<vertex x="43.125" y="11"/>
+<vertex x="47" y="11"/>
+<vertex x="47" y="20.25"/>
+<vertex x="48.5" y="21.75"/>
+<vertex x="55" y="21.75"/>
+<vertex x="55.875" y="20.875"/>
+<vertex x="63.875" y="20.875"/>
+</polygon>
+<wire x1="51.75" y1="1.453" x2="51.75" y2="0.5" width="0.3048" layer="1"/>
+<via x="63.125" y="9.875" extent="1-16" drill="0.6"/>
+<wire x1="51.75" y1="0.5" x2="63.375" y2="0.5" width="0.6096" layer="1"/>
+<wire x1="63.375" y1="0.5" x2="63.375" y2="9.875" width="0.6096" layer="1"/>
+<wire x1="63.375" y1="9.875" x2="63.125" y2="9.875" width="0.3048" layer="1"/>
+<contactref element="OUT1" pad="P$1"/>
+<wire x1="63.125" y1="9.79" x2="56.835" y2="9.79" width="1.016" layer="16"/>
+<contactref element="JP1" pad="2"/>
+<contactref element="JP2" pad="2"/>
+<contactref element="JP3" pad="2"/>
+<wire x1="37.465" y1="4.2545" x2="37.465" y2="1.7145" width="0.6096" layer="1"/>
+<wire x1="37.465" y1="1.7145" x2="37.465" y2="0.5" width="0.6096" layer="1"/>
+<wire x1="37.465" y1="0.5" x2="45.085" y2="0.5" width="0.6096" layer="1"/>
+<wire x1="45.085" y1="0.5" x2="51.75" y2="0.5" width="0.6096" layer="1"/>
+<wire x1="45.085" y1="1.7145" x2="45.085" y2="0.5" width="0.6096" layer="1"/>
+<wire x1="25.525" y1="2.125" x2="25.525" y2="0.5" width="0.3048" layer="1"/>
+<wire x1="25.525" y1="0.5" x2="37.465" y2="0.5" width="0.3048" layer="1"/>
+</signal>
+<signal name="N$2">
+<contactref element="IN" pad="P$2"/>
+<contactref element="RIPOW" pad="2"/>
+<contactref element="CIN$0" pad="1"/>
+<contactref element="RBP" pad="2"/>
+<contactref element="RUVLO2" pad="2"/>
+<contactref element="LIN" pad="P$1"/>
+<contactref element="CIN$2" pad="1"/>
+<contactref element="CIN$1" pad="1"/>
+<contactref element="DTVS" pad="CATHODE"/>
+<wire x1="8.725" y1="0.75" x2="8.725" y2="2" width="0.254" layer="1"/>
+<wire x1="1.615" y1="1" x2="2.875" y2="1" width="0.254" layer="1"/>
+<wire x1="2.875" y1="1" x2="3" y2="0.875" width="0.254" layer="16"/>
+<wire x1="3" y1="0.875" x2="7.5" y2="0.875" width="0.254" layer="16"/>
+<wire x1="7.5" y1="0.875" x2="7.625" y2="0.75" width="0.254" layer="1"/>
+<wire x1="7.625" y1="0.75" x2="8.725" y2="0.75" width="0.254" layer="1"/>
+<wire x1="8.725" y1="3.522" x2="9.203" y2="4" width="0.254" layer="1"/>
+<wire x1="8.725" y1="2" x2="8.725" y2="3.522" width="0.254" layer="1"/>
+<via x="2.875" y="1" extent="1-16" drill="0.6"/>
+<via x="7.5" y="0.875" extent="1-16" drill="0.6"/>
+<via x="1.25" y="24.75" extent="1-16" drill="0.6"/>
+<via x="1.125" y="21.125" extent="1-16" drill="0.6"/>
+<via x="1.125" y="18.5" extent="1-16" drill="0.6"/>
+<via x="4" y="18.375" extent="1-16" drill="0.6"/>
+<via x="11" y="17.5" extent="1-16" drill="0.6"/>
+<via x="11.125" y="20.375" extent="1-16" drill="0.6"/>
+<via x="11.125" y="23.125" extent="1-16" drill="0.6"/>
+<via x="8.25" y="23.25" extent="1-16" drill="0.6"/>
+<via x="4.375" y="23.25" extent="1-16" drill="0.6"/>
+<via x="4.375" y="25" extent="1-16" drill="0.6"/>
+<via x="8.25" y="25" extent="1-16" drill="0.6"/>
+<via x="11.125" y="25" extent="1-16" drill="0.6"/>
+<polygon width="0.254" layer="1" thermals="no">
+<vertex x="4.625" y="17.25"/>
+<vertex x="9.625" y="17.25"/>
+<vertex x="12.125" y="14.75"/>
+<vertex x="16.25" y="14.75"/>
+<vertex x="16.25" y="26"/>
+<vertex x="0" y="26"/>
+<vertex x="0" y="0"/>
+<vertex x="2.875" y="0"/>
+<vertex x="2.875" y="11.625"/>
+<vertex x="3.625" y="12.625"/>
+<vertex x="3.625" y="15.875"/>
+</polygon>
+<polygon width="0.254" layer="16" thermals="no">
+<vertex x="0" y="26"/>
+<vertex x="0" y="17.25"/>
+<vertex x="9.625" y="17.25"/>
+<vertex x="12.125" y="14.75"/>
+<vertex x="16.25" y="14.75"/>
+<vertex x="16.25" y="26"/>
+</polygon>
+</signal>
+<signal name="N$16">
+<contactref element="IPOW" pad="A"/>
+<contactref element="RIPOW" pad="1"/>
+<wire x1="12.047" y1="5.747" x2="12.05" y2="5.75" width="0.254" layer="1"/>
+<wire x1="12.047" y1="4" x2="12.047" y2="5.747" width="0.254" layer="1"/>
+</signal>
+<signal name="N$17">
+<contactref element="OPOW" pad="A"/>
+<contactref element="ROPOW" pad="1"/>
+<wire x1="51.75" y1="4.297" x2="51.75" y2="4.25" width="0.3048" layer="1"/>
+<wire x1="49.8" y1="4.375" x2="49.8" y2="4.297" width="0.3048" layer="1"/>
+<wire x1="49.8" y1="4.297" x2="51.75" y2="4.297" width="0.3048" layer="1"/>
+</signal>
+</signals>
+</board>
+</drawing>
+</eagle>
diff --git a/gyro_board/schematic/power_converter.sch b/gyro_board/schematic/power_converter.sch
new file mode 100644
index 0000000..e759960
--- /dev/null
+++ b/gyro_board/schematic/power_converter.sch
@@ -0,0 +1,10426 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE eagle SYSTEM "eagle.dtd">
+<eagle version="6.4">
+<drawing>
+<settings>
+<setting alwaysvectorfont="no"/>
+<setting verticaltext="up"/>
+</settings>
+<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>
+<layers>
+<layer number="1" name="Top" color="4" fill="1" visible="no" active="no"/>
+<layer number="16" name="Bottom" color="1" fill="1" visible="no" active="no"/>
+<layer number="17" name="Pads" color="2" fill="1" visible="no" active="no"/>
+<layer number="18" name="Vias" color="2" fill="1" visible="no" active="no"/>
+<layer number="19" name="Unrouted" color="6" fill="1" visible="no" active="no"/>
+<layer number="20" name="Dimension" color="15" fill="1" visible="no" active="no"/>
+<layer number="21" name="tPlace" color="7" fill="1" visible="no" active="no"/>
+<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="no"/>
+<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="no"/>
+<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="no"/>
+<layer number="25" name="tNames" color="7" fill="1" visible="no" active="no"/>
+<layer number="26" name="bNames" color="7" fill="1" visible="no" active="no"/>
+<layer number="27" name="tValues" color="7" fill="1" visible="no" active="no"/>
+<layer number="28" name="bValues" color="7" fill="1" visible="no" active="no"/>
+<layer number="29" name="tStop" color="7" fill="3" visible="no" active="no"/>
+<layer number="30" name="bStop" color="7" fill="6" visible="no" active="no"/>
+<layer number="31" name="tCream" color="7" fill="4" visible="no" active="no"/>
+<layer number="32" name="bCream" color="7" fill="5" visible="no" active="no"/>
+<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="no"/>
+<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="no"/>
+<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="no"/>
+<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="no"/>
+<layer number="37" name="tTest" color="7" fill="1" visible="no" active="no"/>
+<layer number="38" name="bTest" color="7" fill="1" visible="no" active="no"/>
+<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="no"/>
+<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="no"/>
+<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="no"/>
+<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="no"/>
+<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="no"/>
+<layer number="44" name="Drills" color="7" fill="1" visible="no" active="no"/>
+<layer number="45" name="Holes" color="7" fill="1" visible="no" active="no"/>
+<layer number="46" name="Milling" color="3" fill="1" visible="no" active="no"/>
+<layer number="47" name="Measures" color="7" fill="1" visible="no" active="no"/>
+<layer number="48" name="Document" color="7" fill="1" visible="no" active="no"/>
+<layer number="49" name="Reference" color="7" fill="1" visible="no" active="no"/>
+<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
+<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="no"/>
+<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="no"/>
+<layer number="53" name="tGND_GNDA" color="7" fill="1" visible="no" active="no"/>
+<layer number="54" name="bGND_GNDA" color="7" fill="1" visible="no" active="no"/>
+<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
+<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
+<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
+<layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"/>
+<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
+<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
+<layer number="99" name="Anatomie" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="100" name="Muster" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="101" name="Patch_Top" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="102" name="Brücken" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="103" name="CableCode" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="104" name="Name" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
+<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
+<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
+<layer number="110" name="tdokum" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="111" name="bdokum" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="116" name="Patch_BOT" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
+<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="199" name="L$199" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="200" name="200bmp" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="201" name="201bmp" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="202" name="202bmp" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
+<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
+<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
+<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
+<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
+<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
+<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
+<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
+<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
+<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
+<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
+<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
+<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
+<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
+<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
+<layer number="250" name="Descript" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="251" name="SMDround" color="7" fill="1" visible="yes" active="yes"/>
+<layer number="254" name="Cool" color="7" fill="1" visible="yes" active="yes"/>
+</layers>
+<schematic xreflabel="%F%N/%S.%C%R" xrefpart="/%S.%C%R">
+<libraries>
+<library name="custom_parts">
+<packages>
+<package name="MSOP10">
+<description>&lt;b&gt;10-Lead Mini Small Outline Package [MSOP]&lt;/b&gt; (RM-10)&lt;p&gt;
+Source: http://www.analog.com/UploadedFiles/Data_Sheets/35641221898805SSM2167_b.pdf&lt;br&gt;
+COMPLIANT TO JEDEC STANDARDS MO-187BA</description>
+<wire x1="-1.4" y1="1.4" x2="1.4" y2="1.4" width="0.2032" layer="21"/>
+<wire x1="1.4" y1="1.4" x2="1.4" y2="-1.4" width="0.2032" layer="21"/>
+<wire x1="1.4" y1="-1.4" x2="-1.4" y2="-1.4" width="0.2032" layer="21"/>
+<wire x1="-1.4" y1="-1.4" x2="-1.4" y2="1.4" width="0.2032" layer="21"/>
+<wire x1="-0.8" y1="-1.1" x2="-0.8" y2="-0.5" width="0.2032" layer="21" curve="-180"/>
+<wire x1="-0.8" y1="-0.5" x2="-0.8" y2="-1.1" width="0.2032" layer="21"/>
+<smd name="1" x="-1" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="2" x="-0.5" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="3" x="0" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="4" x="0.5" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="5" x="1" y="-2.1131" dx="0.25" dy="1" layer="1"/>
+<smd name="6" x="1" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="7" x="0.5" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="8" x="0" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="9" x="-0.5" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<smd name="10" x="-1" y="2.1131" dx="0.25" dy="1" layer="1" rot="R180"/>
+<text x="-2.032" y="-2.54" size="1.27" layer="25" ratio="10" rot="R90">&gt;NAME</text>
+<text x="3.302" y="-2.54" size="1.27" layer="27" ratio="10" rot="R90">&gt;VALUE</text>
+<rectangle x1="-1.1244" y1="-2.5" x2="-0.8744" y2="-1.5" layer="51"/>
+<rectangle x1="-0.6244" y1="-2.5" x2="-0.3744" y2="-1.5" layer="51"/>
+<rectangle x1="-0.1244" y1="-2.5" x2="0.1256" y2="-1.5" layer="51"/>
+<rectangle x1="0.3756" y1="-2.5" x2="0.6256" y2="-1.5" layer="51"/>
+<rectangle x1="0.8756" y1="-2.5" x2="1.1256" y2="-1.5" layer="51"/>
+<rectangle x1="0.8744" y1="1.5" x2="1.1244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="0.3744" y1="1.5" x2="0.6244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-0.1256" y1="1.5" x2="0.1244" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-0.6256" y1="1.5" x2="-0.3756" y2="2.5" layer="51" rot="R180"/>
+<rectangle x1="-1.1256" y1="1.5" x2="-0.8756" y2="2.5" layer="51" rot="R180"/>
+</package>
+<package name="L2012C">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.864" y1="0.54" x2="0.864" y2="0.54" width="0.1016" layer="51"/>
+<wire x1="-0.864" y1="-0.553" x2="0.864" y2="-0.553" width="0.1016" layer="51"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1" y="0" dx="1" dy="1" layer="1"/>
+<smd name="2" x="1" y="0" dx="1" dy="1" layer="1"/>
+<text x="-1.016" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.016" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.143" y1="-0.6096" x2="-0.843" y2="0.5903" layer="51"/>
+<rectangle x1="0.8382" y1="-0.6096" x2="1.1382" y2="0.5903" layer="51"/>
+<rectangle x1="-0.3" y1="-0.4001" x2="0.3" y2="0.4001" layer="35"/>
+</package>
+<package name="L2825P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.762" y1="1.2" x2="0.762" y2="1.2" width="0.1016" layer="51"/>
+<wire x1="-0.762" y1="-1.213" x2="0.762" y2="-1.213" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="1.34" y1="-0.965" x2="1.34" y2="0.965" width="0.1016" layer="51"/>
+<wire x1="-1.34" y1="0.965" x2="-1.34" y2="-0.965" width="0.1016" layer="51"/>
+<circle x="0" y="0" radius="0.6604" width="0.1524" layer="51"/>
+<smd name="1" x="-1.2" y="0" dx="1.4" dy="2.4" layer="1"/>
+<smd name="2" x="1.2" y="0" dx="1.4" dy="2.4" layer="1"/>
+<text x="-1.27" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.7366" y1="-1.27" x2="1.3208" y2="1.27" layer="51"/>
+<rectangle x1="-1.3208" y1="-1.27" x2="-0.7366" y2="1.27" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="L3216C">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-1.27" y1="0.896" x2="1.27" y2="0.896" width="0.1016" layer="51"/>
+<wire x1="-1.27" y1="-0.883" x2="1.27" y2="-0.883" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-0.762" y1="0.896" x2="0.762" y2="0.896" width="0.1016" layer="21"/>
+<wire x1="-0.762" y1="-0.883" x2="0.762" y2="-0.883" width="0.1016" layer="21"/>
+<smd name="1" x="-1.5" y="0" dx="1.2" dy="1.6" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.2" dy="1.6" layer="1"/>
+<text x="-1.524" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.524" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7526" y1="-0.9525" x2="-1.2525" y2="0.9474" layer="51"/>
+<rectangle x1="1.2446" y1="-0.9525" x2="1.7447" y2="0.9474" layer="51"/>
+<rectangle x1="-0.4001" y1="-0.5999" x2="0.4001" y2="0.5999" layer="35"/>
+</package>
+<package name="L3225M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-1.575" y1="1.27" x2="1.575" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="1.575" y1="1.27" x2="1.575" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="1.575" y1="-1.27" x2="-1.575" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-1.575" y1="-1.27" x2="-1.575" y2="1.27" width="0.1524" layer="51"/>
+<wire x1="-1.651" y1="0.94" x2="-1.651" y2="-0.94" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="0.94" x2="1.651" y2="-0.94" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<text x="-1.397" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-1" x2="0.3" y2="1" layer="35"/>
+</package>
+<package name="L3225P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-1.676" y1="0.845" x2="1.676" y2="0.845" width="0.1524" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-1.676" y1="0.838" x2="-1.676" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="-1.168" y1="0.838" x2="-1.168" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="1.168" y1="0.838" x2="1.168" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="1.676" y1="0.838" x2="1.676" y2="-0.838" width="0.1524" layer="51"/>
+<wire x1="1.676" y1="-0.845" x2="-1.676" y2="-0.845" width="0.1524" layer="51"/>
+<circle x="0" y="0" radius="0.7117" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.8" dy="2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.8" dy="2" layer="1"/>
+<text x="-1.397" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="L3230M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-1.575" y1="1.27" x2="1.575" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="1.575" y1="1.27" x2="1.575" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="1.575" y1="-1.27" x2="-1.575" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-1.575" y1="-1.27" x2="-1.575" y2="1.27" width="0.1524" layer="51"/>
+<wire x1="-1.651" y1="0.94" x2="-1.651" y2="-0.94" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="0.94" x2="1.651" y2="-0.94" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.2" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-1" x2="0.3" y2="1" layer="35"/>
+</package>
+<package name="L4035M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.083" y1="0.686" x2="-2.083" y2="-0.686" width="0.1524" layer="51"/>
+<wire x1="2.083" y1="0.686" x2="2.083" y2="-0.686" width="0.1524" layer="51"/>
+<wire x1="-1.981" y1="1.524" x2="-1.981" y2="-1.524" width="0.1524" layer="51"/>
+<wire x1="-1.981" y1="-1.524" x2="1.981" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="1.981" y1="-1.524" x2="1.981" y2="1.524" width="0.1524" layer="51"/>
+<wire x1="1.981" y1="1.524" x2="-1.981" y2="1.524" width="0.1524" layer="21"/>
+<smd name="1" x="-1.6" y="0" dx="2.2" dy="1.4" layer="1"/>
+<smd name="2" x="1.6" y="0" dx="2.2" dy="1.4" layer="1"/>
+<text x="-1.651" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.651" y="-3.048" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="L4516C">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="0.983" x2="2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-0.983" x2="-2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-0.983" x2="-2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-1.626" y1="0.54" x2="1.626" y2="0.54" width="0.1016" layer="51"/>
+<wire x1="-1.626" y1="-0.527" x2="1.626" y2="-0.527" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="0.983" x2="2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.372" y1="0.54" x2="1.372" y2="0.54" width="0.1016" layer="21"/>
+<wire x1="-1.372" y1="-0.527" x2="1.372" y2="-0.527" width="0.1016" layer="21"/>
+<smd name="1" x="-2.1" y="0" dx="1" dy="1.6" layer="1"/>
+<smd name="2" x="2.1" y="0" dx="1" dy="1.6" layer="1"/>
+<text x="-2.032" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.032" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.4003" y1="-0.5969" x2="-1.6002" y2="0.603" layer="51"/>
+<rectangle x1="1.6002" y1="-0.603" x2="2.4003" y2="0.5969" layer="51"/>
+<rectangle x1="-0.7" y1="-0.3" x2="0.7" y2="0.3" layer="35"/>
+</package>
+<package name="L4532M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+molded</description>
+<wire x1="-3.473" y1="1.983" x2="3.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="-1.983" x2="-3.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-3.473" y1="-1.983" x2="-3.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="1.983" x2="3.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.21" y1="-1.626" x2="2.21" y2="-1.626" width="0.1524" layer="21"/>
+<wire x1="2.21" y1="1.626" x2="-2.21" y2="1.626" width="0.1524" layer="21"/>
+<wire x1="-2.337" y1="1.041" x2="-2.337" y2="-1.041" width="0.1524" layer="51"/>
+<wire x1="2.337" y1="1.041" x2="2.337" y2="-1.041" width="0.1524" layer="51"/>
+<wire x1="-2.21" y1="1.626" x2="-2.21" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="2.21" y1="1.626" x2="2.21" y2="-1.626" width="0.1524" layer="51"/>
+<smd name="1" x="-1.9" y="0" dx="2" dy="2.4" layer="1"/>
+<smd name="2" x="1.9" y="0" dx="2" dy="2.4" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.302" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L4532P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-2.311" y1="1.675" x2="2.311" y2="1.675" width="0.1524" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.311" y1="-1.653" x2="2.311" y2="-1.653" width="0.1524" layer="51"/>
+<wire x1="-2.311" y1="1.626" x2="-2.311" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="2.311" y1="1.675" x2="2.311" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="-1.448" y1="1.651" x2="-1.448" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="1.448" y1="1.626" x2="1.448" y2="-1.626" width="0.1524" layer="51"/>
+<wire x1="-0.66" y1="1.675" x2="0.66" y2="1.675" width="0.1524" layer="21"/>
+<wire x1="-0.66" y1="-1.653" x2="0.66" y2="-1.653" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="1.3211" width="0.1524" layer="51"/>
+<smd name="1" x="-2" y="0" dx="1.8" dy="3.6" layer="1"/>
+<smd name="2" x="2" y="0" dx="1.8" dy="3.6" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.302" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L5038P">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt; &lt;p&gt;
+precision wire wound</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-2.286" y1="1.853" x2="2.311" y2="1.853" width="0.1016" layer="21"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.286" y1="-1.856" x2="2.311" y2="-1.856" width="0.1016" layer="21"/>
+<wire x1="2.389" y1="-1.27" x2="2.389" y2="1.27" width="0.1016" layer="51"/>
+<wire x1="-2.386" y1="-1.27" x2="-2.386" y2="1.27" width="0.1016" layer="51"/>
+<wire x1="1.602" y1="-1.854" x2="1.602" y2="1.854" width="0.1016" layer="51"/>
+<wire x1="-1.624" y1="-1.854" x2="-1.624" y2="1.854" width="0.1016" layer="51"/>
+<wire x1="-2.31" y1="-1.854" x2="-2.31" y2="1.854" width="0.1016" layer="51"/>
+<wire x1="2.313" y1="-1.854" x2="2.313" y2="1.854" width="0.1016" layer="51"/>
+<circle x="0" y="0" radius="1.4732" width="0.1524" layer="51"/>
+<smd name="1" x="-2.2" y="0" dx="1.4" dy="2.8" layer="1"/>
+<smd name="2" x="2.2" y="0" dx="1.4" dy="2.8" layer="1"/>
+<text x="-2.159" y="2.159" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.159" y="-3.429" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L5650M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt; &lt;p&gt;
+molded</description>
+<wire x1="-3.973" y1="2.983" x2="3.973" y2="2.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="-2.983" x2="-3.973" y2="-2.983" width="0.0508" layer="39"/>
+<wire x1="-3.973" y1="-2.983" x2="-3.973" y2="2.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="2.983" x2="3.973" y2="-2.983" width="0.0508" layer="39"/>
+<wire x1="-2.108" y1="-2.591" x2="2.083" y2="-2.591" width="0.1524" layer="21"/>
+<wire x1="2.083" y1="2.591" x2="-2.108" y2="2.591" width="0.1524" layer="21"/>
+<wire x1="2.184" y1="2.032" x2="2.184" y2="-2.032" width="0.1524" layer="51"/>
+<wire x1="-2.21" y1="2.032" x2="-2.21" y2="-2.032" width="0.1524" layer="51"/>
+<wire x1="-2.108" y1="2.591" x2="-2.108" y2="-2.591" width="0.1524" layer="51"/>
+<wire x1="2.083" y1="2.591" x2="2.083" y2="-2.591" width="0.1524" layer="51"/>
+<smd name="1" x="-2.5" y="0" dx="1.8" dy="4" layer="1"/>
+<smd name="2" x="2.5" y="0" dx="1.8" dy="4" layer="1"/>
+<text x="-2.54" y="2.921" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.54" y="-4.191" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="L8530M">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt; &lt;p&gt;
+molded</description>
+<wire x1="-5.473" y1="1.983" x2="5.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="5.473" y1="-1.983" x2="-5.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-5.473" y1="-1.983" x2="-5.473" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="5.473" y1="1.983" x2="5.473" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-4.191" y1="-1.524" x2="-4.191" y2="1.524" width="0.1524" layer="51"/>
+<wire x1="4.191" y1="1.524" x2="-4.191" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="4.191" y1="-1.524" x2="-4.191" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-4.293" y1="-0.66" x2="-4.293" y2="0.66" width="0.1524" layer="51"/>
+<wire x1="4.293" y1="-0.66" x2="4.293" y2="0.66" width="0.1524" layer="51"/>
+<wire x1="4.191" y1="-1.524" x2="4.191" y2="1.524" width="0.1524" layer="51"/>
+<smd name="1" x="-3.7" y="0" dx="2.4" dy="1.4" layer="1"/>
+<smd name="2" x="3.7" y="0" dx="2.4" dy="1.4" layer="1"/>
+<text x="-3.683" y="1.778" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.683" y="-3.048" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="0204/5">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 5 mm</description>
+<wire x1="2.54" y1="0" x2="2.032" y2="0" width="0.508" layer="51"/>
+<wire x1="-2.54" y1="0" x2="-2.032" y2="0" width="0.508" layer="51"/>
+<wire x1="-1.778" y1="0.635" x2="-1.524" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.778" y1="-0.635" x2="-1.524" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.524" y1="-0.889" x2="1.778" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.524" y1="0.889" x2="1.778" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.778" y1="-0.635" x2="-1.778" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-1.524" y1="0.889" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="0.762" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.524" y1="-0.889" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="-0.762" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="0.762" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="0.762" x2="-1.143" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="-0.762" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="-0.762" x2="-1.143" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="1.524" y1="0.889" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.524" y1="-0.889" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.635" x2="1.778" y2="0.635" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.0066" y="1.1684" size="0.9906" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.1336" y="-2.3114" size="0.9906" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-2.032" y1="-0.254" x2="-1.778" y2="0.254" layer="51"/>
+<rectangle x1="1.778" y1="-0.254" x2="2.032" y2="0.254" layer="51"/>
+</package>
+<package name="0204/7">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 7.5 mm</description>
+<wire x1="3.81" y1="0" x2="2.921" y2="0" width="0.508" layer="51"/>
+<wire x1="-3.81" y1="0" x2="-2.921" y2="0" width="0.508" layer="51"/>
+<wire x1="-2.54" y1="0.762" x2="-2.286" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="-0.762" x2="-2.286" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="-1.016" x2="2.54" y2="-0.762" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="1.016" x2="2.54" y2="0.762" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="-0.762" x2="-2.54" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="1.016" x2="-1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-1.778" y1="0.889" x2="-1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="-1.016" x2="-1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-1.778" y1="-0.889" x2="-1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.889" x2="1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.889" x2="-1.778" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.889" x2="1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.889" x2="-1.778" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="1.016" x2="1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="-1.016" x2="1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="-0.762" x2="2.54" y2="0.762" width="0.1524" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.2954" size="0.9906" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.6256" y="-0.4826" size="0.9906" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.54" y1="-0.254" x2="2.921" y2="0.254" layer="21"/>
+<rectangle x1="-2.921" y1="-0.254" x2="-2.54" y2="0.254" layer="21"/>
+</package>
+<package name="0204V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 2.5 mm</description>
+<wire x1="-1.27" y1="0" x2="1.27" y2="0" width="0.508" layer="51"/>
+<wire x1="-0.127" y1="0" x2="0.127" y2="0" width="0.508" layer="21"/>
+<circle x="-1.27" y="0" radius="0.889" width="0.1524" layer="51"/>
+<circle x="-1.27" y="0" radius="0.635" width="0.0508" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.1336" y="1.1684" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.1336" y="-2.3114" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/10">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 10 mm</description>
+<wire x1="5.08" y1="0" x2="4.064" y2="0" width="0.6096" layer="51"/>
+<wire x1="-5.08" y1="0" x2="-4.064" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.048" y="1.524" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.2606" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/12">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 12 mm</description>
+<wire x1="6.35" y1="0" x2="5.334" y2="0" width="0.6096" layer="51"/>
+<wire x1="-6.35" y1="0" x2="-5.334" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="4.445" y1="0" x2="4.064" y2="0" width="0.6096" layer="21"/>
+<wire x1="-4.445" y1="0" x2="-4.064" y2="0" width="0.6096" layer="21"/>
+<pad name="1" x="-6.35" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="6.35" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.175" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+<rectangle x1="4.445" y1="-0.3048" x2="5.3086" y2="0.3048" layer="21"/>
+<rectangle x1="-5.3086" y1="-0.3048" x2="-4.445" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 15mm</description>
+<wire x1="7.62" y1="0" x2="6.604" y2="0" width="0.6096" layer="51"/>
+<wire x1="-7.62" y1="0" x2="-6.604" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="5.715" y1="0" x2="4.064" y2="0" width="0.6096" layer="21"/>
+<wire x1="-5.715" y1="0" x2="-4.064" y2="0" width="0.6096" layer="21"/>
+<pad name="1" x="-7.62" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.175" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+<rectangle x1="5.715" y1="-0.3048" x2="6.5786" y2="0.3048" layer="21"/>
+<rectangle x1="-6.5786" y1="-0.3048" x2="-5.715" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/2V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 2.5 mm</description>
+<wire x1="-1.27" y1="0" x2="-0.381" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.254" y1="0" x2="0.254" y2="0" width="0.6096" layer="21"/>
+<wire x1="0.381" y1="0" x2="1.27" y2="0" width="0.6096" layer="51"/>
+<circle x="-1.27" y="0" radius="1.27" width="0.1524" layer="21"/>
+<circle x="-1.27" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-0.0508" y="1.016" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.0508" y="-2.2352" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/5V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 5 mm</description>
+<wire x1="-2.54" y1="0" x2="-0.889" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.762" y1="0" x2="0.762" y2="0" width="0.6096" layer="21"/>
+<wire x1="0.889" y1="0" x2="2.54" y2="0" width="0.6096" layer="51"/>
+<circle x="-2.54" y="0" radius="1.27" width="0.1016" layer="21"/>
+<circle x="-2.54" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.143" y="0.889" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.143" y="-2.159" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/7">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 7.5 mm</description>
+<wire x1="-3.81" y1="0" x2="-3.429" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="3.429" y1="0" x2="3.81" y2="0" width="0.6096" layer="51"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.5588" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-3.429" y1="-0.3048" x2="-3.175" y2="0.3048" layer="51"/>
+<rectangle x1="3.175" y1="-0.3048" x2="3.429" y2="0.3048" layer="51"/>
+</package>
+<package name="L1812">
+<description>&lt;b&gt;INDUCTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+</package>
+<package name="TJ3-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-3.65" y1="8.15" x2="3.65" y2="8.15" width="0.2032" layer="21"/>
+<wire x1="3.65" y1="-8.15" x2="-3.65" y2="-8.15" width="0.2032" layer="21"/>
+<wire x1="-3.65" y1="-8.15" x2="-3.65" y2="-1.1" width="0.2032" layer="21"/>
+<wire x1="-3.65" y1="-1.1" x2="-3.65" y2="1.1" width="0.2032" layer="51"/>
+<wire x1="-3.65" y1="1.1" x2="-3.65" y2="8.15" width="0.2032" layer="21"/>
+<wire x1="3.65" y1="8.15" x2="3.65" y2="1.1" width="0.2032" layer="21"/>
+<wire x1="3.65" y1="1.1" x2="3.65" y2="-1.1" width="0.2032" layer="51"/>
+<wire x1="3.65" y1="-1.1" x2="3.65" y2="-8.15" width="0.2032" layer="21"/>
+<pad name="1" x="-3.3" y="0" drill="0.9"/>
+<pad name="2" x="3.3" y="0" drill="0.9"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ3-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="8.3" width="0.2032" layer="27"/>
+<pad name="1" x="-7.35" y="0" drill="0.9"/>
+<pad name="2" x="7.35" y="0" drill="0.9"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ4-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-4.95" y1="11.05" x2="4.95" y2="11.05" width="0.2032" layer="21"/>
+<wire x1="4.95" y1="11.05" x2="4.95" y2="-11.05" width="0.2032" layer="21"/>
+<wire x1="4.95" y1="-11.05" x2="-4.95" y2="-11.05" width="0.2032" layer="21"/>
+<wire x1="-4.95" y1="-11.05" x2="-4.95" y2="11.05" width="0.2032" layer="21"/>
+<pad name="1" x="-3.935" y="0" drill="0.9"/>
+<pad name="2" x="3.935" y="0" drill="0.9"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ4-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="11.1" width="0.2032" layer="27"/>
+<pad name="1" x="-9.9" y="0" drill="0.9"/>
+<pad name="2" x="9.9" y="0" drill="0.9"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ5-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-5.55" y1="12.55" x2="5.55" y2="12.55" width="0.2032" layer="21"/>
+<wire x1="5.55" y1="12.55" x2="5.55" y2="-12.55" width="0.2032" layer="21"/>
+<wire x1="5.55" y1="-12.55" x2="-5.55" y2="-12.55" width="0.2032" layer="21"/>
+<wire x1="-5.55" y1="-12.55" x2="-5.55" y2="12.55" width="0.2032" layer="21"/>
+<pad name="1" x="-4.7" y="0" drill="0.9"/>
+<pad name="2" x="4.7" y="0" drill="0.9"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ5-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="12.6" width="0.2032" layer="27"/>
+<pad name="1" x="-11.45" y="0" drill="0.9"/>
+<pad name="2" x="11.45" y="0" drill="0.9"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ6-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-10.95" y1="17.45" x2="10.95" y2="17.45" width="0.2032" layer="21"/>
+<wire x1="10.95" y1="17.45" x2="10.95" y2="-17.45" width="0.2032" layer="21"/>
+<wire x1="10.95" y1="-17.45" x2="-10.95" y2="-17.45" width="0.2032" layer="21"/>
+<wire x1="-10.95" y1="-17.45" x2="-10.95" y2="17.45" width="0.2032" layer="21"/>
+<pad name="1" x="-9.25" y="0" drill="1.3"/>
+<pad name="2" x="9.25" y="0" drill="1.3"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ6-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="17.5" width="0.2032" layer="27"/>
+<pad name="1" x="-15.5" y="0" drill="1.3"/>
+<pad name="2" x="15.5" y="0" drill="1.3"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ7-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-9.45" y1="20.85" x2="9.43" y2="20.85" width="0.2032" layer="21"/>
+<wire x1="9.43" y1="20.85" x2="9.45" y2="-20.85" width="0.2032" layer="21"/>
+<wire x1="9.45" y1="-20.85" x2="-9.45" y2="-20.85" width="0.2032" layer="21"/>
+<wire x1="-9.45" y1="-20.85" x2="-9.45" y2="20.85" width="0.2032" layer="21"/>
+<pad name="1" x="-7.9" y="0" drill="1.3"/>
+<pad name="2" x="7.9" y="0" drill="1.3"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ7-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="20.9" width="0.2032" layer="27"/>
+<pad name="1" x="-18.8" y="0" drill="1.3"/>
+<pad name="2" x="18.8" y="0" drill="1.3"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ8-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-12.55" y1="24.25" x2="12.55" y2="24.25" width="0.2032" layer="21"/>
+<wire x1="12.55" y1="24.25" x2="12.55" y2="-24.25" width="0.2032" layer="21"/>
+<wire x1="12.55" y1="-24.25" x2="-12.55" y2="-24.25" width="0.2032" layer="21"/>
+<wire x1="-12.55" y1="-24.25" x2="-12.55" y2="24.25" width="0.2032" layer="21"/>
+<pad name="1" x="-10.4" y="0" drill="1.5"/>
+<pad name="2" x="10.4" y="0" drill="1.5"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ8-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="24.6" width="0.2032" layer="27"/>
+<pad name="1" x="-22.35" y="0" drill="1.5"/>
+<pad name="2" x="22.35" y="0" drill="1.5"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="TJ9-U1">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<wire x1="-17.95" y1="33.75" x2="17.95" y2="33.75" width="0.2032" layer="21"/>
+<wire x1="17.95" y1="33.75" x2="17.95" y2="-33.75" width="0.2032" layer="21"/>
+<wire x1="17.95" y1="-33.75" x2="-17.95" y2="-33.75" width="0.2032" layer="21"/>
+<wire x1="-17.95" y1="-33.75" x2="-17.95" y2="33.75" width="0.2032" layer="21"/>
+<pad name="1" x="-15.9" y="0" drill="1.8"/>
+<pad name="2" x="15.9" y="0" drill="1.8"/>
+<text x="-0.635" y="-5.08" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-5.08" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+</package>
+<package name="TJ9-U2">
+<description>&lt;b&gt;Inductor&lt;/b&gt;&lt;p&gt;
+Source: TJ-Serie Vishay.pdf</description>
+<circle x="0" y="0" radius="34.5" width="0.2032" layer="27"/>
+<pad name="1" x="-31.6" y="0" drill="1.8"/>
+<pad name="2" x="31.6" y="0" drill="1.8"/>
+<text x="-5.08" y="0.635" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="POWER-CHOKE_WE-TPC">
+<description>&lt;b&gt;POWER-CHOKE WE-TPC&lt;/b&gt;&lt;p&gt;
+Würth Elektronik, Partnumber: 744053220&lt;br&gt;
+Source: WE-TPC 744053220.pdf</description>
+<wire x1="-2.8" y1="2.3" x2="-2.3" y2="2.8" width="0.2" layer="51" curve="-90"/>
+<wire x1="-2.3" y1="2.8" x2="2.3" y2="2.8" width="0.2" layer="51"/>
+<wire x1="2.3" y1="2.8" x2="2.8" y2="2.3" width="0.2" layer="51" curve="-90"/>
+<wire x1="2.8" y1="2.3" x2="2.8" y2="-2.3" width="0.2" layer="51"/>
+<wire x1="2.8" y1="-2.3" x2="2.3" y2="-2.8" width="0.2" layer="51" curve="-90"/>
+<wire x1="2.3" y1="-2.8" x2="-2.3" y2="-2.8" width="0.2" layer="51"/>
+<wire x1="-2.3" y1="-2.8" x2="-2.8" y2="-2.3" width="0.2" layer="51" curve="-90"/>
+<wire x1="-2.8" y1="-2.3" x2="-2.8" y2="2.3" width="0.2" layer="51"/>
+<wire x1="-2.8" y1="0.65" x2="-2.8" y2="-0.65" width="0.2" layer="21"/>
+<wire x1="-2" y1="0.65" x2="-2" y2="-0.65" width="0.2" layer="21" curve="36.008323"/>
+<wire x1="2.8" y1="-0.65" x2="2.8" y2="0.65" width="0.2" layer="21"/>
+<wire x1="2" y1="-0.65" x2="2" y2="0.65" width="0.2" layer="21" curve="36.008323"/>
+<circle x="0" y="0" radius="2.1" width="0.2" layer="51"/>
+<smd name="1" x="0" y="2.05" dx="6.3" dy="2.2" layer="1" roundness="25"/>
+<smd name="2" x="0" y="-2.05" dx="6.3" dy="2.2" layer="1" roundness="25" rot="R180"/>
+<text x="-3.5" y="3.5" size="1.778" layer="25">&gt;NAME</text>
+<text x="-3.5" y="-5.3" size="1.778" layer="27">&gt;VALUE</text>
+</package>
+<package name="CEP125">
+<description>&lt;b&gt;POWER INDUCTORS&lt;/b&gt; (SMT Type)&lt;p&gt;
+Source: www.sumida.com/products/pdf/CEP125.pdf</description>
+<wire x1="-1.5796" y1="6.3448" x2="-1.5533" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="-1.5533" y1="6.3448" x2="-1.29" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="-1.29" y1="6.0815" x2="-1.1584" y2="6.0816" width="0.2032" layer="21"/>
+<wire x1="-1.1584" y1="6.0816" x2="-1.1584" y2="6.2922" width="0.2032" layer="21"/>
+<wire x1="-1.1584" y1="6.2922" x2="-1.1583" y2="6.2922" width="0.2032" layer="21"/>
+<wire x1="-1.1583" y1="6.2922" x2="-1.1057" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="-1.1057" y1="6.3448" x2="1.1057" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="1.1057" y1="6.3448" x2="1.1057" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="1.1057" y1="6.0815" x2="1.211" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="1.211" y1="6.0815" x2="1.4217" y2="6.3448" width="0.2032" layer="21"/>
+<wire x1="1.4217" y1="6.3448" x2="6.1079" y2="6.3448" width="0.2032" layer="51"/>
+<wire x1="6.1079" y1="6.3448" x2="6.3448" y2="6.1079" width="0.2032" layer="21" curve="-96.645912"/>
+<wire x1="6.3448" y1="6.1079" x2="6.3448" y2="1.8166" width="0.2032" layer="21"/>
+<wire x1="6.3448" y1="1.8166" x2="6.2658" y2="1.7376" width="0.2032" layer="21"/>
+<wire x1="6.2658" y1="1.7376" x2="6.2658" y2="-1.7376" width="0.2032" layer="21"/>
+<wire x1="6.2658" y1="-1.7376" x2="6.3448" y2="-1.8166" width="0.2032" layer="21"/>
+<wire x1="6.3448" y1="-1.8166" x2="6.3448" y2="-6.0289" width="0.2032" layer="21"/>
+<wire x1="6.3448" y1="-6.0289" x2="6.0289" y2="-6.3448" width="0.2032" layer="21" curve="-91.024745"/>
+<wire x1="6.0289" y1="-6.3448" x2="-6.0289" y2="-6.3448" width="0.2032" layer="51"/>
+<wire x1="-6.3448" y1="-6.0289" x2="-6.3448" y2="6.1342" width="0.2032" layer="21"/>
+<wire x1="-6.3448" y1="6.1342" x2="-6.1342" y2="6.3448" width="0.2032" layer="21" curve="-83.297108"/>
+<wire x1="-6.1342" y1="6.3448" x2="-1.5533" y2="6.3448" width="0.2032" layer="51"/>
+<wire x1="-6.2395" y1="5.7393" x2="-2.0535" y2="5.7393" width="0.2032" layer="51"/>
+<wire x1="-2.0535" y1="5.7393" x2="-1.5534" y2="3.9754" width="0.2032" layer="51"/>
+<wire x1="-1.5534" y1="3.9754" x2="1.527" y2="3.9754" width="0.2032" layer="21"/>
+<wire x1="1.527" y1="3.9754" x2="2.0535" y2="5.7393" width="0.2032" layer="51"/>
+<wire x1="2.0535" y1="5.7393" x2="6.2395" y2="5.7393" width="0.2032" layer="51"/>
+<wire x1="6.2395" y1="-3.4752" x2="-6.2658" y2="-3.4752" width="0.2032" layer="21"/>
+<wire x1="-5.6077" y1="-3.5805" x2="-5.6077" y2="-6.2395" width="0.2032" layer="21"/>
+<wire x1="-4.8968" y1="-6.2395" x2="-4.8968" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="-4.7915" y1="-6.0552" x2="-2.2115" y2="-6.0552" width="0.2032" layer="21"/>
+<wire x1="-2.9486" y1="-5.9499" x2="-2.9223" y2="-5.9499" width="0.2032" layer="21"/>
+<wire x1="-2.9223" y1="-5.9499" x2="-2.9223" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="-2.1588" y1="-6.2395" x2="-2.1588" y2="-3.8701" width="0.2032" layer="21"/>
+<wire x1="2.1325" y1="-6.2395" x2="2.1325" y2="-3.8701" width="0.2032" layer="21"/>
+<wire x1="2.2378" y1="-6.0289" x2="4.8968" y2="-6.0289" width="0.2032" layer="21"/>
+<wire x1="4.8968" y1="-3.5805" x2="4.8968" y2="-6.2395" width="0.2032" layer="21"/>
+<wire x1="2.9486" y1="-5.9236" x2="2.9486" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="5.5813" y1="-6.2395" x2="5.5813" y2="-3.5805" width="0.2032" layer="21"/>
+<wire x1="2.5011" y1="-3.5805" x2="-2.4747" y2="-3.5805" width="0.2032" layer="51" curve="-63.906637"/>
+<wire x1="1.1057" y1="6.0815" x2="-1.1584" y2="6.0815" width="0.2032" layer="21"/>
+<wire x1="-1.7902" y1="5.1601" x2="1.7376" y2="5.1863" width="0.2032" layer="21" curve="-37.134171"/>
+<wire x1="-6.0289" y1="-6.3448" x2="-6.3448" y2="-6.0289" width="0.2032" layer="21" curve="-90.91408"/>
+<smd name="1" x="-3.5" y="5.375" dx="3" dy="2.75" layer="1"/>
+<smd name="2" x="3.5" y="5.375" dx="3" dy="2.75" layer="1"/>
+<smd name="3" x="0" y="-5.48" dx="3" dy="2.55" layer="1"/>
+<text x="-5.08" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-5.08" y="-1.27" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="1060-152">
+<description>&lt;b&gt;coilcraft inductor&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1060_.pdf"&gt;http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1060_.pdf&lt;/a&gt;</description>
+<smd name="P$1" x="-3.325" y="0" dx="2.39" dy="9.5" layer="1"/>
+<smd name="P$2" x="3.325" y="0" dx="2.39" dy="9.5" layer="1"/>
+<rectangle x1="-5" y1="-5.65" x2="5" y2="5.65" layer="39"/>
+</package>
+<package name="PG-TSDSON8">
+<description>&lt;b&gt;infineon mosfet package&lt;/b&gt;&lt;br&gt;
+created from drawings at &lt;a href="http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996"&gt;http://www.infineon.com/dgdl/Recommendations+for+Board+Assembly_T(S)DSON.pdf?folderId=db3a304313b8b5a60113cee8763b02d7&amp;fileId=db3a30432239cccd0122c1581cb45996&lt;/a&gt; (page 13 and TSDSON is Shrink SuperSO8)</description>
+<smd name="S$1" x="-0.325" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="S$2" x="0.325" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="G" x="0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="S$0" x="-0.975" y="-1.5" dx="0.8" dy="0.34" layer="1" rot="R90"/>
+<smd name="D$1" x="-0.975" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$2" x="-0.325" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$3" x="0.325" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$4" x="0.975" y="1.25" dx="0.34" dy="1.3" layer="1"/>
+<smd name="D$0" x="0" y="0.395" dx="2.29" dy="1.71" layer="1"/>
+<rectangle x1="-1.6" y1="-1.9" x2="1.6" y2="1.9" layer="39"/>
+</package>
+<package name="1010-153">
+<description>&lt;b&gt;coilcraft inductor&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1010_.pdf"&gt;http://www.coilcraft.com/pdf_viewer/showpdf.cfm?f=pdf_store:xal1010_.pdf&lt;/a&gt;</description>
+<smd name="P$1" x="-3.325" y="0" dx="2.38" dy="8.71" layer="1"/>
+<smd name="P$2" x="3.325" y="0" dx="2.38" dy="8.71" layer="1"/>
+<rectangle x1="-5" y1="-5.65" x2="5" y2="5.65" layer="39"/>
+</package>
+<package name="ELFH0225*">
+<description>Amphenol PCD ELFH0225*</description>
+<pad name="P$1" x="2.54" y="2.54" drill="1.4" shape="square" rot="R180"/>
+<pad name="P$2" x="-2.54" y="2.54" drill="1.4" shape="square" rot="R180"/>
+<rectangle x1="-5.9944" y1="-3.556" x2="5.9944" y2="6.223" layer="39" rot="R180"/>
+<text x="-3.81" y="6.35" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.81" y="-5.08" size="1.27" layer="27">&gt;VALUE</text>
+<wire x1="5.1562" y1="0.635" x2="5.1562" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="-5.1562" y1="4.445" x2="-5.1562" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="-5.1562" y1="0.635" x2="5.1562" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="3.81" y1="4.445" x2="1.27" y2="4.445" width="0.2032" layer="21" curve="100"/>
+<wire x1="-1.27" y1="4.445" x2="-3.81" y2="4.445" width="0.2032" layer="21" curve="100"/>
+<wire x1="5.08" y1="4.445" x2="3.81" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="4.445" x2="-1.27" y2="4.445" width="0.2032" layer="21"/>
+<wire x1="-3.81" y1="4.445" x2="-5.08" y2="4.445" width="0.2032" layer="21"/>
+</package>
+<package name="39543-0202">
+<wire x1="-5" y1="3.2" x2="5" y2="3.2" width="0.127" layer="21"/>
+<wire x1="5" y1="3.2" x2="5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="5" y1="-7.8" x2="3.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="3.5" y1="-7.8" x2="1.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="1.5" y1="-7.8" x2="-1.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="-1.5" y1="-7.8" x2="-3.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="-3.5" y1="-7.8" x2="-5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="-5" y1="-7.8" x2="-5" y2="3.2" width="0.127" layer="21"/>
+<wire x1="-3.5" y1="-7.8" x2="-3.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="-3.5" y1="-5.2" x2="-1.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="-1.5" y1="-5.2" x2="-1.5" y2="-7.8" width="0.127" layer="21"/>
+<wire x1="3.5" y1="-7.8" x2="3.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="3.5" y1="-5.2" x2="1.5" y2="-5.2" width="0.127" layer="21"/>
+<wire x1="1.5" y1="-5.2" x2="1.5" y2="-7.8" width="0.127" layer="21"/>
+<pad name="P$1" x="-2.5" y="0" drill="1.4" shape="long" rot="R90"/>
+<pad name="P$2" x="2.5" y="0" drill="1.4" shape="long" rot="R90"/>
+</package>
+<package name="SOD-123">
+<description>&lt;b&gt;SOD-123 SMA package&lt;/b&gt;&lt;br&gt;
+using dimensions from &lt;a href="http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF"&gt;http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF&lt;/a&gt;</description>
+<smd name="CATHODE" x="1.635" y="0" dx="0.91" dy="1.22" layer="1"/>
+<smd name="ANODE" x="-1.635" y="0" dx="0.91" dy="1.22" layer="1"/>
+<rectangle x1="0.1" y1="-1" x2="1.1" y2="1" layer="21"/>
+<rectangle x1="-2" y1="-0.9" x2="2" y2="0.9" layer="39"/>
+</package>
+<package name="C0402">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0504">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.294" y1="0.559" x2="0.294" y2="0.559" width="0.1016" layer="51"/>
+<wire x1="-0.294" y1="-0.559" x2="0.294" y2="-0.559" width="0.1016" layer="51"/>
+<smd name="1" x="-0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<smd name="2" x="0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<text x="-0.635" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.6604" y1="-0.6223" x2="-0.2804" y2="0.6276" layer="51"/>
+<rectangle x1="0.2794" y1="-0.6223" x2="0.6594" y2="0.6276" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C0603">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.889" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0805">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C1005">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C1206">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
+<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.27" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
+<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="C1210">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="C1310">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.294" y1="0.559" x2="0.294" y2="0.559" width="0.1016" layer="51"/>
+<wire x1="-0.294" y1="-0.559" x2="0.294" y2="-0.559" width="0.1016" layer="51"/>
+<smd name="1" x="-0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<smd name="2" x="0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<text x="-0.635" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.6604" y1="-0.6223" x2="-0.2804" y2="0.6276" layer="51"/>
+<rectangle x1="0.2794" y1="-0.6223" x2="0.6594" y2="0.6276" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.3" x2="0.1001" y2="0.3" layer="35"/>
+</package>
+<package name="C1608">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C1812">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+<rectangle x1="-0.3" y1="-0.4001" x2="0.3" y2="0.4001" layer="35"/>
+</package>
+<package name="C1825">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="3.483" x2="2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-3.483" x2="-2.973" y2="-3.483" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-3.483" x2="-2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="-1.4986" y1="3.2766" x2="1.4732" y2="3.2766" width="0.1016" layer="51"/>
+<wire x1="-1.4732" y1="-3.2766" x2="1.4986" y2="-3.2766" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="3.483" x2="2.973" y2="-3.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<text x="-1.905" y="3.683" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-4.826" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.413" y1="-3.3528" x2="-1.463" y2="3.3472" layer="51"/>
+<rectangle x1="1.4478" y1="-3.3528" x2="2.3978" y2="3.3472" layer="51"/>
+<rectangle x1="-0.7" y1="-0.7" x2="0.7" y2="0.7" layer="35"/>
+</package>
+<package name="C2012">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C3216">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
+<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.27" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
+<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
+<rectangle x1="-0.3" y1="-0.5001" x2="0.3" y2="0.5001" layer="35"/>
+</package>
+<package name="C3225">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5001" x2="0.1999" y2="0.5001" layer="35"/>
+</package>
+<package name="C4532">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+<rectangle x1="-0.4001" y1="-0.7" x2="0.4001" y2="0.7" layer="35"/>
+</package>
+<package name="C4564">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="3.483" x2="2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-3.483" x2="-2.973" y2="-3.483" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-3.483" x2="-2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="-1.4986" y1="3.2766" x2="1.4732" y2="3.2766" width="0.1016" layer="51"/>
+<wire x1="-1.4732" y1="-3.2766" x2="1.4986" y2="-3.2766" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="3.483" x2="2.973" y2="-3.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<text x="-1.905" y="3.683" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-4.826" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.413" y1="-3.3528" x2="-1.463" y2="3.3472" layer="51"/>
+<rectangle x1="1.4478" y1="-3.3528" x2="2.3978" y2="3.3472" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="C025-024X044">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 2.4 x 4.4 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.778" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.778" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-025X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 2.5 x 5 mm</description>
+<wire x1="-2.159" y1="1.27" x2="2.159" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.27" x2="-2.159" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.27" x2="2.413" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.016" x2="-2.159" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.27" x2="2.413" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.159" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="1.524" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-030X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 3 x 5 mm</description>
+<wire x1="-2.159" y1="1.524" x2="2.159" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.524" x2="-2.159" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.27" x2="2.413" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.27" x2="-2.413" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.524" x2="2.413" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.27" x2="-2.159" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.524" x2="2.413" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.27" x2="-2.159" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-040X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 4 x 5 mm</description>
+<wire x1="-2.159" y1="1.905" x2="2.159" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.905" x2="-2.159" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.651" x2="2.413" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.651" x2="-2.413" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.905" x2="2.413" y2="1.651" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.651" x2="-2.159" y2="1.905" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.905" x2="2.413" y2="-1.651" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.651" x2="-2.159" y2="-1.905" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.429" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-050X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 5 x 5 mm</description>
+<wire x1="-2.159" y1="2.286" x2="2.159" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.286" x2="-2.159" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.032" x2="2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.032" x2="-2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.286" x2="2.413" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.032" x2="-2.159" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.286" x2="2.413" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.032" x2="-2.159" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.54" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-060X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 6 x 5 mm</description>
+<wire x1="-2.159" y1="2.794" x2="2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.794" x2="-2.159" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.54" x2="2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.54" x2="-2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.794" x2="2.413" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.54" x2="-2.159" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.794" x2="2.413" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.54" x2="-2.159" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="3.048" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.032" y="-2.413" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-024X070">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm + 5 mm, outline 2.4 x 7 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.191" y1="-1.143" x2="-3.9624" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-4.191" y1="1.143" x2="-3.9624" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="-0.635" x2="-4.191" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-4.699" y1="0.635" x2="-4.191" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.699" y1="-0.635" x2="-4.699" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="1.143" x2="-2.5654" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.143" x2="-2.5654" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.81" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.81" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-025X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 2.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="1.27" x2="2.159" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.27" x2="-2.159" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.27" x2="2.413" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.016" x2="-2.159" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.27" x2="2.413" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.159" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="1.016" x2="4.953" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="1.27" x2="4.953" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.27" x2="4.953" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="1.27" x2="4.699" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.27" x2="2.794" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.413" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-0.762" x2="2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.254" x2="2.413" y2="-0.254" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0" x2="2.286" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.159" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.159" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-035X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 3.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="1.778" x2="2.159" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.778" x2="-2.159" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.524" x2="-2.413" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.778" x2="2.413" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.524" x2="-2.159" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.778" x2="2.413" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.524" x2="-2.159" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="1.524" x2="4.953" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="1.778" x2="4.953" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.778" x2="4.953" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="1.778" x2="4.699" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.778" x2="2.794" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.524" x2="2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.413" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.508" x2="2.413" y2="-0.508" width="0.1524" layer="21"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.302" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-045X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 4.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="2.286" x2="2.159" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.286" x2="-2.159" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.032" x2="-2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.286" x2="2.413" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.032" x2="-2.159" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.286" x2="2.413" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.032" x2="-2.159" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="2.032" x2="4.953" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.286" x2="4.953" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-2.286" x2="4.953" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="2.286" x2="4.699" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.286" x2="2.794" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.032" x2="2.413" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.397" x2="2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.762" x2="2.413" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.667" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-055X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 5.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="2.794" x2="2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.794" x2="-2.159" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.54" x2="-2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.794" x2="2.413" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.54" x2="-2.159" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.794" x2="2.413" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.54" x2="-2.159" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="2.54" x2="4.953" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.794" x2="4.953" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-2.794" x2="4.953" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="2.794" x2="4.699" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.794" x2="2.794" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.54" x2="2.413" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-2.032" x2="2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.762" x2="2.413" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0" x2="2.286" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="3.175" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.032" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-024X044">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 2.4 x 4.4 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.159" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.159" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.159" y1="-0.381" x2="2.54" y2="0.381" layer="51"/>
+<rectangle x1="-2.54" y1="-0.381" x2="-2.159" y2="0.381" layer="51"/>
+</package>
+<package name="C050-025X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 2.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.016" x2="-3.683" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.27" x2="3.429" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.016" x2="3.683" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.27" x2="-3.429" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.27" x2="3.683" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.27" x2="3.683" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.016" x2="-3.429" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.016" x2="-3.429" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-045X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 4.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.032" x2="-3.683" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.286" x2="3.429" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.032" x2="3.683" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.286" x2="-3.429" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.286" x2="3.683" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.286" x2="3.683" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.032" x2="-3.429" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.032" x2="-3.429" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="2.667" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-030X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 3 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.27" x2="-3.683" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.524" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.27" x2="3.683" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.524" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.524" x2="3.683" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.524" x2="3.683" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.27" x2="-3.429" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.27" x2="-3.429" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-050X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.286" x2="-3.683" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.54" x2="3.429" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.286" x2="3.683" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.54" x2="-3.429" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.54" x2="3.683" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.54" x2="3.683" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.286" x2="-3.429" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.286" x2="-3.429" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-2.159" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-055X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 5.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.54" x2="-3.683" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.794" x2="3.429" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.54" x2="3.683" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.794" x2="-3.429" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.794" x2="3.683" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.794" x2="3.683" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.54" x2="-3.429" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.54" x2="-3.429" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="3.175" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.302" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-075X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 7.5 x 7.5 mm</description>
+<wire x1="-1.524" y1="0" x2="-0.4572" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.4572" y1="0" x2="-0.4572" y2="0.762" width="0.4064" layer="21"/>
+<wire x1="-0.4572" y1="0" x2="-0.4572" y2="-0.762" width="0.4064" layer="21"/>
+<wire x1="0.4318" y1="0.762" x2="0.4318" y2="0" width="0.4064" layer="21"/>
+<wire x1="0.4318" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.4318" y1="0" x2="0.4318" y2="-0.762" width="0.4064" layer="21"/>
+<wire x1="-3.683" y1="3.429" x2="-3.683" y2="-3.429" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-3.683" x2="3.429" y2="-3.683" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-3.429" x2="3.683" y2="3.429" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="3.683" x2="-3.429" y2="3.683" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="3.683" x2="3.683" y2="3.429" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-3.683" x2="3.683" y2="-3.429" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-3.429" x2="-3.429" y2="-3.683" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="3.429" x2="-3.429" y2="3.683" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="4.064" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-2.921" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050H075X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+Horizontal, grid 5 mm, outline 7.5 x 7.5 mm</description>
+<wire x1="-3.683" y1="7.112" x2="-3.683" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="0.508" x2="-3.302" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="0.508" x2="-1.778" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="-1.778" y1="0.508" x2="1.778" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.508" x2="3.302" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="3.302" y1="0.508" x2="3.683" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="0.508" x2="3.683" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="7.62" x2="-3.175" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="-0.3048" y1="2.413" x2="-0.3048" y2="1.778" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="1.778" x2="-0.3048" y2="1.143" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="1.778" x2="-1.651" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="2.413" x2="0.3302" y2="1.778" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="1.778" x2="0.3302" y2="1.143" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="1.778" x2="1.651" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="7.112" x2="-3.175" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.175" y1="7.62" x2="3.683" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="0" x2="-2.54" y2="0.254" width="0.508" layer="51"/>
+<wire x1="2.54" y1="0" x2="2.54" y2="0.254" width="0.508" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.302" y="8.001" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="3.175" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-2.794" y1="0.127" x2="-2.286" y2="0.508" layer="51"/>
+<rectangle x1="2.286" y1="0.127" x2="2.794" y2="0.508" layer="51"/>
+</package>
+<package name="C075-032X103">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 3.2 x 10.3 mm</description>
+<wire x1="4.826" y1="1.524" x2="-4.826" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-1.524" x2="4.826" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="5.08" y1="-1.27" x2="5.08" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="1.524" x2="5.08" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.826" y1="-1.524" x2="5.08" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="-1.27" x2="-4.826" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.27" x2="-4.826" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="0.508" y1="0" x2="2.54" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="0" x2="-0.508" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.508" y1="0.889" x2="-0.508" y2="0" width="0.4064" layer="21"/>
+<wire x1="-0.508" y1="0" x2="-0.508" y2="-0.889" width="0.4064" layer="21"/>
+<wire x1="0.508" y1="0.889" x2="0.508" y2="0" width="0.4064" layer="21"/>
+<wire x1="0.508" y1="0" x2="0.508" y2="-0.889" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.826" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-042X103">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 4.2 x 10.3 mm</description>
+<wire x1="4.826" y1="2.032" x2="-4.826" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.778" x2="-5.08" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-2.032" x2="4.826" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="5.08" y1="-1.778" x2="5.08" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="2.032" x2="5.08" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.826" y1="-2.032" x2="5.08" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="-1.778" x2="-4.826" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.778" x2="-4.826" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.699" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-052X106">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 5.2 x 10.6 mm</description>
+<wire x1="4.953" y1="2.54" x2="-4.953" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.286" x2="-5.207" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-2.54" x2="4.953" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.286" x2="5.207" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="2.54" x2="5.207" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.953" y1="-2.54" x2="5.207" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="-2.286" x2="-4.953" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="2.286" x2="-4.953" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-043X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 4.3 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="2.032" x2="6.096" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="1.524" x2="6.604" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-2.032" x2="-6.096" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-1.524" x2="-6.604" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="2.032" x2="6.604" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-2.032" x2="6.604" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-1.524" x2="-6.096" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="1.524" x2="-6.096" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-054X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 5.4 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="2.54" x2="6.096" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="2.032" x2="6.604" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-2.54" x2="-6.096" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.032" x2="-6.604" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="2.54" x2="6.604" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-2.54" x2="6.604" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.032" x2="-6.096" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.032" x2="-6.096" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-1.905" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-064X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 6.4 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="3.048" x2="6.096" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="2.54" x2="6.604" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-3.048" x2="-6.096" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="3.048" x2="6.604" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-3.048" x2="6.604" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.54" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102_152-062X184">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm + 15.2 mm, outline 6.2 x 18.4 mm</description>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.683" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="3.683" y2="0" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="0" x2="8.636" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.096" y1="3.048" x2="6.223" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="-3.048" x2="-6.096" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="3.048" x2="6.731" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.223" y1="-3.048" x2="6.731" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.54" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.731" y1="2.54" x2="6.731" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="11.176" y1="3.048" x2="11.684" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="11.176" y1="-3.048" x2="11.684" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="11.176" y1="-3.048" x2="7.112" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="7.112" y1="3.048" x2="11.176" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="11.684" y1="2.54" x2="11.684" y2="-2.54" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="3" x="10.033" y="0" drill="1.016" shape="octagon"/>
+<text x="-5.969" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-054X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 5.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="2.032" x2="9.017" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-2.54" x2="-8.509" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-2.032" x2="-9.017" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="2.54" x2="8.509" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="2.54" x2="9.017" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-2.54" x2="9.017" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-2.032" x2="-8.509" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="2.032" x2="-8.509" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.382" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-064X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 6.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="2.54" x2="9.017" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.048" x2="-8.509" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-2.54" x2="-9.017" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="3.048" x2="8.509" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="3.048" x2="9.017" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-3.048" x2="9.017" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-2.54" x2="-8.509" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="2.54" x2="-8.509" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-072X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 7.2 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.048" x2="9.017" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.556" x2="-8.509" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.048" x2="-9.017" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="3.556" x2="8.509" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="3.556" x2="9.017" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-3.556" x2="9.017" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.048" x2="-8.509" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.048" x2="-8.509" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="3.937" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-084X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 8.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.556" x2="9.017" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-4.064" x2="-8.509" y2="-4.064" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.556" x2="-9.017" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="4.064" x2="8.509" y2="4.064" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="4.064" x2="9.017" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-4.064" x2="9.017" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.556" x2="-8.509" y2="-4.064" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.556" x2="-8.509" y2="4.064" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="4.445" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-091X182">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 9.1 x 18.2 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.937" x2="9.017" y2="-3.937" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-4.445" x2="-8.509" y2="-4.445" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.937" x2="-9.017" y2="3.937" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="4.445" x2="8.509" y2="4.445" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="4.445" x2="9.017" y2="3.937" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-4.445" x2="9.017" y2="-3.937" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.937" x2="-8.509" y2="-4.445" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.937" x2="-8.509" y2="4.445" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="4.826" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-062X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 6.2 x 26.8 mm</description>
+<wire x1="-12.827" y1="3.048" x2="12.827" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="2.54" x2="13.335" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-3.048" x2="-12.827" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-2.54" x2="-13.335" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="3.048" x2="13.335" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-3.048" x2="13.335" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-2.54" x2="-12.827" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="2.54" x2="-12.827" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.7" y="3.429" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-074X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 7.4 x 26.8 mm</description>
+<wire x1="-12.827" y1="3.556" x2="12.827" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="3.048" x2="13.335" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-3.556" x2="-12.827" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-3.048" x2="-13.335" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="3.556" x2="13.335" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-3.556" x2="13.335" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-3.048" x2="-12.827" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="3.048" x2="-12.827" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.827" y="3.937" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-087X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 8.7 x 26.8 mm</description>
+<wire x1="-12.827" y1="4.318" x2="12.827" y2="4.318" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="3.81" x2="13.335" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-4.318" x2="-12.827" y2="-4.318" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-3.81" x2="-13.335" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="4.318" x2="13.335" y2="3.81" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-4.318" x2="13.335" y2="-3.81" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-3.81" x2="-12.827" y2="-4.318" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="3.81" x2="-12.827" y2="4.318" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.827" y="4.699" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-108X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 10.8 x 26.8 mm</description>
+<wire x1="-12.827" y1="5.334" x2="12.827" y2="5.334" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="4.826" x2="13.335" y2="-4.826" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-5.334" x2="-12.827" y2="-5.334" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-4.826" x2="-13.335" y2="4.826" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="5.334" x2="13.335" y2="4.826" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-5.334" x2="13.335" y2="-4.826" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-4.826" x2="-12.827" y2="-5.334" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="4.826" x2="-12.827" y2="5.334" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.954" y="5.715" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-113X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 11.3 x 26.8 mm</description>
+<wire x1="-12.827" y1="5.588" x2="12.827" y2="5.588" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="5.08" x2="13.335" y2="-5.08" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-5.588" x2="-12.827" y2="-5.588" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-5.08" x2="-13.335" y2="5.08" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="5.588" x2="13.335" y2="5.08" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-5.588" x2="13.335" y2="-5.08" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-5.08" x2="-12.827" y2="-5.588" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="5.08" x2="-12.827" y2="5.588" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.954" y="5.969" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-093X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 9.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="4.572" x2="15.24" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="4.064" x2="15.748" y2="-4.064" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-4.572" x2="-15.24" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-4.064" x2="-15.748" y2="4.064" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="4.572" x2="15.748" y2="4.064" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-4.572" x2="15.748" y2="-4.064" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-4.064" x2="-15.24" y2="-4.572" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="4.064" x2="-15.24" y2="4.572" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="4.953" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-113X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 11.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="5.588" x2="15.24" y2="5.588" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="5.08" x2="15.748" y2="-5.08" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-5.588" x2="-15.24" y2="-5.588" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-5.08" x2="-15.748" y2="5.08" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="5.588" x2="15.748" y2="5.08" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-5.588" x2="15.748" y2="-5.08" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-5.08" x2="-15.24" y2="-5.588" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="5.08" x2="-15.24" y2="5.588" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="5.969" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-134X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 13.4 x 31.6 mm</description>
+<wire x1="-15.24" y1="6.604" x2="15.24" y2="6.604" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="6.096" x2="15.748" y2="-6.096" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-6.604" x2="-15.24" y2="-6.604" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-6.096" x2="-15.748" y2="6.096" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="6.604" x2="15.748" y2="6.096" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-6.604" x2="15.748" y2="-6.096" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-6.096" x2="-15.24" y2="-6.604" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="6.096" x2="-15.24" y2="6.604" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="6.985" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-205X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 20.5 x 31.6 mm</description>
+<wire x1="-15.24" y1="10.16" x2="15.24" y2="10.16" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="9.652" x2="15.748" y2="-9.652" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-10.16" x2="-15.24" y2="-10.16" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-9.652" x2="-15.748" y2="9.652" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="10.16" x2="15.748" y2="9.652" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-10.16" x2="15.748" y2="-9.652" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-9.652" x2="-15.24" y2="-10.16" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="9.652" x2="-15.24" y2="10.16" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="10.541" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-4.318" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-137X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 13.7 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="6.731" x2="18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="6.731" x2="-18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-6.731" x2="18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="6.731" x2="-18.542" y2="6.731" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.2372" y="7.0612" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-162X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 16.2 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="8.001" x2="18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="8.001" x2="-18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-8.001" x2="18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="8.001" x2="-18.542" y2="8.001" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.3642" y="8.3312" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-182X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 18.2 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="9.017" x2="18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="9.017" x2="-18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-9.017" x2="18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="9.017" x2="-18.542" y2="9.017" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.3642" y="9.3472" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-192X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 19.2 x 41.8 mm</description>
+<wire x1="-20.32" y1="8.509" x2="20.32" y2="8.509" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="8.001" x2="20.828" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-8.509" x2="-20.32" y2="-8.509" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-8.001" x2="-20.828" y2="8.001" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="8.509" x2="20.828" y2="8.001" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-8.509" x2="20.828" y2="-8.001" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-8.001" x2="-20.32" y2="-8.509" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="8.001" x2="-20.32" y2="8.509" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.447" y="8.89" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-203X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 20.3 x 41.8 mm</description>
+<wire x1="-20.32" y1="10.16" x2="20.32" y2="10.16" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="9.652" x2="20.828" y2="-9.652" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-10.16" x2="-20.32" y2="-10.16" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-9.652" x2="-20.828" y2="9.652" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="10.16" x2="20.828" y2="9.652" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-10.16" x2="20.828" y2="-9.652" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-9.652" x2="-20.32" y2="-10.16" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="9.652" x2="-20.32" y2="10.16" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.32" y="10.541" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-035X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 3.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.524" x2="-3.683" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.778" x2="3.429" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.524" x2="3.683" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.778" x2="-3.429" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.778" x2="3.683" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.778" x2="3.683" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.524" x2="-3.429" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.524" x2="-3.429" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.429" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-155X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 15.5 x 41.8 mm</description>
+<wire x1="-20.32" y1="7.62" x2="20.32" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="7.112" x2="20.828" y2="-7.112" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-7.62" x2="-20.32" y2="-7.62" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-7.112" x2="-20.828" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="7.62" x2="20.828" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-7.62" x2="20.828" y2="-7.112" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-7.112" x2="-20.32" y2="-7.62" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="7.112" x2="-20.32" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.447" y="8.001" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-063X106">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 6.3 x 10.6 mm</description>
+<wire x1="4.953" y1="3.048" x2="-4.953" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.794" x2="-5.207" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-3.048" x2="4.953" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.794" x2="5.207" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="3.048" x2="5.207" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.953" y1="-3.048" x2="5.207" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="-2.794" x2="-4.953" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="2.794" x2="-4.953" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-154X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 15.4 x 31.6 mm</description>
+<wire x1="-15.24" y1="7.62" x2="15.24" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="7.112" x2="15.748" y2="-7.112" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-7.62" x2="-15.24" y2="-7.62" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-7.112" x2="-15.748" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="7.62" x2="15.748" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-7.62" x2="15.748" y2="-7.112" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-7.112" x2="-15.24" y2="-7.62" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="7.112" x2="-15.24" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="8.001" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-173X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 17.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="8.509" x2="15.24" y2="8.509" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="8.001" x2="15.748" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-8.509" x2="-15.24" y2="-8.509" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-8.001" x2="-15.748" y2="8.001" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="8.509" x2="15.748" y2="8.001" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-8.509" x2="15.748" y2="-8.001" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-8.001" x2="-15.24" y2="-8.509" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="8.001" x2="-15.24" y2="8.509" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="8.89" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C0402K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0204 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 1005</description>
+<wire x1="-0.425" y1="0.2" x2="0.425" y2="0.2" width="0.1016" layer="51"/>
+<wire x1="0.425" y1="-0.2" x2="-0.425" y2="-0.2" width="0.1016" layer="51"/>
+<smd name="1" x="-0.6" y="0" dx="0.925" dy="0.74" layer="1"/>
+<smd name="2" x="0.6" y="0" dx="0.925" dy="0.74" layer="1"/>
+<text x="-0.5" y="0.425" size="1.016" layer="25">&gt;NAME</text>
+<text x="-0.5" y="-1.45" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5" y1="-0.25" x2="-0.225" y2="0.25" layer="51"/>
+<rectangle x1="0.225" y1="-0.25" x2="0.5" y2="0.25" layer="51"/>
+</package>
+<package name="C0603K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0603 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 1608</description>
+<wire x1="-0.725" y1="0.35" x2="0.725" y2="0.35" width="0.1016" layer="51"/>
+<wire x1="0.725" y1="-0.35" x2="-0.725" y2="-0.35" width="0.1016" layer="51"/>
+<smd name="1" x="-0.875" y="0" dx="1.05" dy="1.08" layer="1"/>
+<smd name="2" x="0.875" y="0" dx="1.05" dy="1.08" layer="1"/>
+<text x="-0.8" y="0.65" size="1.016" layer="25">&gt;NAME</text>
+<text x="-0.8" y="-1.65" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8" y1="-0.4" x2="-0.45" y2="0.4" layer="51"/>
+<rectangle x1="0.45" y1="-0.4" x2="0.8" y2="0.4" layer="51"/>
+</package>
+<package name="C0805K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0805 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 2012</description>
+<wire x1="-0.925" y1="0.6" x2="0.925" y2="0.6" width="0.1016" layer="51"/>
+<wire x1="0.925" y1="-0.6" x2="-0.925" y2="-0.6" width="0.1016" layer="51"/>
+<smd name="1" x="-1" y="0" dx="1.3" dy="1.6" layer="1"/>
+<smd name="2" x="1" y="0" dx="1.3" dy="1.6" layer="1"/>
+<text x="-1" y="0.875" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1" y="-1.9" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1" y1="-0.65" x2="-0.5" y2="0.65" layer="51"/>
+<rectangle x1="0.5" y1="-0.65" x2="1" y2="0.65" layer="51"/>
+</package>
+<package name="C1206K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1206 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 3216</description>
+<wire x1="-1.525" y1="0.75" x2="1.525" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-0.75" x2="-1.525" y2="-0.75" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.5" dy="2" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.5" dy="2" layer="1"/>
+<text x="-1.6" y="1.1" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-2.1" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-0.8" x2="-1.1" y2="0.8" layer="51"/>
+<rectangle x1="1.1" y1="-0.8" x2="1.6" y2="0.8" layer="51"/>
+</package>
+<package name="C1210K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1210 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 3225</description>
+<wire x1="-1.525" y1="1.175" x2="1.525" y2="1.175" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-1.175" x2="-1.525" y2="-1.175" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.5" dy="2.9" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.5" dy="2.9" layer="1"/>
+<text x="-1.6" y="1.55" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-2.575" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-1.25" x2="-1.1" y2="1.25" layer="51"/>
+<rectangle x1="1.1" y1="-1.25" x2="1.6" y2="1.25" layer="51"/>
+</package>
+<package name="C1812K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1812 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 4532</description>
+<wire x1="-2.175" y1="1.525" x2="2.175" y2="1.525" width="0.1016" layer="51"/>
+<wire x1="2.175" y1="-1.525" x2="-2.175" y2="-1.525" width="0.1016" layer="51"/>
+<smd name="1" x="-2.05" y="0" dx="1.8" dy="3.7" layer="1"/>
+<smd name="2" x="2.05" y="0" dx="1.8" dy="3.7" layer="1"/>
+<text x="-2.25" y="1.95" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.25" y="-2.975" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.25" y1="-1.6" x2="-1.65" y2="1.6" layer="51"/>
+<rectangle x1="1.65" y1="-1.6" x2="2.25" y2="1.6" layer="51"/>
+</package>
+<package name="C1825K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1825 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 4564</description>
+<wire x1="-1.525" y1="3.125" x2="1.525" y2="3.125" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-3.125" x2="-1.525" y2="-3.125" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.8" dy="6.9" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.8" dy="6.9" layer="1"/>
+<text x="-1.6" y="3.55" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-4.625" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-3.2" x2="-1.1" y2="3.2" layer="51"/>
+<rectangle x1="1.1" y1="-3.2" x2="1.6" y2="3.2" layer="51"/>
+</package>
+<package name="C2220K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2220 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 5650</description>
+<wire x1="-2.725" y1="2.425" x2="2.725" y2="2.425" width="0.1016" layer="51"/>
+<wire x1="2.725" y1="-2.425" x2="-2.725" y2="-2.425" width="0.1016" layer="51"/>
+<smd name="1" x="-2.55" y="0" dx="1.85" dy="5.5" layer="1"/>
+<smd name="2" x="2.55" y="0" dx="1.85" dy="5.5" layer="1"/>
+<text x="-2.8" y="2.95" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.8" y="-3.975" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.8" y1="-2.5" x2="-2.2" y2="2.5" layer="51"/>
+<rectangle x1="2.2" y1="-2.5" x2="2.8" y2="2.5" layer="51"/>
+</package>
+<package name="C2225K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2225 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 5664</description>
+<wire x1="-2.725" y1="3.075" x2="2.725" y2="3.075" width="0.1016" layer="51"/>
+<wire x1="2.725" y1="-3.075" x2="-2.725" y2="-3.075" width="0.1016" layer="51"/>
+<smd name="1" x="-2.55" y="0" dx="1.85" dy="6.8" layer="1"/>
+<smd name="2" x="2.55" y="0" dx="1.85" dy="6.8" layer="1"/>
+<text x="-2.8" y="3.6" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.8" y="-4.575" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.8" y1="-3.15" x2="-2.2" y2="3.15" layer="51"/>
+<rectangle x1="2.2" y1="-3.15" x2="2.8" y2="3.15" layer="51"/>
+</package>
+<package name="J80">
+<description>&lt;b&gt;chemi-con j80 capacitor&lt;/b&gt;&lt;br&gt;
+land pattern from &lt;a href="https://engineering.purdue.edu/ece477/Webs/S06-Grp03/datasheets/PXA0703.pdf"&gt;https://engineering.purdue.edu/ece477/Webs/S06-Grp03/datasheets/PXA0703.pdf&lt;/a&gt;&lt;br&gt;
+same as for j12</description>
+<wire x1="-6" y1="2" x2="-6" y2="5" width="0.127" layer="21"/>
+<wire x1="-6" y1="5" x2="5" y2="5" width="0.127" layer="21"/>
+<wire x1="5" y1="5" x2="5" y2="4" width="0.127" layer="21"/>
+<wire x1="5" y1="4" x2="6" y2="4" width="0.127" layer="21"/>
+<wire x1="6" y1="4" x2="6" y2="2" width="0.127" layer="21"/>
+<wire x1="6" y1="-2" x2="6" y2="-4" width="0.127" layer="21"/>
+<wire x1="6" y1="-4" x2="5" y2="-4" width="0.127" layer="21"/>
+<wire x1="5" y1="-4" x2="5" y2="-5" width="0.127" layer="21"/>
+<wire x1="5" y1="-5" x2="-6" y2="-5" width="0.127" layer="21"/>
+<wire x1="-6" y1="-5" x2="-6" y2="-2" width="0.127" layer="21"/>
+<smd name="-" x="-4.45" y="0" dx="4.4" dy="2.2" layer="1"/>
+<smd name="+" x="4.45" y="0" dx="4.4" dy="2.2" layer="1"/>
+<rectangle x1="-5.9" y1="-5.3" x2="5.9" y2="5.3" layer="39"/>
+</package>
+<package name="PLF1C271MDO1">
+<description>&lt;b&gt;PLF1C271MDO1 cap&lt;/b&gt;&lt;br&gt;
+dimensions from &lt;a href="http://products.nichicon.co.jp/en/pdf/XJA042/e-lf.pdf"&gt;http://products.nichicon.co.jp/en/pdf/XJA042/e-lf.pdf&lt;/a&gt;</description>
+<circle x="0" y="0" radius="4" width="0.127" layer="39"/>
+<pad name="+" x="-1.75" y="0" drill="0.9"/>
+<pad name="-" x="1.75" y="0" drill="0.9"/>
+<text x="-0.7" y="0.4" size="0.4064" layer="21" font="vector">+</text>
+<text x="0.4" y="0.4" size="0.4064" layer="21" font="vector">-</text>
+</package>
+<package name="RR71C331MDN1">
+<description>&lt;b&gt;RR71C331MDN1 cap&lt;/b&gt;&lt;br&gt;
+dimensions from &lt;a href="http://www.nichicon.co.jp/english/products/pdf/2009fpcap_catalog_r7.pdf"&gt;http://www.nichicon.co.jp/english/products/pdf/2009fpcap_catalog_r7.pdf&lt;/a&gt;</description>
+<circle x="0" y="0" radius="5" width="0.127" layer="39"/>
+<pad name="+" x="-2.5" y="0" drill="0.9"/>
+<pad name="-" x="2.5" y="0" drill="0.9"/>
+<text x="-1.3" y="0.4" size="0.4064" layer="21" font="vector">+</text>
+<text x="1.2" y="0.4" size="0.4064" layer="21" font="vector">-</text>
+</package>
+<package name="D-PAK">
+<description>&lt;b&gt;D-PAK (TO-252AA)&lt;/b&gt;&lt;br&gt;
+drawings at &lt;a href="http://www.vishay.com/docs/95016/dpak252a.pdf"&gt;http://www.vishay.com/docs/95016/dpak252a.pdf&lt;/a&gt;</description>
+<smd name="CATHODE" x="0" y="2.585" dx="6.74" dy="6.23" layer="1"/>
+<smd name="ANODE$0" x="-2.28" y="-4.56" dx="1.624" dy="2.28" layer="1"/>
+<smd name="ANODE$1" x="2.28" y="-4.56" dx="1.624" dy="2.28" layer="1"/>
+<rectangle x1="-3.5" y1="-6.3" x2="3.5" y2="6.5" layer="39"/>
+</package>
+</packages>
+<symbols>
+<symbol name="LM3481">
+<wire x1="-12.7" y1="12.7" x2="-12.7" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="-12.7" y1="-12.7" x2="12.7" y2="-12.7" width="0.254" layer="94"/>
+<wire x1="12.7" y1="-12.7" x2="12.7" y2="12.7" width="0.254" layer="94"/>
+<wire x1="12.7" y1="12.7" x2="-12.7" y2="12.7" width="0.254" layer="94"/>
+<pin name="COMP" x="-15.24" y="0" length="short"/>
+<pin name="UVLO" x="-15.24" y="5.08" length="short"/>
+<pin name="ISEN" x="-15.24" y="10.16" length="short"/>
+<pin name="FB" x="-15.24" y="-5.08" length="short"/>
+<pin name="AGND" x="-15.24" y="-10.16" length="short"/>
+<pin name="FA/SYNC/SD" x="15.24" y="-10.16" length="short" rot="R180"/>
+<pin name="PGND" x="15.24" y="-5.08" length="short" rot="R180"/>
+<pin name="DR" x="15.24" y="0" length="short" rot="R180"/>
+<pin name="VCC" x="15.24" y="5.08" length="short" rot="R180"/>
+<pin name="VIN" x="15.24" y="10.16" length="short" rot="R180"/>
+</symbol>
+<symbol name="L-US">
+<wire x1="0" y1="5.08" x2="1.27" y2="3.81" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="2.54" x2="1.27" y2="3.81" width="0.254" layer="94" curve="90" cap="flat"/>
+<wire x1="0" y1="2.54" x2="1.27" y2="1.27" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="0" x2="1.27" y2="1.27" width="0.254" layer="94" curve="90" cap="flat"/>
+<wire x1="0" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="-2.54" x2="1.27" y2="-1.27" width="0.254" layer="94" curve="90" cap="flat"/>
+<wire x1="0" y1="-2.54" x2="1.27" y2="-3.81" width="0.254" layer="94" curve="-90" cap="flat"/>
+<wire x1="0" y1="-5.08" x2="1.27" y2="-3.81" width="0.254" layer="94" curve="90" cap="flat"/>
+<text x="-1.27" y="-5.08" size="1.778" layer="95" rot="R90">&gt;NAME</text>
+<text x="3.81" y="-5.08" size="1.778" layer="96" rot="R90">&gt;VALUE</text>
+<pin name="2" x="0" y="-7.62" visible="off" length="short" direction="pas" swaplevel="1" rot="R90"/>
+<pin name="1" x="0" y="7.62" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+</symbol>
+<symbol name="N-MOSFET_EXTRA_PINS">
+<wire x1="0.762" y1="0.762" x2="0.762" y2="0" width="0.254" layer="94"/>
+<wire x1="0.762" y1="0" x2="0.762" y2="-0.762" width="0.254" layer="94"/>
+<wire x1="0.762" y1="3.175" x2="0.762" y2="2.54" width="0.254" layer="94"/>
+<wire x1="0.762" y1="2.54" x2="0.762" y2="1.905" width="0.254" layer="94"/>
+<wire x1="0.762" y1="0" x2="2.54" y2="0" width="0.1524" layer="94"/>
+<wire x1="2.54" y1="0" x2="2.54" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0.762" y1="-1.905" x2="0.762" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0.762" y1="-2.54" x2="0.762" y2="-3.175" width="0.254" layer="94"/>
+<wire x1="0" y1="2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="2.54" y1="-2.54" x2="0.762" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="2.54" x2="3.81" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="0.508" x2="3.81" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="2.54" y1="-2.54" x2="3.81" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0.762" y1="2.54" x2="3.81" y2="2.54" width="0.1524" layer="94"/>
+<wire x1="4.572" y1="0.762" x2="4.318" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="4.318" y1="0.508" x2="3.81" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.81" y1="0.508" x2="3.302" y2="0.508" width="0.1524" layer="94"/>
+<wire x1="3.302" y1="0.508" x2="3.048" y2="0.254" width="0.1524" layer="94"/>
+<circle x="2.54" y="-2.54" radius="0.3592" width="0" layer="94"/>
+<circle x="2.54" y="2.54" radius="0.3592" width="0" layer="94"/>
+<text x="-11.43" y="0" size="1.778" layer="96">&gt;VALUE</text>
+<text x="-11.43" y="2.54" size="1.778" layer="95">&gt;NAME</text>
+<pin name="S" x="2.54" y="-5.08" visible="off" length="short" direction="pas" swaplevel="2" rot="R90"/>
+<pin name="G" x="-2.54" y="-2.54" visible="off" length="short" direction="pas"/>
+<pin name="D" x="2.54" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="S$1" x="5.08" y="-5.08" visible="off" length="short" direction="pas" swaplevel="2" rot="R90"/>
+<pin name="S$2" x="7.62" y="-5.08" visible="off" length="short" direction="pas" swaplevel="2" rot="R90"/>
+<pin name="D$1" x="5.08" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="D$2" x="7.62" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="D$3" x="10.16" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="D$4" x="12.7" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<polygon width="0.1524" layer="94">
+<vertex x="3.81" y="0.508"/>
+<vertex x="3.302" y="-0.254"/>
+<vertex x="4.318" y="-0.254"/>
+</polygon>
+<polygon width="0.1524" layer="94">
+<vertex x="1.016" y="0"/>
+<vertex x="2.032" y="0.762"/>
+<vertex x="2.032" y="-0.762"/>
+</polygon>
+</symbol>
+<symbol name="TERMINAL">
+<wire x1="0" y1="7.62" x2="-7.62" y2="7.62" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="7.62" x2="-7.62" y2="-7.62" width="0.254" layer="94"/>
+<wire x1="-7.62" y1="-7.62" x2="0" y2="-7.62" width="0.254" layer="94"/>
+<wire x1="0" y1="-7.62" x2="0" y2="7.62" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="5.08" x2="-5.08" y2="2.54" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="2.54" x2="-5.08" y2="5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-2.54" x2="-5.08" y2="-5.08" width="0.254" layer="94"/>
+<wire x1="-2.54" y1="-5.08" x2="-5.08" y2="-2.54" width="0.254" layer="94"/>
+<pin name="P$1" x="5.08" y="2.54" visible="off" length="middle" rot="R180"/>
+<pin name="P$2" x="5.08" y="-2.54" visible="off" length="middle" rot="R180"/>
+<text x="-8.128" y="8.636" size="1.778" layer="95">&gt;NAME</text>
+<text x="-8.382" y="-9.906" size="1.778" layer="96">&gt;VALUE</text>
+</symbol>
+<symbol name="DIODE_2">
+<wire x1="-1.27" y1="-1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="-1.27" y2="1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94"/>
+<text x="2.54" y="0.4826" size="1.778" layer="95">&gt;NAME</text>
+<text x="2.54" y="-2.3114" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="A" x="-2.54" y="0" visible="off" length="short" direction="pas" swaplevel="1"/>
+<pin name="C" x="2.54" y="0" visible="off" length="short" direction="pas" rot="R180"/>
+<pin name="A1" x="-2.54" y="2.54" visible="off" length="short" direction="pas" swaplevel="1"/>
+</symbol>
+<symbol name="ZENER_DIODE">
+<wire x1="-1.27" y1="-1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="-1.27" y2="1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="94"/>
+<wire x1="1.27" y1="1.27" x2="0" y2="2.54" width="0.254" layer="94"/>
+<wire x1="1.27" y1="-1.27" x2="2.54" y2="-2.54" width="0.254" layer="94"/>
+<text x="2.54" y="0.4826" size="1.778" layer="95">&gt;NAME</text>
+<pin name="A" x="-2.54" y="0" visible="off" length="short" direction="pas"/>
+<pin name="C" x="2.54" y="0" visible="off" length="short" direction="pas" rot="R180"/>
+</symbol>
+<symbol name="C-US">
+<wire x1="-2.54" y1="0" x2="2.54" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="-1.016" x2="0" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0" y1="-1" x2="2.4892" y2="-1.8542" width="0.254" layer="94" curve="-37.878202" cap="flat"/>
+<wire x1="-2.4668" y1="-1.8504" x2="0" y2="-1.0161" width="0.254" layer="94" curve="-37.373024" cap="flat"/>
+<text x="1.016" y="0.635" size="1.778" layer="95">&gt;NAME</text>
+<text x="1.016" y="-4.191" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="1" x="0" y="2.54" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="2" x="0" y="-5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R90"/>
+</symbol>
+</symbols>
+<devicesets>
+<deviceset name="LM3481">
+<description>&lt;b&gt;switching regulator controller&lt;/b&gt;&lt;br&gt;
+data sheet at &lt;a href="http://www.national.com/ds/LM/LM3481.pdf"&gt;http://www.national.com/ds/LM/LM3481.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="LM3481" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="MSOP10">
+<connects>
+<connect gate="G$1" pin="AGND" pad="5"/>
+<connect gate="G$1" pin="COMP" pad="3"/>
+<connect gate="G$1" pin="DR" pad="8"/>
+<connect gate="G$1" pin="FA/SYNC/SD" pad="6"/>
+<connect gate="G$1" pin="FB" pad="4"/>
+<connect gate="G$1" pin="ISEN" pad="1"/>
+<connect gate="G$1" pin="PGND" pad="7"/>
+<connect gate="G$1" pin="UVLO" pad="2"/>
+<connect gate="G$1" pin="VCC" pad="9"/>
+<connect gate="G$1" pin="VIN" pad="10"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="BSZ097N04LS_G">
+<description>&lt;b&gt;mosfet&lt;/b&gt;&lt;br&gt;
+datasheet at &lt;a href="http://www.infineon.com/dgdl/BSZ097N04LSG_rev2.0.pdf?folderId=db3a3043163797a6011643468e7505a4&amp;fileId=db3a3043163797a6011643be1d53068c"&gt;http://www.infineon.com/dgdl/BSZ097N04LSG_rev2.0.pdf?folderId=db3a3043163797a6011643468e7505a4&amp;fileId=db3a3043163797a6011643be1d53068c&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="N-MOSFET_EXTRA_PINS" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="PG-TSDSON8">
+<connects>
+<connect gate="G$1" pin="D" pad="D$0"/>
+<connect gate="G$1" pin="D$1" pad="D$1"/>
+<connect gate="G$1" pin="D$2" pad="D$2"/>
+<connect gate="G$1" pin="D$3" pad="D$3"/>
+<connect gate="G$1" pin="D$4" pad="D$4"/>
+<connect gate="G$1" pin="G" pad="G"/>
+<connect gate="G$1" pin="S" pad="S$0"/>
+<connect gate="G$1" pin="S$1" pad="S$1"/>
+<connect gate="G$1" pin="S$2" pad="S$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="L-US" prefix="L" uservalue="yes">
+<description>&lt;B&gt;INDUCTOR&lt;/B&gt;, American symbol</description>
+<gates>
+<gate name="G$1" symbol="L-US" x="0" y="0"/>
+</gates>
+<devices>
+<device name="L2012C" package="L2012C">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L2825P" package="L2825P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3216C" package="L3216C">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3225M" package="L3225M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3225P" package="L3225P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L3230M" package="L3230M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4035M" package="L4035M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4516C" package="L4516C">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4532C" package="L4532M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L4532P" package="L4532P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L5038P" package="L5038P">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L5650M" package="L5650M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L8530M" package="L8530M">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/5" package="0204/5">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/7" package="0204/7">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204V" package="0204V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/10" package="0207/10">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/12" package="0207/12">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/15" package="0207/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/2V" package="0207/2V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/5V" package="0207/5V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/7" package="0207/7">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="L1812" package="L1812">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ3-U1" package="TJ3-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ3-U2" package="TJ3-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ4-U1" package="TJ4-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ4-U2" package="TJ4-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ5-U1" package="TJ5-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ5-U2" package="TJ5-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ6-U1" package="TJ6-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ6-U2" package="TJ6-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ7-U1" package="TJ7-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ7-U2" package="TJ7-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ8-U1" package="TJ8-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ8-U2" package="TJ8-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ9-U1" package="TJ9-U1">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TJ9-U2" package="TJ9-U2">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="WE-TPC" package="POWER-CHOKE_WE-TPC">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CEP125" package="CEP125">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="1060-152" package="1060-152">
+<connects>
+<connect gate="G$1" pin="1" pad="P$1"/>
+<connect gate="G$1" pin="2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="1010-153" package="1010-153">
+<connects>
+<connect gate="G$1" pin="1" pad="P$1"/>
+<connect gate="G$1" pin="2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="POWER_CONNECTOR">
+<description>MOLEX 39543-0202
+Terminal Block</description>
+<gates>
+<gate name="G$1" symbol="TERMINAL" x="-7.62" y="-25.4"/>
+</gates>
+<devices>
+<device name="39" package="39543-0202">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$1"/>
+<connect gate="G$1" pin="P$2" pad="P$2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="ELFH0225*" package="ELFH0225*">
+<connects>
+<connect gate="G$1" pin="P$1" pad="P$2"/>
+<connect gate="G$1" pin="P$2" pad="P$1"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="MMSZ5242BT1G">
+<description>&lt;b&gt;zener diode&lt;/b&gt;&lt;br&gt;
+datasheet at &lt;a href="http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF"&gt;http://www.onsemi.com/pub_link/Collateral/MMSZ5221BT1-D.PDF&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="ZENER_DIODE" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="SOD-123">
+<connects>
+<connect gate="G$1" pin="A" pad="ANODE"/>
+<connect gate="G$1" pin="C" pad="CATHODE"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="C-US" prefix="C" uservalue="yes">
+<description>&lt;B&gt;CAPACITOR&lt;/B&gt;, American symbol</description>
+<gates>
+<gate name="G$1" symbol="C-US" x="0" y="0"/>
+</gates>
+<devices>
+<device name="C0402" package="C0402">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0504" package="C0504">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0603" package="C0603">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0805" package="C0805">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1005" package="C1005">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1206" package="C1206">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1210" package="C1210">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1310" package="C1310">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1608" package="C1608">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1812" package="C1812">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1825" package="C1825">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2012" package="C2012">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C3216" package="C3216">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C3225" package="C3225">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C4532" package="C4532">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C4564" package="C4564">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-024X044" package="C025-024X044">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-025X050" package="C025-025X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-030X050" package="C025-030X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-040X050" package="C025-040X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-050X050" package="C025-050X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-060X050" package="C025-060X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C025_050-024X070" package="C025_050-024X070">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-025X075" package="C025_050-025X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-035X075" package="C025_050-035X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-045X075" package="C025_050-045X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-055X075" package="C025_050-055X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-024X044" package="C050-024X044">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-025X075" package="C050-025X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-045X075" package="C050-045X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-030X075" package="C050-030X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-050X075" package="C050-050X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-055X075" package="C050-055X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-075X075" package="C050-075X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050H075X075" package="C050H075X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-032X103" package="C075-032X103">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-042X103" package="C075-042X103">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-052X106" package="C075-052X106">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-043X133" package="C102-043X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-054X133" package="C102-054X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-064X133" package="C102-064X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102_152-062X184" package="C102_152-062X184">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-054X183" package="C150-054X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-064X183" package="C150-064X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-072X183" package="C150-072X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-084X183" package="C150-084X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-091X182" package="C150-091X182">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-062X268" package="C225-062X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-074X268" package="C225-074X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-087X268" package="C225-087X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-108X268" package="C225-108X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-113X268" package="C225-113X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-093X316" package="C275-093X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-113X316" package="C275-113X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-134X316" package="C275-134X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-205X316" package="C275-205X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-137X374" package="C325-137X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-162X374" package="C325-162X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-182X374" package="C325-182X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-192X418" package="C375-192X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-203X418" package="C375-203X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-035X075" package="C050-035X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-155X418" package="C375-155X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-063X106" package="C075-063X106">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-154X316" package="C275-154X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-173X316" package="C275-173X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0402K" package="C0402K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0603K" package="C0603K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0805K" package="C0805K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1206K" package="C1206K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1210K" package="C1210K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1812K" package="C1812K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1825K" package="C1825K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2220K" package="C2220K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2225K" package="C2225K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="J80" package="J80">
+<connects>
+<connect gate="G$1" pin="1" pad="+"/>
+<connect gate="G$1" pin="2" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="PLF1C271MDO1" package="PLF1C271MDO1">
+<connects>
+<connect gate="G$1" pin="1" pad="+"/>
+<connect gate="G$1" pin="2" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="RR71C331MDN1" package="RR71C331MDN1">
+<connects>
+<connect gate="G$1" pin="1" pad="+"/>
+<connect gate="G$1" pin="2" pad="-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="VS-12CWQ10FNPBF">
+<description>&lt;b&gt;Schottky Rectifier, 2 x 6 A (diode)&lt;/b&gt;&lt;br&gt;
+datasheet at &lt;a href="http://www.vishay.com/docs/94135/12cwq10f.pdf"&gt;http://www.vishay.com/docs/94135/12cwq10f.pdf&lt;/a&gt;</description>
+<gates>
+<gate name="G$1" symbol="DIODE_2" x="0" y="0"/>
+</gates>
+<devices>
+<device name="" package="D-PAK">
+<connects>
+<connect gate="G$1" pin="A" pad="ANODE$0"/>
+<connect gate="G$1" pin="A1" pad="ANODE$1"/>
+<connect gate="G$1" pin="C" pad="CATHODE"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+</devicesets>
+</library>
+<library name="resistor">
+<packages>
+<package name="C0402">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0504">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.294" y1="0.559" x2="0.294" y2="0.559" width="0.1016" layer="51"/>
+<wire x1="-0.294" y1="-0.559" x2="0.294" y2="-0.559" width="0.1016" layer="51"/>
+<smd name="1" x="-0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<smd name="2" x="0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<text x="-0.635" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.6604" y1="-0.6223" x2="-0.2804" y2="0.6276" layer="51"/>
+<rectangle x1="0.2794" y1="-0.6223" x2="0.6594" y2="0.6276" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C0603">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.889" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C0805">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C1005">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-1.905" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C1206">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
+<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.27" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
+<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="C1210">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="C1310">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.294" y1="0.559" x2="0.294" y2="0.559" width="0.1016" layer="51"/>
+<wire x1="-0.294" y1="-0.559" x2="0.294" y2="-0.559" width="0.1016" layer="51"/>
+<smd name="1" x="-0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<smd name="2" x="0.7" y="0" dx="1" dy="1.3" layer="1"/>
+<text x="-0.635" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.6604" y1="-0.6223" x2="-0.2804" y2="0.6276" layer="51"/>
+<rectangle x1="0.2794" y1="-0.6223" x2="0.6594" y2="0.6276" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.3" x2="0.1001" y2="0.3" layer="35"/>
+</package>
+<package name="C1608">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
+<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="C1812">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+<rectangle x1="-0.3" y1="-0.4001" x2="0.3" y2="0.4001" layer="35"/>
+</package>
+<package name="C1825">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="3.483" x2="2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-3.483" x2="-2.973" y2="-3.483" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-3.483" x2="-2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="-1.4986" y1="3.2766" x2="1.4732" y2="3.2766" width="0.1016" layer="51"/>
+<wire x1="-1.4732" y1="-3.2766" x2="1.4986" y2="-3.2766" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="3.483" x2="2.973" y2="-3.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<text x="-1.905" y="3.683" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-4.826" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.413" y1="-3.3528" x2="-1.463" y2="3.3472" layer="51"/>
+<rectangle x1="1.4478" y1="-3.3528" x2="2.3978" y2="3.3472" layer="51"/>
+<rectangle x1="-0.7" y1="-0.7" x2="0.7" y2="0.7" layer="35"/>
+</package>
+<package name="C2012">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="-0.381" y1="0.66" x2="0.381" y2="0.66" width="0.1016" layer="51"/>
+<wire x1="-0.356" y1="-0.66" x2="0.381" y2="-0.66" width="0.1016" layer="51"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.889" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0922" y1="-0.7239" x2="-0.3421" y2="0.7262" layer="51"/>
+<rectangle x1="0.3556" y1="-0.7239" x2="1.1057" y2="0.7262" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.4001" x2="0.1001" y2="0.4001" layer="35"/>
+</package>
+<package name="C3216">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
+<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.27" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
+<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
+<rectangle x1="-0.3" y1="-0.5001" x2="0.3" y2="0.5001" layer="35"/>
+</package>
+<package name="C3225">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9652" y1="1.2446" x2="0.9652" y2="1.2446" width="0.1016" layer="51"/>
+<wire x1="-0.9652" y1="-1.2446" x2="0.9652" y2="-1.2446" width="0.1016" layer="51"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-1.2954" x2="-0.9517" y2="1.3045" layer="51"/>
+<rectangle x1="0.9517" y1="-1.3045" x2="1.7018" y2="1.2954" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5001" x2="0.1999" y2="0.5001" layer="35"/>
+</package>
+<package name="C4532">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="1.983" x2="2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-1.983" x2="-2.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-1.983" x2="-2.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.4732" y1="1.6002" x2="1.4732" y2="1.6002" width="0.1016" layer="51"/>
+<wire x1="-1.4478" y1="-1.6002" x2="1.4732" y2="-1.6002" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="1.983" x2="2.973" y2="-1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="3.4" layer="1"/>
+<text x="-1.905" y="2.032" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.3876" y1="-1.651" x2="-1.4376" y2="1.649" layer="51"/>
+<rectangle x1="1.4478" y1="-1.651" x2="2.3978" y2="1.649" layer="51"/>
+<rectangle x1="-0.4001" y1="-0.7" x2="0.4001" y2="0.7" layer="35"/>
+</package>
+<package name="C4564">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.973" y1="3.483" x2="2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-3.483" x2="-2.973" y2="-3.483" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-3.483" x2="-2.973" y2="3.483" width="0.0508" layer="39"/>
+<wire x1="-1.4986" y1="3.2766" x2="1.4732" y2="3.2766" width="0.1016" layer="51"/>
+<wire x1="-1.4732" y1="-3.2766" x2="1.4986" y2="-3.2766" width="0.1016" layer="51"/>
+<wire x1="2.973" y1="3.483" x2="2.973" y2="-3.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<smd name="2" x="1.95" y="0" dx="1.9" dy="6.8" layer="1"/>
+<text x="-1.905" y="3.683" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-4.826" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.413" y1="-3.3528" x2="-1.463" y2="3.3472" layer="51"/>
+<rectangle x1="1.4478" y1="-3.3528" x2="2.3978" y2="3.3472" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="C025-024X044">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 2.4 x 4.4 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.778" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.778" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-025X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 2.5 x 5 mm</description>
+<wire x1="-2.159" y1="1.27" x2="2.159" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.27" x2="-2.159" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.27" x2="2.413" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.016" x2="-2.159" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.27" x2="2.413" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.159" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="1.524" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-030X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 3 x 5 mm</description>
+<wire x1="-2.159" y1="1.524" x2="2.159" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.524" x2="-2.159" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.27" x2="2.413" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.27" x2="-2.413" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.524" x2="2.413" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.27" x2="-2.159" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.524" x2="2.413" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.27" x2="-2.159" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-040X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 4 x 5 mm</description>
+<wire x1="-2.159" y1="1.905" x2="2.159" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.905" x2="-2.159" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.651" x2="2.413" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.651" x2="-2.413" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.905" x2="2.413" y2="1.651" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.651" x2="-2.159" y2="1.905" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.905" x2="2.413" y2="-1.651" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.651" x2="-2.159" y2="-1.905" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.429" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-050X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 5 x 5 mm</description>
+<wire x1="-2.159" y1="2.286" x2="2.159" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.286" x2="-2.159" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.032" x2="2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.032" x2="-2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.286" x2="2.413" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.032" x2="-2.159" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.286" x2="2.413" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.032" x2="-2.159" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.54" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025-060X050">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm, outline 6 x 5 mm</description>
+<wire x1="-2.159" y1="2.794" x2="2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.794" x2="-2.159" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.54" x2="2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.54" x2="-2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.794" x2="2.413" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.54" x2="-2.159" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.794" x2="2.413" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.54" x2="-2.159" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="3.048" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.032" y="-2.413" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-024X070">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 mm + 5 mm, outline 2.4 x 7 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.191" y1="-1.143" x2="-3.9624" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-4.191" y1="1.143" x2="-3.9624" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="-0.635" x2="-4.191" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-4.699" y1="0.635" x2="-4.191" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.699" y1="-0.635" x2="-4.699" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="1.143" x2="-2.5654" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.143" x2="-2.5654" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.81" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.81" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-025X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 2.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="1.27" x2="2.159" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.27" x2="-2.159" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.27" x2="2.413" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.016" x2="-2.159" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.27" x2="2.413" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.159" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="1.016" x2="4.953" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="1.27" x2="4.953" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.27" x2="4.953" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="1.27" x2="4.699" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.27" x2="2.794" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.413" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-0.762" x2="2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.254" x2="2.413" y2="-0.254" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0" x2="2.286" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.762" y1="0" x2="0.381" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.159" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.159" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-035X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 3.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="1.778" x2="2.159" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-1.778" x2="-2.159" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.524" x2="-2.413" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="1.778" x2="2.413" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="1.524" x2="-2.159" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-1.778" x2="2.413" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-1.524" x2="-2.159" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="1.524" x2="4.953" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="1.778" x2="4.953" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.778" x2="4.953" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="1.778" x2="4.699" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.778" x2="2.794" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.524" x2="2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.413" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.508" x2="2.413" y2="-0.508" width="0.1524" layer="21"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.302" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-045X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 4.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="2.286" x2="2.159" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.286" x2="-2.159" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.032" x2="-2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.286" x2="2.413" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.032" x2="-2.159" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.286" x2="2.413" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.032" x2="-2.159" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="2.032" x2="4.953" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.286" x2="4.953" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-2.286" x2="4.953" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="2.286" x2="4.699" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.286" x2="2.794" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.032" x2="2.413" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.397" x2="2.413" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.762" x2="2.413" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="2.667" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C025_050-055X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 2.5 + 5 mm, outline 5.5 x 7.5 mm</description>
+<wire x1="-2.159" y1="2.794" x2="2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-2.794" x2="-2.159" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="2.54" x2="-2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="2.794" x2="2.413" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.413" y1="2.54" x2="-2.159" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.159" y1="-2.794" x2="2.413" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.413" y1="-2.54" x2="-2.159" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="0.381" y1="0" x2="0.254" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="0.762" width="0.254" layer="21"/>
+<wire x1="0.254" y1="0" x2="0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0.762" x2="-0.254" y2="0" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.762" width="0.254" layer="21"/>
+<wire x1="-0.254" y1="0" x2="-0.381" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0" x2="-0.762" y2="0" width="0.1524" layer="51"/>
+<wire x1="4.953" y1="2.54" x2="4.953" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.794" x2="4.953" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-2.794" x2="4.953" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.794" y1="2.794" x2="4.699" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.794" x2="2.794" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="2.54" x2="2.413" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-2.032" x2="2.413" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="0.762" x2="2.413" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0" x2="2.286" y2="0" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="0" x2="2.794" y2="0" width="0.1524" layer="21"/>
+<wire x1="2.794" y1="0" x2="3.302" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="0" x2="0.762" y2="0" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="3" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.286" y="3.175" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.032" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-024X044">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 2.4 x 4.4 mm</description>
+<wire x1="-2.159" y1="-0.635" x2="-2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-2.159" y1="0.635" x2="-1.651" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.159" y1="-0.635" x2="-1.651" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.651" y1="1.143" x2="-1.651" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.159" y1="-0.635" x2="2.159" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-1.143" x2="-1.651" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="1.143" x2="2.159" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="1.651" y1="-1.143" x2="2.159" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.3048" y1="0.762" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0.762" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.762" width="0.3048" layer="21"/>
+<wire x1="1.27" y1="0" x2="0.3302" y2="0" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-0.3048" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.159" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.159" y="-2.667" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.159" y1="-0.381" x2="2.54" y2="0.381" layer="51"/>
+<rectangle x1="-2.54" y1="-0.381" x2="-2.159" y2="0.381" layer="51"/>
+</package>
+<package name="C050-025X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 2.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.016" x2="-3.683" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.27" x2="3.429" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.016" x2="3.683" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.27" x2="-3.429" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.27" x2="3.683" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.27" x2="3.683" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.016" x2="-3.429" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.016" x2="-3.429" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-045X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 4.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.032" x2="-3.683" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.286" x2="3.429" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.032" x2="3.683" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.286" x2="-3.429" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.286" x2="3.683" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.286" x2="3.683" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.032" x2="-3.429" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.032" x2="-3.429" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="2.667" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.81" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-030X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 3 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.27" x2="-3.683" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.524" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.27" x2="3.683" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.524" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.524" x2="3.683" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.524" x2="3.683" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.27" x2="-3.429" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.27" x2="-3.429" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-050X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.286" x2="-3.683" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.54" x2="3.429" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.286" x2="3.683" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.54" x2="-3.429" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.54" x2="3.683" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.54" x2="3.683" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.286" x2="-3.429" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.286" x2="-3.429" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-2.159" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-055X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 5.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="2.54" x2="-3.683" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-2.794" x2="3.429" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-2.54" x2="3.683" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.794" x2="-3.429" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="2.794" x2="3.683" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-2.794" x2="3.683" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-2.54" x2="-3.429" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="2.54" x2="-3.429" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="3.175" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.302" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-075X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 7.5 x 7.5 mm</description>
+<wire x1="-1.524" y1="0" x2="-0.4572" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.4572" y1="0" x2="-0.4572" y2="0.762" width="0.4064" layer="21"/>
+<wire x1="-0.4572" y1="0" x2="-0.4572" y2="-0.762" width="0.4064" layer="21"/>
+<wire x1="0.4318" y1="0.762" x2="0.4318" y2="0" width="0.4064" layer="21"/>
+<wire x1="0.4318" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.4318" y1="0" x2="0.4318" y2="-0.762" width="0.4064" layer="21"/>
+<wire x1="-3.683" y1="3.429" x2="-3.683" y2="-3.429" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-3.683" x2="3.429" y2="-3.683" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-3.429" x2="3.683" y2="3.429" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="3.683" x2="-3.429" y2="3.683" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="3.683" x2="3.683" y2="3.429" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-3.683" x2="3.683" y2="-3.429" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-3.429" x2="-3.429" y2="-3.683" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="3.429" x2="-3.429" y2="3.683" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.429" y="4.064" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-2.921" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050H075X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+Horizontal, grid 5 mm, outline 7.5 x 7.5 mm</description>
+<wire x1="-3.683" y1="7.112" x2="-3.683" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="0.508" x2="-3.302" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="0.508" x2="-1.778" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="-1.778" y1="0.508" x2="1.778" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.508" x2="3.302" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="3.302" y1="0.508" x2="3.683" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="0.508" x2="3.683" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="7.62" x2="-3.175" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="-0.3048" y1="2.413" x2="-0.3048" y2="1.778" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="1.778" x2="-0.3048" y2="1.143" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="1.778" x2="-1.651" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="2.413" x2="0.3302" y2="1.778" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="1.778" x2="0.3302" y2="1.143" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="1.778" x2="1.651" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="7.112" x2="-3.175" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.175" y1="7.62" x2="3.683" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="0" x2="-2.54" y2="0.254" width="0.508" layer="51"/>
+<wire x1="2.54" y1="0" x2="2.54" y2="0.254" width="0.508" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.302" y="8.001" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="3.175" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-2.794" y1="0.127" x2="-2.286" y2="0.508" layer="51"/>
+<rectangle x1="2.286" y1="0.127" x2="2.794" y2="0.508" layer="51"/>
+</package>
+<package name="C075-032X103">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 3.2 x 10.3 mm</description>
+<wire x1="4.826" y1="1.524" x2="-4.826" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-1.524" x2="4.826" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="5.08" y1="-1.27" x2="5.08" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="1.524" x2="5.08" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.826" y1="-1.524" x2="5.08" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="-1.27" x2="-4.826" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.27" x2="-4.826" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="0.508" y1="0" x2="2.54" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="0" x2="-0.508" y2="0" width="0.1524" layer="21"/>
+<wire x1="-0.508" y1="0.889" x2="-0.508" y2="0" width="0.4064" layer="21"/>
+<wire x1="-0.508" y1="0" x2="-0.508" y2="-0.889" width="0.4064" layer="21"/>
+<wire x1="0.508" y1="0.889" x2="0.508" y2="0" width="0.4064" layer="21"/>
+<wire x1="0.508" y1="0" x2="0.508" y2="-0.889" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.826" y="-3.048" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-042X103">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 4.2 x 10.3 mm</description>
+<wire x1="4.826" y1="2.032" x2="-4.826" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.778" x2="-5.08" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-2.032" x2="4.826" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="5.08" y1="-1.778" x2="5.08" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="2.032" x2="5.08" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.826" y1="-2.032" x2="5.08" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="-1.778" x2="-4.826" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.778" x2="-4.826" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.699" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-052X106">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 5.2 x 10.6 mm</description>
+<wire x1="4.953" y1="2.54" x2="-4.953" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.286" x2="-5.207" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-2.54" x2="4.953" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.286" x2="5.207" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="2.54" x2="5.207" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.953" y1="-2.54" x2="5.207" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="-2.286" x2="-4.953" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="2.286" x2="-4.953" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-043X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 4.3 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="2.032" x2="6.096" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="1.524" x2="6.604" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-2.032" x2="-6.096" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-1.524" x2="-6.604" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="2.032" x2="6.604" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-2.032" x2="6.604" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-1.524" x2="-6.096" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="1.524" x2="-6.096" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-054X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 5.4 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="2.54" x2="6.096" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="2.032" x2="6.604" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-2.54" x2="-6.096" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.032" x2="-6.604" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="2.54" x2="6.604" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-2.54" x2="6.604" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.032" x2="-6.096" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.032" x2="-6.096" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-1.905" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102-064X133">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm, outline 6.4 x 13.3 mm</description>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="3.81" y1="0" x2="-2.286" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.81" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-6.096" y1="3.048" x2="6.096" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.604" y1="2.54" x2="6.604" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-3.048" x2="-6.096" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="3.048" x2="6.604" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="-3.048" x2="6.604" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.54" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C102_152-062X184">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 10.2 mm + 15.2 mm, outline 6.2 x 18.4 mm</description>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.286" y1="0" x2="-2.286" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.175" y1="1.27" x2="-3.175" y2="0" width="0.4064" layer="21"/>
+<wire x1="-3.175" y1="0" x2="-3.175" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-3.683" y1="0" x2="-3.175" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="0" x2="3.683" y2="0" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="0" x2="8.636" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.096" y1="3.048" x2="6.223" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="-3.048" x2="-6.096" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="3.048" x2="6.731" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.223" y1="-3.048" x2="6.731" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="-2.54" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-6.604" y1="2.54" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.731" y1="2.54" x2="6.731" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="11.176" y1="3.048" x2="11.684" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="11.176" y1="-3.048" x2="11.684" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="11.176" y1="-3.048" x2="7.112" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="7.112" y1="3.048" x2="11.176" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="11.684" y1="2.54" x2="11.684" y2="-2.54" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="3" x="10.033" y="0" drill="1.016" shape="octagon"/>
+<text x="-5.969" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.524" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-054X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 5.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="2.032" x2="9.017" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-2.54" x2="-8.509" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-2.032" x2="-9.017" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="2.54" x2="8.509" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="2.54" x2="9.017" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-2.54" x2="9.017" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-2.032" x2="-8.509" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="2.032" x2="-8.509" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.382" y="2.921" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-064X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 6.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="2.54" x2="9.017" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.048" x2="-8.509" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-2.54" x2="-9.017" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="3.048" x2="8.509" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="3.048" x2="9.017" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-3.048" x2="9.017" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-2.54" x2="-8.509" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="2.54" x2="-8.509" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.032" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-072X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 7.2 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.048" x2="9.017" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.556" x2="-8.509" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.048" x2="-9.017" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="3.556" x2="8.509" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="3.556" x2="9.017" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-3.556" x2="9.017" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.048" x2="-8.509" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.048" x2="-8.509" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="3.937" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.286" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-084X183">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 8.4 x 18.3 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.556" x2="9.017" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-4.064" x2="-8.509" y2="-4.064" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.556" x2="-9.017" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="4.064" x2="8.509" y2="4.064" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="4.064" x2="9.017" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-4.064" x2="9.017" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.556" x2="-8.509" y2="-4.064" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.556" x2="-8.509" y2="4.064" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="4.445" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C150-091X182">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 15 mm, outline 9.1 x 18.2 mm</description>
+<wire x1="-5.08" y1="1.27" x2="-5.08" y2="0" width="0.4064" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-5.08" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="1.27" x2="-4.191" y2="0" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="-4.191" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-4.191" y1="0" x2="6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="0" x2="-6.096" y2="0" width="0.1524" layer="21"/>
+<wire x1="9.017" y1="3.937" x2="9.017" y2="-3.937" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-4.445" x2="-8.509" y2="-4.445" width="0.1524" layer="21"/>
+<wire x1="-9.017" y1="-3.937" x2="-9.017" y2="3.937" width="0.1524" layer="21"/>
+<wire x1="-8.509" y1="4.445" x2="8.509" y2="4.445" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="4.445" x2="9.017" y2="3.937" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.509" y1="-4.445" x2="9.017" y2="-3.937" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="-3.937" x2="-8.509" y2="-4.445" width="0.1524" layer="21" curve="90"/>
+<wire x1="-9.017" y1="3.937" x2="-8.509" y2="4.445" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-7.493" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.493" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.509" y="4.826" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.429" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-062X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 6.2 x 26.8 mm</description>
+<wire x1="-12.827" y1="3.048" x2="12.827" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="2.54" x2="13.335" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-3.048" x2="-12.827" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-2.54" x2="-13.335" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="3.048" x2="13.335" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-3.048" x2="13.335" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-2.54" x2="-12.827" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="2.54" x2="-12.827" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.7" y="3.429" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-074X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 7.4 x 26.8 mm</description>
+<wire x1="-12.827" y1="3.556" x2="12.827" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="3.048" x2="13.335" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-3.556" x2="-12.827" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-3.048" x2="-13.335" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="3.556" x2="13.335" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-3.556" x2="13.335" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-3.048" x2="-12.827" y2="-3.556" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="3.048" x2="-12.827" y2="3.556" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.827" y="3.937" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-087X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 8.7 x 26.8 mm</description>
+<wire x1="-12.827" y1="4.318" x2="12.827" y2="4.318" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="3.81" x2="13.335" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-4.318" x2="-12.827" y2="-4.318" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-3.81" x2="-13.335" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="4.318" x2="13.335" y2="3.81" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-4.318" x2="13.335" y2="-3.81" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-3.81" x2="-12.827" y2="-4.318" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="3.81" x2="-12.827" y2="4.318" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.827" y="4.699" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-108X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 10.8 x 26.8 mm</description>
+<wire x1="-12.827" y1="5.334" x2="12.827" y2="5.334" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="4.826" x2="13.335" y2="-4.826" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-5.334" x2="-12.827" y2="-5.334" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-4.826" x2="-13.335" y2="4.826" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="5.334" x2="13.335" y2="4.826" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-5.334" x2="13.335" y2="-4.826" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-4.826" x2="-12.827" y2="-5.334" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="4.826" x2="-12.827" y2="5.334" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.954" y="5.715" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C225-113X268">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 22.5 mm, outline 11.3 x 26.8 mm</description>
+<wire x1="-12.827" y1="5.588" x2="12.827" y2="5.588" width="0.1524" layer="21"/>
+<wire x1="13.335" y1="5.08" x2="13.335" y2="-5.08" width="0.1524" layer="21"/>
+<wire x1="12.827" y1="-5.588" x2="-12.827" y2="-5.588" width="0.1524" layer="21"/>
+<wire x1="-13.335" y1="-5.08" x2="-13.335" y2="5.08" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="12.827" y1="5.588" x2="13.335" y2="5.08" width="0.1524" layer="21" curve="-90"/>
+<wire x1="12.827" y1="-5.588" x2="13.335" y2="-5.08" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="-5.08" x2="-12.827" y2="-5.588" width="0.1524" layer="21" curve="90"/>
+<wire x1="-13.335" y1="5.08" x2="-12.827" y2="5.588" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-9.652" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="9.652" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-11.303" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.303" y="0" drill="1.016" shape="octagon"/>
+<text x="-12.954" y="5.969" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-093X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 9.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="4.572" x2="15.24" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="4.064" x2="15.748" y2="-4.064" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-4.572" x2="-15.24" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-4.064" x2="-15.748" y2="4.064" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="4.572" x2="15.748" y2="4.064" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-4.572" x2="15.748" y2="-4.064" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-4.064" x2="-15.24" y2="-4.572" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="4.064" x2="-15.24" y2="4.572" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="4.953" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-113X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 11.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="5.588" x2="15.24" y2="5.588" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="5.08" x2="15.748" y2="-5.08" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-5.588" x2="-15.24" y2="-5.588" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-5.08" x2="-15.748" y2="5.08" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="5.588" x2="15.748" y2="5.08" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-5.588" x2="15.748" y2="-5.08" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-5.08" x2="-15.24" y2="-5.588" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="5.08" x2="-15.24" y2="5.588" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="5.969" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-134X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 13.4 x 31.6 mm</description>
+<wire x1="-15.24" y1="6.604" x2="15.24" y2="6.604" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="6.096" x2="15.748" y2="-6.096" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-6.604" x2="-15.24" y2="-6.604" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-6.096" x2="-15.748" y2="6.096" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="6.604" x2="15.748" y2="6.096" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-6.604" x2="15.748" y2="-6.096" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-6.096" x2="-15.24" y2="-6.604" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="6.096" x2="-15.24" y2="6.604" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="6.985" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-205X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 20.5 x 31.6 mm</description>
+<wire x1="-15.24" y1="10.16" x2="15.24" y2="10.16" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="9.652" x2="15.748" y2="-9.652" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-10.16" x2="-15.24" y2="-10.16" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-9.652" x2="-15.748" y2="9.652" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="10.16" x2="15.748" y2="9.652" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-10.16" x2="15.748" y2="-9.652" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-9.652" x2="-15.24" y2="-10.16" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="9.652" x2="-15.24" y2="10.16" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="10.541" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-4.318" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-137X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 13.7 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="6.731" x2="18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="6.731" x2="-18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-6.731" x2="18.542" y2="-6.731" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="6.731" x2="-18.542" y2="6.731" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.2372" y="7.0612" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-162X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 16.2 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="8.001" x2="18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="8.001" x2="-18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-8.001" x2="18.542" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="8.001" x2="-18.542" y2="8.001" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.3642" y="8.3312" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C325-182X374">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 32.5 mm, outline 18.2 x 37.4 mm</description>
+<wire x1="-14.2748" y1="0" x2="-12.7" y2="0" width="0.1524" layer="21"/>
+<wire x1="-12.7" y1="1.905" x2="-12.7" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="1.905" x2="-11.811" y2="0" width="0.4064" layer="21"/>
+<wire x1="-11.811" y1="0" x2="14.2748" y2="0" width="0.1524" layer="21"/>
+<wire x1="-11.811" y1="0" x2="-11.811" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-12.7" y1="0" x2="-12.7" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="18.542" y1="9.017" x2="18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="9.017" x2="-18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="-18.542" y1="-9.017" x2="18.542" y2="-9.017" width="0.1524" layer="21"/>
+<wire x1="18.542" y1="9.017" x2="-18.542" y2="9.017" width="0.1524" layer="21"/>
+<pad name="1" x="-16.256" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="16.256" y="0" drill="1.1938" shape="octagon"/>
+<text x="-18.3642" y="9.3472" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-10.8458" y="-2.8702" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-192X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 19.2 x 41.8 mm</description>
+<wire x1="-20.32" y1="8.509" x2="20.32" y2="8.509" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="8.001" x2="20.828" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-8.509" x2="-20.32" y2="-8.509" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-8.001" x2="-20.828" y2="8.001" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="8.509" x2="20.828" y2="8.001" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-8.509" x2="20.828" y2="-8.001" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-8.001" x2="-20.32" y2="-8.509" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="8.001" x2="-20.32" y2="8.509" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.447" y="8.89" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-203X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 20.3 x 41.8 mm</description>
+<wire x1="-20.32" y1="10.16" x2="20.32" y2="10.16" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="9.652" x2="20.828" y2="-9.652" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-10.16" x2="-20.32" y2="-10.16" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-9.652" x2="-20.828" y2="9.652" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="10.16" x2="20.828" y2="9.652" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-10.16" x2="20.828" y2="-9.652" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-9.652" x2="-20.32" y2="-10.16" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="9.652" x2="-20.32" y2="10.16" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.32" y="10.541" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C050-035X075">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 5 mm, outline 3.5 x 7.5 mm</description>
+<wire x1="-0.3048" y1="0.635" x2="-0.3048" y2="0" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-0.3048" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="-0.3048" y1="0" x2="-1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="0.3302" y1="0.635" x2="0.3302" y2="0" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="0.3302" y2="-0.635" width="0.3048" layer="21"/>
+<wire x1="0.3302" y1="0" x2="1.524" y2="0" width="0.1524" layer="21"/>
+<wire x1="-3.683" y1="1.524" x2="-3.683" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-3.429" y1="-1.778" x2="3.429" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="3.683" y1="-1.524" x2="3.683" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.778" x2="-3.429" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="3.429" y1="1.778" x2="3.683" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="3.429" y1="-1.778" x2="3.683" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="-1.524" x2="-3.429" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-3.683" y1="1.524" x2="-3.429" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.556" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.556" y="-3.429" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C375-155X418">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 37.5 mm, outline 15.5 x 41.8 mm</description>
+<wire x1="-20.32" y1="7.62" x2="20.32" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="20.828" y1="7.112" x2="20.828" y2="-7.112" width="0.1524" layer="21"/>
+<wire x1="20.32" y1="-7.62" x2="-20.32" y2="-7.62" width="0.1524" layer="21"/>
+<wire x1="-20.828" y1="-7.112" x2="-20.828" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="20.32" y1="7.62" x2="20.828" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="20.32" y1="-7.62" x2="20.828" y2="-7.112" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="-7.112" x2="-20.32" y2="-7.62" width="0.1524" layer="21" curve="90"/>
+<wire x1="-20.828" y1="7.112" x2="-20.32" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-16.002" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="16.002" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-18.796" y="0" drill="1.3208" shape="octagon"/>
+<pad name="2" x="18.796" y="0" drill="1.3208" shape="octagon"/>
+<text x="-20.447" y="8.001" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C075-063X106">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 7.5 mm, outline 6.3 x 10.6 mm</description>
+<wire x1="4.953" y1="3.048" x2="-4.953" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.794" x2="-5.207" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-3.048" x2="4.953" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.794" x2="5.207" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="3.048" x2="5.207" y2="2.794" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.953" y1="-3.048" x2="5.207" y2="-2.794" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="-2.794" x2="-4.953" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.207" y1="2.794" x2="-4.953" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.27" y1="0" x2="2.667" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="0" x2="-2.159" y2="0" width="0.1524" layer="21"/>
+<wire x1="-2.159" y1="1.27" x2="-2.159" y2="0" width="0.4064" layer="21"/>
+<wire x1="-2.159" y1="0" x2="-2.159" y2="-1.27" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.4064" layer="21"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.4064" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.9144" shape="octagon"/>
+<text x="-4.826" y="3.429" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.635" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-154X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 15.4 x 31.6 mm</description>
+<wire x1="-15.24" y1="7.62" x2="15.24" y2="7.62" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="7.112" x2="15.748" y2="-7.112" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-7.62" x2="-15.24" y2="-7.62" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-7.112" x2="-15.748" y2="7.112" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="7.62" x2="15.748" y2="7.112" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-7.62" x2="15.748" y2="-7.112" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-7.112" x2="-15.24" y2="-7.62" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="7.112" x2="-15.24" y2="7.62" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="8.001" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C275-173X316">
+<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;
+grid 27.5 mm, outline 17.3 x 31.6 mm</description>
+<wire x1="-15.24" y1="8.509" x2="15.24" y2="8.509" width="0.1524" layer="21"/>
+<wire x1="15.748" y1="8.001" x2="15.748" y2="-8.001" width="0.1524" layer="21"/>
+<wire x1="15.24" y1="-8.509" x2="-15.24" y2="-8.509" width="0.1524" layer="21"/>
+<wire x1="-15.748" y1="-8.001" x2="-15.748" y2="8.001" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="1.905" x2="-6.731" y2="0" width="0.4064" layer="21"/>
+<wire x1="-6.731" y1="0" x2="-6.731" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0" width="0.4064" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-7.62" y2="-1.905" width="0.4064" layer="21"/>
+<wire x1="15.24" y1="8.509" x2="15.748" y2="8.001" width="0.1524" layer="21" curve="-90"/>
+<wire x1="15.24" y1="-8.509" x2="15.748" y2="-8.001" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="-8.001" x2="-15.24" y2="-8.509" width="0.1524" layer="21" curve="90"/>
+<wire x1="-15.748" y1="8.001" x2="-15.24" y2="8.509" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-11.557" y1="0" x2="-7.62" y2="0" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="0" x2="11.557" y2="0" width="0.1524" layer="21"/>
+<pad name="1" x="-13.716" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="13.716" y="0" drill="1.1938" shape="octagon"/>
+<text x="-15.24" y="8.89" size="1.778" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.08" y="-2.54" size="1.778" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="C0402K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0204 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 1005</description>
+<wire x1="-0.425" y1="0.2" x2="0.425" y2="0.2" width="0.1016" layer="51"/>
+<wire x1="0.425" y1="-0.2" x2="-0.425" y2="-0.2" width="0.1016" layer="51"/>
+<smd name="1" x="-0.6" y="0" dx="0.925" dy="0.74" layer="1"/>
+<smd name="2" x="0.6" y="0" dx="0.925" dy="0.74" layer="1"/>
+<text x="-0.5" y="0.425" size="1.016" layer="25">&gt;NAME</text>
+<text x="-0.5" y="-1.45" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.5" y1="-0.25" x2="-0.225" y2="0.25" layer="51"/>
+<rectangle x1="0.225" y1="-0.25" x2="0.5" y2="0.25" layer="51"/>
+</package>
+<package name="C0603K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0603 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 1608</description>
+<wire x1="-0.725" y1="0.35" x2="0.725" y2="0.35" width="0.1016" layer="51"/>
+<wire x1="0.725" y1="-0.35" x2="-0.725" y2="-0.35" width="0.1016" layer="51"/>
+<smd name="1" x="-0.875" y="0" dx="1.05" dy="1.08" layer="1"/>
+<smd name="2" x="0.875" y="0" dx="1.05" dy="1.08" layer="1"/>
+<text x="-0.8" y="0.65" size="1.016" layer="25">&gt;NAME</text>
+<text x="-0.8" y="-1.65" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.8" y1="-0.4" x2="-0.45" y2="0.4" layer="51"/>
+<rectangle x1="0.45" y1="-0.4" x2="0.8" y2="0.4" layer="51"/>
+</package>
+<package name="C0805K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0805 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 2012</description>
+<wire x1="-0.925" y1="0.6" x2="0.925" y2="0.6" width="0.1016" layer="51"/>
+<wire x1="0.925" y1="-0.6" x2="-0.925" y2="-0.6" width="0.1016" layer="51"/>
+<smd name="1" x="-1" y="0" dx="1.3" dy="1.6" layer="1"/>
+<smd name="2" x="1" y="0" dx="1.3" dy="1.6" layer="1"/>
+<text x="-1" y="0.875" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1" y="-1.9" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1" y1="-0.65" x2="-0.5" y2="0.65" layer="51"/>
+<rectangle x1="0.5" y1="-0.65" x2="1" y2="0.65" layer="51"/>
+</package>
+<package name="C1206K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1206 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 3216</description>
+<wire x1="-1.525" y1="0.75" x2="1.525" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-0.75" x2="-1.525" y2="-0.75" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.5" dy="2" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.5" dy="2" layer="1"/>
+<text x="-1.6" y="1.1" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-2.1" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-0.8" x2="-1.1" y2="0.8" layer="51"/>
+<rectangle x1="1.1" y1="-0.8" x2="1.6" y2="0.8" layer="51"/>
+</package>
+<package name="C1210K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1210 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 3225</description>
+<wire x1="-1.525" y1="1.175" x2="1.525" y2="1.175" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-1.175" x2="-1.525" y2="-1.175" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.5" dy="2.9" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.5" dy="2.9" layer="1"/>
+<text x="-1.6" y="1.55" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-2.575" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-1.25" x2="-1.1" y2="1.25" layer="51"/>
+<rectangle x1="1.1" y1="-1.25" x2="1.6" y2="1.25" layer="51"/>
+</package>
+<package name="C1812K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1812 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 4532</description>
+<wire x1="-2.175" y1="1.525" x2="2.175" y2="1.525" width="0.1016" layer="51"/>
+<wire x1="2.175" y1="-1.525" x2="-2.175" y2="-1.525" width="0.1016" layer="51"/>
+<smd name="1" x="-2.05" y="0" dx="1.8" dy="3.7" layer="1"/>
+<smd name="2" x="2.05" y="0" dx="1.8" dy="3.7" layer="1"/>
+<text x="-2.25" y="1.95" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.25" y="-2.975" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.25" y1="-1.6" x2="-1.65" y2="1.6" layer="51"/>
+<rectangle x1="1.65" y1="-1.6" x2="2.25" y2="1.6" layer="51"/>
+</package>
+<package name="C1825K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1825 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 4564</description>
+<wire x1="-1.525" y1="3.125" x2="1.525" y2="3.125" width="0.1016" layer="51"/>
+<wire x1="1.525" y1="-3.125" x2="-1.525" y2="-3.125" width="0.1016" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.8" dy="6.9" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.8" dy="6.9" layer="1"/>
+<text x="-1.6" y="3.55" size="1.016" layer="25">&gt;NAME</text>
+<text x="-1.6" y="-4.625" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6" y1="-3.2" x2="-1.1" y2="3.2" layer="51"/>
+<rectangle x1="1.1" y1="-3.2" x2="1.6" y2="3.2" layer="51"/>
+</package>
+<package name="C2220K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2220 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 5650</description>
+<wire x1="-2.725" y1="2.425" x2="2.725" y2="2.425" width="0.1016" layer="51"/>
+<wire x1="2.725" y1="-2.425" x2="-2.725" y2="-2.425" width="0.1016" layer="51"/>
+<smd name="1" x="-2.55" y="0" dx="1.85" dy="5.5" layer="1"/>
+<smd name="2" x="2.55" y="0" dx="1.85" dy="5.5" layer="1"/>
+<text x="-2.8" y="2.95" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.8" y="-3.975" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.8" y1="-2.5" x2="-2.2" y2="2.5" layer="51"/>
+<rectangle x1="2.2" y1="-2.5" x2="2.8" y2="2.5" layer="51"/>
+</package>
+<package name="C2225K">
+<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2225 Reflow solder&lt;/b&gt;&lt;p&gt;
+Metric Code Size 5664</description>
+<wire x1="-2.725" y1="3.075" x2="2.725" y2="3.075" width="0.1016" layer="51"/>
+<wire x1="2.725" y1="-3.075" x2="-2.725" y2="-3.075" width="0.1016" layer="51"/>
+<smd name="1" x="-2.55" y="0" dx="1.85" dy="6.8" layer="1"/>
+<smd name="2" x="2.55" y="0" dx="1.85" dy="6.8" layer="1"/>
+<text x="-2.8" y="3.6" size="1.016" layer="25">&gt;NAME</text>
+<text x="-2.8" y="-4.575" size="1.016" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.8" y1="-3.15" x2="-2.2" y2="3.15" layer="51"/>
+<rectangle x1="2.2" y1="-3.15" x2="2.8" y2="3.15" layer="51"/>
+</package>
+<package name="R0402">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="R0603">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.432" y1="-0.356" x2="0.432" y2="-0.356" width="0.1524" layer="51"/>
+<wire x1="0.432" y1="0.356" x2="-0.432" y2="0.356" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1" dy="1.1" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1" dy="1.1" layer="1"/>
+<text x="-0.889" y="0.889" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.889" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.4318" y1="-0.4318" x2="0.8382" y2="0.4318" layer="51"/>
+<rectangle x1="-0.8382" y1="-0.4318" x2="-0.4318" y2="0.4318" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
+</package>
+<package name="R0805">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.41" y1="0.635" x2="0.41" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-0.41" y1="-0.635" x2="0.41" y2="-0.635" width="0.1524" layer="51"/>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.762" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.762" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.4064" y1="-0.6985" x2="1.0564" y2="0.7015" layer="51"/>
+<rectangle x1="-1.0668" y1="-0.6985" x2="-0.4168" y2="0.7015" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5001" x2="0.1999" y2="0.5001" layer="35"/>
+</package>
+<package name="R0805W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-0.41" y1="0.635" x2="0.41" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-0.41" y1="-0.635" x2="0.41" y2="-0.635" width="0.1524" layer="51"/>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.94" y="0" dx="1.5" dy="1" layer="1"/>
+<smd name="2" x="0.94" y="0" dx="1.5" dy="1" layer="1"/>
+<text x="-0.635" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.159" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.4064" y1="-0.6985" x2="1.0564" y2="0.7015" layer="51"/>
+<rectangle x1="-1.0668" y1="-0.6985" x2="-0.4168" y2="0.7015" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5001" x2="0.1999" y2="0.5001" layer="35"/>
+</package>
+<package name="R1005">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
+<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
+<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
+<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
+<text x="-0.635" y="0.762" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.032" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
+<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
+</package>
+<package name="R1206">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="0.9525" y1="-0.8128" x2="-0.9652" y2="-0.8128" width="0.1524" layer="51"/>
+<wire x1="0.9525" y1="0.8128" x2="-0.9652" y2="0.8128" width="0.1524" layer="51"/>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<smd name="2" x="1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
+<smd name="1" x="-1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
+<text x="-1.397" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.6891" y1="-0.8763" x2="-0.9525" y2="0.8763" layer="51"/>
+<rectangle x1="0.9525" y1="-0.8763" x2="1.6891" y2="0.8763" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="R1206W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-0.913" y1="0.8" x2="0.888" y2="0.8" width="0.1524" layer="21"/>
+<wire x1="-0.913" y1="-0.8" x2="0.888" y2="-0.8" width="0.1524" layer="21"/>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.499" y="0" dx="1.8" dy="1.2" layer="1"/>
+<smd name="2" x="1.499" y="0" dx="1.8" dy="1.2" layer="1"/>
+<text x="-1.651" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.651" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-0.8763" x2="-0.9009" y2="0.8738" layer="51"/>
+<rectangle x1="0.889" y1="-0.8763" x2="1.6391" y2="0.8738" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="R1210">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.913" y1="1.219" x2="0.939" y2="1.219" width="0.1524" layer="51"/>
+<wire x1="-0.913" y1="-1.219" x2="0.939" y2="-1.219" width="0.1524" layer="51"/>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.27" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-1.3081" x2="-0.9009" y2="1.2918" layer="51"/>
+<rectangle x1="0.9144" y1="-1.3081" x2="1.6645" y2="1.2918" layer="51"/>
+<rectangle x1="-0.3" y1="-0.8999" x2="0.3" y2="0.8999" layer="35"/>
+</package>
+<package name="R1210W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-0.913" y1="1.219" x2="0.939" y2="1.219" width="0.1524" layer="21"/>
+<wire x1="-0.913" y1="-1.219" x2="0.939" y2="-1.219" width="0.1524" layer="21"/>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.499" y="0" dx="1.8" dy="1.8" layer="1"/>
+<smd name="2" x="1.499" y="0" dx="1.8" dy="1.8" layer="1"/>
+<text x="-1.651" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.651" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-1.3081" x2="-0.9009" y2="1.2918" layer="51"/>
+<rectangle x1="0.9144" y1="-1.3081" x2="1.6645" y2="1.2918" layer="51"/>
+<rectangle x1="-0.3" y1="-0.8001" x2="0.3" y2="0.8001" layer="35"/>
+</package>
+<package name="R2010">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.662" y1="1.245" x2="1.662" y2="1.245" width="0.1524" layer="51"/>
+<wire x1="-1.637" y1="-1.245" x2="1.687" y2="-1.245" width="0.1524" layer="51"/>
+<wire x1="-3.473" y1="1.483" x2="3.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="1.483" x2="3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="-1.483" x2="-3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-3.473" y1="-1.483" x2="-3.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-1.027" y1="1.245" x2="1.027" y2="1.245" width="0.1524" layer="21"/>
+<wire x1="-1.002" y1="-1.245" x2="1.016" y2="-1.245" width="0.1524" layer="21"/>
+<smd name="1" x="-2.2" y="0" dx="1.8" dy="2.7" layer="1"/>
+<smd name="2" x="2.2" y="0" dx="1.8" dy="2.7" layer="1"/>
+<text x="-2.159" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.159" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.4892" y1="-1.3208" x2="-1.6393" y2="1.3292" layer="51"/>
+<rectangle x1="1.651" y1="-1.3208" x2="2.5009" y2="1.3292" layer="51"/>
+</package>
+<package name="R2010W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-1.662" y1="1.245" x2="1.662" y2="1.245" width="0.1524" layer="21"/>
+<wire x1="-1.637" y1="-1.245" x2="1.687" y2="-1.245" width="0.1524" layer="21"/>
+<wire x1="-3.473" y1="1.483" x2="3.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="1.483" x2="3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="-1.483" x2="-3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-3.473" y1="-1.483" x2="-3.473" y2="1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-2.311" y="0" dx="2" dy="1.8" layer="1"/>
+<smd name="2" x="2.311" y="0" dx="2" dy="1.8" layer="1"/>
+<text x="-2.286" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.286" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.4892" y1="-1.3208" x2="-1.6393" y2="1.3292" layer="51"/>
+<rectangle x1="1.651" y1="-1.3208" x2="2.5009" y2="1.3292" layer="51"/>
+</package>
+<package name="R2012">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.41" y1="0.635" x2="0.41" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-0.41" y1="-0.635" x2="0.41" y2="-0.635" width="0.1524" layer="51"/>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<smd name="2" x="0.85" y="0" dx="1.3" dy="1.5" layer="1"/>
+<text x="-0.762" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.762" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.4064" y1="-0.6985" x2="1.0564" y2="0.7015" layer="51"/>
+<rectangle x1="-1.0668" y1="-0.6985" x2="-0.4168" y2="0.7015" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.5999" x2="0.1001" y2="0.5999" layer="35"/>
+</package>
+<package name="R2012W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-0.41" y1="0.635" x2="0.41" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-0.41" y1="-0.635" x2="0.41" y2="-0.635" width="0.1524" layer="51"/>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-0.94" y="0" dx="1.5" dy="1" layer="1"/>
+<smd name="2" x="0.94" y="0" dx="1.5" dy="1" layer="1"/>
+<text x="-0.635" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-0.635" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="0.4064" y1="-0.6985" x2="1.0564" y2="0.7015" layer="51"/>
+<rectangle x1="-1.0668" y1="-0.6985" x2="-0.4168" y2="0.7015" layer="51"/>
+<rectangle x1="-0.1001" y1="-0.5999" x2="0.1001" y2="0.5999" layer="35"/>
+</package>
+<package name="R2512">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.362" y1="1.473" x2="2.387" y2="1.473" width="0.1524" layer="51"/>
+<wire x1="-2.362" y1="-1.473" x2="2.387" y2="-1.473" width="0.1524" layer="51"/>
+<wire x1="-3.973" y1="1.983" x2="3.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="1.983" x2="3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="-1.983" x2="-3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-3.973" y1="-1.983" x2="-3.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="1.473" x2="1.498" y2="1.473" width="0.1524" layer="21"/>
+<wire x1="-1.473" y1="-1.473" x2="1.498" y2="-1.473" width="0.1524" layer="21"/>
+<smd name="1" x="-2.8" y="0" dx="1.8" dy="3.2" layer="1"/>
+<smd name="2" x="2.8" y="0" dx="1.8" dy="3.2" layer="1"/>
+<text x="-2.667" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.667" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-3.2004" y1="-1.5494" x2="-2.3505" y2="1.5507" layer="51"/>
+<rectangle x1="2.3622" y1="-1.5494" x2="3.2121" y2="1.5507" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="R2512W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-2.362" y1="1.473" x2="2.387" y2="1.473" width="0.1524" layer="21"/>
+<wire x1="-2.362" y1="-1.473" x2="2.387" y2="-1.473" width="0.1524" layer="21"/>
+<wire x1="-3.973" y1="1.983" x2="3.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="1.983" x2="3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="-1.983" x2="-3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-3.973" y1="-1.983" x2="-3.973" y2="1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-2.896" y="0" dx="2" dy="2.1" layer="1"/>
+<smd name="2" x="2.896" y="0" dx="2" dy="2.1" layer="1"/>
+<text x="-2.794" y="1.778" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.794" y="-3.048" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-3.2004" y1="-1.5494" x2="-2.3505" y2="1.5507" layer="51"/>
+<rectangle x1="2.3622" y1="-1.5494" x2="3.2121" y2="1.5507" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="R3216">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.913" y1="0.8" x2="0.888" y2="0.8" width="0.1524" layer="51"/>
+<wire x1="-0.913" y1="-0.8" x2="0.888" y2="-0.8" width="0.1524" layer="51"/>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
+<text x="-1.397" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-0.8763" x2="-0.9009" y2="0.8738" layer="51"/>
+<rectangle x1="0.889" y1="-0.8763" x2="1.6391" y2="0.8738" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="R3216W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-0.913" y1="0.8" x2="0.888" y2="0.8" width="0.1524" layer="21"/>
+<wire x1="-0.913" y1="-0.8" x2="0.888" y2="-0.8" width="0.1524" layer="21"/>
+<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
+<smd name="1" x="-1.499" y="0" dx="1.8" dy="1.2" layer="1"/>
+<smd name="2" x="1.499" y="0" dx="1.8" dy="1.2" layer="1"/>
+<text x="-1.524" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.524" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-0.8763" x2="-0.9009" y2="0.8738" layer="51"/>
+<rectangle x1="0.889" y1="-0.8763" x2="1.6391" y2="0.8738" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="R3225">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-0.913" y1="1.219" x2="0.939" y2="1.219" width="0.1524" layer="51"/>
+<wire x1="-0.913" y1="-1.219" x2="0.939" y2="-1.219" width="0.1524" layer="51"/>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2.7" layer="1"/>
+<text x="-1.397" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-1.3081" x2="-0.9009" y2="1.2918" layer="51"/>
+<rectangle x1="0.9144" y1="-1.3081" x2="1.6645" y2="1.2918" layer="51"/>
+<rectangle x1="-0.3" y1="-1" x2="0.3" y2="1" layer="35"/>
+</package>
+<package name="R3225W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-0.913" y1="1.219" x2="0.939" y2="1.219" width="0.1524" layer="21"/>
+<wire x1="-0.913" y1="-1.219" x2="0.939" y2="-1.219" width="0.1524" layer="21"/>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-1.499" y="0" dx="1.8" dy="1.8" layer="1"/>
+<smd name="2" x="1.499" y="0" dx="1.8" dy="1.8" layer="1"/>
+<text x="-1.397" y="1.524" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.397" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.651" y1="-1.3081" x2="-0.9009" y2="1.2918" layer="51"/>
+<rectangle x1="0.9144" y1="-1.3081" x2="1.6645" y2="1.2918" layer="51"/>
+<rectangle x1="-0.3" y1="-1" x2="0.3" y2="1" layer="35"/>
+</package>
+<package name="R5025">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-1.662" y1="1.245" x2="1.662" y2="1.245" width="0.1524" layer="51"/>
+<wire x1="-1.637" y1="-1.245" x2="1.687" y2="-1.245" width="0.1524" layer="51"/>
+<wire x1="-3.473" y1="1.483" x2="3.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="1.483" x2="3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="-1.483" x2="-3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-3.473" y1="-1.483" x2="-3.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="-0.9" y1="1.245" x2="0.9" y2="1.245" width="0.1524" layer="21"/>
+<wire x1="-0.875" y1="-1.245" x2="0.925" y2="-1.245" width="0.1524" layer="21"/>
+<smd name="1" x="-2.2" y="0" dx="1.8" dy="2.7" layer="1"/>
+<smd name="2" x="2.2" y="0" dx="1.8" dy="2.7" layer="1"/>
+<text x="-2.159" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.159" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.4892" y1="-1.3208" x2="-1.6393" y2="1.3292" layer="51"/>
+<rectangle x1="1.651" y1="-1.3208" x2="2.5009" y2="1.3292" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="R5025W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-1.662" y1="1.245" x2="1.662" y2="1.245" width="0.1524" layer="21"/>
+<wire x1="-1.637" y1="-1.245" x2="1.687" y2="-1.245" width="0.1524" layer="21"/>
+<wire x1="-3.473" y1="1.483" x2="3.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="1.483" x2="3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="3.473" y1="-1.483" x2="-3.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-3.473" y1="-1.483" x2="-3.473" y2="1.483" width="0.0508" layer="39"/>
+<smd name="1" x="-2.311" y="0" dx="2" dy="1.8" layer="1"/>
+<smd name="2" x="2.311" y="0" dx="2" dy="1.8" layer="1"/>
+<text x="-2.286" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.286" y="-2.921" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-2.4892" y1="-1.3208" x2="-1.6393" y2="1.3292" layer="51"/>
+<rectangle x1="1.651" y1="-1.3208" x2="2.5009" y2="1.3292" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="R6332">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip</description>
+<wire x1="-2.362" y1="1.473" x2="2.387" y2="1.473" width="0.1524" layer="51"/>
+<wire x1="-2.362" y1="-1.473" x2="2.387" y2="-1.473" width="0.1524" layer="51"/>
+<wire x1="-3.973" y1="1.983" x2="3.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="1.983" x2="3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="-1.983" x2="-3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-3.973" y1="-1.983" x2="-3.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="-1.473" y1="1.473" x2="1.498" y2="1.473" width="0.1524" layer="21"/>
+<wire x1="-1.473" y1="-1.473" x2="1.498" y2="-1.473" width="0.1524" layer="21"/>
+<smd name="1" x="-2.8" y="0" dx="1.8" dy="3.2" layer="1"/>
+<smd name="2" x="2.8" y="0" dx="1.8" dy="3.2" layer="1"/>
+<text x="-2.794" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.794" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-3.2004" y1="-1.5494" x2="-2.3505" y2="1.5507" layer="51"/>
+<rectangle x1="2.3622" y1="-1.5494" x2="3.2121" y2="1.5507" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="R6332W">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+chip, wave soldering</description>
+<wire x1="-2.362" y1="1.473" x2="2.387" y2="1.473" width="0.1524" layer="21"/>
+<wire x1="-2.362" y1="-1.473" x2="2.387" y2="-1.473" width="0.1524" layer="21"/>
+<wire x1="-3.973" y1="1.983" x2="3.973" y2="1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="1.983" x2="3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="3.973" y1="-1.983" x2="-3.973" y2="-1.983" width="0.0508" layer="39"/>
+<wire x1="-3.973" y1="-1.983" x2="-3.973" y2="1.983" width="0.0508" layer="39"/>
+<smd name="1" x="-2.896" y="0" dx="2" dy="2.1" layer="1"/>
+<smd name="2" x="2.896" y="0" dx="2" dy="2.1" layer="1"/>
+<text x="-2.921" y="1.778" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.921" y="-3.048" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-3.2004" y1="-1.5494" x2="-2.3505" y2="1.5507" layer="51"/>
+<rectangle x1="2.3622" y1="-1.5494" x2="3.2121" y2="1.5507" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="M0805">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.10 W</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="0.7112" y1="0.635" x2="-0.7112" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="0.7112" y1="-0.635" x2="-0.7112" y2="-0.635" width="0.1524" layer="51"/>
+<smd name="1" x="-0.95" y="0" dx="1.3" dy="1.6" layer="1"/>
+<smd name="2" x="0.95" y="0" dx="1.3" dy="1.6" layer="1"/>
+<text x="-1.016" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.016" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0414" y1="-0.7112" x2="-0.6858" y2="0.7112" layer="51"/>
+<rectangle x1="0.6858" y1="-0.7112" x2="1.0414" y2="0.7112" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5999" x2="0.1999" y2="0.5999" layer="35"/>
+</package>
+<package name="M1206">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.25 W</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="1.143" y1="0.8382" x2="-1.143" y2="0.8382" width="0.1524" layer="51"/>
+<wire x1="1.143" y1="-0.8382" x2="-1.143" y2="-0.8382" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2" layer="1"/>
+<text x="-1.27" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.9144" x2="-1.1176" y2="0.9144" layer="51"/>
+<rectangle x1="1.1176" y1="-0.9144" x2="1.7018" y2="0.9144" layer="51"/>
+<rectangle x1="-0.3" y1="-0.8001" x2="0.3" y2="0.8001" layer="35"/>
+</package>
+<package name="M1406">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.12 W</description>
+<wire x1="-2.973" y1="0.983" x2="2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-0.983" x2="-2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-0.983" x2="-2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="0.983" x2="2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.3208" y1="0.762" x2="-1.3208" y2="0.762" width="0.1524" layer="51"/>
+<wire x1="1.3208" y1="-0.762" x2="-1.3208" y2="-0.762" width="0.1524" layer="51"/>
+<wire x1="0.6858" y1="0.762" x2="-0.6858" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="0.6858" y1="-0.762" x2="-0.6858" y2="-0.762" width="0.1524" layer="21"/>
+<smd name="1" x="-1.7" y="0" dx="1.4" dy="1.8" layer="1"/>
+<smd name="2" x="1.7" y="0" dx="1.4" dy="1.8" layer="1"/>
+<text x="-1.651" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.651" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.8542" y1="-0.8382" x2="-1.2954" y2="0.8382" layer="51"/>
+<rectangle x1="1.2954" y1="-0.8382" x2="1.8542" y2="0.8382" layer="51"/>
+<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
+</package>
+<package name="M2012">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.10 W</description>
+<wire x1="-1.973" y1="0.983" x2="1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="-0.983" x2="-1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-1.973" y1="-0.983" x2="-1.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="1.973" y1="0.983" x2="1.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="0.7112" y1="0.635" x2="-0.7112" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="0.7112" y1="-0.635" x2="-0.7112" y2="-0.635" width="0.1524" layer="51"/>
+<smd name="1" x="-0.95" y="0" dx="1.3" dy="1.6" layer="1"/>
+<smd name="2" x="0.95" y="0" dx="1.3" dy="1.6" layer="1"/>
+<text x="-1.016" y="1.016" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.016" y="-2.286" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.0414" y1="-0.7112" x2="-0.6858" y2="0.7112" layer="51"/>
+<rectangle x1="0.6858" y1="-0.7112" x2="1.0414" y2="0.7112" layer="51"/>
+<rectangle x1="-0.1999" y1="-0.5999" x2="0.1999" y2="0.5999" layer="35"/>
+</package>
+<package name="M2309">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.25 W</description>
+<wire x1="-4.473" y1="1.483" x2="4.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="4.473" y1="-1.483" x2="-4.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-4.473" y1="-1.483" x2="-4.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="4.473" y1="1.483" x2="4.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="2.413" y1="1.1684" x2="-2.4384" y2="1.1684" width="0.1524" layer="51"/>
+<wire x1="2.413" y1="-1.1684" x2="-2.413" y2="-1.1684" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="1.1684" x2="-1.6764" y2="1.1684" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="-1.1684" x2="-1.651" y2="-1.1684" width="0.1524" layer="21"/>
+<smd name="1" x="-2.85" y="0" dx="1.5" dy="2.6" layer="1"/>
+<smd name="2" x="2.85" y="0" dx="1.5" dy="2.6" layer="1"/>
+<text x="-2.794" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.794" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-3.048" y1="-1.2446" x2="-2.3876" y2="1.2446" layer="51"/>
+<rectangle x1="2.3876" y1="-1.2446" x2="3.048" y2="1.2446" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="M3216">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.25 W</description>
+<wire x1="-2.473" y1="1.483" x2="2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="-1.483" x2="-2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-2.473" y1="-1.483" x2="-2.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="2.473" y1="1.483" x2="2.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="1.143" y1="0.8382" x2="-1.143" y2="0.8382" width="0.1524" layer="51"/>
+<wire x1="1.143" y1="-0.8382" x2="-1.143" y2="-0.8382" width="0.1524" layer="51"/>
+<smd name="1" x="-1.4" y="0" dx="1.6" dy="2" layer="1"/>
+<smd name="2" x="1.4" y="0" dx="1.6" dy="2" layer="1"/>
+<text x="-1.27" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.7018" y1="-0.9144" x2="-1.1176" y2="0.9144" layer="51"/>
+<rectangle x1="1.1176" y1="-0.9144" x2="1.7018" y2="0.9144" layer="51"/>
+<rectangle x1="-0.3" y1="-0.8001" x2="0.3" y2="0.8001" layer="35"/>
+</package>
+<package name="M3516">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.12 W</description>
+<wire x1="-2.973" y1="0.983" x2="2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="-0.983" x2="-2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="-2.973" y1="-0.983" x2="-2.973" y2="0.983" width="0.0508" layer="39"/>
+<wire x1="2.973" y1="0.983" x2="2.973" y2="-0.983" width="0.0508" layer="39"/>
+<wire x1="1.3208" y1="0.762" x2="-1.3208" y2="0.762" width="0.1524" layer="51"/>
+<wire x1="1.3208" y1="-0.762" x2="-1.3208" y2="-0.762" width="0.1524" layer="51"/>
+<wire x1="0.6858" y1="0.762" x2="-0.6858" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="0.6858" y1="-0.762" x2="-0.6858" y2="-0.762" width="0.1524" layer="21"/>
+<smd name="1" x="-1.7" y="0" dx="1.4" dy="1.8" layer="1"/>
+<smd name="2" x="1.7" y="0" dx="1.4" dy="1.8" layer="1"/>
+<text x="-1.651" y="1.143" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.651" y="-2.413" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.8542" y1="-0.8382" x2="-1.2954" y2="0.8382" layer="51"/>
+<rectangle x1="1.2954" y1="-0.8382" x2="1.8542" y2="0.8382" layer="51"/>
+<rectangle x1="-0.4001" y1="-0.7" x2="0.4001" y2="0.7" layer="35"/>
+</package>
+<package name="M5923">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+MELF 0.25 W</description>
+<wire x1="-4.473" y1="1.483" x2="4.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="4.473" y1="-1.483" x2="-4.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="-4.473" y1="-1.483" x2="-4.473" y2="1.483" width="0.0508" layer="39"/>
+<wire x1="4.473" y1="1.483" x2="4.473" y2="-1.483" width="0.0508" layer="39"/>
+<wire x1="2.413" y1="1.1684" x2="-2.4384" y2="1.1684" width="0.1524" layer="51"/>
+<wire x1="2.413" y1="-1.1684" x2="-2.413" y2="-1.1684" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="1.1684" x2="-1.6764" y2="1.1684" width="0.1524" layer="21"/>
+<wire x1="1.651" y1="-1.1684" x2="-1.651" y2="-1.1684" width="0.1524" layer="21"/>
+<smd name="1" x="-2.85" y="0" dx="1.5" dy="2.6" layer="1"/>
+<smd name="2" x="2.85" y="0" dx="1.5" dy="2.6" layer="1"/>
+<text x="-2.794" y="1.651" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.794" y="-2.794" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-3.048" y1="-1.2446" x2="-2.3876" y2="1.2446" layer="51"/>
+<rectangle x1="2.3876" y1="-1.2446" x2="3.048" y2="1.2446" layer="51"/>
+<rectangle x1="-0.5001" y1="-1" x2="0.5001" y2="1" layer="35"/>
+</package>
+<package name="0204/5">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 5 mm</description>
+<wire x1="2.54" y1="0" x2="2.032" y2="0" width="0.508" layer="51"/>
+<wire x1="-2.54" y1="0" x2="-2.032" y2="0" width="0.508" layer="51"/>
+<wire x1="-1.778" y1="0.635" x2="-1.524" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.778" y1="-0.635" x2="-1.524" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.524" y1="-0.889" x2="1.778" y2="-0.635" width="0.1524" layer="21" curve="90"/>
+<wire x1="1.524" y1="0.889" x2="1.778" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.778" y1="-0.635" x2="-1.778" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="-1.524" y1="0.889" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="0.762" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.524" y1="-0.889" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="-0.762" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="0.762" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="0.762" x2="-1.143" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="-0.762" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.143" y1="-0.762" x2="-1.143" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="1.524" y1="0.889" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.524" y1="-0.889" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.635" x2="1.778" y2="0.635" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.0066" y="1.1684" size="0.9906" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.1336" y="-2.3114" size="0.9906" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-2.032" y1="-0.254" x2="-1.778" y2="0.254" layer="51"/>
+<rectangle x1="1.778" y1="-0.254" x2="2.032" y2="0.254" layer="51"/>
+</package>
+<package name="0204/7">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 7.5 mm</description>
+<wire x1="3.81" y1="0" x2="2.921" y2="0" width="0.508" layer="51"/>
+<wire x1="-3.81" y1="0" x2="-2.921" y2="0" width="0.508" layer="51"/>
+<wire x1="-2.54" y1="0.762" x2="-2.286" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="-0.762" x2="-2.286" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="-1.016" x2="2.54" y2="-0.762" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="1.016" x2="2.54" y2="0.762" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="-0.762" x2="-2.54" y2="0.762" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="1.016" x2="-1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-1.778" y1="0.889" x2="-1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="-1.016" x2="-1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-1.778" y1="-0.889" x2="-1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.889" x2="1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="0.889" x2="-1.778" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.889" x2="1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="1.778" y1="-0.889" x2="-1.778" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="1.016" x2="1.905" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.286" y1="-1.016" x2="1.905" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="-0.762" x2="2.54" y2="0.762" width="0.1524" layer="21"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.2954" size="0.9906" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.6256" y="-0.4826" size="0.9906" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.54" y1="-0.254" x2="2.921" y2="0.254" layer="21"/>
+<rectangle x1="-2.921" y1="-0.254" x2="-2.54" y2="0.254" layer="21"/>
+</package>
+<package name="0207/10">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 10 mm</description>
+<wire x1="5.08" y1="0" x2="4.064" y2="0" width="0.6096" layer="51"/>
+<wire x1="-5.08" y1="0" x2="-4.064" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.048" y="1.524" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.2606" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/12">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 12 mm</description>
+<wire x1="6.35" y1="0" x2="5.334" y2="0" width="0.6096" layer="51"/>
+<wire x1="-6.35" y1="0" x2="-5.334" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="4.445" y1="0" x2="4.064" y2="0" width="0.6096" layer="21"/>
+<wire x1="-4.445" y1="0" x2="-4.064" y2="0" width="0.6096" layer="21"/>
+<pad name="1" x="-6.35" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="6.35" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.175" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+<rectangle x1="4.445" y1="-0.3048" x2="5.3086" y2="0.3048" layer="21"/>
+<rectangle x1="-5.3086" y1="-0.3048" x2="-4.445" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 15mm</description>
+<wire x1="7.62" y1="0" x2="6.604" y2="0" width="0.6096" layer="51"/>
+<wire x1="-7.62" y1="0" x2="-6.604" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="5.715" y1="0" x2="4.064" y2="0" width="0.6096" layer="21"/>
+<wire x1="-5.715" y1="0" x2="-4.064" y2="0" width="0.6096" layer="21"/>
+<pad name="1" x="-7.62" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="0.8128" shape="octagon"/>
+<text x="-3.175" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="3.175" y1="-0.3048" x2="4.0386" y2="0.3048" layer="21"/>
+<rectangle x1="-4.0386" y1="-0.3048" x2="-3.175" y2="0.3048" layer="21"/>
+<rectangle x1="5.715" y1="-0.3048" x2="6.5786" y2="0.3048" layer="21"/>
+<rectangle x1="-6.5786" y1="-0.3048" x2="-5.715" y2="0.3048" layer="21"/>
+</package>
+<package name="0207/2V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 2.5 mm</description>
+<wire x1="-1.27" y1="0" x2="-0.381" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.254" y1="0" x2="0.254" y2="0" width="0.6096" layer="21"/>
+<wire x1="0.381" y1="0" x2="1.27" y2="0" width="0.6096" layer="51"/>
+<circle x="-1.27" y="0" radius="1.27" width="0.1524" layer="21"/>
+<circle x="-1.27" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-0.0508" y="1.016" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.0508" y="-2.2352" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/5V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 5 mm</description>
+<wire x1="-2.54" y1="0" x2="-0.889" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.762" y1="0" x2="0.762" y2="0" width="0.6096" layer="21"/>
+<wire x1="0.889" y1="0" x2="2.54" y2="0" width="0.6096" layer="51"/>
+<circle x="-2.54" y="0" radius="1.27" width="0.1016" layer="21"/>
+<circle x="-2.54" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.143" y="0.889" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.143" y="-2.159" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0207/7">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0207, grid 7.5 mm</description>
+<wire x1="-3.81" y1="0" x2="-3.429" y2="0" width="0.6096" layer="51"/>
+<wire x1="-3.175" y1="0.889" x2="-2.921" y2="1.143" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-2.921" y2="-1.143" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="-1.143" x2="3.175" y2="-0.889" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.921" y1="1.143" x2="3.175" y2="0.889" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="-0.889" x2="-3.175" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="-2.921" y1="1.143" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="1.016" x2="-2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="-2.921" y1="-1.143" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="-2.413" y1="-1.016" x2="-2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="1.016" x2="-2.413" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="2.413" y1="-1.016" x2="-2.413" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="1.143" x2="2.54" y2="1.143" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-1.143" x2="2.54" y2="-1.143" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-0.889" x2="3.175" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="3.429" y1="0" x2="3.81" y2="0" width="0.6096" layer="51"/>
+<pad name="1" x="-3.81" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="3.81" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.397" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.286" y="-0.5588" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-3.429" y1="-0.3048" x2="-3.175" y2="0.3048" layer="51"/>
+<rectangle x1="3.175" y1="-0.3048" x2="3.429" y2="0.3048" layer="51"/>
+</package>
+<package name="0309/10">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0309, grid 10mm</description>
+<wire x1="-4.699" y1="0" x2="-5.08" y2="0" width="0.6096" layer="51"/>
+<wire x1="-4.318" y1="1.27" x2="-4.064" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.318" y1="-1.27" x2="-4.064" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="4.064" y1="-1.524" x2="4.318" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="4.064" y1="1.524" x2="4.318" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.318" y1="-1.27" x2="-4.318" y2="1.27" width="0.1524" layer="51"/>
+<wire x1="-4.064" y1="1.524" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="1.397" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-4.064" y1="-1.524" x2="-3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="-1.397" x2="-3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="1.397" x2="3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="1.397" x2="-3.302" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="-1.397" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="-1.397" x2="-3.302" y2="-1.397" width="0.1524" layer="21"/>
+<wire x1="4.064" y1="1.524" x2="3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="4.064" y1="-1.524" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="4.318" y1="-1.27" x2="4.318" y2="1.27" width="0.1524" layer="51"/>
+<wire x1="5.08" y1="0" x2="4.699" y2="0" width="0.6096" layer="51"/>
+<pad name="1" x="-5.08" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="5.08" y="0" drill="0.8128" shape="octagon"/>
+<text x="-4.191" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-4.6228" y1="-0.3048" x2="-4.318" y2="0.3048" layer="51"/>
+<rectangle x1="4.318" y1="-0.3048" x2="4.6228" y2="0.3048" layer="51"/>
+</package>
+<package name="0309/12">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0309, grid 12.5 mm</description>
+<wire x1="6.35" y1="0" x2="5.08" y2="0" width="0.6096" layer="51"/>
+<wire x1="-6.35" y1="0" x2="-5.08" y2="0" width="0.6096" layer="51"/>
+<wire x1="-4.318" y1="1.27" x2="-4.064" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.318" y1="-1.27" x2="-4.064" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="4.064" y1="-1.524" x2="4.318" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="4.064" y1="1.524" x2="4.318" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-4.318" y1="-1.27" x2="-4.318" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="-4.064" y1="1.524" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="1.397" x2="-3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="-4.064" y1="-1.524" x2="-3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="-3.302" y1="-1.397" x2="-3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="1.397" x2="3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="1.397" x2="-3.302" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="-1.397" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="3.302" y1="-1.397" x2="-3.302" y2="-1.397" width="0.1524" layer="21"/>
+<wire x1="4.064" y1="1.524" x2="3.429" y2="1.524" width="0.1524" layer="21"/>
+<wire x1="4.064" y1="-1.524" x2="3.429" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="4.318" y1="-1.27" x2="4.318" y2="1.27" width="0.1524" layer="21"/>
+<pad name="1" x="-6.35" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="6.35" y="0" drill="0.8128" shape="octagon"/>
+<text x="-4.191" y="1.905" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.175" y="-0.6858" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="4.318" y1="-0.3048" x2="5.1816" y2="0.3048" layer="21"/>
+<rectangle x1="-5.1816" y1="-0.3048" x2="-4.318" y2="0.3048" layer="21"/>
+</package>
+<package name="0411/12">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0411, grid 12.5 mm</description>
+<wire x1="6.35" y1="0" x2="5.461" y2="0" width="0.762" layer="51"/>
+<wire x1="-6.35" y1="0" x2="-5.461" y2="0" width="0.762" layer="51"/>
+<wire x1="5.08" y1="-1.651" x2="5.08" y2="1.651" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.032" x2="5.08" y2="1.651" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-5.08" y1="-1.651" x2="-4.699" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="4.699" y1="-2.032" x2="5.08" y2="-1.651" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.651" x2="-4.699" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="2.032" x2="4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="3.937" y1="1.905" x2="4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.032" x2="4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="3.937" y1="-1.905" x2="4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="1.905" x2="-4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="1.905" x2="3.937" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="-1.905" x2="-4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="-1.905" x2="3.937" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.651" x2="-5.08" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="2.032" x2="-4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="-2.032" x2="-4.064" y2="-2.032" width="0.1524" layer="21"/>
+<pad name="1" x="-6.35" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="6.35" y="0" drill="0.9144" shape="octagon"/>
+<text x="-5.08" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.5814" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-5.3594" y1="-0.381" x2="-5.08" y2="0.381" layer="21"/>
+<rectangle x1="5.08" y1="-0.381" x2="5.3594" y2="0.381" layer="21"/>
+</package>
+<package name="0411/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0411, grid 15 mm</description>
+<wire x1="5.08" y1="-1.651" x2="5.08" y2="1.651" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="2.032" x2="5.08" y2="1.651" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-5.08" y1="-1.651" x2="-4.699" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="4.699" y1="-2.032" x2="5.08" y2="-1.651" width="0.1524" layer="21" curve="90"/>
+<wire x1="-5.08" y1="1.651" x2="-4.699" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="2.032" x2="4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="3.937" y1="1.905" x2="4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-2.032" x2="4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="3.937" y1="-1.905" x2="4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="1.905" x2="-4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="1.905" x2="3.937" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="-1.905" x2="-4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-3.937" y1="-1.905" x2="3.937" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="1.651" x2="-5.08" y2="-1.651" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="2.032" x2="-4.064" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="-4.699" y1="-2.032" x2="-4.064" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="-7.62" y1="0" x2="-6.35" y2="0" width="0.762" layer="51"/>
+<wire x1="6.35" y1="0" x2="7.62" y2="0" width="0.762" layer="51"/>
+<pad name="1" x="-7.62" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="0.9144" shape="octagon"/>
+<text x="-5.08" y="2.413" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.5814" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="5.08" y1="-0.381" x2="6.477" y2="0.381" layer="21"/>
+<rectangle x1="-6.477" y1="-0.381" x2="-5.08" y2="0.381" layer="21"/>
+</package>
+<package name="0411V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0411, grid 3.81 mm</description>
+<wire x1="1.27" y1="0" x2="0.3048" y2="0" width="0.762" layer="51"/>
+<wire x1="-1.5748" y1="0" x2="-2.54" y2="0" width="0.762" layer="51"/>
+<circle x="-2.54" y="0" radius="2.032" width="0.1524" layer="21"/>
+<circle x="-2.54" y="0" radius="1.016" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="0.9144" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.9144" shape="octagon"/>
+<text x="-0.508" y="1.143" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.5334" y="-2.413" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-1.4732" y1="-0.381" x2="0.2032" y2="0.381" layer="21"/>
+</package>
+<package name="0414/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0414, grid 15 mm</description>
+<wire x1="7.62" y1="0" x2="6.604" y2="0" width="0.8128" layer="51"/>
+<wire x1="-7.62" y1="0" x2="-6.604" y2="0" width="0.8128" layer="51"/>
+<wire x1="-6.096" y1="1.905" x2="-5.842" y2="2.159" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-6.096" y1="-1.905" x2="-5.842" y2="-2.159" width="0.1524" layer="21" curve="90"/>
+<wire x1="5.842" y1="-2.159" x2="6.096" y2="-1.905" width="0.1524" layer="21" curve="90"/>
+<wire x1="5.842" y1="2.159" x2="6.096" y2="1.905" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-6.096" y1="-1.905" x2="-6.096" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="-5.842" y1="2.159" x2="-4.953" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="2.032" x2="-4.953" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="-5.842" y1="-2.159" x2="-4.953" y2="-2.159" width="0.1524" layer="21"/>
+<wire x1="-4.826" y1="-2.032" x2="-4.953" y2="-2.159" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="2.032" x2="4.953" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="2.032" x2="-4.826" y2="2.032" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="-2.032" x2="4.953" y2="-2.159" width="0.1524" layer="21"/>
+<wire x1="4.826" y1="-2.032" x2="-4.826" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="5.842" y1="2.159" x2="4.953" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="5.842" y1="-2.159" x2="4.953" y2="-2.159" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-1.905" x2="6.096" y2="1.905" width="0.1524" layer="21"/>
+<pad name="1" x="-7.62" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.096" y="2.5654" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.318" y="-0.5842" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="6.096" y1="-0.4064" x2="6.5024" y2="0.4064" layer="21"/>
+<rectangle x1="-6.5024" y1="-0.4064" x2="-6.096" y2="0.4064" layer="21"/>
+</package>
+<package name="0414V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0414, grid 5 mm</description>
+<wire x1="2.54" y1="0" x2="1.397" y2="0" width="0.8128" layer="51"/>
+<wire x1="-2.54" y1="0" x2="-1.397" y2="0" width="0.8128" layer="51"/>
+<circle x="-2.54" y="0" radius="2.159" width="0.1524" layer="21"/>
+<circle x="-2.54" y="0" radius="1.143" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="1.016" shape="octagon"/>
+<text x="-0.381" y="1.1684" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.381" y="-2.3622" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-1.2954" y1="-0.4064" x2="1.2954" y2="0.4064" layer="21"/>
+</package>
+<package name="0617/17">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0617, grid 17.5 mm</description>
+<wire x1="-8.89" y1="0" x2="-8.636" y2="0" width="0.8128" layer="51"/>
+<wire x1="-7.874" y1="3.048" x2="-6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="2.794" x2="-6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-7.874" y1="-3.048" x2="-6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="-2.794" x2="-6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="2.794" x2="6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="2.794" x2="-6.731" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="-2.794" x2="6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="-2.794" x2="-6.731" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="7.874" y1="3.048" x2="6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="7.874" y1="-3.048" x2="6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-8.255" y1="-2.667" x2="-8.255" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-8.255" y1="1.016" x2="-8.255" y2="-1.016" width="0.1524" layer="51"/>
+<wire x1="-8.255" y1="1.016" x2="-8.255" y2="2.667" width="0.1524" layer="21"/>
+<wire x1="8.255" y1="-2.667" x2="8.255" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="8.255" y1="1.016" x2="8.255" y2="-1.016" width="0.1524" layer="51"/>
+<wire x1="8.255" y1="1.016" x2="8.255" y2="2.667" width="0.1524" layer="21"/>
+<wire x1="8.636" y1="0" x2="8.89" y2="0" width="0.8128" layer="51"/>
+<wire x1="-8.255" y1="2.667" x2="-7.874" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="7.874" y1="3.048" x2="8.255" y2="2.667" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-8.255" y1="-2.667" x2="-7.874" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="7.874" y1="-3.048" x2="8.255" y2="-2.667" width="0.1524" layer="21" curve="90"/>
+<pad name="1" x="-8.89" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="8.89" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.128" y="3.4544" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-6.096" y="-0.7112" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-8.5344" y1="-0.4064" x2="-8.2296" y2="0.4064" layer="51"/>
+<rectangle x1="8.2296" y1="-0.4064" x2="8.5344" y2="0.4064" layer="51"/>
+</package>
+<package name="0617/22">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0617, grid 22.5 mm</description>
+<wire x1="-10.287" y1="0" x2="-11.43" y2="0" width="0.8128" layer="51"/>
+<wire x1="-8.255" y1="-2.667" x2="-8.255" y2="2.667" width="0.1524" layer="21"/>
+<wire x1="-7.874" y1="3.048" x2="-6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="2.794" x2="-6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-7.874" y1="-3.048" x2="-6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.731" y1="-2.794" x2="-6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="2.794" x2="6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="2.794" x2="-6.731" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="-2.794" x2="6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="-2.794" x2="-6.731" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="7.874" y1="3.048" x2="6.985" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="7.874" y1="-3.048" x2="6.985" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="8.255" y1="-2.667" x2="8.255" y2="2.667" width="0.1524" layer="21"/>
+<wire x1="11.43" y1="0" x2="10.287" y2="0" width="0.8128" layer="51"/>
+<wire x1="-8.255" y1="2.667" x2="-7.874" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-8.255" y1="-2.667" x2="-7.874" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="7.874" y1="3.048" x2="8.255" y2="2.667" width="0.1524" layer="21" curve="-90"/>
+<wire x1="7.874" y1="-3.048" x2="8.255" y2="-2.667" width="0.1524" layer="21" curve="90"/>
+<pad name="1" x="-11.43" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.43" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.255" y="3.4544" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-6.477" y="-0.5842" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-10.1854" y1="-0.4064" x2="-8.255" y2="0.4064" layer="21"/>
+<rectangle x1="8.255" y1="-0.4064" x2="10.1854" y2="0.4064" layer="21"/>
+</package>
+<package name="0617V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0617, grid 5 mm</description>
+<wire x1="-2.54" y1="0" x2="-1.27" y2="0" width="0.8128" layer="51"/>
+<wire x1="1.27" y1="0" x2="2.54" y2="0" width="0.8128" layer="51"/>
+<circle x="-2.54" y="0" radius="3.048" width="0.1524" layer="21"/>
+<circle x="-2.54" y="0" radius="1.143" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="1.016" shape="octagon"/>
+<text x="0.635" y="1.4224" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="0.635" y="-2.6162" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-1.3208" y1="-0.4064" x2="1.3208" y2="0.4064" layer="21"/>
+</package>
+<package name="0922/22">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0922, grid 22.5 mm</description>
+<wire x1="11.43" y1="0" x2="10.795" y2="0" width="0.8128" layer="51"/>
+<wire x1="-11.43" y1="0" x2="-10.795" y2="0" width="0.8128" layer="51"/>
+<wire x1="-10.16" y1="-4.191" x2="-10.16" y2="4.191" width="0.1524" layer="21"/>
+<wire x1="-9.779" y1="4.572" x2="-8.89" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="-8.636" y1="4.318" x2="-8.89" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="-9.779" y1="-4.572" x2="-8.89" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="-8.636" y1="-4.318" x2="-8.89" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="8.636" y1="4.318" x2="8.89" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="8.636" y1="4.318" x2="-8.636" y2="4.318" width="0.1524" layer="21"/>
+<wire x1="8.636" y1="-4.318" x2="8.89" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="8.636" y1="-4.318" x2="-8.636" y2="-4.318" width="0.1524" layer="21"/>
+<wire x1="9.779" y1="4.572" x2="8.89" y2="4.572" width="0.1524" layer="21"/>
+<wire x1="9.779" y1="-4.572" x2="8.89" y2="-4.572" width="0.1524" layer="21"/>
+<wire x1="10.16" y1="-4.191" x2="10.16" y2="4.191" width="0.1524" layer="21"/>
+<wire x1="-10.16" y1="-4.191" x2="-9.779" y2="-4.572" width="0.1524" layer="21" curve="90"/>
+<wire x1="-10.16" y1="4.191" x2="-9.779" y2="4.572" width="0.1524" layer="21" curve="-90"/>
+<wire x1="9.779" y1="-4.572" x2="10.16" y2="-4.191" width="0.1524" layer="21" curve="90"/>
+<wire x1="9.779" y1="4.572" x2="10.16" y2="4.191" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-11.43" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.43" y="0" drill="1.016" shape="octagon"/>
+<text x="-10.16" y="5.1054" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-6.477" y="-0.5842" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-10.7188" y1="-0.4064" x2="-10.16" y2="0.4064" layer="51"/>
+<rectangle x1="10.16" y1="-0.4064" x2="10.3124" y2="0.4064" layer="21"/>
+<rectangle x1="-10.3124" y1="-0.4064" x2="-10.16" y2="0.4064" layer="21"/>
+<rectangle x1="10.16" y1="-0.4064" x2="10.7188" y2="0.4064" layer="51"/>
+</package>
+<package name="P0613V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0613, grid 5 mm</description>
+<wire x1="2.54" y1="0" x2="1.397" y2="0" width="0.8128" layer="51"/>
+<wire x1="-2.54" y1="0" x2="-1.397" y2="0" width="0.8128" layer="51"/>
+<circle x="-2.54" y="0" radius="2.286" width="0.1524" layer="21"/>
+<circle x="-2.54" y="0" radius="1.143" width="0.1524" layer="51"/>
+<pad name="1" x="-2.54" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="1.016" shape="octagon"/>
+<text x="-0.254" y="1.143" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.254" y="-2.413" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-1.2954" y1="-0.4064" x2="1.3208" y2="0.4064" layer="21"/>
+</package>
+<package name="P0613/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0613, grid 15 mm</description>
+<wire x1="7.62" y1="0" x2="6.985" y2="0" width="0.8128" layer="51"/>
+<wire x1="-7.62" y1="0" x2="-6.985" y2="0" width="0.8128" layer="51"/>
+<wire x1="-6.477" y1="2.032" x2="-6.223" y2="2.286" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-6.477" y1="-2.032" x2="-6.223" y2="-2.286" width="0.1524" layer="21" curve="90"/>
+<wire x1="6.223" y1="-2.286" x2="6.477" y2="-2.032" width="0.1524" layer="21" curve="90"/>
+<wire x1="6.223" y1="2.286" x2="6.477" y2="2.032" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-6.223" y1="2.286" x2="-5.334" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.159" x2="-5.334" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="-6.223" y1="-2.286" x2="-5.334" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="-2.159" x2="-5.334" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="2.159" x2="5.334" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="2.159" x2="-5.207" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.159" x2="5.334" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="5.207" y1="-2.159" x2="-5.207" y2="-2.159" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="2.286" x2="5.334" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="6.223" y1="-2.286" x2="5.334" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="-0.635" x2="6.477" y2="-2.032" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="-0.635" x2="6.477" y2="0.635" width="0.1524" layer="51"/>
+<wire x1="6.477" y1="2.032" x2="6.477" y2="0.635" width="0.1524" layer="21"/>
+<wire x1="-6.477" y1="-2.032" x2="-6.477" y2="-0.635" width="0.1524" layer="21"/>
+<wire x1="-6.477" y1="0.635" x2="-6.477" y2="-0.635" width="0.1524" layer="51"/>
+<wire x1="-6.477" y1="0.635" x2="-6.477" y2="2.032" width="0.1524" layer="21"/>
+<pad name="1" x="-7.62" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.477" y="2.6924" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.318" y="-0.7112" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-7.0358" y1="-0.4064" x2="-6.477" y2="0.4064" layer="51"/>
+<rectangle x1="6.477" y1="-0.4064" x2="7.0358" y2="0.4064" layer="51"/>
+</package>
+<package name="P0817/22">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0817, grid 22.5 mm</description>
+<wire x1="-10.414" y1="0" x2="-11.43" y2="0" width="0.8128" layer="51"/>
+<wire x1="-8.509" y1="-3.429" x2="-8.509" y2="3.429" width="0.1524" layer="21"/>
+<wire x1="-8.128" y1="3.81" x2="-7.239" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="-6.985" y1="3.556" x2="-7.239" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="-8.128" y1="-3.81" x2="-7.239" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="-6.985" y1="-3.556" x2="-7.239" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="6.985" y1="3.556" x2="7.239" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="6.985" y1="3.556" x2="-6.985" y2="3.556" width="0.1524" layer="21"/>
+<wire x1="6.985" y1="-3.556" x2="7.239" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="6.985" y1="-3.556" x2="-6.985" y2="-3.556" width="0.1524" layer="21"/>
+<wire x1="8.128" y1="3.81" x2="7.239" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="8.128" y1="-3.81" x2="7.239" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="8.509" y1="-3.429" x2="8.509" y2="3.429" width="0.1524" layer="21"/>
+<wire x1="11.43" y1="0" x2="10.414" y2="0" width="0.8128" layer="51"/>
+<wire x1="-8.509" y1="3.429" x2="-8.128" y2="3.81" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-8.509" y1="-3.429" x2="-8.128" y2="-3.81" width="0.1524" layer="21" curve="90"/>
+<wire x1="8.128" y1="3.81" x2="8.509" y2="3.429" width="0.1524" layer="21" curve="-90"/>
+<wire x1="8.128" y1="-3.81" x2="8.509" y2="-3.429" width="0.1524" layer="21" curve="90"/>
+<pad name="1" x="-11.43" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="11.43" y="0" drill="1.016" shape="octagon"/>
+<text x="-8.382" y="4.2164" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-6.223" y="-0.5842" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<text x="6.604" y="-2.2606" size="1.27" layer="51" ratio="10" rot="R90">0817</text>
+<rectangle x1="8.509" y1="-0.4064" x2="10.3124" y2="0.4064" layer="21"/>
+<rectangle x1="-10.3124" y1="-0.4064" x2="-8.509" y2="0.4064" layer="21"/>
+</package>
+<package name="P0817V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0817, grid 6.35 mm</description>
+<wire x1="-3.81" y1="0" x2="-5.08" y2="0" width="0.8128" layer="51"/>
+<wire x1="1.27" y1="0" x2="0" y2="0" width="0.8128" layer="51"/>
+<circle x="-5.08" y="0" radius="3.81" width="0.1524" layer="21"/>
+<circle x="-5.08" y="0" radius="1.27" width="0.1524" layer="51"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="1.016" shape="octagon"/>
+<text x="-1.016" y="1.27" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.016" y="-2.54" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<text x="-6.858" y="2.032" size="1.016" layer="21" ratio="12">0817</text>
+<rectangle x1="-3.81" y1="-0.4064" x2="0" y2="0.4064" layer="21"/>
+</package>
+<package name="V234/12">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type V234, grid 12.5 mm</description>
+<wire x1="-4.953" y1="1.524" x2="-4.699" y2="1.778" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="1.778" x2="4.953" y2="1.524" width="0.1524" layer="21" curve="-90"/>
+<wire x1="4.699" y1="-1.778" x2="4.953" y2="-1.524" width="0.1524" layer="21" curve="90"/>
+<wire x1="-4.953" y1="-1.524" x2="-4.699" y2="-1.778" width="0.1524" layer="21" curve="90"/>
+<wire x1="-4.699" y1="1.778" x2="4.699" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="1.524" x2="-4.953" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="4.699" y1="-1.778" x2="-4.699" y2="-1.778" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="1.524" x2="4.953" y2="-1.524" width="0.1524" layer="21"/>
+<wire x1="6.35" y1="0" x2="5.461" y2="0" width="0.8128" layer="51"/>
+<wire x1="-6.35" y1="0" x2="-5.461" y2="0" width="0.8128" layer="51"/>
+<pad name="1" x="-6.35" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="6.35" y="0" drill="1.016" shape="octagon"/>
+<text x="-4.953" y="2.159" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.81" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="4.953" y1="-0.4064" x2="5.4102" y2="0.4064" layer="21"/>
+<rectangle x1="-5.4102" y1="-0.4064" x2="-4.953" y2="0.4064" layer="21"/>
+</package>
+<package name="V235/17">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type V235, grid 17.78 mm</description>
+<wire x1="-6.731" y1="2.921" x2="6.731" y2="2.921" width="0.1524" layer="21"/>
+<wire x1="-7.112" y1="2.54" x2="-7.112" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="6.731" y1="-2.921" x2="-6.731" y2="-2.921" width="0.1524" layer="21"/>
+<wire x1="7.112" y1="2.54" x2="7.112" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="8.89" y1="0" x2="7.874" y2="0" width="1.016" layer="51"/>
+<wire x1="-7.874" y1="0" x2="-8.89" y2="0" width="1.016" layer="51"/>
+<wire x1="-7.112" y1="-2.54" x2="-6.731" y2="-2.921" width="0.1524" layer="21" curve="90"/>
+<wire x1="6.731" y1="2.921" x2="7.112" y2="2.54" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.731" y1="-2.921" x2="7.112" y2="-2.54" width="0.1524" layer="21" curve="90"/>
+<wire x1="-7.112" y1="2.54" x2="-6.731" y2="2.921" width="0.1524" layer="21" curve="-90"/>
+<pad name="1" x="-8.89" y="0" drill="1.1938" shape="octagon"/>
+<pad name="2" x="8.89" y="0" drill="1.1938" shape="octagon"/>
+<text x="-6.858" y="3.302" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-5.842" y="-0.635" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="7.112" y1="-0.508" x2="7.747" y2="0.508" layer="21"/>
+<rectangle x1="-7.747" y1="-0.508" x2="-7.112" y2="0.508" layer="21"/>
+</package>
+<package name="V526-0">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type V526-0, grid 2.5 mm</description>
+<wire x1="-2.54" y1="1.016" x2="-2.286" y2="1.27" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.286" y1="1.27" x2="2.54" y2="1.016" width="0.1524" layer="21" curve="-90"/>
+<wire x1="2.286" y1="-1.27" x2="2.54" y2="-1.016" width="0.1524" layer="21" curve="90"/>
+<wire x1="-2.54" y1="-1.016" x2="-2.286" y2="-1.27" width="0.1524" layer="21" curve="90"/>
+<wire x1="2.286" y1="1.27" x2="-2.286" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="-1.016" x2="2.54" y2="1.016" width="0.1524" layer="21"/>
+<wire x1="-2.286" y1="-1.27" x2="2.286" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="1.016" x2="-2.54" y2="-1.016" width="0.1524" layer="21"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.413" y="1.651" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.413" y="-2.794" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="MINI_MELF-0102AX">
+<description>&lt;b&gt;Mini MELF 0102 Axial&lt;/b&gt;</description>
+<circle x="0" y="0" radius="0.6" width="0" layer="51"/>
+<circle x="0" y="0" radius="0.6" width="0" layer="52"/>
+<smd name="1" x="0" y="0" dx="1.9" dy="1.9" layer="1" roundness="100"/>
+<smd name="2" x="0" y="0" dx="1.9" dy="1.9" layer="16" roundness="100"/>
+<text x="-1.27" y="0.9525" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.2225" size="1.27" layer="27">&gt;VALUE</text>
+<hole x="0" y="0" drill="1.3"/>
+</package>
+<package name="0922V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0922, grid 7.5 mm</description>
+<wire x1="2.54" y1="0" x2="1.397" y2="0" width="0.8128" layer="51"/>
+<wire x1="-5.08" y1="0" x2="-3.81" y2="0" width="0.8128" layer="51"/>
+<circle x="-5.08" y="0" radius="4.572" width="0.1524" layer="21"/>
+<circle x="-5.08" y="0" radius="1.905" width="0.1524" layer="21"/>
+<pad name="1" x="-5.08" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="2.54" y="0" drill="1.016" shape="octagon"/>
+<text x="-0.508" y="1.6764" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-0.508" y="-2.9972" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<text x="-6.858" y="2.54" size="1.016" layer="21" ratio="12">0922</text>
+<rectangle x1="-3.81" y1="-0.4064" x2="1.3208" y2="0.4064" layer="21"/>
+</package>
+<package name="MINI_MELF-0102R">
+<description>&lt;b&gt;CECC Size RC2211&lt;/b&gt; Reflow Soldering&lt;p&gt;
+source Beyschlag</description>
+<wire x1="-1" y1="-0.5" x2="1" y2="-0.5" width="0.2032" layer="51"/>
+<wire x1="1" y1="-0.5" x2="1" y2="0.5" width="0.2032" layer="51"/>
+<wire x1="1" y1="0.5" x2="-1" y2="0.5" width="0.2032" layer="51"/>
+<wire x1="-1" y1="0.5" x2="-1" y2="-0.5" width="0.2032" layer="51"/>
+<smd name="1" x="-0.9" y="0" dx="0.5" dy="1.3" layer="1"/>
+<smd name="2" x="0.9" y="0" dx="0.5" dy="1.3" layer="1"/>
+<text x="-1.27" y="0.9525" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.2225" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="MINI_MELF-0102W">
+<description>&lt;b&gt;CECC Size RC2211&lt;/b&gt; Wave Soldering&lt;p&gt;
+source Beyschlag</description>
+<wire x1="-1" y1="-0.5" x2="1" y2="-0.5" width="0.2032" layer="51"/>
+<wire x1="1" y1="-0.5" x2="1" y2="0.5" width="0.2032" layer="51"/>
+<wire x1="1" y1="0.5" x2="-1" y2="0.5" width="0.2032" layer="51"/>
+<wire x1="-1" y1="0.5" x2="-1" y2="-0.5" width="0.2032" layer="51"/>
+<smd name="1" x="-0.95" y="0" dx="0.6" dy="1.3" layer="1"/>
+<smd name="2" x="0.95" y="0" dx="0.6" dy="1.3" layer="1"/>
+<text x="-1.27" y="0.9525" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.2225" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="MINI_MELF-0204R">
+<description>&lt;b&gt;CECC Size RC3715&lt;/b&gt; Reflow Soldering&lt;p&gt;
+source Beyschlag</description>
+<wire x1="-1.7" y1="-0.6" x2="1.7" y2="-0.6" width="0.2032" layer="51"/>
+<wire x1="1.7" y1="-0.6" x2="1.7" y2="0.6" width="0.2032" layer="51"/>
+<wire x1="1.7" y1="0.6" x2="-1.7" y2="0.6" width="0.2032" layer="51"/>
+<wire x1="-1.7" y1="0.6" x2="-1.7" y2="-0.6" width="0.2032" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="0.8" dy="1.6" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="0.8" dy="1.6" layer="1"/>
+<text x="-1.27" y="0.9525" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.2225" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="MINI_MELF-0204W">
+<description>&lt;b&gt;CECC Size RC3715&lt;/b&gt; Wave Soldering&lt;p&gt;
+source Beyschlag</description>
+<wire x1="-1.7" y1="-0.6" x2="1.7" y2="-0.6" width="0.2032" layer="51"/>
+<wire x1="1.7" y1="-0.6" x2="1.7" y2="0.6" width="0.2032" layer="51"/>
+<wire x1="1.7" y1="0.6" x2="-1.7" y2="0.6" width="0.2032" layer="51"/>
+<wire x1="-1.7" y1="0.6" x2="-1.7" y2="-0.6" width="0.2032" layer="51"/>
+<smd name="1" x="-1.5" y="0" dx="1.2" dy="1.6" layer="1"/>
+<smd name="2" x="1.5" y="0" dx="1.2" dy="1.6" layer="1"/>
+<text x="-1.27" y="0.9525" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.2225" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="MINI_MELF-0207R">
+<description>&lt;b&gt;CECC Size RC6123&lt;/b&gt; Reflow Soldering&lt;p&gt;
+source Beyschlag</description>
+<wire x1="-2.8" y1="-1" x2="2.8" y2="-1" width="0.2032" layer="51"/>
+<wire x1="2.8" y1="-1" x2="2.8" y2="1" width="0.2032" layer="51"/>
+<wire x1="2.8" y1="1" x2="-2.8" y2="1" width="0.2032" layer="51"/>
+<wire x1="-2.8" y1="1" x2="-2.8" y2="-1" width="0.2032" layer="51"/>
+<smd name="1" x="-2.25" y="0" dx="1.6" dy="2.5" layer="1"/>
+<smd name="2" x="2.25" y="0" dx="1.6" dy="2.5" layer="1"/>
+<text x="-2.2225" y="1.5875" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.2225" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="MINI_MELF-0207W">
+<description>&lt;b&gt;CECC Size RC6123&lt;/b&gt; Wave Soldering&lt;p&gt;
+source Beyschlag</description>
+<wire x1="-2.8" y1="-1" x2="2.8" y2="-1" width="0.2032" layer="51"/>
+<wire x1="2.8" y1="-1" x2="2.8" y2="1" width="0.2032" layer="51"/>
+<wire x1="2.8" y1="1" x2="-2.8" y2="1" width="0.2032" layer="51"/>
+<wire x1="-2.8" y1="1" x2="-2.8" y2="-1" width="0.2032" layer="51"/>
+<smd name="1" x="-2.6" y="0" dx="2.4" dy="2.5" layer="1"/>
+<smd name="2" x="2.6" y="0" dx="2.4" dy="2.5" layer="1"/>
+<text x="-2.54" y="1.5875" size="1.27" layer="25">&gt;NAME</text>
+<text x="-2.54" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="RDH/15">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type RDH, grid 15 mm</description>
+<wire x1="-7.62" y1="0" x2="-6.858" y2="0" width="0.8128" layer="51"/>
+<wire x1="-6.096" y1="3.048" x2="-5.207" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="2.794" x2="-5.207" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-6.096" y1="-3.048" x2="-5.207" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-4.953" y1="-2.794" x2="-5.207" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="2.794" x2="5.207" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="2.794" x2="-4.953" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="-2.794" x2="5.207" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="4.953" y1="-2.794" x2="-4.953" y2="-2.794" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="3.048" x2="5.207" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="6.096" y1="-3.048" x2="5.207" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-6.477" y1="-2.667" x2="-6.477" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="-6.477" y1="1.016" x2="-6.477" y2="-1.016" width="0.1524" layer="51"/>
+<wire x1="-6.477" y1="1.016" x2="-6.477" y2="2.667" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="-2.667" x2="6.477" y2="-1.016" width="0.1524" layer="21"/>
+<wire x1="6.477" y1="1.016" x2="6.477" y2="-1.016" width="0.1524" layer="51"/>
+<wire x1="6.477" y1="1.016" x2="6.477" y2="2.667" width="0.1524" layer="21"/>
+<wire x1="6.858" y1="0" x2="7.62" y2="0" width="0.8128" layer="51"/>
+<wire x1="-6.477" y1="2.667" x2="-6.096" y2="3.048" width="0.1524" layer="21" curve="-90"/>
+<wire x1="6.096" y1="3.048" x2="6.477" y2="2.667" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-6.477" y1="-2.667" x2="-6.096" y2="-3.048" width="0.1524" layer="21" curve="90"/>
+<wire x1="6.096" y1="-3.048" x2="6.477" y2="-2.667" width="0.1524" layer="21" curve="90"/>
+<pad name="1" x="-7.62" y="0" drill="1.016" shape="octagon"/>
+<pad name="2" x="7.62" y="0" drill="1.016" shape="octagon"/>
+<text x="-6.35" y="3.4544" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.318" y="-0.5842" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<text x="4.572" y="-1.7272" size="1.27" layer="51" ratio="10" rot="R90">RDH</text>
+<rectangle x1="-6.7564" y1="-0.4064" x2="-6.4516" y2="0.4064" layer="51"/>
+<rectangle x1="6.4516" y1="-0.4064" x2="6.7564" y2="0.4064" layer="51"/>
+</package>
+<package name="0204V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0204, grid 2.5 mm</description>
+<wire x1="-1.27" y1="0" x2="1.27" y2="0" width="0.508" layer="51"/>
+<wire x1="-0.127" y1="0" x2="0.127" y2="0" width="0.508" layer="21"/>
+<circle x="-1.27" y="0" radius="0.889" width="0.1524" layer="51"/>
+<circle x="-1.27" y="0" radius="0.635" width="0.0508" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.1336" y="1.1684" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.1336" y="-2.3114" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="0309V">
+<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
+type 0309, grid 2.5 mm</description>
+<wire x1="1.27" y1="0" x2="0.635" y2="0" width="0.6096" layer="51"/>
+<wire x1="-0.635" y1="0" x2="-1.27" y2="0" width="0.6096" layer="51"/>
+<circle x="-1.27" y="0" radius="1.524" width="0.1524" layer="21"/>
+<circle x="-1.27" y="0" radius="0.762" width="0.1524" layer="51"/>
+<pad name="1" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="2" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="0.254" y="1.016" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="0.254" y="-2.2098" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="0.254" y1="-0.3048" x2="0.5588" y2="0.3048" layer="51"/>
+<rectangle x1="-0.635" y1="-0.3048" x2="-0.3302" y2="0.3048" layer="51"/>
+<rectangle x1="-0.3302" y1="-0.3048" x2="0.254" y2="0.3048" layer="21"/>
+</package>
+</packages>
+<symbols>
+<symbol name="C-US">
+<wire x1="-2.54" y1="0" x2="2.54" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="-1.016" x2="0" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="0" y1="-1" x2="2.4892" y2="-1.8542" width="0.254" layer="94" curve="-37.878202" cap="flat"/>
+<wire x1="-2.4668" y1="-1.8504" x2="0" y2="-1.0161" width="0.254" layer="94" curve="-37.373024" cap="flat"/>
+<text x="1.016" y="0.635" size="1.778" layer="95">&gt;NAME</text>
+<text x="1.016" y="-4.191" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="1" x="0" y="2.54" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
+<pin name="2" x="0" y="-5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R90"/>
+</symbol>
+<symbol name="R-US">
+<wire x1="-2.54" y1="0" x2="-2.159" y2="1.016" width="0.2032" layer="94"/>
+<wire x1="-2.159" y1="1.016" x2="-1.524" y2="-1.016" width="0.2032" layer="94"/>
+<wire x1="-1.524" y1="-1.016" x2="-0.889" y2="1.016" width="0.2032" layer="94"/>
+<wire x1="-0.889" y1="1.016" x2="-0.254" y2="-1.016" width="0.2032" layer="94"/>
+<wire x1="-0.254" y1="-1.016" x2="0.381" y2="1.016" width="0.2032" layer="94"/>
+<wire x1="0.381" y1="1.016" x2="1.016" y2="-1.016" width="0.2032" layer="94"/>
+<wire x1="1.016" y1="-1.016" x2="1.651" y2="1.016" width="0.2032" layer="94"/>
+<wire x1="1.651" y1="1.016" x2="2.286" y2="-1.016" width="0.2032" layer="94"/>
+<wire x1="2.286" y1="-1.016" x2="2.54" y2="0" width="0.2032" layer="94"/>
+<text x="-3.81" y="1.4986" size="1.778" layer="95">&gt;NAME</text>
+<text x="-3.81" y="-3.302" size="1.778" layer="96">&gt;VALUE</text>
+<pin name="2" x="5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1" rot="R180"/>
+<pin name="1" x="-5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1"/>
+</symbol>
+</symbols>
+<devicesets>
+<deviceset name="C-US" prefix="C" uservalue="yes">
+<description>&lt;B&gt;CAPACITOR&lt;/B&gt;, American symbol</description>
+<gates>
+<gate name="G$1" symbol="C-US" x="0" y="0"/>
+</gates>
+<devices>
+<device name="C0402" package="C0402">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0504" package="C0504">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0603" package="C0603">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0805" package="C0805">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1005" package="C1005">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1206" package="C1206">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1210" package="C1210">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1310" package="C1310">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1608" package="C1608">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1812" package="C1812">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1825" package="C1825">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2012" package="C2012">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C3216" package="C3216">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C3225" package="C3225">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C4532" package="C4532">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C4564" package="C4564">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-024X044" package="C025-024X044">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-025X050" package="C025-025X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-030X050" package="C025-030X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-040X050" package="C025-040X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-050X050" package="C025-050X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025-060X050" package="C025-060X050">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C025_050-024X070" package="C025_050-024X070">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-025X075" package="C025_050-025X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-035X075" package="C025_050-035X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-045X075" package="C025_050-045X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="025_050-055X075" package="C025_050-055X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-024X044" package="C050-024X044">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-025X075" package="C050-025X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-045X075" package="C050-045X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-030X075" package="C050-030X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-050X075" package="C050-050X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-055X075" package="C050-055X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-075X075" package="C050-075X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050H075X075" package="C050H075X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-032X103" package="C075-032X103">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-042X103" package="C075-042X103">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-052X106" package="C075-052X106">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-043X133" package="C102-043X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-054X133" package="C102-054X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102-064X133" package="C102-064X133">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="102_152-062X184" package="C102_152-062X184">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-054X183" package="C150-054X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-064X183" package="C150-064X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-072X183" package="C150-072X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-084X183" package="C150-084X183">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="150-091X182" package="C150-091X182">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-062X268" package="C225-062X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-074X268" package="C225-074X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-087X268" package="C225-087X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-108X268" package="C225-108X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="225-113X268" package="C225-113X268">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-093X316" package="C275-093X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-113X316" package="C275-113X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-134X316" package="C275-134X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-205X316" package="C275-205X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-137X374" package="C325-137X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-162X374" package="C325-162X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="325-182X374" package="C325-182X374">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-192X418" package="C375-192X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-203X418" package="C375-203X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="050-035X075" package="C050-035X075">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="375-155X418" package="C375-155X418">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="075-063X106" package="C075-063X106">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-154X316" package="C275-154X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="275-173X316" package="C275-173X316">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0402K" package="C0402K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0603K" package="C0603K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C0805K" package="C0805K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1206K" package="C1206K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1210K" package="C1210K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1812K" package="C1812K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C1825K" package="C1825K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2220K" package="C2220K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="C2225K" package="C2225K">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+<deviceset name="R-US_" prefix="R" uservalue="yes">
+<description>&lt;B&gt;RESISTOR&lt;/B&gt;, American symbol</description>
+<gates>
+<gate name="G$1" symbol="R-US" x="0" y="0"/>
+</gates>
+<devices>
+<device name="R0402" package="R0402">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R0603" package="R0603">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R0805" package="R0805">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R0805W" package="R0805W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R1005" package="R1005">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R1206" package="R1206">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R1206W" package="R1206W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R1210" package="R1210">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R1210W" package="R1210W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R2010" package="R2010">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R2010W" package="R2010W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R2012" package="R2012">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R2012W" package="R2012W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R2512" package="R2512">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R2512W" package="R2512W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R3216" package="R3216">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R3216W" package="R3216W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R3225" package="R3225">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R3225W" package="R3225W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R5025" package="R5025">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R5025W" package="R5025W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R6332" package="R6332">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="R6332W" package="R6332W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M0805" package="M0805">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M1206" package="M1206">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M1406" package="M1406">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M2012" package="M2012">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M2309" package="M2309">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M3216" package="M3216">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M3516" package="M3516">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="M5923" package="M5923">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/5" package="0204/5">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/7" package="0204/7">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/10" package="0207/10">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/12" package="0207/12">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/15" package="0207/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/2V" package="0207/2V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/5V" package="0207/5V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0207/7" package="0207/7">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0309/10" package="0309/10">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0309/12" package="0309/12">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0411/12" package="0411/12">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0411/15" package="0411/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0411/3V" package="0411V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0414/15" package="0414/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0414/5V" package="0414V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0617/17" package="0617/17">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0617/22" package="0617/22">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0617/5V" package="0617V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0922/22" package="0922/22">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0613/5V" package="P0613V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0613/15" package="P0613/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0817/22" package="P0817/22">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0817/7V" package="P0817V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="V234/12" package="V234/12">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="V235/17" package="V235/17">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="V526-0" package="V526-0">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0102AX" package="MINI_MELF-0102AX">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0922V" package="0922V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0102R" package="MINI_MELF-0102R">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0102W" package="MINI_MELF-0102W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0204R" package="MINI_MELF-0204R">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0204W" package="MINI_MELF-0204W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0207R" package="MINI_MELF-0207R">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MELF0207W" package="MINI_MELF-0207W">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="RDH/15" package="RDH/15">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0204/2V" package="0204V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="0309/V" package="0309V">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+</devicesets>
+</library>
+<library name="led">
+<packages>
+<package name="1206">
+<description>&lt;b&gt;CHICAGO MINIATURE LAMP, INC.&lt;/b&gt;&lt;p&gt;
+7022X Series SMT LEDs 1206 Package Size</description>
+<wire x1="1.55" y1="-0.75" x2="-1.55" y2="-0.75" width="0.1016" layer="51"/>
+<wire x1="-1.55" y1="-0.75" x2="-1.55" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="-1.55" y1="0.75" x2="1.55" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="1.55" y1="0.75" x2="1.55" y2="-0.75" width="0.1016" layer="51"/>
+<wire x1="-0.55" y1="-0.5" x2="0.55" y2="-0.5" width="0.1016" layer="21" curve="95.452622"/>
+<wire x1="-0.55" y1="-0.5" x2="-0.55" y2="0.5" width="0.1016" layer="51" curve="-84.547378"/>
+<wire x1="-0.55" y1="0.5" x2="0.55" y2="0.5" width="0.1016" layer="21" curve="-95.452622"/>
+<wire x1="0.55" y1="0.5" x2="0.55" y2="-0.5" width="0.1016" layer="51" curve="-84.547378"/>
+<smd name="A" x="-1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
+<smd name="C" x="1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
+<text x="-1.27" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.27" y="-2.54" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-0.1" y1="-0.1" x2="0.1" y2="0.1" layer="21"/>
+<rectangle x1="0.45" y1="-0.7" x2="0.8" y2="-0.45" layer="51"/>
+<rectangle x1="0.8" y1="-0.7" x2="0.9" y2="0.5" layer="51"/>
+<rectangle x1="0.8" y1="0.55" x2="0.9" y2="0.7" layer="51"/>
+<rectangle x1="-0.9" y1="-0.7" x2="-0.8" y2="0.5" layer="51"/>
+<rectangle x1="-0.9" y1="0.55" x2="-0.8" y2="0.7" layer="51"/>
+<rectangle x1="0.45" y1="-0.7" x2="0.6" y2="-0.45" layer="21"/>
+</package>
+<package name="LD260">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+5 mm, square, Siemens</description>
+<wire x1="-1.27" y1="-1.27" x2="0" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="0" y1="-1.27" x2="1.27" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="1.27" x2="0" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="0" y1="1.27" x2="-1.27" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="-1.27" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="0.889" x2="1.27" y2="0" width="0.1524" layer="51"/>
+<wire x1="1.27" y1="0" x2="1.27" y2="-0.889" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="-1.27" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="-0.889" x2="-1.27" y2="0" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="0" x2="-1.27" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="0" y1="1.27" x2="0.9917" y2="0.7934" width="0.1524" layer="21" curve="-51.33923"/>
+<wire x1="-0.9917" y1="0.7934" x2="0" y2="1.27" width="0.1524" layer="21" curve="-51.33923"/>
+<wire x1="0" y1="-1.27" x2="0.9917" y2="-0.7934" width="0.1524" layer="21" curve="51.33923"/>
+<wire x1="-0.9917" y1="-0.7934" x2="0" y2="-1.27" width="0.1524" layer="21" curve="51.33923"/>
+<wire x1="0.9558" y1="-0.8363" x2="1.27" y2="0" width="0.1524" layer="51" curve="41.185419"/>
+<wire x1="0.9756" y1="0.813" x2="1.2699" y2="0" width="0.1524" layer="51" curve="-39.806332"/>
+<wire x1="-1.27" y1="0" x2="-0.9643" y2="-0.8265" width="0.1524" layer="51" curve="40.600331"/>
+<wire x1="-1.27" y1="0" x2="-0.9643" y2="0.8265" width="0.1524" layer="51" curve="-40.600331"/>
+<wire x1="-0.889" y1="0" x2="0" y2="0.889" width="0.1524" layer="51" curve="-90"/>
+<wire x1="-0.508" y1="0" x2="0" y2="0.508" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-0.508" x2="0.508" y2="0" width="0.1524" layer="21" curve="90"/>
+<wire x1="0" y1="-0.889" x2="0.889" y2="0" width="0.1524" layer="51" curve="90"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.2954" y="1.4732" size="1.016" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-2.4892" size="1.016" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="1.27" y1="-0.635" x2="2.032" y2="0.635" layer="51"/>
+<rectangle x1="1.905" y1="-0.635" x2="2.032" y2="0.635" layer="21"/>
+</package>
+<package name="LED2X5">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+2 x 5 mm, rectangle</description>
+<wire x1="-2.54" y1="-1.27" x2="2.54" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="1.27" x2="2.54" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="1.27" x2="-2.54" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="-1.27" x2="-2.54" y2="1.27" width="0.1524" layer="21"/>
+<wire x1="-1.905" y1="0" x2="0.508" y2="0" width="0.1524" layer="51"/>
+<wire x1="-0.508" y1="0.381" x2="-0.508" y2="-0.381" width="0.1524" layer="51"/>
+<wire x1="-0.508" y1="0.381" x2="0.508" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.508" y1="0" x2="1.778" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.508" y1="0" x2="-0.508" y2="-0.381" width="0.1524" layer="51"/>
+<wire x1="0.508" y1="0.381" x2="0.508" y2="0" width="0.1524" layer="51"/>
+<wire x1="0.508" y1="0" x2="0.508" y2="-0.381" width="0.1524" layer="51"/>
+<wire x1="0.889" y1="-0.254" x2="1.143" y2="-0.762" width="0.1524" layer="51"/>
+<wire x1="1.143" y1="-0.762" x2="1.143" y2="-0.508" width="0.1524" layer="51"/>
+<wire x1="1.143" y1="-0.762" x2="0.9398" y2="-0.6096" width="0.1524" layer="51"/>
+<wire x1="0.9398" y1="-0.6096" x2="1.143" y2="-0.508" width="0.1524" layer="51"/>
+<wire x1="1.397" y1="-0.254" x2="1.651" y2="-0.762" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-0.762" x2="1.651" y2="-0.508" width="0.1524" layer="51"/>
+<wire x1="1.651" y1="-0.762" x2="1.4478" y2="-0.6096" width="0.1524" layer="51"/>
+<wire x1="1.4478" y1="-0.6096" x2="1.651" y2="-0.508" width="0.1524" layer="51"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-2.54" y="1.397" size="1.016" layer="25" ratio="10">&gt;NAME</text>
+<text x="-2.54" y="-2.413" size="1.016" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.159" y1="-1.27" x2="2.413" y2="1.27" layer="21"/>
+</package>
+<package name="LED3MM">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+3 mm, round</description>
+<wire x1="1.5748" y1="-1.27" x2="1.5748" y2="1.27" width="0.254" layer="51"/>
+<wire x1="-1.524" y1="0" x2="-1.1708" y2="0.9756" width="0.1524" layer="51" curve="-39.80361"/>
+<wire x1="-1.524" y1="0" x2="-1.1391" y2="-1.0125" width="0.1524" layer="51" curve="41.633208"/>
+<wire x1="1.1571" y1="0.9918" x2="1.524" y2="0" width="0.1524" layer="51" curve="-40.601165"/>
+<wire x1="1.1708" y1="-0.9756" x2="1.524" y2="0" width="0.1524" layer="51" curve="39.80361"/>
+<wire x1="0" y1="1.524" x2="1.2401" y2="0.8858" width="0.1524" layer="21" curve="-54.461337"/>
+<wire x1="-1.2192" y1="0.9144" x2="0" y2="1.524" width="0.1524" layer="21" curve="-53.130102"/>
+<wire x1="0" y1="-1.524" x2="1.203" y2="-0.9356" width="0.1524" layer="21" curve="52.126876"/>
+<wire x1="-1.203" y1="-0.9356" x2="0" y2="-1.524" width="0.1524" layer="21" curve="52.126876"/>
+<wire x1="-0.635" y1="0" x2="0" y2="0.635" width="0.1524" layer="51" curve="-90"/>
+<wire x1="-1.016" y1="0" x2="0" y2="1.016" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-0.635" x2="0.635" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="0" y1="-1.016" x2="1.016" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="0" y1="2.032" x2="1.561" y2="1.3009" width="0.254" layer="21" curve="-50.193108"/>
+<wire x1="-1.7929" y1="0.9562" x2="0" y2="2.032" width="0.254" layer="21" curve="-61.926949"/>
+<wire x1="0" y1="-2.032" x2="1.5512" y2="-1.3126" width="0.254" layer="21" curve="49.763022"/>
+<wire x1="-1.7643" y1="-1.0082" x2="0" y2="-2.032" width="0.254" layer="21" curve="60.255215"/>
+<wire x1="-2.032" y1="0" x2="-1.7891" y2="0.9634" width="0.254" layer="51" curve="-28.301701"/>
+<wire x1="-2.032" y1="0" x2="-1.7306" y2="-1.065" width="0.254" layer="51" curve="31.60822"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="1.905" y="0.381" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="1.905" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="LED5MM">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+5 mm, round</description>
+<wire x1="2.54" y1="-1.905" x2="2.54" y2="1.905" width="0.2032" layer="21"/>
+<wire x1="2.54" y1="-1.905" x2="2.54" y2="1.905" width="0.254" layer="21" curve="-286.260205"/>
+<wire x1="-1.143" y1="0" x2="0" y2="1.143" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-1.143" x2="1.143" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-1.651" y1="0" x2="0" y2="1.651" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-1.651" x2="1.651" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-2.159" y1="0" x2="0" y2="2.159" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-2.159" x2="2.159" y2="0" width="0.1524" layer="51" curve="90"/>
+<circle x="0" y="0" radius="2.54" width="0.1524" layer="21"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="3.175" y="0.5334" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="3.2004" y="-1.8034" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="LSU260">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+1 mm, round, Siemens</description>
+<wire x1="0" y1="-0.508" x2="-1.143" y2="-0.508" width="0.1524" layer="51"/>
+<wire x1="-1.143" y1="-0.508" x2="-1.143" y2="-0.254" width="0.1524" layer="51"/>
+<wire x1="-1.143" y1="0.508" x2="0" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="-1.143" y1="-0.254" x2="-1.397" y2="-0.254" width="0.1524" layer="51"/>
+<wire x1="-1.143" y1="-0.254" x2="-1.143" y2="0.254" width="0.1524" layer="51"/>
+<wire x1="-1.397" y1="-0.254" x2="-1.397" y2="0.254" width="0.1524" layer="51"/>
+<wire x1="-1.397" y1="0.254" x2="-1.143" y2="0.254" width="0.1524" layer="51"/>
+<wire x1="-1.143" y1="0.254" x2="-1.143" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="0.508" y1="-0.254" x2="1.397" y2="-0.254" width="0.1524" layer="51"/>
+<wire x1="1.397" y1="-0.254" x2="1.397" y2="0.254" width="0.1524" layer="51"/>
+<wire x1="1.397" y1="0.254" x2="0.508" y2="0.254" width="0.1524" layer="51"/>
+<wire x1="0.381" y1="-0.381" x2="0.254" y2="-0.508" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="-0.508" x2="-0.254" y2="-0.508" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="-0.381" x2="-0.254" y2="-0.508" width="0.1524" layer="21"/>
+<wire x1="0.381" y1="0.381" x2="0.254" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="0.254" y1="0.508" x2="-0.254" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="-0.381" y1="0.381" x2="-0.254" y2="0.508" width="0.1524" layer="21"/>
+<wire x1="0" y1="-0.254" x2="0.254" y2="0" width="0.1524" layer="21" curve="90"/>
+<wire x1="-0.254" y1="0" x2="0" y2="0.254" width="0.1524" layer="21" curve="-90"/>
+<wire x1="0.381" y1="-0.381" x2="0.381" y2="0.381" width="0.1524" layer="21" curve="90"/>
+<circle x="0" y="0" radius="0.508" width="0.1524" layer="51"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.2954" y="0.8382" size="1.016" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-1.8542" size="1.016" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="-1.397" y1="-0.254" x2="-1.143" y2="0.254" layer="51"/>
+<rectangle x1="0.508" y1="-0.254" x2="1.397" y2="0.254" layer="51"/>
+</package>
+<package name="LZR181">
+<description>&lt;B&gt;LED BLOCK&lt;/B&gt;&lt;p&gt;
+1 LED, Siemens</description>
+<wire x1="-1.27" y1="-1.27" x2="1.27" y2="-1.27" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="-1.27" x2="1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="1.27" y1="0.889" x2="1.27" y2="-0.889" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0.889" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="-1.27" x2="-1.27" y2="-0.889" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="-0.889" x2="-1.27" y2="0.889" width="0.1524" layer="51"/>
+<wire x1="-0.889" y1="0" x2="0" y2="0.889" width="0.1524" layer="51" curve="-90"/>
+<wire x1="-0.508" y1="0" x2="0" y2="0.508" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-0.508" x2="0.508" y2="0" width="0.1524" layer="21" curve="90"/>
+<wire x1="0" y1="-0.889" x2="0.889" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-0.8678" y1="0.7439" x2="0" y2="1.143" width="0.1524" layer="21" curve="-49.396139"/>
+<wire x1="0" y1="1.143" x2="0.8678" y2="0.7439" width="0.1524" layer="21" curve="-49.396139"/>
+<wire x1="-0.8678" y1="-0.7439" x2="0" y2="-1.143" width="0.1524" layer="21" curve="49.396139"/>
+<wire x1="0" y1="-1.143" x2="0.8678" y2="-0.7439" width="0.1524" layer="21" curve="49.396139"/>
+<wire x1="0.8678" y1="0.7439" x2="1.143" y2="0" width="0.1524" layer="51" curve="-40.604135"/>
+<wire x1="0.8678" y1="-0.7439" x2="1.143" y2="0" width="0.1524" layer="51" curve="40.604135"/>
+<wire x1="-1.143" y1="0" x2="-0.8678" y2="0.7439" width="0.1524" layer="51" curve="-40.604135"/>
+<wire x1="-1.143" y1="0" x2="-0.8678" y2="-0.7439" width="0.1524" layer="51" curve="40.604135"/>
+<wire x1="-1.27" y1="1.27" x2="1.27" y2="1.27" width="0.1524" layer="21"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
+<text x="-1.2954" y="1.4732" size="1.016" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-2.4892" size="1.016" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="1.27" y1="-0.889" x2="1.524" y2="0.254" layer="51"/>
+<rectangle x1="-1.524" y1="-0.254" x2="-1.27" y2="0.254" layer="51"/>
+</package>
+<package name="Q62902-B152">
+<description>&lt;b&gt;LED HOLDER&lt;/b&gt;&lt;p&gt;
+Siemens</description>
+<wire x1="-2.9718" y1="-1.8542" x2="-2.9718" y2="-0.254" width="0.1524" layer="21"/>
+<wire x1="-2.9718" y1="-0.254" x2="-2.9718" y2="0.254" width="0.1524" layer="21"/>
+<wire x1="-2.9718" y1="0.254" x2="-2.9718" y2="1.8542" width="0.1524" layer="21"/>
+<wire x1="2.9718" y1="-1.8542" x2="-2.1082" y2="-1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.1082" y1="-1.8542" x2="-2.54" y2="-1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="1.8542" x2="-2.1082" y2="1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.1082" y1="1.8542" x2="2.9718" y2="1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="-1.8542" x2="-2.54" y2="1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="-1.8542" x2="-2.9718" y2="-1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="1.8542" x2="-2.9718" y2="1.8542" width="0.1524" layer="21"/>
+<wire x1="-2.9718" y1="0.254" x2="-2.9718" y2="-0.254" width="0.1524" layer="21" curve="180"/>
+<wire x1="-1.1486" y1="0.8814" x2="0" y2="1.4478" width="0.1524" layer="21" curve="-52.498642"/>
+<wire x1="0" y1="1.4478" x2="1.1476" y2="0.8827" width="0.1524" layer="21" curve="-52.433716"/>
+<wire x1="-1.1351" y1="-0.8987" x2="0" y2="-1.4478" width="0.1524" layer="21" curve="51.629985"/>
+<wire x1="0" y1="-1.4478" x2="1.1305" y2="-0.9044" width="0.1524" layer="21" curve="51.339172"/>
+<wire x1="1.1281" y1="-0.9074" x2="1.4478" y2="0" width="0.1524" layer="51" curve="38.811177"/>
+<wire x1="1.1401" y1="0.8923" x2="1.4478" y2="0" width="0.1524" layer="51" curve="-38.048073"/>
+<wire x1="-1.4478" y1="0" x2="-1.1305" y2="-0.9044" width="0.1524" layer="51" curve="38.659064"/>
+<wire x1="-1.4478" y1="0" x2="-1.1456" y2="0.8853" width="0.1524" layer="51" curve="-37.696376"/>
+<wire x1="0" y1="1.7018" x2="1.4674" y2="0.8618" width="0.1524" layer="21" curve="-59.573488"/>
+<wire x1="-1.4618" y1="0.8714" x2="0" y2="1.7018" width="0.1524" layer="21" curve="-59.200638"/>
+<wire x1="0" y1="-1.7018" x2="1.4571" y2="-0.8793" width="0.1524" layer="21" curve="58.891781"/>
+<wire x1="-1.4571" y1="-0.8793" x2="0" y2="-1.7018" width="0.1524" layer="21" curve="58.891781"/>
+<wire x1="-1.7018" y1="0" x2="-1.4447" y2="0.8995" width="0.1524" layer="51" curve="-31.907626"/>
+<wire x1="-1.7018" y1="0" x2="-1.4502" y2="-0.8905" width="0.1524" layer="51" curve="31.551992"/>
+<wire x1="1.4521" y1="0.8874" x2="1.7018" y2="0" width="0.1524" layer="51" curve="-31.429586"/>
+<wire x1="1.4459" y1="-0.8975" x2="1.7018" y2="0" width="0.1524" layer="51" curve="31.828757"/>
+<wire x1="-2.1082" y1="1.8542" x2="-2.1082" y2="-1.8542" width="0.1524" layer="21"/>
+<wire x1="-0.635" y1="0" x2="0" y2="0.635" width="0.1524" layer="21" curve="-90"/>
+<wire x1="-1.016" y1="0" x2="0" y2="1.016" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-0.635" x2="0.635" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="0.0539" y1="-1.0699" x2="1.0699" y2="-0.0539" width="0.1524" layer="51" curve="90"/>
+<wire x1="2.9718" y1="1.8542" x2="2.9718" y2="-1.8542" width="0.1524" layer="21"/>
+<pad name="K" x="-1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<pad name="A" x="1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<text x="-1.905" y="2.286" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.905" y="-3.556" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="Q62902-B153">
+<description>&lt;b&gt;LED HOLDER&lt;/b&gt;&lt;p&gt;
+Siemens</description>
+<wire x1="-5.5118" y1="-3.5052" x2="-5.5118" y2="-0.254" width="0.1524" layer="21"/>
+<wire x1="-5.5118" y1="-0.254" x2="-5.5118" y2="0.254" width="0.1524" layer="21"/>
+<wire x1="-5.5118" y1="0.254" x2="-5.5118" y2="3.5052" width="0.1524" layer="21"/>
+<wire x1="5.5118" y1="-3.5052" x2="-4.6482" y2="-3.5052" width="0.1524" layer="21"/>
+<wire x1="-4.6482" y1="-3.5052" x2="-5.08" y2="-3.5052" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="3.5052" x2="-4.6482" y2="3.5052" width="0.1524" layer="21"/>
+<wire x1="-4.6482" y1="3.5052" x2="5.5118" y2="3.5052" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="-3.5052" x2="-5.08" y2="3.5052" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="-3.5052" x2="-5.5118" y2="-3.5052" width="0.1524" layer="21"/>
+<wire x1="-5.08" y1="3.5052" x2="-5.5118" y2="3.5052" width="0.1524" layer="21"/>
+<wire x1="-5.5118" y1="0.254" x2="-5.5118" y2="-0.254" width="0.1524" layer="21" curve="180"/>
+<wire x1="-4.6482" y1="3.5052" x2="-4.6482" y2="-3.5052" width="0.1524" layer="21"/>
+<wire x1="5.5118" y1="3.5052" x2="5.5118" y2="-3.5052" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="1.905" x2="-2.54" y2="-1.905" width="0.254" layer="21"/>
+<wire x1="0" y1="-1.143" x2="1.143" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-1.143" y1="0" x2="0" y2="1.143" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-1.651" x2="1.651" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-1.651" y1="0" x2="0" y2="1.651" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-2.159" x2="2.159" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-2.2129" y1="0.0539" x2="-0.0539" y2="2.2129" width="0.1524" layer="51" curve="-90.010616"/>
+<circle x="0" y="0" radius="2.54" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="3.175" width="0.254" layer="21"/>
+<pad name="A" x="1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<pad name="K" x="-1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<text x="-4.191" y="3.937" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-4.318" y="-5.08" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="Q62902-B155">
+<description>&lt;b&gt;LED HOLDER&lt;/b&gt;&lt;p&gt;
+Siemens</description>
+<wire x1="-1.27" y1="-3.048" x2="-1.27" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="10.033" y1="3.048" x2="2.921" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="10.033" y1="3.048" x2="10.033" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="-3.048" x2="2.921" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-3.048" x2="2.921" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="-3.048" x2="10.033" y2="-3.048" width="0.1524" layer="21"/>
+<wire x1="2.921" y1="3.048" x2="-1.27" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="2.54" x2="-5.207" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="2.54" x2="-1.27" y2="3.048" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="-2.54" x2="-1.27" y2="-2.54" width="0.1524" layer="21"/>
+<wire x1="-1.27" y1="-2.54" x2="-1.27" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="2.54" x2="-5.207" y2="-2.54" width="0.1524" layer="21" curve="180"/>
+<wire x1="-6.985" y1="0.635" x2="-6.985" y2="-0.635" width="0.1524" layer="21"/>
+<wire x1="-6.096" y1="1.397" x2="-6.096" y2="-1.397" width="0.1524" layer="21"/>
+<wire x1="-5.207" y1="1.905" x2="-5.207" y2="-1.905" width="0.1524" layer="21"/>
+<pad name="K" x="7.62" y="1.27" drill="0.8128" shape="long"/>
+<pad name="A" x="7.62" y="-1.27" drill="0.8128" shape="long"/>
+<text x="3.302" y="-2.794" size="1.016" layer="21" ratio="14">A+</text>
+<text x="3.302" y="1.778" size="1.016" layer="21" ratio="14">K-</text>
+<text x="11.684" y="-2.794" size="1.27" layer="25" ratio="10" rot="R90">&gt;NAME</text>
+<text x="0.635" y="-4.445" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<rectangle x1="2.921" y1="1.016" x2="6.731" y2="1.524" layer="21"/>
+<rectangle x1="2.921" y1="-1.524" x2="6.731" y2="-1.016" layer="21"/>
+<hole x="0" y="0" drill="0.8128"/>
+</package>
+<package name="Q62902-B156">
+<description>&lt;b&gt;LED HOLDER&lt;/b&gt;&lt;p&gt;
+Siemens</description>
+<wire x1="2.54" y1="-1.905" x2="2.54" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="-1.143" y1="0" x2="0" y2="1.143" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-1.143" x2="1.143" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-1.651" y1="0" x2="0" y2="1.651" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-1.651" x2="1.651" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="-2.159" y1="0" x2="0" y2="2.159" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0.0539" y1="-2.2129" x2="2.2129" y2="-0.0539" width="0.1524" layer="51" curve="90.005308"/>
+<wire x1="2.54" y1="3.81" x2="3.81" y2="2.54" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="3.81" x2="-3.81" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="-3.81" y1="-3.81" x2="-3.81" y2="3.81" width="0.1524" layer="21"/>
+<wire x1="3.81" y1="2.54" x2="3.81" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="-3.81" y1="-3.81" x2="-2.54" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="-3.302" x2="-2.54" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="3.81" y1="-3.81" x2="2.54" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="-3.302" x2="2.54" y2="-3.81" width="0.1524" layer="21"/>
+<wire x1="2.54" y1="-3.302" x2="-2.54" y2="-3.302" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="2.54" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="3.175" width="0.254" layer="21"/>
+<pad name="A" x="-1.27" y="0" drill="1.016" shape="long" rot="R90"/>
+<pad name="K" x="1.27" y="0" drill="1.016" shape="long" rot="R90"/>
+<text x="-3.81" y="4.0894" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-3.7846" y="-5.3594" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+<text x="-3.556" y="-3.302" size="1.016" layer="21" ratio="14">+</text>
+<text x="2.794" y="-3.302" size="1.016" layer="21" ratio="14">-</text>
+</package>
+<package name="SFH480">
+<description>&lt;B&gt;IR LED&lt;/B&gt;&lt;p&gt;
+infrared emitting diode, Infineon
+TO-18, lead spacing 2.54 mm, cathode marking&lt;p&gt;
+Inifineon</description>
+<wire x1="-2.159" y1="1.524" x2="-2.794" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="-2.794" y1="2.159" x2="-2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="-1.524" y1="2.159" x2="-2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="0" y1="1.778" x2="1.5358" y2="0.8959" width="0.1524" layer="21" curve="-59.743278"/>
+<wire x1="-1.5358" y1="0.8959" x2="0" y2="1.778" width="0.1524" layer="21" curve="-59.743278"/>
+<wire x1="-1.5358" y1="-0.8959" x2="0" y2="-1.778" width="0.1524" layer="21" curve="59.743278"/>
+<wire x1="0" y1="-1.778" x2="1.5358" y2="-0.8959" width="0.1524" layer="21" curve="59.743278"/>
+<wire x1="1.5142" y1="0.9318" x2="1.778" y2="0" width="0.1524" layer="51" curve="-31.606487"/>
+<wire x1="1.5" y1="-0.9546" x2="1.778" y2="0" width="0.1524" layer="51" curve="32.472615"/>
+<wire x1="-1.778" y1="0" x2="-1.5142" y2="-0.9318" width="0.1524" layer="51" curve="31.606487"/>
+<wire x1="-1.778" y1="0" x2="-1.5" y2="0.9546" width="0.1524" layer="51" curve="-32.472615"/>
+<wire x1="-0.635" y1="0" x2="0" y2="0.635" width="0.1524" layer="51" curve="-90"/>
+<wire x1="-1.016" y1="0" x2="0" y2="1.016" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-0.635" x2="0.635" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="0.0539" y1="-1.0699" x2="1.0699" y2="-0.0539" width="0.1524" layer="51" curve="90"/>
+<circle x="0" y="0" radius="2.667" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="2.413" width="0.254" layer="21"/>
+<pad name="K" x="-1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<pad name="A" x="1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<text x="-1.27" y="3.048" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-4.318" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="SFH482">
+<description>&lt;B&gt;IR LED&lt;/B&gt;&lt;p&gt;
+infrared emitting diode, Infineon
+TO-18, lead spacing 2.54 mm, cathode marking&lt;p&gt;
+Inifineon</description>
+<wire x1="-2.159" y1="1.524" x2="-2.794" y2="2.159" width="0.1524" layer="21"/>
+<wire x1="-2.794" y1="2.159" x2="-2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="-1.524" y1="2.159" x2="-2.159" y2="2.794" width="0.1524" layer="21"/>
+<wire x1="0" y1="1.778" x2="1.5358" y2="0.8959" width="0.1524" layer="21" curve="-59.743278"/>
+<wire x1="-1.5358" y1="0.8959" x2="0" y2="1.778" width="0.1524" layer="21" curve="-59.743278"/>
+<wire x1="-1.5358" y1="-0.8959" x2="0" y2="-1.778" width="0.1524" layer="21" curve="59.743278"/>
+<wire x1="0" y1="-1.778" x2="1.5358" y2="-0.8959" width="0.1524" layer="21" curve="59.743278"/>
+<wire x1="1.5142" y1="0.9318" x2="1.778" y2="0" width="0.1524" layer="51" curve="-31.606487"/>
+<wire x1="1.5" y1="-0.9546" x2="1.778" y2="0" width="0.1524" layer="51" curve="32.472615"/>
+<wire x1="-1.778" y1="0" x2="-1.5142" y2="-0.9318" width="0.1524" layer="51" curve="31.606487"/>
+<wire x1="-1.778" y1="0" x2="-1.5" y2="0.9546" width="0.1524" layer="51" curve="-32.472615"/>
+<wire x1="-0.635" y1="0" x2="0" y2="0.635" width="0.1524" layer="51" curve="-90"/>
+<wire x1="-1.016" y1="0" x2="0" y2="1.016" width="0.1524" layer="51" curve="-90"/>
+<wire x1="0" y1="-0.635" x2="0.635" y2="0" width="0.1524" layer="51" curve="90"/>
+<wire x1="0.0539" y1="-1.0699" x2="1.0699" y2="-0.0539" width="0.1524" layer="51" curve="90"/>
+<circle x="0" y="0" radius="2.667" width="0.1524" layer="21"/>
+<circle x="0" y="0" radius="2.413" width="0.254" layer="21"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<text x="-1.27" y="3.048" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-4.318" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="U57X32">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+rectangle, 5.7 x 3.2 mm</description>
+<wire x1="-3.175" y1="1.905" x2="3.175" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-1.905" x2="3.175" y2="1.905" width="0.1524" layer="21"/>
+<wire x1="3.175" y1="-1.905" x2="-3.175" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="-3.175" y1="1.905" x2="-3.175" y2="-1.905" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="1.397" x2="2.667" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="2.667" y1="-1.397" x2="2.667" y2="1.397" width="0.1524" layer="21"/>
+<wire x1="2.667" y1="-1.397" x2="-2.667" y2="-1.397" width="0.1524" layer="21"/>
+<wire x1="-2.667" y1="1.397" x2="-2.667" y2="-1.397" width="0.1524" layer="21"/>
+<wire x1="-2.54" y1="1.016" x2="2.54" y2="1.016" width="0.1524" layer="51"/>
+<wire x1="2.286" y1="1.27" x2="2.286" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="-2.54" y1="0.508" x2="2.54" y2="0.508" width="0.1524" layer="51"/>
+<wire x1="-2.54" y1="0" x2="2.54" y2="0" width="0.1524" layer="51"/>
+<wire x1="-2.54" y1="-0.508" x2="2.54" y2="-0.508" width="0.1524" layer="51"/>
+<wire x1="-2.54" y1="-1.016" x2="2.54" y2="-1.016" width="0.1524" layer="51"/>
+<wire x1="-2.286" y1="1.27" x2="-2.286" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="-1.778" y1="1.27" x2="-1.778" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="-0.762" y1="1.27" x2="-0.762" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="-0.254" y1="1.27" x2="-0.254" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="0.254" y1="1.27" x2="0.254" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="0.762" y1="1.27" x2="0.762" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="1.27" y1="1.27" x2="1.27" y2="-1.27" width="0.1524" layer="51"/>
+<wire x1="1.778" y1="1.27" x2="1.778" y2="-1.27" width="0.1524" layer="51"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" shape="long" rot="R90"/>
+<text x="3.683" y="0.254" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="3.683" y="-1.524" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="IRL80A">
+<description>&lt;B&gt;IR LED&lt;/B&gt;&lt;p&gt;
+IR transmitter Siemens</description>
+<wire x1="0.889" y1="2.286" x2="0.889" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="0.889" y1="1.778" x2="0.889" y2="0.762" width="0.1524" layer="51"/>
+<wire x1="0.889" y1="0.762" x2="0.889" y2="-0.635" width="0.1524" layer="21"/>
+<wire x1="0.889" y1="-0.635" x2="0.889" y2="-1.778" width="0.1524" layer="51"/>
+<wire x1="0.889" y1="-1.778" x2="0.889" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="0.889" y1="-2.286" x2="-0.889" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-0.889" y1="2.286" x2="-0.889" y2="1.778" width="0.1524" layer="21"/>
+<wire x1="-0.889" y1="1.778" x2="-0.889" y2="0.762" width="0.1524" layer="51"/>
+<wire x1="-0.889" y1="0.762" x2="-0.889" y2="-0.762" width="0.1524" layer="21"/>
+<wire x1="-0.889" y1="-0.762" x2="-0.889" y2="-1.778" width="0.1524" layer="51"/>
+<wire x1="-0.889" y1="-1.778" x2="-0.889" y2="-2.286" width="0.1524" layer="21"/>
+<wire x1="-0.889" y1="2.286" x2="0.889" y2="2.286" width="0.1524" layer="21"/>
+<wire x1="-0.889" y1="-0.762" x2="-0.889" y2="0.762" width="0.1524" layer="21" curve="-180"/>
+<wire x1="-1.397" y1="0.254" x2="-1.397" y2="-0.254" width="0.0508" layer="21"/>
+<wire x1="-1.143" y1="0.508" x2="-1.143" y2="-0.508" width="0.0508" layer="21"/>
+<pad name="K" x="0" y="1.27" drill="0.8128" shape="octagon"/>
+<pad name="A" x="0" y="-1.27" drill="0.8128" shape="octagon"/>
+<text x="1.27" y="0.381" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="1.27" y="-1.651" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
+</package>
+<package name="P-LCC-2">
+<description>&lt;b&gt;TOPLED® High-optical Power LED (HOP)&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... ls_t675.pdf</description>
+<wire x1="-1.4" y1="-1.05" x2="-1.4" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-1.4" y1="-1.6" x2="-1.1" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-1.1" y1="-1.6" x2="-0.85" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-0.85" y1="-1.6" x2="1.1" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="1.1" y1="-1.6" x2="1.4" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="1.4" y1="-1.6" x2="1.4" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="1.4" y1="1.6" x2="1.1" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="1.1" y1="1.6" x2="-1.1" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="-1.1" y1="1.6" x2="-1.4" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="-1.1" y1="1.6" x2="-1.1" y2="1.8" width="0.1016" layer="51"/>
+<wire x1="-1.1" y1="1.8" x2="1.1" y2="1.8" width="0.1016" layer="51"/>
+<wire x1="1.1" y1="1.8" x2="1.1" y2="1.6" width="0.1016" layer="51"/>
+<wire x1="-1.1" y1="-1.6" x2="-1.1" y2="-1.8" width="0.1016" layer="51"/>
+<wire x1="-1.1" y1="-1.8" x2="1.1" y2="-1.8" width="0.1016" layer="51"/>
+<wire x1="1.1" y1="-1.8" x2="1.1" y2="-1.6" width="0.1016" layer="51"/>
+<wire x1="-0.85" y1="-1.6" x2="-1.4" y2="-1.05" width="0.2032" layer="51"/>
+<wire x1="-1.4" y1="1.6" x2="-1.4" y2="-1.05" width="0.2032" layer="51"/>
+<circle x="0" y="0" radius="1.1" width="0.2032" layer="51"/>
+<smd name="C" x="0" y="-2.75" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<smd name="A" x="0" y="2.75" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<text x="-2.54" y="-1.905" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="3.81" y="-1.905" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<text x="-0.635" y="2.54" size="1.27" layer="21">A</text>
+<text x="-0.635" y="-3.81" size="1.27" layer="21">C</text>
+<rectangle x1="-1.3" y1="-2.25" x2="1.3" y2="-0.75" layer="31"/>
+<rectangle x1="-1.3" y1="0.75" x2="1.3" y2="2.25" layer="31"/>
+<rectangle x1="-0.25" y1="-0.25" x2="0.25" y2="0.25" layer="21"/>
+<rectangle x1="-1.4" y1="0.65" x2="1.4" y2="2.35" layer="29"/>
+<rectangle x1="-1.4" y1="-2.35" x2="1.4" y2="-0.65" layer="29"/>
+</package>
+<package name="OSRAM-MINI-TOP-LED">
+<description>&lt;b&gt;BLUE LINETM Hyper Mini TOPLED® Hyper-Bright LED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LB M676.pdf</description>
+<wire x1="-0.6" y1="0.9" x2="-0.6" y2="-0.7" width="0.1016" layer="51"/>
+<wire x1="-0.45" y1="-0.9" x2="-0.4" y2="-0.9" width="0.1016" layer="51"/>
+<wire x1="-0.4" y1="-0.9" x2="0.6" y2="-0.9" width="0.1016" layer="51"/>
+<wire x1="0.6" y1="-0.9" x2="0.6" y2="0.9" width="0.1016" layer="51"/>
+<wire x1="0.6" y1="0.9" x2="-0.6" y2="0.9" width="0.1016" layer="51"/>
+<wire x1="-0.45" y1="0.95" x2="-0.45" y2="1.1" width="0.1016" layer="51"/>
+<wire x1="-0.45" y1="1.1" x2="0.45" y2="1.1" width="0.1016" layer="51"/>
+<wire x1="0.45" y1="1.1" x2="0.45" y2="0.95" width="0.1016" layer="51"/>
+<wire x1="-0.6" y1="-0.7" x2="-0.4" y2="-0.9" width="0.1016" layer="51"/>
+<wire x1="-0.45" y1="-0.9" x2="-0.45" y2="-1.1" width="0.1016" layer="51"/>
+<wire x1="-0.45" y1="-1.1" x2="0.45" y2="-1.1" width="0.1016" layer="51"/>
+<wire x1="0.45" y1="-1.1" x2="0.45" y2="-0.95" width="0.1016" layer="51"/>
+<smd name="A" x="0" y="2.6" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<smd name="C" x="0" y="-2.6" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<text x="-0.635" y="1.905" size="1.27" layer="21">A</text>
+<text x="-0.635" y="-3.175" size="1.27" layer="21">C</text>
+<text x="-2.54" y="-1.905" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="3.81" y="-1.905" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.5" y1="0.6" x2="0.5" y2="1.4" layer="29"/>
+<rectangle x1="-0.5" y1="-1.4" x2="0.5" y2="-0.6" layer="29"/>
+<rectangle x1="-0.15" y1="-0.6" x2="0.15" y2="-0.3" layer="51"/>
+<rectangle x1="-0.45" y1="0.65" x2="0.45" y2="1.35" layer="31"/>
+<rectangle x1="-0.45" y1="-1.35" x2="0.45" y2="-0.65" layer="31"/>
+</package>
+<package name="OSRAM-SIDELED">
+<description>&lt;b&gt;Super SIDELED® High-Current LED&lt;/b&gt;&lt;p&gt;
+LG A672, LP A672 &lt;br&gt;
+Source: http://www.osram.convergy.de/ ... LG_LP_A672.pdf (2004.05.13)</description>
+<wire x1="-1.85" y1="-2.05" x2="-1.85" y2="-0.75" width="0.1016" layer="51"/>
+<wire x1="-1.85" y1="-0.75" x2="-1.7" y2="-0.75" width="0.1016" layer="51"/>
+<wire x1="-1.7" y1="-0.75" x2="-1.7" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="-1.7" y1="0.75" x2="-1.85" y2="0.75" width="0.1016" layer="51"/>
+<wire x1="-1.85" y1="0.75" x2="-1.85" y2="2.05" width="0.1016" layer="51"/>
+<wire x1="-1.85" y1="2.05" x2="0.9" y2="2.05" width="0.1016" layer="51"/>
+<wire x1="0.9" y1="2.05" x2="0.9" y2="-2.05" width="0.1016" layer="51"/>
+<wire x1="0.9" y1="-2.05" x2="-1.85" y2="-2.05" width="0.1016" layer="51"/>
+<wire x1="0.9" y1="-2.05" x2="1.05" y2="-2.05" width="0.1016" layer="51"/>
+<wire x1="1.05" y1="-2.05" x2="1.85" y2="-1.85" width="0.1016" layer="51"/>
+<wire x1="1.85" y1="-1.85" x2="1.85" y2="1.85" width="0.1016" layer="51"/>
+<wire x1="1.85" y1="1.85" x2="1.05" y2="2.05" width="0.1016" layer="51"/>
+<wire x1="1.05" y1="2.05" x2="0.9" y2="2.05" width="0.1016" layer="51"/>
+<wire x1="1.05" y1="2.05" x2="1.05" y2="-2.05" width="0.1016" layer="51"/>
+<wire x1="-0.55" y1="-0.9" x2="-0.55" y2="0.9" width="0.1016" layer="51" curve="-167.319617"/>
+<wire x1="-0.55" y1="-0.9" x2="0.85" y2="-1.2" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="-0.55" y1="0.9" x2="0.85" y2="1.2" width="0.1016" layer="51" style="shortdash"/>
+<smd name="C" x="0" y="-2.5" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<smd name="A" x="0" y="2.5" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<text x="0.635" y="-3.175" size="1.27" layer="21" rot="R90">C</text>
+<text x="0.635" y="2.54" size="1.27" layer="21" rot="R90">A</text>
+<text x="-2.54" y="-2.54" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="3.81" y="-2.54" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-2.1" y1="-2.2" x2="2.1" y2="-0.4" layer="29"/>
+<rectangle x1="-2.1" y1="0.4" x2="2.1" y2="2.2" layer="29"/>
+<rectangle x1="-1.9" y1="-2.1" x2="1.9" y2="-0.6" layer="31"/>
+<rectangle x1="-1.9" y1="0.6" x2="1.9" y2="2.1" layer="31"/>
+<rectangle x1="-1.85" y1="-2.05" x2="-0.7" y2="-1" layer="51"/>
+</package>
+<package name="SMART-LED">
+<description>&lt;b&gt;SmartLEDTM Hyper-Bright LED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LA_LO_LS_LY L896.pdf</description>
+<wire x1="-0.35" y1="0.6" x2="0.35" y2="0.6" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="0.35" y1="0.6" x2="0.35" y2="-0.6" width="0.1016" layer="21" style="shortdash"/>
+<wire x1="0.35" y1="-0.6" x2="0.15" y2="-0.6" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="0.15" y1="-0.6" x2="-0.35" y2="-0.6" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="-0.35" y1="-0.6" x2="-0.35" y2="0.6" width="0.1016" layer="21" style="shortdash"/>
+<wire x1="0.35" y1="-0.4" x2="0.15" y2="-0.6" width="0.1016" layer="51" style="shortdash"/>
+<smd name="A" x="0" y="0.725" dx="0.35" dy="0.35" layer="1"/>
+<smd name="B" x="0" y="-0.725" dx="0.35" dy="0.35" layer="1"/>
+<text x="-0.635" y="-0.635" size="1.016" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-0.635" size="1.016" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.15" y1="-0.35" x2="0.15" y2="-0.05" layer="21"/>
+<rectangle x1="-0.15" y1="0.6" x2="0.15" y2="0.85" layer="51"/>
+<rectangle x1="-0.15" y1="-0.85" x2="0.15" y2="-0.6" layer="51"/>
+</package>
+<package name="P-LCC-2-TOPLED-RG">
+<description>&lt;b&gt;Hyper TOPLED® RG Hyper-Bright LED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LA_LO_LS_LY T776.pdf</description>
+<wire x1="-1.4" y1="-1.05" x2="-1.4" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-1.4" y1="-1.6" x2="-1.1" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-1.1" y1="-1.6" x2="-0.85" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-0.85" y1="-1.6" x2="1.1" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="1.1" y1="-1.6" x2="1.4" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="1.4" y1="-1.6" x2="1.4" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="1.4" y1="1.6" x2="1.1" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="1.1" y1="1.6" x2="-1.1" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="-1.1" y1="1.6" x2="-1.4" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="-1.1" y1="1.6" x2="-1.1" y2="2.45" width="0.1016" layer="51"/>
+<wire x1="1.1" y1="2.45" x2="1.1" y2="1.6" width="0.1016" layer="51"/>
+<wire x1="-1.1" y1="-1.6" x2="-1.1" y2="-2.45" width="0.1016" layer="51"/>
+<wire x1="1.1" y1="-2.45" x2="1.1" y2="-1.6" width="0.1016" layer="51"/>
+<wire x1="-0.85" y1="-1.6" x2="-1.4" y2="-1.05" width="0.2032" layer="51"/>
+<wire x1="-1.4" y1="1.6" x2="-1.4" y2="-1.05" width="0.2032" layer="51"/>
+<circle x="0" y="0" radius="1.1" width="0.2032" layer="21"/>
+<smd name="C" x="0" y="-3.5" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<smd name="A" x="0" y="3.5" dx="4" dy="4" layer="1" stop="no" cream="no"/>
+<text x="-2.54" y="-1.905" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="3.81" y="-1.905" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<text x="-0.635" y="3.29" size="1.27" layer="21">A</text>
+<text x="-0.635" y="-4.56" size="1.27" layer="21">C</text>
+<rectangle x1="-1.3" y1="-3" x2="1.3" y2="-1.5" layer="31"/>
+<rectangle x1="-1.3" y1="1.5" x2="1.3" y2="3" layer="31"/>
+<rectangle x1="-0.25" y1="-0.25" x2="0.25" y2="0.25" layer="21"/>
+<rectangle x1="-1.15" y1="2.4" x2="1.15" y2="2.7" layer="51"/>
+<rectangle x1="-1.15" y1="-2.7" x2="1.15" y2="-2.4" layer="51"/>
+<rectangle x1="-1.5" y1="1.5" x2="1.5" y2="3.2" layer="29"/>
+<rectangle x1="-1.5" y1="-3.2" x2="1.5" y2="-1.5" layer="29"/>
+<hole x="0" y="0" drill="2.8"/>
+</package>
+<package name="MICRO-SIDELED">
+<description>&lt;b&gt;Hyper Micro SIDELED®&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LA_LO_LS_LY Y876.pdf</description>
+<wire x1="0.65" y1="1.1" x2="-0.1" y2="1.1" width="0.1016" layer="51"/>
+<wire x1="-0.1" y1="1.1" x2="-0.35" y2="1" width="0.1016" layer="51"/>
+<wire x1="-0.35" y1="1" x2="-0.35" y2="-0.9" width="0.1016" layer="21"/>
+<wire x1="-0.35" y1="-0.9" x2="-0.1" y2="-1.1" width="0.1016" layer="51"/>
+<wire x1="-0.1" y1="-1.1" x2="0.65" y2="-1.1" width="0.1016" layer="51"/>
+<wire x1="0.65" y1="-1.1" x2="0.65" y2="1.1" width="0.1016" layer="21"/>
+<wire x1="0.6" y1="0.9" x2="0.25" y2="0.7" width="0.0508" layer="21"/>
+<wire x1="0.25" y1="0.7" x2="0.25" y2="-0.7" width="0.0508" layer="21"/>
+<wire x1="0.25" y1="-0.7" x2="0.6" y2="-0.9" width="0.0508" layer="21"/>
+<smd name="A" x="0" y="1.95" dx="1.6" dy="1.6" layer="1" stop="no" cream="no"/>
+<smd name="C" x="0" y="-1.95" dx="1.6" dy="1.6" layer="1" stop="no" cream="no"/>
+<text x="-1.27" y="-1.905" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="2.54" y="-1.905" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.4" y1="1.1" x2="0.4" y2="1.8" layer="29"/>
+<rectangle x1="-0.4" y1="-1.8" x2="0.4" y2="-1.1" layer="29"/>
+<rectangle x1="-0.35" y1="-1.75" x2="0.35" y2="-1.15" layer="31"/>
+<rectangle x1="-0.35" y1="1.15" x2="0.35" y2="1.75" layer="31"/>
+<rectangle x1="-0.125" y1="1.125" x2="0.125" y2="1.75" layer="51"/>
+<rectangle x1="-0.125" y1="-1.75" x2="0.125" y2="-1.125" layer="51"/>
+</package>
+<package name="P-LCC-4">
+<description>&lt;b&gt;Power TOPLED®&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LA_LO_LA_LY E67B.pdf</description>
+<wire x1="-1.4" y1="-1.05" x2="-1.4" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-1.4" y1="-1.6" x2="-1" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-1" y1="-1.6" x2="-0.85" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="-0.85" y1="-1.6" x2="1" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="1" y1="-1.6" x2="1.4" y2="-1.6" width="0.2032" layer="51"/>
+<wire x1="1.4" y1="-1.6" x2="1.4" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="1.4" y1="1.6" x2="1.1" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="1.1" y1="1.6" x2="-1" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="-1" y1="1.6" x2="-1.4" y2="1.6" width="0.2032" layer="51"/>
+<wire x1="-1" y1="1.6" x2="-1" y2="1.8" width="0.1016" layer="51"/>
+<wire x1="-1" y1="1.8" x2="-0.5" y2="1.8" width="0.1016" layer="51"/>
+<wire x1="-0.5" y1="1.8" x2="-0.5" y2="1.65" width="0.1016" layer="51"/>
+<wire x1="0.5" y1="1.65" x2="0.5" y2="1.8" width="0.1016" layer="51"/>
+<wire x1="0.5" y1="1.8" x2="1.1" y2="1.8" width="0.1016" layer="51"/>
+<wire x1="1.1" y1="1.8" x2="1.1" y2="1.6" width="0.1016" layer="51"/>
+<wire x1="-1" y1="-1.6" x2="-1" y2="-1.8" width="0.1016" layer="51"/>
+<wire x1="-1" y1="-1.8" x2="-0.5" y2="-1.8" width="0.1016" layer="51"/>
+<wire x1="-0.5" y1="-1.8" x2="-0.5" y2="-1.65" width="0.1016" layer="51"/>
+<wire x1="0.5" y1="-1.65" x2="0.5" y2="-1.8" width="0.1016" layer="51"/>
+<wire x1="0.5" y1="-1.8" x2="1" y2="-1.8" width="0.1016" layer="51"/>
+<wire x1="1" y1="-1.8" x2="1" y2="-1.6" width="0.1016" layer="51"/>
+<wire x1="-0.85" y1="-1.6" x2="-1.4" y2="-1.05" width="0.2032" layer="51"/>
+<wire x1="-1.4" y1="1.6" x2="-1.4" y2="-1.05" width="0.2032" layer="51"/>
+<circle x="0" y="0" radius="1.1" width="0.2032" layer="51"/>
+<smd name="A" x="-2" y="3.15" dx="3.3" dy="4.8" layer="1" stop="no" cream="no"/>
+<smd name="C@3" x="2" y="3.15" dx="3.3" dy="4.8" layer="1" stop="no" cream="no"/>
+<smd name="C@4" x="2" y="-3.15" dx="3.3" dy="4.8" layer="1" stop="no" cream="no"/>
+<smd name="C@1" x="-2" y="-3.15" dx="3.3" dy="4.8" layer="1" stop="no" cream="no"/>
+<text x="-3.81" y="-2.54" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="5.08" y="-2.54" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<text x="-1.905" y="-3.81" size="1.27" layer="21">C</text>
+<text x="-1.905" y="2.54" size="1.27" layer="21">A</text>
+<text x="1.27" y="2.54" size="1.27" layer="21">C</text>
+<text x="1.27" y="-3.81" size="1.27" layer="21">C</text>
+<rectangle x1="-1.15" y1="0.75" x2="-0.35" y2="1.85" layer="29"/>
+<rectangle x1="0.35" y1="0.75" x2="1.15" y2="1.85" layer="29"/>
+<rectangle x1="0.35" y1="-1.85" x2="1.15" y2="-0.75" layer="29"/>
+<rectangle x1="-1.15" y1="-1.85" x2="-0.35" y2="-0.75" layer="29"/>
+<rectangle x1="-1.1" y1="-1.8" x2="-0.4" y2="-0.8" layer="31"/>
+<rectangle x1="0.4" y1="-1.8" x2="1.1" y2="-0.8" layer="31"/>
+<rectangle x1="0.4" y1="0.8" x2="1.1" y2="1.8" layer="31"/>
+<rectangle x1="-1.1" y1="0.8" x2="-0.4" y2="1.8" layer="31"/>
+<rectangle x1="-0.2" y1="-0.2" x2="0.2" y2="0.2" layer="21"/>
+</package>
+<package name="CHIP-LED0603">
+<description>&lt;b&gt;Hyper CHIPLED Hyper-Bright LED&lt;/b&gt;&lt;p&gt;
+LB Q993&lt;br&gt;
+Source: http://www.osram.convergy.de/ ... Lb_q993.pdf</description>
+<wire x1="-0.4" y1="0.45" x2="-0.4" y2="-0.45" width="0.1016" layer="51"/>
+<wire x1="0.4" y1="0.45" x2="0.4" y2="-0.45" width="0.1016" layer="51"/>
+<smd name="C" x="0" y="0.75" dx="0.8" dy="0.8" layer="1"/>
+<smd name="A" x="0" y="-0.75" dx="0.8" dy="0.8" layer="1"/>
+<text x="-0.635" y="-0.635" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-0.635" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.45" y1="0.45" x2="0.45" y2="0.85" layer="51"/>
+<rectangle x1="-0.45" y1="-0.85" x2="0.45" y2="-0.45" layer="51"/>
+<rectangle x1="-0.45" y1="0" x2="-0.3" y2="0.3" layer="21"/>
+<rectangle x1="0.3" y1="0" x2="0.45" y2="0.3" layer="21"/>
+<rectangle x1="-0.15" y1="0" x2="0.15" y2="0.3" layer="21"/>
+</package>
+<package name="CHIP-LED0805">
+<description>&lt;b&gt;Hyper CHIPLED Hyper-Bright LED&lt;/b&gt;&lt;p&gt;
+LB R99A&lt;br&gt;
+Source: http://www.osram.convergy.de/ ... lb_r99a.pdf</description>
+<wire x1="-0.625" y1="0.45" x2="-0.625" y2="-0.45" width="0.1016" layer="51"/>
+<wire x1="0.625" y1="0.45" x2="0.625" y2="-0.475" width="0.1016" layer="51"/>
+<smd name="C" x="0" y="1.05" dx="1.2" dy="1.2" layer="1"/>
+<smd name="A" x="0" y="-1.05" dx="1.2" dy="1.2" layer="1"/>
+<text x="-1.27" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="2.54" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.675" y1="0" x2="-0.525" y2="0.3" layer="21"/>
+<rectangle x1="0.525" y1="0" x2="0.675" y2="0.3" layer="21"/>
+<rectangle x1="-0.15" y1="0" x2="0.15" y2="0.3" layer="21"/>
+<rectangle x1="-0.675" y1="0.45" x2="0.675" y2="1.05" layer="51"/>
+<rectangle x1="-0.675" y1="-1.05" x2="0.675" y2="-0.45" layer="51"/>
+</package>
+<package name="MINI-TOPLED-SANTANA">
+<description>&lt;b&gt;Mini TOPLED Santana®&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LG M470.pdf</description>
+<wire x1="0.7" y1="-1" x2="0.35" y2="-1" width="0.1016" layer="21"/>
+<wire x1="0.35" y1="-1" x2="-0.7" y2="-1" width="0.1016" layer="21"/>
+<wire x1="-0.7" y1="-1" x2="-0.7" y2="1" width="0.1016" layer="21"/>
+<wire x1="-0.7" y1="1" x2="0.7" y2="1" width="0.1016" layer="21"/>
+<wire x1="0.7" y1="1" x2="0.7" y2="-0.65" width="0.1016" layer="21"/>
+<wire x1="0.7" y1="-0.65" x2="0.7" y2="-1" width="0.1016" layer="21"/>
+<wire x1="0.45" y1="-0.7" x2="-0.45" y2="-0.7" width="0.1016" layer="21"/>
+<wire x1="-0.45" y1="-0.7" x2="-0.45" y2="0.7" width="0.1016" layer="21"/>
+<wire x1="-0.45" y1="0.7" x2="0.45" y2="0.7" width="0.1016" layer="21"/>
+<wire x1="0.45" y1="0.7" x2="0.45" y2="-0.7" width="0.1016" layer="21"/>
+<wire x1="0.7" y1="-0.65" x2="0.35" y2="-1" width="0.1016" layer="21"/>
+<smd name="C" x="0" y="-2.2" dx="1.6" dy="1.6" layer="1" stop="no" cream="no"/>
+<smd name="A" x="0" y="2.2" dx="1.6" dy="1.6" layer="1" stop="no" cream="no"/>
+<text x="-1.27" y="-1.905" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="2.54" y="-1.905" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.55" y1="1.5" x2="0.55" y2="2.1" layer="29"/>
+<rectangle x1="-0.55" y1="-2.1" x2="0.55" y2="-1.5" layer="29"/>
+<rectangle x1="-0.5" y1="-2.05" x2="0.5" y2="-1.55" layer="31"/>
+<rectangle x1="-0.5" y1="1.55" x2="0.5" y2="2.05" layer="31"/>
+<rectangle x1="-0.2" y1="-0.4" x2="0.15" y2="-0.05" layer="21"/>
+<rectangle x1="-0.5" y1="-2.1" x2="0.5" y2="-1.4" layer="51"/>
+<rectangle x1="-0.5" y1="1.4" x2="0.5" y2="2.05" layer="51"/>
+<rectangle x1="-0.5" y1="1" x2="0.5" y2="1.4" layer="21"/>
+<rectangle x1="-0.5" y1="-1.4" x2="0.5" y2="-1.05" layer="21"/>
+<hole x="0" y="0" drill="2.7"/>
+</package>
+<package name="CHIPLED_0805">
+<description>&lt;b&gt;CHIPLED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LG_R971.pdf</description>
+<wire x1="-0.35" y1="0.925" x2="0.35" y2="0.925" width="0.1016" layer="51" curve="162.394521"/>
+<wire x1="-0.35" y1="-0.925" x2="0.35" y2="-0.925" width="0.1016" layer="51" curve="-162.394521"/>
+<wire x1="0.575" y1="0.525" x2="0.575" y2="-0.525" width="0.1016" layer="51"/>
+<wire x1="-0.575" y1="-0.5" x2="-0.575" y2="0.925" width="0.1016" layer="51"/>
+<circle x="-0.45" y="0.85" radius="0.103" width="0.1016" layer="51"/>
+<smd name="C" x="0" y="1.05" dx="1.2" dy="1.2" layer="1"/>
+<smd name="A" x="0" y="-1.05" dx="1.2" dy="1.2" layer="1"/>
+<text x="-1.27" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="2.54" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="0.3" y1="0.5" x2="0.625" y2="1" layer="51"/>
+<rectangle x1="-0.325" y1="0.5" x2="-0.175" y2="0.75" layer="51"/>
+<rectangle x1="0.175" y1="0.5" x2="0.325" y2="0.75" layer="51"/>
+<rectangle x1="-0.2" y1="0.5" x2="0.2" y2="0.675" layer="51"/>
+<rectangle x1="0.3" y1="-1" x2="0.625" y2="-0.5" layer="51"/>
+<rectangle x1="-0.625" y1="-1" x2="-0.3" y2="-0.5" layer="51"/>
+<rectangle x1="0.175" y1="-0.75" x2="0.325" y2="-0.5" layer="51"/>
+<rectangle x1="-0.325" y1="-0.75" x2="-0.175" y2="-0.5" layer="51"/>
+<rectangle x1="-0.2" y1="-0.675" x2="0.2" y2="-0.5" layer="51"/>
+<rectangle x1="-0.1" y1="0" x2="0.1" y2="0.2" layer="21"/>
+<rectangle x1="-0.6" y1="0.5" x2="-0.3" y2="0.8" layer="51"/>
+<rectangle x1="-0.625" y1="0.925" x2="-0.3" y2="1" layer="51"/>
+</package>
+<package name="CHIPLED_1206">
+<description>&lt;b&gt;CHIPLED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LG_LY N971.pdf</description>
+<wire x1="-0.4" y1="1.6" x2="0.4" y2="1.6" width="0.1016" layer="51" curve="172.619069"/>
+<wire x1="-0.8" y1="-0.95" x2="-0.8" y2="0.95" width="0.1016" layer="51"/>
+<wire x1="0.8" y1="0.95" x2="0.8" y2="-0.95" width="0.1016" layer="51"/>
+<circle x="-0.55" y="1.425" radius="0.1" width="0.1016" layer="51"/>
+<smd name="C" x="0" y="1.75" dx="1.5" dy="1.5" layer="1"/>
+<smd name="A" x="0" y="-1.75" dx="1.5" dy="1.5" layer="1"/>
+<text x="-1.27" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="2.54" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.85" y1="1.525" x2="-0.35" y2="1.65" layer="51"/>
+<rectangle x1="-0.85" y1="1.225" x2="-0.625" y2="1.55" layer="51"/>
+<rectangle x1="-0.45" y1="1.225" x2="-0.325" y2="1.45" layer="51"/>
+<rectangle x1="-0.65" y1="1.225" x2="-0.225" y2="1.35" layer="51"/>
+<rectangle x1="0.35" y1="1.3" x2="0.85" y2="1.65" layer="51"/>
+<rectangle x1="0.25" y1="1.225" x2="0.85" y2="1.35" layer="51"/>
+<rectangle x1="-0.85" y1="0.95" x2="0.85" y2="1.25" layer="51"/>
+<rectangle x1="-0.85" y1="-1.65" x2="0.85" y2="-0.95" layer="51"/>
+<rectangle x1="-0.85" y1="0.35" x2="-0.525" y2="0.775" layer="21"/>
+<rectangle x1="0.525" y1="0.35" x2="0.85" y2="0.775" layer="21"/>
+<rectangle x1="-0.175" y1="0" x2="0.175" y2="0.35" layer="21"/>
+</package>
+<package name="CHIPLED_0603">
+<description>&lt;b&gt;CHIPLED&lt;/b&gt;&lt;p&gt;
+Source: http://www.osram.convergy.de/ ... LG_LY Q971.pdf</description>
+<wire x1="-0.3" y1="0.8" x2="0.3" y2="0.8" width="0.1016" layer="51" curve="170.055574"/>
+<wire x1="-0.275" y1="-0.825" x2="0.275" y2="-0.825" width="0.0508" layer="51" curve="-180"/>
+<wire x1="-0.4" y1="0.375" x2="-0.4" y2="-0.35" width="0.1016" layer="51"/>
+<wire x1="0.4" y1="0.35" x2="0.4" y2="-0.35" width="0.1016" layer="51"/>
+<circle x="-0.35" y="0.625" radius="0.075" width="0.0508" layer="51"/>
+<smd name="C" x="0" y="0.75" dx="0.8" dy="0.8" layer="1"/>
+<smd name="A" x="0" y="-0.75" dx="0.8" dy="0.8" layer="1"/>
+<text x="-0.635" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.45" y1="0.7" x2="-0.25" y2="0.85" layer="51"/>
+<rectangle x1="-0.275" y1="0.55" x2="-0.225" y2="0.6" layer="51"/>
+<rectangle x1="-0.45" y1="0.35" x2="-0.4" y2="0.725" layer="51"/>
+<rectangle x1="0.25" y1="0.55" x2="0.45" y2="0.85" layer="51"/>
+<rectangle x1="-0.45" y1="0.35" x2="0.45" y2="0.575" layer="51"/>
+<rectangle x1="-0.45" y1="-0.85" x2="-0.25" y2="-0.35" layer="51"/>
+<rectangle x1="0.25" y1="-0.85" x2="0.45" y2="-0.35" layer="51"/>
+<rectangle x1="-0.275" y1="-0.575" x2="0.275" y2="-0.35" layer="51"/>
+<rectangle x1="-0.275" y1="-0.65" x2="-0.175" y2="-0.55" layer="51"/>
+<rectangle x1="0.175" y1="-0.65" x2="0.275" y2="-0.55" layer="51"/>
+<rectangle x1="-0.125" y1="0" x2="0.125" y2="0.25" layer="21"/>
+</package>
+<package name="CHIPLED-0603-TTW">
+<description>&lt;b&gt;CHIPLED-0603&lt;/b&gt;&lt;p&gt;
+Recommended Solder Pad useable for SmartLEDTM and Chipled - Package 0603&lt;br&gt;
+Package able to withstand TTW-soldering heat&lt;br&gt;
+Package suitable for TTW-soldering&lt;br&gt;
+Source: http://www.osram.convergy.de/ ... LO_LS_LY L89K.pdf</description>
+<wire x1="-0.3" y1="0.8" x2="0.3" y2="0.8" width="0.1016" layer="51" curve="170.055574"/>
+<wire x1="-0.275" y1="-0.825" x2="0.275" y2="-0.825" width="0.0508" layer="51" curve="-180"/>
+<wire x1="-0.4" y1="0.375" x2="-0.4" y2="-0.35" width="0.1016" layer="51"/>
+<wire x1="0.4" y1="0.35" x2="0.4" y2="-0.35" width="0.1016" layer="51"/>
+<circle x="-0.35" y="0.625" radius="0.075" width="0.0508" layer="51"/>
+<smd name="C" x="0" y="0.875" dx="0.8" dy="0.5" layer="1" stop="no" cream="no"/>
+<smd name="A" x="0" y="-0.875" dx="0.8" dy="0.5" layer="1" stop="no" cream="no"/>
+<smd name="A@1" x="0" y="-0.5" dx="0.35" dy="0.35" layer="1"/>
+<smd name="C@1" x="0" y="0.5" dx="0.35" dy="0.35" layer="1"/>
+<text x="-0.635" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.45" y1="0.7" x2="-0.25" y2="0.85" layer="51"/>
+<rectangle x1="-0.275" y1="0.55" x2="-0.225" y2="0.6" layer="51"/>
+<rectangle x1="-0.45" y1="0.35" x2="-0.4" y2="0.725" layer="51"/>
+<rectangle x1="0.25" y1="0.55" x2="0.45" y2="0.85" layer="51"/>
+<rectangle x1="-0.45" y1="0.35" x2="0.45" y2="0.575" layer="51"/>
+<rectangle x1="-0.45" y1="-0.85" x2="-0.25" y2="-0.35" layer="51"/>
+<rectangle x1="0.25" y1="-0.85" x2="0.45" y2="-0.35" layer="51"/>
+<rectangle x1="-0.275" y1="-0.575" x2="0.275" y2="-0.35" layer="51"/>
+<rectangle x1="-0.275" y1="-0.65" x2="-0.175" y2="-0.55" layer="51"/>
+<rectangle x1="0.175" y1="-0.65" x2="0.275" y2="-0.55" layer="51"/>
+<rectangle x1="-0.125" y1="0" x2="0.125" y2="0.25" layer="21"/>
+<rectangle x1="-0.175" y1="0.325" x2="0.175" y2="0.7" layer="29"/>
+<rectangle x1="-0.4" y1="0.625" x2="0.4" y2="1.125" layer="29"/>
+<rectangle x1="-0.4" y1="-1.125" x2="0.4" y2="-0.625" layer="29"/>
+<rectangle x1="-0.175" y1="-0.675" x2="0.175" y2="-0.325" layer="29"/>
+</package>
+<package name="SMARTLED-TTW">
+<description>&lt;b&gt;SmartLED TTW&lt;/b&gt;&lt;p&gt;
+Recommended Solder Pad useable for SmartLEDTM and Chipled - Package 0603&lt;br&gt;
+Package able to withstand TTW-soldering heat&lt;br&gt;
+Package suitable for TTW-soldering&lt;br&gt;
+Source: http://www.osram.convergy.de/ ... LO_LS_LY L89K.pdf</description>
+<wire x1="-0.35" y1="0.6" x2="0.35" y2="0.6" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="0.35" y1="0.6" x2="0.35" y2="-0.6" width="0.1016" layer="21" style="shortdash"/>
+<wire x1="0.35" y1="-0.6" x2="0.15" y2="-0.6" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="0.15" y1="-0.6" x2="-0.35" y2="-0.6" width="0.1016" layer="51" style="shortdash"/>
+<wire x1="-0.35" y1="-0.6" x2="-0.35" y2="0.6" width="0.1016" layer="21" style="shortdash"/>
+<wire x1="0.35" y1="-0.4" x2="0.15" y2="-0.6" width="0.1016" layer="51" style="shortdash"/>
+<smd name="C" x="0" y="0.875" dx="0.8" dy="0.5" layer="1" stop="no" cream="no"/>
+<smd name="A" x="0" y="-0.875" dx="0.8" dy="0.5" layer="1" stop="no" cream="no"/>
+<smd name="A@1" x="0" y="-0.5" dx="0.35" dy="0.35" layer="1" stop="no" cream="no"/>
+<smd name="C@1" x="0" y="0.5" dx="0.35" dy="0.35" layer="1" stop="no" cream="no"/>
+<text x="-0.635" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
+<text x="1.905" y="-1.27" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
+<rectangle x1="-0.175" y1="0.325" x2="0.175" y2="0.7" layer="29"/>
+<rectangle x1="-0.15" y1="-0.35" x2="0.15" y2="-0.05" layer="21"/>
+<rectangle x1="-0.15" y1="0.6" x2="0.15" y2="0.85" layer="51"/>
+<rectangle x1="-0.15" y1="-0.85" x2="0.15" y2="-0.6" layer="51"/>
+<rectangle x1="-0.225" y1="0.3" x2="0.225" y2="0.975" layer="31"/>
+<rectangle x1="-0.175" y1="-0.7" x2="0.175" y2="-0.325" layer="29" rot="R180"/>
+<rectangle x1="-0.225" y1="-0.975" x2="0.225" y2="-0.3" layer="31" rot="R180"/>
+</package>
+<package name="LUMILED+">
+<description>&lt;b&gt;Lumileds Lighting. LUXEON®&lt;/b&gt; with cool pad&lt;p&gt;
+Source: K2.pdf</description>
+<wire x1="-3.575" y1="2.3375" x2="-2.3375" y2="3.575" width="0.2032" layer="21"/>
+<wire x1="-2.3375" y1="3.575" x2="2.3375" y2="3.575" width="0.2032" layer="21"/>
+<wire x1="3.575" y1="2.3375" x2="3.575" y2="-3.575" width="0.2032" layer="21"/>
+<wire x1="3.575" y1="-3.575" x2="-2.3375" y2="-3.575" width="0.2032" layer="21"/>
+<wire x1="-2.3375" y1="-3.575" x2="-2.5" y2="-3.4125" width="0.2032" layer="21"/>
+<wire x1="-2.5" y1="-3.4125" x2="-3.4125" y2="-2.5" width="0.2032" layer="21" curve="167.429893"/>
+<wire x1="-3.4125" y1="-2.5" x2="-3.575" y2="-2.3375" width="0.2032" layer="21"/>
+<wire x1="-3.575" y1="-2.3375" x2="-3.575" y2="2.3375" width="0.2032" layer="21"/>
+<wire x1="2.3375" y1="3.575" x2="2.5" y2="3.4125" width="0.2032" layer="21"/>
+<wire x1="2.5" y1="3.4125" x2="3.4125" y2="2.5" width="0.2032" layer="21" curve="167.429893"/>
+<wire x1="3.4125" y1="2.5" x2="3.575" y2="2.3375" width="0.2032" layer="21"/>
+<wire x1="-1.725" y1="2.225" x2="-1.0625" y2="2.5625" width="0.2032" layer="21" curve="-255.44999"/>
+<wire x1="1.725" y1="-2.225" x2="1.0625" y2="-2.5625" width="0.2032" layer="21" curve="-255.44999"/>
+<circle x="0" y="0" radius="2.725" width="0.2032" layer="51"/>
+<smd name="1NC" x="-5.2" y="1.15" dx="2.9" dy="1.7" layer="1"/>
+<smd name="2+" x="-5.2" y="-1.15" dx="2.9" dy="1.7" layer="1"/>
+<smd name="3NC" x="5.2" y="-1.15" dx="2.9" dy="1.7" layer="1" rot="R180"/>
+<smd name="4-" x="5.2" y="1.15" dx="2.9" dy="1.7" layer="1" rot="R180"/>
+<text x="-3.175" y="3.81" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.175" y="-5.08" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-5.975" y1="0.575" x2="-3.625" y2="1.6" layer="51"/>
+<rectangle x1="-5.975" y1="-1.6" x2="-3.625" y2="-0.575" layer="51"/>
+<rectangle x1="3.625" y1="-1.6" x2="5.975" y2="-0.575" layer="51" rot="R180"/>
+<rectangle x1="3.625" y1="0.575" x2="5.975" y2="1.6" layer="51" rot="R180"/>
+<polygon width="0.4064" layer="1">
+<vertex x="2.3383" y="1.35"/>
+<vertex x="0" y="2.7"/>
+<vertex x="-2.3383" y="1.35"/>
+<vertex x="-2.3383" y="-1.35"/>
+<vertex x="0" y="-2.7"/>
+<vertex x="2.3383" y="-1.35"/>
+</polygon>
+<polygon width="0.4064" layer="29">
+<vertex x="2.3383" y="1.35"/>
+<vertex x="0" y="2.7"/>
+<vertex x="-2.3383" y="1.35"/>
+<vertex x="-2.3383" y="-1.35"/>
+<vertex x="0" y="-2.7"/>
+<vertex x="2.3383" y="-1.35"/>
+</polygon>
+<polygon width="0.4064" layer="31">
+<vertex x="2.3383" y="1.35"/>
+<vertex x="0" y="2.7"/>
+<vertex x="-2.3383" y="1.35"/>
+<vertex x="-2.3383" y="-1.35"/>
+<vertex x="0" y="-2.7"/>
+<vertex x="2.3383" y="-1.35"/>
+</polygon>
+</package>
+<package name="LUMILED">
+<description>&lt;b&gt;Lumileds Lighting. LUXEON®&lt;/b&gt; without cool pad&lt;p&gt;
+Source: K2.pdf</description>
+<wire x1="-3.575" y1="2.3375" x2="-2.3375" y2="3.575" width="0.2032" layer="21"/>
+<wire x1="-2.3375" y1="3.575" x2="2.3375" y2="3.575" width="0.2032" layer="21"/>
+<wire x1="3.575" y1="2.3375" x2="3.575" y2="-3.575" width="0.2032" layer="21"/>
+<wire x1="3.575" y1="-3.575" x2="-2.3375" y2="-3.575" width="0.2032" layer="21"/>
+<wire x1="-2.3375" y1="-3.575" x2="-2.5" y2="-3.4125" width="0.2032" layer="21"/>
+<wire x1="-2.5" y1="-3.4125" x2="-3.4125" y2="-2.5" width="0.2032" layer="21" curve="167.429893"/>
+<wire x1="-3.4125" y1="-2.5" x2="-3.575" y2="-2.3375" width="0.2032" layer="21"/>
+<wire x1="-3.575" y1="-2.3375" x2="-3.575" y2="2.3375" width="0.2032" layer="21"/>
+<wire x1="2.3375" y1="3.575" x2="2.5" y2="3.4125" width="0.2032" layer="21"/>
+<wire x1="2.5" y1="3.4125" x2="3.4125" y2="2.5" width="0.2032" layer="21" curve="167.429893"/>
+<wire x1="3.4125" y1="2.5" x2="3.575" y2="2.3375" width="0.2032" layer="21"/>
+<wire x1="-1.725" y1="2.225" x2="-1.0625" y2="2.5625" width="0.2032" layer="21" curve="-255.44999"/>
+<wire x1="1.725" y1="-2.225" x2="1.0625" y2="-2.5625" width="0.2032" layer="21" curve="-255.44999"/>
+<circle x="0" y="0" radius="2.725" width="0.2032" layer="51"/>
+<smd name="1NC" x="-5.2" y="1.15" dx="2.9" dy="1.7" layer="1"/>
+<smd name="2+" x="-5.2" y="-1.15" dx="2.9" dy="1.7" layer="1"/>
+<smd name="3NC" x="5.2" y="-1.15" dx="2.9" dy="1.7" layer="1" rot="R180"/>
+<smd name="4-" x="5.2" y="1.15" dx="2.9" dy="1.7" layer="1" rot="R180"/>
+<text x="-3.175" y="3.81" size="1.27" layer="25">&gt;NAME</text>
+<text x="-3.175" y="-5.08" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-5.975" y1="0.575" x2="-3.625" y2="1.6" layer="51"/>
+<rectangle x1="-5.975" y1="-1.6" x2="-3.625" y2="-0.575" layer="51"/>
+<rectangle x1="3.625" y1="-1.6" x2="5.975" y2="-0.575" layer="51" rot="R180"/>
+<rectangle x1="3.625" y1="0.575" x2="5.975" y2="1.6" layer="51" rot="R180"/>
+<polygon width="0.4064" layer="29">
+<vertex x="2.3383" y="1.35"/>
+<vertex x="0" y="2.7"/>
+<vertex x="-2.3383" y="1.35"/>
+<vertex x="-2.3383" y="-1.35"/>
+<vertex x="0" y="-2.7"/>
+<vertex x="2.3383" y="-1.35"/>
+</polygon>
+<polygon width="0.4064" layer="31">
+<vertex x="2.3383" y="1.35"/>
+<vertex x="0" y="2.7"/>
+<vertex x="-2.3383" y="1.35"/>
+<vertex x="-2.3383" y="-1.35"/>
+<vertex x="0" y="-2.7"/>
+<vertex x="2.3383" y="-1.35"/>
+</polygon>
+</package>
+<package name="LED10MM">
+<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;
+10 mm, round</description>
+<wire x1="5.08" y1="-2.54" x2="5.08" y2="2.54" width="0.254" layer="21" curve="-306.869898"/>
+<wire x1="4.445" y1="0" x2="0" y2="-4.445" width="0.127" layer="21" curve="-90"/>
+<wire x1="3.81" y1="0" x2="0" y2="-3.81" width="0.127" layer="21" curve="-90"/>
+<wire x1="3.175" y1="0" x2="0" y2="-3.175" width="0.127" layer="21" curve="-90"/>
+<wire x1="2.54" y1="0" x2="0" y2="-2.54" width="0.127" layer="21" curve="-90"/>
+<wire x1="-4.445" y1="0" x2="0" y2="4.445" width="0.127" layer="21" curve="-90"/>
+<wire x1="-3.81" y1="0" x2="0" y2="3.81" width="0.127" layer="21" curve="-90"/>
+<wire x1="-3.175" y1="0" x2="0" y2="3.175" width="0.127" layer="21" curve="-90"/>
+<wire x1="-2.54" y1="0" x2="0" y2="2.54" width="0.127" layer="21" curve="-90"/>
+<wire x1="5.08" y1="2.54" x2="5.08" y2="-2.54" width="0.254" layer="21"/>
+<circle x="0" y="0" radius="5.08" width="0.127" layer="21"/>
+<pad name="K" x="1.27" y="0" drill="0.8128" diameter="1.6764" shape="square"/>
+<pad name="A" x="-1.27" y="0" drill="0.8128" diameter="1.6764" shape="octagon"/>
+<text x="6.35" y="1.27" size="1.27" layer="25">&gt;NAME</text>
+<text x="6.35" y="-1.27" size="1.27" layer="27">&gt;VALUE</text>
+</package>
+<package name="KA-3528ASYC">
+<description>&lt;b&gt;SURFACE MOUNT LED LAMP&lt;/b&gt; 3.5x2.8mm&lt;p&gt;
+Source: http://www.kingbright.com/manager/upload/pdf/KA-3528ASYC(Ver1189474662.1)</description>
+<wire x1="-1.55" y1="1.35" x2="1.55" y2="1.35" width="0.1016" layer="21"/>
+<wire x1="1.55" y1="1.35" x2="1.55" y2="-1.35" width="0.1016" layer="51"/>
+<wire x1="1.55" y1="-1.35" x2="-1.55" y2="-1.35" width="0.1016" layer="21"/>
+<wire x1="-1.55" y1="-1.35" x2="-1.55" y2="1.35" width="0.1016" layer="51"/>
+<wire x1="-0.65" y1="0.95" x2="0.65" y2="0.95" width="0.1016" layer="21" curve="-68.40813"/>
+<wire x1="0.65" y1="-0.95" x2="-0.65" y2="-0.95" width="0.1016" layer="21" curve="-68.40813"/>
+<circle x="0" y="0" radius="1.15" width="0.1016" layer="51"/>
+<smd name="A" x="-1.55" y="0" dx="1.5" dy="2.2" layer="1"/>
+<smd name="C" x="1.55" y="0" dx="1.5" dy="2.2" layer="1"/>
+<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
+<text x="-1.905" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="-1.75" y1="0.6" x2="-1.6" y2="1.1" layer="51"/>
+<rectangle x1="-1.75" y1="-1.1" x2="-1.6" y2="-0.6" layer="51"/>
+<rectangle x1="1.6" y1="-1.1" x2="1.75" y2="-0.6" layer="51" rot="R180"/>
+<rectangle x1="1.6" y1="0.6" x2="1.75" y2="1.1" layer="51" rot="R180"/>
+<polygon width="0.1016" layer="51">
+<vertex x="1.55" y="-1.35"/>
+<vertex x="1.55" y="-0.625"/>
+<vertex x="0.825" y="-1.35"/>
+</polygon>
+<polygon width="0.1016" layer="21">
+<vertex x="1.55" y="-1.35"/>
+<vertex x="1.55" y="-1.175"/>
+<vertex x="1" y="-1.175"/>
+<vertex x="0.825" y="-1.35"/>
+</polygon>
+</package>
+</packages>
+<symbols>
+<symbol name="LED">
+<wire x1="1.27" y1="0" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.54" x2="-1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="1.27" y1="-2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="0" y1="-2.54" x2="-1.27" y2="-2.54" width="0.254" layer="94"/>
+<wire x1="1.27" y1="0" x2="0" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="-1.27" y2="0" width="0.254" layer="94"/>
+<wire x1="0" y1="0" x2="0" y2="-2.54" width="0.1524" layer="94"/>
+<wire x1="-2.032" y1="-0.762" x2="-3.429" y2="-2.159" width="0.1524" layer="94"/>
+<wire x1="-1.905" y1="-1.905" x2="-3.302" y2="-3.302" width="0.1524" layer="94"/>
+<text x="3.556" y="-4.572" size="1.778" layer="95" rot="R90">&gt;NAME</text>
+<text x="5.715" y="-4.572" size="1.778" layer="96" rot="R90">&gt;VALUE</text>
+<pin name="C" x="0" y="-5.08" visible="off" length="short" direction="pas" rot="R90"/>
+<pin name="A" x="0" y="2.54" visible="off" length="short" direction="pas" rot="R270"/>
+<polygon width="0.1524" layer="94">
+<vertex x="-3.429" y="-2.159"/>
+<vertex x="-3.048" y="-1.27"/>
+<vertex x="-2.54" y="-1.778"/>
+</polygon>
+<polygon width="0.1524" layer="94">
+<vertex x="-3.302" y="-3.302"/>
+<vertex x="-2.921" y="-2.413"/>
+<vertex x="-2.413" y="-2.921"/>
+</polygon>
+</symbol>
+</symbols>
+<devicesets>
+<deviceset name="LED" prefix="LED" uservalue="yes">
+<description>&lt;b&gt;LED&lt;/b&gt;&lt;p&gt;
+&lt;u&gt;OSRAM&lt;/u&gt;:&lt;br&gt;
+
+- &lt;u&gt;CHIPLED&lt;/u&gt;&lt;br&gt;
+LG R971, LG N971, LY N971, LG Q971, LY Q971, LO R971, LY R971
+LH N974, LH R974&lt;br&gt;
+LS Q976, LO Q976, LY Q976&lt;br&gt;
+LO Q996&lt;br&gt;
+
+- &lt;u&gt;Hyper CHIPLED&lt;/u&gt;&lt;br&gt;
+LW Q18S&lt;br&gt;
+LB Q993, LB Q99A, LB R99A&lt;br&gt;
+
+- &lt;u&gt;SideLED&lt;/u&gt;&lt;br&gt;
+LS A670, LO A670, LY A670, LG A670, LP A670&lt;br&gt;
+LB A673, LV A673, LT A673, LW A673&lt;br&gt;
+LH A674&lt;br&gt;
+LY A675&lt;br&gt;
+LS A676, LA A676, LO A676, LY A676, LW A676&lt;br&gt;
+LS A679, LY A679, LG A679&lt;br&gt;
+
+-  &lt;u&gt;Hyper Micro SIDELED®&lt;/u&gt;&lt;br&gt;
+LS Y876, LA Y876, LO Y876, LY Y876&lt;br&gt;
+LT Y87S&lt;br&gt;
+
+- &lt;u&gt;SmartLED&lt;/u&gt;&lt;br&gt;
+LW L88C, LW L88S&lt;br&gt;
+LB L89C, LB L89S, LG L890&lt;br&gt;
+LS L89K, LO L89K, LY L89K&lt;br&gt;
+LS L896, LA L896, LO L896, LY L896&lt;br&gt;
+
+- &lt;u&gt;TOPLED&lt;/u&gt;&lt;br&gt;
+LS T670, LO T670, LY T670, LG T670, LP T670&lt;br&gt;
+LSG T670, LSP T670, LSY T670, LOP T670, LYG T670&lt;br&gt;
+LG T671, LOG T671, LSG T671&lt;br&gt;
+LB T673, LV T673, LT T673, LW T673&lt;br&gt;
+LH T674&lt;br&gt;
+LS T676, LA T676, LO T676, LY T676, LB T676, LH T676, LSB T676, LW T676&lt;br&gt;
+LB T67C, LV T67C, LT T67C, LS T67K, LO T67K, LY T67K, LW E67C&lt;br&gt;
+LS E67B, LA E67B, LO E67B, LY E67B, LB E67C, LV E67C, LT E67C&lt;br&gt;
+LW T67C&lt;br&gt;
+LS T679, LY T679, LG T679&lt;br&gt;
+LS T770, LO T770, LY T770, LG T770, LP T770&lt;br&gt;
+LB T773, LV T773, LT T773, LW T773&lt;br&gt;
+LH T774&lt;br&gt;
+LS E675, LA E675, LY E675, LS T675&lt;br&gt;
+LS T776, LA T776, LO T776, LY T776, LB T776&lt;br&gt;
+LHGB T686&lt;br&gt;
+LT T68C, LB T68C&lt;br&gt;
+
+- &lt;u&gt;Hyper Mini TOPLED®&lt;/u&gt;&lt;br&gt;
+LB M676&lt;br&gt;
+
+- &lt;u&gt;Mini TOPLED Santana®&lt;/u&gt;&lt;br&gt;
+LG M470&lt;br&gt;
+LS M47K, LO M47K, LY M47K
+&lt;p&gt;
+Source: http://www.osram.convergy.de&lt;p&gt;
+
+&lt;u&gt;LUXEON:&lt;/u&gt;&lt;br&gt;
+- &lt;u&gt;LUMILED®&lt;/u&gt;&lt;br&gt;
+LXK2-PW12-R00, LXK2-PW12-S00, LXK2-PW14-U00, LXK2-PW14-V00&lt;br&gt;
+LXK2-PM12-R00, LXK2-PM12-S00, LXK2-PM14-U00&lt;br&gt;
+LXK2-PE12-Q00, LXK2-PE12-R00, LXK2-PE12-S00, LXK2-PE14-T00, LXK2-PE14-U00&lt;br&gt;
+LXK2-PB12-K00, LXK2-PB12-L00, LXK2-PB12-M00, LXK2-PB14-N00, LXK2-PB14-P00, LXK2-PB14-Q00&lt;br&gt;
+LXK2-PR12-L00, LXK2-PR12-M00, LXK2-PR14-Q00, LXK2-PR14-R00&lt;br&gt;
+LXK2-PD12-Q00, LXK2-PD12-R00, LXK2-PD12-S00&lt;br&gt;
+LXK2-PH12-R00, LXK2-PH12-S00&lt;br&gt;
+LXK2-PL12-P00, LXK2-PL12-Q00, LXK2-PL12-R00
+&lt;p&gt;
+Source: www.luxeon.com&lt;p&gt;
+
+&lt;u&gt;KINGBRIGHT:&lt;/U&gt;&lt;p&gt;
+KA-3528ASYC&lt;br&gt;
+Source: www.kingbright.com</description>
+<gates>
+<gate name="G$1" symbol="LED" x="0" y="0"/>
+</gates>
+<devices>
+<device name="SMT1206" package="1206">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LD260" package="LD260">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SQR2X5" package="LED2X5">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="3MM" package="LED3MM">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="5MM" package="LED5MM">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LSU260" package="LSU260">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LZR181" package="LZR181">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="B152" package="Q62902-B152">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="B153" package="Q62902-B153">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="B155" package="Q62902-B155">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="B156" package="Q62902-B156">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SFH480" package="SFH480">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SFH482" package="SFH482">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SQR5.7X3.2" package="U57X32">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="IRL80A" package="IRL80A">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="P-LCC-2" package="P-LCC-2">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MINI-TOP" package="OSRAM-MINI-TOP-LED">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SIDELED" package="OSRAM-SIDELED">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SMART-LED" package="SMART-LED">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="B"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="P-LCC-2-BACK" package="P-LCC-2-TOPLED-RG">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="MICRO-SIDELED" package="MICRO-SIDELED">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="P-LCC-4" package="P-LCC-4">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C@4"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CHIP-LED0603" package="CHIP-LED0603">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CHIP-LED0805" package="CHIP-LED0805">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="TOPLED-SANTANA" package="MINI-TOPLED-SANTANA">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CHIPLED_0805" package="CHIPLED_0805">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CHIPLED_1206" package="CHIPLED_1206">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CHIPLED_0603" package="CHIPLED_0603">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="CHIPLED-0603-TTW" package="CHIPLED-0603-TTW">
+<connects>
+<connect gate="G$1" pin="A" pad="A@1"/>
+<connect gate="G$1" pin="C" pad="C@1"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="" package="SMARTLED-TTW">
+<connects>
+<connect gate="G$1" pin="A" pad="A@1"/>
+<connect gate="G$1" pin="C" pad="C@1"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="-LUMILED+" package="LUMILED+">
+<connects>
+<connect gate="G$1" pin="A" pad="2+"/>
+<connect gate="G$1" pin="C" pad="4-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="-LUMILED" package="LUMILED">
+<connects>
+<connect gate="G$1" pin="A" pad="2+"/>
+<connect gate="G$1" pin="C" pad="4-"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="10MM" package="LED10MM">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="K"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="KA-3528ASYC" package="KA-3528ASYC">
+<connects>
+<connect gate="G$1" pin="A" pad="A"/>
+<connect gate="G$1" pin="C" pad="C"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+</devicesets>
+</library>
+<library name="SparkFun-Connectors">
+<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;
+In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.&lt;br&gt;&lt;br&gt;
+We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.
+&lt;br&gt;&lt;br&gt;
+&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
+<packages>
+<package name="1X03">
+<wire x1="3.81" y1="0.635" x2="4.445" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="4.445" y1="1.27" x2="5.715" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="5.715" y1="1.27" x2="6.35" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-0.635" x2="5.715" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="5.715" y1="-1.27" x2="4.445" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="4.445" y1="-1.27" x2="3.81" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-0.635" y1="1.27" x2="0.635" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="0.635" y1="1.27" x2="1.27" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="-0.635" x2="0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="0.635" x2="1.905" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="1.905" y1="1.27" x2="3.175" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="3.175" y1="1.27" x2="3.81" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="3.81" y1="-0.635" x2="3.175" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="3.175" y1="-1.27" x2="1.905" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="1.905" y1="-1.27" x2="1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="0.635" x2="-1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-0.635" y1="1.27" x2="-1.27" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-0.635" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="0.635" y1="-1.27" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="0.635" x2="6.35" y2="-0.635" width="0.2032" layer="21"/>
+<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="2" x="2.54" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="3" x="5.08" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<text x="-1.3462" y="1.8288" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
+<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
+<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
+</package>
+<package name="MOLEX-1X3">
+<wire x1="-1.27" y1="3.048" x2="-1.27" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="6.35" y1="3.048" x2="6.35" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="6.35" y1="3.048" x2="-1.27" y2="3.048" width="0.127" layer="21"/>
+<wire x1="6.35" y1="-2.54" x2="5.08" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="5.08" y1="-2.54" x2="0" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="0" y1="-2.54" x2="-1.27" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="0" y1="-2.54" x2="0" y2="-1.27" width="0.127" layer="21"/>
+<wire x1="0" y1="-1.27" x2="5.08" y2="-1.27" width="0.127" layer="21"/>
+<wire x1="5.08" y1="-1.27" x2="5.08" y2="-2.54" width="0.127" layer="21"/>
+<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796" shape="square"/>
+<pad name="2" x="2.54" y="0" drill="1.016" diameter="1.8796"/>
+<pad name="3" x="5.08" y="0" drill="1.016" diameter="1.8796"/>
+</package>
+<package name="SCREWTERMINAL-3.5MM-3">
+<wire x1="-2.3" y1="3.4" x2="9.3" y2="3.4" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="3.4" x2="9.3" y2="-2.8" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="-2.8" x2="9.3" y2="-3.6" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="-3.6" x2="-2.3" y2="-3.6" width="0.2032" layer="21"/>
+<wire x1="-2.3" y1="-3.6" x2="-2.3" y2="-2.8" width="0.2032" layer="21"/>
+<wire x1="-2.3" y1="-2.8" x2="-2.3" y2="3.4" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="-2.8" x2="-2.3" y2="-2.8" width="0.2032" layer="21"/>
+<wire x1="-2.3" y1="-1.35" x2="-2.7" y2="-1.35" width="0.2032" layer="51"/>
+<wire x1="-2.7" y1="-1.35" x2="-2.7" y2="-2.35" width="0.2032" layer="51"/>
+<wire x1="-2.7" y1="-2.35" x2="-2.3" y2="-2.35" width="0.2032" layer="51"/>
+<wire x1="9.3" y1="3.15" x2="9.7" y2="3.15" width="0.2032" layer="51"/>
+<wire x1="9.7" y1="3.15" x2="9.7" y2="2.15" width="0.2032" layer="51"/>
+<wire x1="9.7" y1="2.15" x2="9.3" y2="2.15" width="0.2032" layer="51"/>
+<pad name="1" x="0" y="0" drill="1.2" diameter="2.413" shape="square"/>
+<pad name="2" x="3.5" y="0" drill="1.2" diameter="2.413"/>
+<pad name="3" x="7" y="0" drill="1.2" diameter="2.413"/>
+<text x="-1.27" y="2.54" size="0.4064" layer="25">&gt;NAME</text>
+<text x="-1.27" y="1.27" size="0.4064" layer="27">&gt;VALUE</text>
+</package>
+<package name="1X03_LOCK">
+<wire x1="3.81" y1="0.635" x2="4.445" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="4.445" y1="1.27" x2="5.715" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="5.715" y1="1.27" x2="6.35" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-0.635" x2="5.715" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="5.715" y1="-1.27" x2="4.445" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="4.445" y1="-1.27" x2="3.81" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-0.635" y1="1.27" x2="0.635" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="0.635" y1="1.27" x2="1.27" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="-0.635" x2="0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="1.27" y1="0.635" x2="1.905" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="1.905" y1="1.27" x2="3.175" y2="1.27" width="0.2032" layer="21"/>
+<wire x1="3.175" y1="1.27" x2="3.81" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="3.81" y1="-0.635" x2="3.175" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="3.175" y1="-1.27" x2="1.905" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="1.905" y1="-1.27" x2="1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="0.635" x2="-1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="-0.635" y1="1.27" x2="-1.27" y2="0.635" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-0.635" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="0.635" y1="-1.27" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="0.635" x2="6.35" y2="-0.635" width="0.2032" layer="21"/>
+<pad name="1" x="0" y="0.127" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="2" x="2.54" y="-0.127" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="3" x="5.08" y="0.127" drill="1.016" diameter="1.8796" rot="R90"/>
+<text x="-1.3462" y="1.8288" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
+<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
+<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
+</package>
+<package name="1X03_LOCK_LONGPADS">
+<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  
+You may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  
+This slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a "brace" 
+to hold the component in place.  0.005 has proven to be the perfect amount of "off-center" position when using our standard breakaway headers.
+Although looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,
+if you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment 
+will be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>
+<wire x1="1.524" y1="-0.127" x2="1.016" y2="-0.127" width="0.2032" layer="21"/>
+<wire x1="4.064" y1="-0.127" x2="3.556" y2="-0.127" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-0.127" x2="-1.016" y2="-0.127" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-0.127" x2="-1.27" y2="0.8636" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="0.8636" x2="-0.9906" y2="1.143" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-0.127" x2="-1.27" y2="-1.1176" width="0.2032" layer="21"/>
+<wire x1="-1.27" y1="-1.1176" x2="-0.9906" y2="-1.397" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-0.127" x2="6.096" y2="-0.127" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-0.127" x2="6.35" y2="-1.1176" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-1.1176" x2="6.0706" y2="-1.397" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="-0.127" x2="6.35" y2="0.8636" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="0.8636" x2="6.0706" y2="1.143" width="0.2032" layer="21"/>
+<pad name="1" x="0" y="0" drill="1.016" shape="long" rot="R90"/>
+<pad name="2" x="2.54" y="-0.254" drill="1.016" shape="long" rot="R90"/>
+<pad name="3" x="5.08" y="0" drill="1.016" shape="long" rot="R90"/>
+<text x="-1.27" y="1.778" size="1.27" layer="25" font="vector">&gt;NAME</text>
+<text x="-1.27" y="-3.302" size="1.27" layer="27" font="vector">&gt;VALUE</text>
+<rectangle x1="-0.2921" y1="-0.4191" x2="0.2921" y2="0.1651" layer="51"/>
+<rectangle x1="2.2479" y1="-0.4191" x2="2.8321" y2="0.1651" layer="51"/>
+<rectangle x1="4.7879" y1="-0.4191" x2="5.3721" y2="0.1651" layer="51"/>
+</package>
+<package name="MOLEX-1X3_LOCK">
+<wire x1="-1.27" y1="3.048" x2="-1.27" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="6.35" y1="3.048" x2="6.35" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="6.35" y1="3.048" x2="-1.27" y2="3.048" width="0.127" layer="21"/>
+<wire x1="6.35" y1="-2.54" x2="5.08" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="5.08" y1="-2.54" x2="0" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="0" y1="-2.54" x2="-1.27" y2="-2.54" width="0.127" layer="21"/>
+<wire x1="0" y1="-2.54" x2="0" y2="-1.27" width="0.127" layer="21"/>
+<wire x1="0" y1="-1.27" x2="5.08" y2="-1.27" width="0.127" layer="21"/>
+<wire x1="5.08" y1="-1.27" x2="5.08" y2="-2.54" width="0.127" layer="21"/>
+<pad name="1" x="0" y="0.127" drill="1.016" diameter="1.8796" shape="square"/>
+<pad name="2" x="2.54" y="-0.127" drill="1.016" diameter="1.8796"/>
+<pad name="3" x="5.08" y="0.127" drill="1.016" diameter="1.8796"/>
+<rectangle x1="-0.2921" y1="-0.2921" x2="0.2921" y2="0.2921" layer="51"/>
+<rectangle x1="2.2479" y1="-0.2921" x2="2.8321" y2="0.2921" layer="51"/>
+<rectangle x1="4.7879" y1="-0.2921" x2="5.3721" y2="0.2921" layer="51"/>
+</package>
+<package name="SCREWTERMINAL-3.5MM-3_LOCK.007S">
+<wire x1="-2.3" y1="3.4" x2="9.3" y2="3.4" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="3.4" x2="9.3" y2="-2.8" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="-2.8" x2="9.3" y2="-3.6" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="-3.6" x2="-2.3" y2="-3.6" width="0.2032" layer="21"/>
+<wire x1="-2.3" y1="-3.6" x2="-2.3" y2="-2.8" width="0.2032" layer="21"/>
+<wire x1="-2.3" y1="-2.8" x2="-2.3" y2="3.4" width="0.2032" layer="21"/>
+<wire x1="9.3" y1="-2.8" x2="-2.3" y2="-2.8" width="0.2032" layer="21"/>
+<wire x1="-2.3" y1="-1.35" x2="-2.7" y2="-1.35" width="0.2032" layer="51"/>
+<wire x1="-2.7" y1="-1.35" x2="-2.7" y2="-2.35" width="0.2032" layer="51"/>
+<wire x1="-2.7" y1="-2.35" x2="-2.3" y2="-2.35" width="0.2032" layer="51"/>
+<wire x1="9.3" y1="3.15" x2="9.7" y2="3.15" width="0.2032" layer="51"/>
+<wire x1="9.7" y1="3.15" x2="9.7" y2="2.15" width="0.2032" layer="51"/>
+<wire x1="9.7" y1="2.15" x2="9.3" y2="2.15" width="0.2032" layer="51"/>
+<circle x="0" y="0" radius="0.425" width="0.001" layer="51"/>
+<circle x="3.5" y="0" radius="0.425" width="0.001" layer="51"/>
+<circle x="7" y="0" radius="0.425" width="0.001" layer="51"/>
+<pad name="1" x="-0.1778" y="0" drill="1.2" diameter="2.032" shape="square"/>
+<pad name="2" x="3.5" y="0" drill="1.2" diameter="2.032"/>
+<pad name="3" x="7.1778" y="0" drill="1.2" diameter="2.032"/>
+<text x="-1.27" y="2.54" size="0.4064" layer="25">&gt;NAME</text>
+<text x="-1.27" y="1.27" size="0.4064" layer="27">&gt;VALUE</text>
+</package>
+<package name="1X03_NO_SILK">
+<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="2" x="2.54" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="3" x="5.08" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
+<text x="-1.3462" y="1.8288" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
+<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
+<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
+</package>
+<package name="1X03_LONGPADS">
+<wire x1="-1.27" y1="0.635" x2="-1.27" y2="-0.635" width="0.2032" layer="21"/>
+<wire x1="6.35" y1="0.635" x2="6.35" y2="-0.635" width="0.2032" layer="21"/>
+<pad name="1" x="0" y="0" drill="1.1176" diameter="1.8796" shape="long" rot="R90"/>
+<pad name="2" x="2.54" y="0" drill="1.1176" diameter="1.8796" shape="long" rot="R90"/>
+<pad name="3" x="5.08" y="0" drill="1.1176" diameter="1.8796" shape="long" rot="R90"/>
+<text x="-1.3462" y="2.4638" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-3.81" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
+<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
+<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
+</package>
+<package name="JST-3-PTH">
+<wire x1="-4" y1="-6.3" x2="-4" y2="1.5" width="0.2032" layer="21"/>
+<wire x1="-4" y1="1.5" x2="4" y2="1.5" width="0.2032" layer="21"/>
+<wire x1="4" y1="1.5" x2="4" y2="-6.3" width="0.2032" layer="21"/>
+<wire x1="-4" y1="-6.3" x2="-3.3" y2="-6.3" width="0.2032" layer="21"/>
+<wire x1="4" y1="-6.3" x2="3.3" y2="-6.3" width="0.2032" layer="21"/>
+<wire x1="-3.3" y1="-6.3" x2="-3.3" y2="-5" width="0.2032" layer="21"/>
+<wire x1="3.3" y1="-6.3" x2="3.3" y2="-5" width="0.2032" layer="21"/>
+<pad name="1" x="-2" y="-5" drill="0.7" diameter="1.6256"/>
+<pad name="2" x="0" y="-5" drill="0.7" diameter="1.6256"/>
+<pad name="3" x="2" y="-5" drill="0.7" diameter="1.6256"/>
+<text x="-1.27" y="0.24" size="0.4064" layer="25">&gt;Name</text>
+<text x="-1.27" y="-1.03" size="0.4064" layer="27">&gt;Value</text>
+<text x="-2.4" y="-4.33" size="1.27" layer="51">+</text>
+<text x="-0.4" y="-4.33" size="1.27" layer="51">-</text>
+<text x="1.7" y="-4.13" size="0.8" layer="51">S</text>
+</package>
+<package name="1X03_PP_HOLES_ONLY">
+<circle x="0" y="0" radius="0.635" width="0.127" layer="51"/>
+<circle x="2.54" y="0" radius="0.635" width="0.127" layer="51"/>
+<circle x="5.08" y="0" radius="0.635" width="0.127" layer="51"/>
+<pad name="1" x="0" y="0" drill="0.9" diameter="0.8128" rot="R90"/>
+<pad name="2" x="2.54" y="0" drill="0.9" diameter="0.8128" rot="R90"/>
+<pad name="3" x="5.08" y="0" drill="0.9" diameter="0.8128" rot="R90"/>
+<hole x="0" y="0" drill="1.4732"/>
+<hole x="2.54" y="0" drill="1.4732"/>
+<hole x="5.08" y="0" drill="1.4732"/>
+</package>
+<package name="SCREWTERMINAL-5MM-3">
+<wire x1="-3.1" y1="4.2" x2="13.1" y2="4.2" width="0.2032" layer="21"/>
+<wire x1="13.1" y1="4.2" x2="13.1" y2="-2.3" width="0.2032" layer="21"/>
+<wire x1="13.1" y1="-2.3" x2="13.1" y2="-3.3" width="0.2032" layer="21"/>
+<wire x1="13.1" y1="-3.3" x2="-3.1" y2="-3.3" width="0.2032" layer="21"/>
+<wire x1="-3.1" y1="-3.3" x2="-3.1" y2="-2.3" width="0.2032" layer="21"/>
+<wire x1="-3.1" y1="-2.3" x2="-3.1" y2="4.2" width="0.2032" layer="21"/>
+<wire x1="13.1" y1="-2.3" x2="-3.1" y2="-2.3" width="0.2032" layer="21"/>
+<wire x1="-3.1" y1="-1.35" x2="-3.7" y2="-1.35" width="0.2032" layer="51"/>
+<wire x1="-3.7" y1="-1.35" x2="-3.7" y2="-2.35" width="0.2032" layer="51"/>
+<wire x1="-3.7" y1="-2.35" x2="-3.1" y2="-2.35" width="0.2032" layer="51"/>
+<wire x1="13.1" y1="4" x2="13.7" y2="4" width="0.2032" layer="51"/>
+<wire x1="13.7" y1="4" x2="13.7" y2="3" width="0.2032" layer="51"/>
+<wire x1="13.7" y1="3" x2="13.1" y2="3" width="0.2032" layer="51"/>
+<circle x="2.5" y="3.7" radius="0.2828" width="0.127" layer="51"/>
+<pad name="1" x="0" y="0" drill="1.3" diameter="2.413" shape="square"/>
+<pad name="2" x="5" y="0" drill="1.3" diameter="2.413"/>
+<pad name="3" x="10" y="0" drill="1.3" diameter="2.413"/>
+<text x="-1.27" y="2.54" size="0.4064" layer="25">&gt;NAME</text>
+<text x="-1.27" y="1.27" size="0.4064" layer="27">&gt;VALUE</text>
+</package>
+<package name="1X03_LOCK_NO_SILK">
+<pad name="1" x="0" y="0.127" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="2" x="2.54" y="-0.127" drill="1.016" diameter="1.8796" rot="R90"/>
+<pad name="3" x="5.08" y="0.127" drill="1.016" diameter="1.8796" rot="R90"/>
+<text x="-1.3462" y="1.8288" size="1.27" layer="25" ratio="10">&gt;NAME</text>
+<text x="-1.27" y="-3.175" size="1.27" layer="27">&gt;VALUE</text>
+<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
+<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
+<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
+</package>
+<package name="JST-3-SMD">
+<wire x1="-4.99" y1="-2.07" x2="-4.99" y2="-5.57" width="0.2032" layer="21"/>
+<wire x1="-4.99" y1="-5.57" x2="-4.19" y2="-5.57" width="0.2032" layer="21"/>
+<wire x1="-4.19" y1="-5.57" x2="-4.19" y2="-3.07" width="0.2032" layer="21"/>
+<wire x1="-4.19" y1="-3.07" x2="-2.99" y2="-3.07" width="0.2032" layer="21"/>
+<wire x1="3.01" y1="-3.07" x2="4.21" y2="-3.07" width="0.2032" layer="21"/>
+<wire x1="4.21" y1="-3.07" x2="4.21" y2="-5.57" width="0.2032" layer="21"/>
+<wire x1="4.21" y1="-5.57" x2="5.01" y2="-5.57" width="0.2032" layer="21"/>
+<wire x1="5.01" y1="-5.57" x2="5.01" y2="-2.07" width="0.2032" layer="21"/>
+<wire x1="3.01" y1="1.93" x2="-2.99" y2="1.93" width="0.2032" layer="21"/>
+<smd name="1" x="-1.99" y="-4.77" dx="1" dy="4.6" layer="1"/>
+<smd name="3" x="2.01" y="-4.77" dx="1" dy="4.6" layer="1"/>
+<smd name="NC1" x="-4.39" y="0.43" dx="3.4" dy="1.6" layer="1" rot="R90"/>
+<smd name="NC2" x="4.41" y="0.43" dx="3.4" dy="1.6" layer="1" rot="R90"/>
+<smd name="2" x="0.01" y="-4.77" dx="1" dy="4.6" layer="1"/>
+<text x="-2.26" y="0.2" size="0.4064" layer="25">&gt;Name</text>
+<text x="-2.26" y="-1.07" size="0.4064" layer="27">&gt;Value</text>
+</package>
+<package name="1X03-1MM-RA">
+<wire x1="-1" y1="-4.6" x2="1" y2="-4.6" width="0.254" layer="21"/>
+<wire x1="-2.5" y1="-2" x2="-2.5" y2="-0.35" width="0.254" layer="21"/>
+<wire x1="1.75" y1="-0.35" x2="2.4997" y2="-0.35" width="0.254" layer="21"/>
+<wire x1="2.4997" y1="-0.35" x2="2.4997" y2="-2" width="0.254" layer="21"/>
+<wire x1="-2.5" y1="-0.35" x2="-1.75" y2="-0.35" width="0.254" layer="21"/>
+<circle x="-2" y="0.3" radius="0.1414" width="0.4" layer="21"/>
+<smd name="NC2" x="-2.3" y="-3.675" dx="1.2" dy="2" layer="1"/>
+<smd name="NC1" x="2.3" y="-3.675" dx="1.2" dy="2" layer="1"/>
+<smd name="1" x="-1" y="0" dx="0.6" dy="1.35" layer="1"/>
+<smd name="2" x="0" y="0" dx="0.6" dy="1.35" layer="1"/>
+<smd name="3" x="1" y="0" dx="0.6" dy="1.35" layer="1"/>
+<text x="-1.73" y="1.73" size="0.4064" layer="25" rot="R180">&gt;NAME</text>
+<text x="3.46" y="1.73" size="0.4064" layer="27" rot="R180">&gt;VALUE</text>
+</package>
+<package name="1X03_SMD_RA_FEMALE">
+<wire x1="-3.935" y1="4.25" x2="-3.935" y2="-4.25" width="0.1778" layer="21"/>
+<wire x1="3.935" y1="4.25" x2="-3.935" y2="4.25" width="0.1778" layer="21"/>
+<wire x1="3.935" y1="-4.25" x2="3.935" y2="4.25" width="0.1778" layer="21"/>
+<wire x1="-3.935" y1="-4.25" x2="3.935" y2="-4.25" width="0.1778" layer="21"/>
+<rectangle x1="-0.32" y1="6.8" x2="0.32" y2="7.65" layer="51"/>
+<rectangle x1="2.22" y1="6.8" x2="2.86" y2="7.65" layer="51"/>
+<rectangle x1="-2.86" y1="6.8" x2="-2.22" y2="7.65" layer="51"/>
+<smd name="3" x="2.54" y="7.225" dx="1.25" dy="3" layer="1" rot="R180"/>
+<smd name="2" x="0" y="7.225" dx="1.25" dy="3" layer="1" rot="R180"/>
+<smd name="1" x="-2.54" y="7.225" dx="1.25" dy="3" layer="1" rot="R180"/>
+<text x="-3.155" y="2.775" size="1" layer="27">&gt;Value</text>
+<text x="-2.955" y="-3.395" size="1" layer="25">&gt;Name</text>
+</package>
+<package name="1X03_SMD_RA_MALE">
+<wire x1="3.81" y1="1.25" x2="-3.81" y2="1.25" width="0.1778" layer="51"/>
+<wire x1="-3.81" y1="1.25" x2="-3.81" y2="-1.25" width="0.1778" layer="51"/>
+<wire x1="3.81" y1="-1.25" x2="2.53" y2="-1.25" width="0.1778" layer="51"/>
+<wire x1="2.53" y1="-1.25" x2="-0.01" y2="-1.25" width="0.1778" layer="51"/>
+<wire x1="-0.01" y1="-1.25" x2="-2.55" y2="-1.25" width="0.1778" layer="51"/>
+<wire x1="-2.55" y1="-1.25" x2="-3.81" y2="-1.25" width="0.1778" layer="51"/>
+<wire x1="3.81" y1="-1.25" x2="3.81" y2="1.25" width="0.1778" layer="51"/>
+<wire x1="2.53" y1="-1.25" x2="2.53" y2="-7.25" width="0.127" layer="51"/>
+<wire x1="-0.01" y1="-1.25" x2="-0.01" y2="-7.25" width="0.127" layer="51"/>
+<wire x1="-2.55" y1="-1.25" x2="-2.55" y2="-7.25" width="0.127" layer="51"/>
+<rectangle x1="-0.32" y1="4.15" x2="0.32" y2="5.95" layer="51"/>
+<rectangle x1="-2.86" y1="4.15" x2="-2.22" y2="5.95" layer="51"/>
+<rectangle x1="2.22" y1="4.15" x2="2.86" y2="5.95" layer="51"/>
+<smd name="1" x="-2.54" y="5" dx="3" dy="1" layer="1" rot="R90"/>
+<smd name="2" x="0" y="5" dx="3" dy="1" layer="1" rot="R90"/>
+<smd name="3" x="2.54" y="5" dx="3" dy="1" layer="1" rot="R90"/>
+</package>
+</packages>
+<symbols>
+<symbol name="M03">
+<wire x1="3.81" y1="-5.08" x2="-2.54" y2="-5.08" width="0.4064" layer="94"/>
+<wire x1="1.27" y1="2.54" x2="2.54" y2="2.54" width="0.6096" layer="94"/>
+<wire x1="1.27" y1="0" x2="2.54" y2="0" width="0.6096" layer="94"/>
+<wire x1="1.27" y1="-2.54" x2="2.54" y2="-2.54" width="0.6096" layer="94"/>
+<wire x1="-2.54" y1="5.08" x2="-2.54" y2="-5.08" width="0.4064" layer="94"/>
+<wire x1="3.81" y1="-5.08" x2="3.81" y2="5.08" width="0.4064" layer="94"/>
+<wire x1="-2.54" y1="5.08" x2="3.81" y2="5.08" width="0.4064" layer="94"/>
+<text x="-2.54" y="-7.62" size="1.778" layer="96">&gt;VALUE</text>
+<text x="-2.54" y="5.842" size="1.778" layer="95">&gt;NAME</text>
+<pin name="1" x="7.62" y="-2.54" visible="pad" length="middle" direction="pas" swaplevel="1" rot="R180"/>
+<pin name="2" x="7.62" y="0" visible="pad" length="middle" direction="pas" swaplevel="1" rot="R180"/>
+<pin name="3" x="7.62" y="2.54" visible="pad" length="middle" direction="pas" swaplevel="1" rot="R180"/>
+</symbol>
+</symbols>
+<devicesets>
+<deviceset name="M03" prefix="JP" uservalue="yes">
+<description>&lt;b&gt;Header 3&lt;/b&gt;
+Standard 3-pin 0.1" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115). Molex polarized connector foot print use with SKU : PRT-08232 with associated crimp pins and housings.</description>
+<gates>
+<gate name="G$1" symbol="M03" x="-2.54" y="0"/>
+</gates>
+<devices>
+<device name="PTH" package="1X03">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="POLAR" package="MOLEX-1X3">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SCREW" package="SCREWTERMINAL-3.5MM-3">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LOCK" package="1X03_LOCK">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LOCK_LONGPADS" package="1X03_LOCK_LONGPADS">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="POLAR_LOCK" package="MOLEX-1X3_LOCK">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SCREW_LOCK" package="SCREWTERMINAL-3.5MM-3_LOCK.007S">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="1X03_NO_SILK" package="1X03_NO_SILK">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LONGPADS" package="1X03_LONGPADS">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="JST-PTH" package="JST-3-PTH">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="POGO_PIN_HOLES_ONLY" package="1X03_PP_HOLES_ONLY">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="-SCREW-5MM" package="SCREWTERMINAL-5MM-3">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="LOCK_NO_SILK" package="1X03_LOCK_NO_SILK">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="" package="JST-3-SMD">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SMD" package="1X03-1MM-RA">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+<device name="SMD_RA_FEMALE" package="1X03_SMD_RA_FEMALE">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name="">
+<attribute name="PROD_ID" value="CONN-10926"/>
+<attribute name="VALUE" value="1x3 RA Female .1&quot;"/>
+</technology>
+</technologies>
+</device>
+<device name="SMD_RA_MALE" package="1X03_SMD_RA_MALE">
+<connects>
+<connect gate="G$1" pin="1" pad="1"/>
+<connect gate="G$1" pin="2" pad="2"/>
+<connect gate="G$1" pin="3" pad="3"/>
+</connects>
+<technologies>
+<technology name=""/>
+</technologies>
+</device>
+</devices>
+</deviceset>
+</devicesets>
+</library>
+</libraries>
+<attributes>
+</attributes>
+<variantdefs>
+</variantdefs>
+<classes>
+<class number="0" name="default" width="0" drill="0">
+</class>
+</classes>
+<parts>
+<part name="U$1" library="custom_parts" deviceset="LM3481" device=""/>
+<part name="CIN$0" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="CBP" library="resistor" deviceset="C-US" device="C0603" value="C0603C104K5RACT"/>
+<part name="RBP" library="resistor" deviceset="R-US_" device="R0402" value="CRCW040220R0FKE"/>
+<part name="RUVLO2" library="resistor" deviceset="R-US_" device="R0402" value="CRCW0402100KFKE"/>
+<part name="RUVLO1" library="resistor" deviceset="R-US_" device="R0402" value="CRCW040268K1FKE"/>
+<part name="CCOMP2" library="resistor" deviceset="C-US" device="C0603" value="GRM1885C1H162JA01"/>
+<part name="RCOMP" library="resistor" deviceset="R-US_" device="R0402" value="CRCW04021K58FKE"/>
+<part name="CCOMP" library="resistor" deviceset="C-US" device="C0402" value="GRM155C80G184KE01"/>
+<part name="RFADJ" library="resistor" deviceset="R-US_" device="R0402" value="CRCW040233K2FKE"/>
+<part name="CCC" library="resistor" deviceset="C-US" device="C0402" value="GRM155R61A224KE19D"/>
+<part name="RRAMP" library="resistor" deviceset="R-US_" device="R0402" value="CRCW0402100RFKE"/>
+<part name="CRAMP" library="resistor" deviceset="C-US" device="C0805" value="CC0805KRX7R9BB56"/>
+<part name="RSENSE" library="resistor" deviceset="R-US_" device="M1206" value="CSNL1206FT2L00"/>
+<part name="LIN" library="custom_parts" deviceset="L-US" device="1060-152" value="XAL1060-152ME"/>
+<part name="CSEP$0" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="LOUT" library="custom_parts" deviceset="L-US" device="1010-153" value="XAL1010-153ME"/>
+<part name="D1" library="custom_parts" deviceset="VS-12CWQ10FNPBF" device="" value=" 12CWQ10FNPB"/>
+<part name="RFB2" library="resistor" deviceset="R-US_" device="R0402" value="CRCW040284K5FKE"/>
+<part name="RFB1" library="resistor" deviceset="R-US_" device="R0402" value="CRCW040210K0FKED"/>
+<part name="M1" library="custom_parts" deviceset="BSZ097N04LS_G" device=""/>
+<part name="CIN$1" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="CIN$2" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="IN" library="custom_parts" deviceset="POWER_CONNECTOR" device="ELFH0225*" value="POWER_CONNECTORELFH0225*"/>
+<part name="OUT" library="custom_parts" deviceset="POWER_CONNECTOR" device="ELFH0225*"/>
+<part name="DTVS" library="custom_parts" deviceset="MMSZ5242BT1G" device="" value="MMSZ5246BT1G"/>
+<part name="IPOW" library="led" deviceset="LED" device="CHIPLED_0805"/>
+<part name="RIPOW" library="resistor" deviceset="R-US_" device="R1206" value="1K"/>
+<part name="OPOW" library="led" deviceset="LED" device="CHIPLED_0805"/>
+<part name="ROPOW" library="resistor" deviceset="R-US_" device="R1206" value="1K"/>
+<part name="CSEP$1" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="CSEP$2" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="CSEP$3" library="resistor" deviceset="C-US" device="C1210" value="C3225X7R1E106M"/>
+<part name="COUT$0" library="custom_parts" deviceset="C-US" device="RR71C331MDN1"/>
+<part name="COUT$1" library="custom_parts" deviceset="C-US" device="RR71C331MDN1"/>
+<part name="OUT1" library="custom_parts" deviceset="POWER_CONNECTOR" device="ELFH0225*"/>
+<part name="JP1" library="SparkFun-Connectors" deviceset="M03" device="PTH"/>
+<part name="JP2" library="SparkFun-Connectors" deviceset="M03" device="PTH"/>
+<part name="JP3" library="SparkFun-Connectors" deviceset="M03" device="PTH"/>
+</parts>
+<sheets>
+<sheet>
+<plain>
+<text x="-58.42" y="66.04" size="1.778" layer="91">20 Amps</text>
+<text x="53.34" y="63.5" size="1.778" layer="91">20 Amps</text>
+<text x="101.6" y="63.5" size="1.778" layer="91" rot="R90">10 amps</text>
+<text x="99.06" y="38.1" size="1.778" layer="91" rot="R90">20 amps</text>
+<text x="101.6" y="2.54" size="1.778" layer="91" rot="R90">20 amps</text>
+<text x="137.16" y="68.58" size="1.778" layer="91" rot="R180">10 amps</text>
+<text x="167.64" y="48.26" size="1.778" layer="91">10 amps</text>
+<text x="167.64" y="10.16" size="1.778" layer="91">10 amps</text>
+<text x="172.72" y="66.04" size="1.778" layer="91">5 amps</text>
+</plain>
+<instances>
+<instance part="U$1" gate="G$1" x="50.8" y="27.94"/>
+<instance part="CIN$0" gate="G$1" x="-63.5" y="30.48"/>
+<instance part="CBP" gate="G$1" x="-33.02" y="12.7"/>
+<instance part="RBP" gate="G$1" x="-33.02" y="58.42" rot="R90"/>
+<instance part="RUVLO2" gate="G$1" x="-20.32" y="55.88" rot="R90"/>
+<instance part="RUVLO1" gate="G$1" x="-20.32" y="20.32" rot="R90"/>
+<instance part="CCOMP2" gate="G$1" x="-5.08" y="15.24"/>
+<instance part="RCOMP" gate="G$1" x="10.16" y="20.32" rot="R90"/>
+<instance part="CCOMP" gate="G$1" x="10.16" y="5.08"/>
+<instance part="RFADJ" gate="G$1" x="73.66" y="17.78" rot="R180"/>
+<instance part="CCC" gate="G$1" x="73.66" y="33.02" rot="R90"/>
+<instance part="RRAMP" gate="G$1" x="68.58" y="55.88" rot="R180"/>
+<instance part="CRAMP" gate="G$1" x="43.18" y="45.72" rot="R90"/>
+<instance part="RSENSE" gate="G$1" x="96.52" y="10.16" rot="R270"/>
+<instance part="LIN" gate="G$1" x="35.56" y="63.5" rot="R90"/>
+<instance part="CSEP$0" gate="G$1" x="106.68" y="63.5" rot="R90"/>
+<instance part="LOUT" gate="G$1" x="68.58" y="86.36" rot="R90"/>
+<instance part="D1" gate="G$1" x="129.54" y="63.5"/>
+<instance part="RFB2" gate="G$1" x="137.16" y="53.34" rot="R270"/>
+<instance part="RFB1" gate="G$1" x="137.16" y="20.32" rot="R270"/>
+<instance part="M1" gate="G$1" x="93.98" y="25.4"/>
+<instance part="CIN$1" gate="G$1" x="-58.42" y="38.1"/>
+<instance part="CIN$2" gate="G$1" x="-66.04" y="22.86"/>
+<instance part="IN" gate="G$1" x="-93.98" y="27.94"/>
+<instance part="OUT" gate="G$1" x="223.52" y="30.48" rot="R180"/>
+<instance part="DTVS" gate="G$1" x="-68.58" y="27.94" rot="R90"/>
+<instance part="IPOW" gate="G$1" x="-76.2" y="35.56" rot="MR270"/>
+<instance part="RIPOW" gate="G$1" x="-83.82" y="35.56" rot="R180"/>
+<instance part="OPOW" gate="G$1" x="208.28" y="27.94" rot="MR0"/>
+<instance part="ROPOW" gate="G$1" x="208.28" y="35.56" rot="R90"/>
+<instance part="CSEP$1" gate="G$1" x="106.68" y="71.12" rot="R90"/>
+<instance part="CSEP$2" gate="G$1" x="106.68" y="55.88" rot="R90"/>
+<instance part="CSEP$3" gate="G$1" x="106.68" y="78.74" rot="R90"/>
+<instance part="COUT$0" gate="G$1" x="160.02" y="33.02"/>
+<instance part="COUT$1" gate="G$1" x="170.18" y="33.02"/>
+<instance part="OUT1" gate="G$1" x="223.52" y="12.7" rot="R180"/>
+<instance part="JP1" gate="G$1" x="228.6" y="48.26" rot="MR0"/>
+<instance part="JP2" gate="G$1" x="228.6" y="63.5" rot="MR0"/>
+<instance part="JP3" gate="G$1" x="228.6" y="78.74" rot="MR0"/>
+</instances>
+<busses>
+</busses>
+<nets>
+<net name="N$1" class="0">
+<segment>
+<wire x1="66.04" y1="38.1" x2="68.58" y2="38.1" width="0.1524" layer="91"/>
+<wire x1="68.58" y1="38.1" x2="68.58" y2="48.26" width="0.1524" layer="91"/>
+<wire x1="-33.02" y1="15.24" x2="-33.02" y2="48.26" width="0.1524" layer="91"/>
+<wire x1="-33.02" y1="48.26" x2="-33.02" y2="53.34" width="0.1524" layer="91"/>
+<wire x1="68.58" y1="48.26" x2="-33.02" y2="48.26" width="0.1524" layer="91"/>
+<junction x="-33.02" y="48.26"/>
+<pinref part="U$1" gate="G$1" pin="VIN"/>
+<pinref part="RBP" gate="G$1" pin="1"/>
+<pinref part="CBP" gate="G$1" pin="1"/>
+</segment>
+</net>
+<net name="GND" class="0">
+<segment>
+<wire x1="60.96" y1="86.36" x2="50.8" y2="86.36" width="0.1524" layer="91"/>
+<label x="50.8" y="86.36" size="1.778" layer="95"/>
+<pinref part="LOUT" gate="G$1" pin="1"/>
+</segment>
+<segment>
+<wire x1="-20.32" y1="15.24" x2="-20.32" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-5.08" y1="10.16" x2="-5.08" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="10.16" y1="0" x2="10.16" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="81.28" y1="22.86" x2="66.04" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="78.74" y1="33.02" x2="81.28" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="48.26" y1="45.72" x2="81.28" y2="45.72" width="0.1524" layer="91"/>
+<wire x1="81.28" y1="45.72" x2="81.28" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="81.28" y1="33.02" x2="81.28" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="81.28" y1="17.78" x2="81.28" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="78.74" y1="17.78" x2="81.28" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="81.28" y1="-2.54" x2="81.28" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="96.52" y1="5.08" x2="96.52" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="165.1" y1="27.94" x2="165.1" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="137.16" y1="15.24" x2="137.16" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="137.16" y1="-2.54" x2="165.1" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="137.16" y1="-2.54" x2="96.52" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="96.52" y1="-2.54" x2="81.28" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="33.02" y1="17.78" x2="33.02" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="33.02" y1="-2.54" x2="81.28" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="33.02" y1="-2.54" x2="10.16" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="10.16" y1="-2.54" x2="-5.08" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-5.08" y1="-2.54" x2="-20.32" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-33.02" y1="-2.54" x2="-20.32" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-33.02" y1="7.62" x2="-33.02" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="-2.54" x2="-33.02" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="17.78" x2="-63.5" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="-66.04" y1="17.78" x2="-63.5" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="25.4" x2="-63.5" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="25.4" x2="-58.42" y2="25.4" width="0.1524" layer="91"/>
+<wire x1="35.56" y1="17.78" x2="33.02" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="-58.42" y1="25.4" x2="-58.42" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="-88.9" y1="25.4" x2="-71.12" y2="25.4" width="0.1524" layer="91"/>
+<wire x1="-71.12" y1="25.4" x2="-68.58" y2="25.4" width="0.1524" layer="91"/>
+<wire x1="-68.58" y1="25.4" x2="-68.58" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="-68.58" y1="17.78" x2="-66.04" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="165.1" y1="-2.54" x2="187.96" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="187.96" y1="-2.54" x2="213.36" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="213.36" y1="-2.54" x2="213.36" y2="10.16" width="0.1524" layer="91"/>
+<wire x1="213.36" y1="10.16" x2="213.36" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="213.36" y1="22.86" x2="213.36" y2="27.94" width="0.1524" layer="91"/>
+<wire x1="-71.12" y1="35.56" x2="-71.12" y2="25.4" width="0.1524" layer="91"/>
+<wire x1="208.28" y1="22.86" x2="213.36" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="170.18" y1="27.94" x2="165.1" y2="27.94" width="0.1524" layer="91"/>
+<wire x1="165.1" y1="27.94" x2="160.02" y2="27.94" width="0.1524" layer="91"/>
+<wire x1="218.44" y1="27.94" x2="213.36" y2="27.94" width="0.1524" layer="91"/>
+<wire x1="218.44" y1="10.16" x2="213.36" y2="10.16" width="0.1524" layer="91"/>
+<junction x="10.16" y="-2.54"/>
+<junction x="96.52" y="-2.54"/>
+<junction x="81.28" y="-2.54"/>
+<junction x="137.16" y="-2.54"/>
+<junction x="165.1" y="-2.54"/>
+<junction x="-20.32" y="-2.54"/>
+<junction x="-33.02" y="-2.54"/>
+<junction x="-5.08" y="-2.54"/>
+<junction x="33.02" y="-2.54"/>
+<junction x="81.28" y="22.86"/>
+<junction x="81.28" y="17.78"/>
+<junction x="81.28" y="33.02"/>
+<junction x="-68.58" y="25.4"/>
+<junction x="-66.04" y="17.78"/>
+<junction x="-71.12" y="25.4"/>
+<junction x="213.36" y="22.86"/>
+<junction x="-63.5" y="17.78"/>
+<junction x="-63.5" y="25.4"/>
+<junction x="165.1" y="27.94"/>
+<junction x="213.36" y="10.16"/>
+<label x="-30.48" y="-2.54" size="1.778" layer="95"/>
+<pinref part="RUVLO1" gate="G$1" pin="1"/>
+<pinref part="CCOMP2" gate="G$1" pin="2"/>
+<pinref part="CCOMP" gate="G$1" pin="2"/>
+<pinref part="U$1" gate="G$1" pin="PGND"/>
+<pinref part="CCC" gate="G$1" pin="2"/>
+<pinref part="CRAMP" gate="G$1" pin="2"/>
+<pinref part="RFADJ" gate="G$1" pin="1"/>
+<pinref part="RSENSE" gate="G$1" pin="2"/>
+<pinref part="RFB1" gate="G$1" pin="2"/>
+<pinref part="CBP" gate="G$1" pin="2"/>
+<pinref part="CIN$2" gate="G$1" pin="2"/>
+<pinref part="CIN$0" gate="G$1" pin="2"/>
+<pinref part="U$1" gate="G$1" pin="AGND"/>
+<pinref part="CIN$1" gate="G$1" pin="2"/>
+<pinref part="IN" gate="G$1" pin="P$2"/>
+<pinref part="DTVS" gate="G$1" pin="A"/>
+<pinref part="IPOW" gate="G$1" pin="C"/>
+<pinref part="OPOW" gate="G$1" pin="C"/>
+<pinref part="COUT$1" gate="G$1" pin="2"/>
+<pinref part="COUT$0" gate="G$1" pin="2"/>
+<pinref part="OUT" gate="G$1" pin="P$1"/>
+<pinref part="OUT1" gate="G$1" pin="P$1"/>
+<wire x1="187.96" y1="76.2" x2="187.96" y2="60.96" width="0.1524" layer="91"/>
+<junction x="187.96" y="-2.54"/>
+<pinref part="JP1" gate="G$1" pin="1"/>
+<wire x1="187.96" y1="60.96" x2="187.96" y2="45.72" width="0.1524" layer="91"/>
+<wire x1="187.96" y1="45.72" x2="187.96" y2="-2.54" width="0.1524" layer="91"/>
+<wire x1="220.98" y1="45.72" x2="187.96" y2="45.72" width="0.1524" layer="91"/>
+<pinref part="JP3" gate="G$1" pin="1"/>
+<wire x1="220.98" y1="76.2" x2="187.96" y2="76.2" width="0.1524" layer="91"/>
+<pinref part="JP2" gate="G$1" pin="1"/>
+<wire x1="220.98" y1="60.96" x2="187.96" y2="60.96" width="0.1524" layer="91"/>
+<junction x="187.96" y="45.72"/>
+<junction x="187.96" y="60.96"/>
+</segment>
+</net>
+<net name="N$4" class="0">
+<segment>
+<wire x1="35.56" y1="33.02" x2="0" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="0" y1="33.02" x2="0" y2="40.64" width="0.1524" layer="91"/>
+<wire x1="0" y1="40.64" x2="-20.32" y2="40.64" width="0.1524" layer="91"/>
+<wire x1="-20.32" y1="40.64" x2="-20.32" y2="50.8" width="0.1524" layer="91"/>
+<wire x1="-20.32" y1="40.64" x2="-20.32" y2="25.4" width="0.1524" layer="91"/>
+<junction x="-20.32" y="40.64"/>
+<pinref part="U$1" gate="G$1" pin="UVLO"/>
+<pinref part="RUVLO2" gate="G$1" pin="1"/>
+<pinref part="RUVLO1" gate="G$1" pin="2"/>
+</segment>
+</net>
+<net name="N$5" class="0">
+<segment>
+<wire x1="35.56" y1="27.94" x2="10.16" y2="27.94" width="0.1524" layer="91"/>
+<wire x1="10.16" y1="27.94" x2="-5.08" y2="27.94" width="0.1524" layer="91"/>
+<wire x1="-5.08" y1="27.94" x2="-5.08" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="10.16" y1="25.4" x2="10.16" y2="27.94" width="0.1524" layer="91"/>
+<junction x="10.16" y="27.94"/>
+<pinref part="U$1" gate="G$1" pin="COMP"/>
+<pinref part="CCOMP2" gate="G$1" pin="1"/>
+<pinref part="RCOMP" gate="G$1" pin="2"/>
+</segment>
+</net>
+<net name="N$7" class="0">
+<segment>
+<wire x1="10.16" y1="7.62" x2="10.16" y2="15.24" width="0.1524" layer="91"/>
+<pinref part="RCOMP" gate="G$1" pin="1"/>
+<pinref part="CCOMP" gate="G$1" pin="1"/>
+</segment>
+</net>
+<net name="N$9" class="0">
+<segment>
+<wire x1="66.04" y1="17.78" x2="68.58" y2="17.78" width="0.1524" layer="91"/>
+<pinref part="U$1" gate="G$1" pin="FA/SYNC/SD"/>
+<pinref part="RFADJ" gate="G$1" pin="2"/>
+</segment>
+</net>
+<net name="N$8" class="0">
+<segment>
+<wire x1="35.56" y1="38.1" x2="35.56" y2="45.72" width="0.1524" layer="91"/>
+<wire x1="35.56" y1="45.72" x2="40.64" y2="45.72" width="0.1524" layer="91"/>
+<wire x1="35.56" y1="45.72" x2="35.56" y2="55.88" width="0.1524" layer="91"/>
+<wire x1="35.56" y1="55.88" x2="63.5" y2="55.88" width="0.1524" layer="91"/>
+<junction x="35.56" y="45.72"/>
+<pinref part="U$1" gate="G$1" pin="ISEN"/>
+<pinref part="CRAMP" gate="G$1" pin="1"/>
+<pinref part="RRAMP" gate="G$1" pin="2"/>
+</segment>
+</net>
+<net name="N$11" class="0">
+<segment>
+<wire x1="86.36" y1="27.94" x2="86.36" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="86.36" y1="22.86" x2="91.44" y2="22.86" width="0.1524" layer="91"/>
+<wire x1="86.36" y1="27.94" x2="66.04" y2="27.94" width="0.1524" layer="91"/>
+<pinref part="M1" gate="G$1" pin="G"/>
+<pinref part="U$1" gate="G$1" pin="DR"/>
+</segment>
+</net>
+<net name="N$10" class="0">
+<segment>
+<wire x1="96.52" y1="15.24" x2="96.52" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="96.52" y1="17.78" x2="96.52" y2="20.32" width="0.1524" layer="91"/>
+<wire x1="73.66" y1="55.88" x2="88.9" y2="55.88" width="0.1524" layer="91"/>
+<wire x1="88.9" y1="55.88" x2="88.9" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="88.9" y1="17.78" x2="96.52" y2="17.78" width="0.1524" layer="91"/>
+<wire x1="101.6" y1="20.32" x2="99.06" y2="20.32" width="0.1524" layer="91"/>
+<wire x1="99.06" y1="20.32" x2="96.52" y2="20.32" width="0.1524" layer="91"/>
+<junction x="96.52" y="17.78"/>
+<junction x="96.52" y="20.32"/>
+<junction x="99.06" y="20.32"/>
+<pinref part="RSENSE" gate="G$1" pin="1"/>
+<pinref part="RRAMP" gate="G$1" pin="1"/>
+<pinref part="M1" gate="G$1" pin="S"/>
+<pinref part="M1" gate="G$1" pin="S$2"/>
+<pinref part="M1" gate="G$1" pin="S$1"/>
+</segment>
+</net>
+<net name="N$13" class="0">
+<segment>
+<wire x1="96.52" y1="30.48" x2="96.52" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="43.18" y1="63.5" x2="96.52" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="99.06" y1="30.48" x2="96.52" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="104.14" y1="30.48" x2="101.6" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="101.6" y1="30.48" x2="99.06" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="106.68" y1="30.48" x2="104.14" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="96.52" y1="63.5" x2="104.14" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="104.14" y1="55.88" x2="104.14" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="104.14" y1="63.5" x2="104.14" y2="71.12" width="0.1524" layer="91"/>
+<wire x1="104.14" y1="71.12" x2="104.14" y2="78.74" width="0.1524" layer="91"/>
+<junction x="96.52" y="63.5"/>
+<junction x="99.06" y="30.48"/>
+<junction x="101.6" y="30.48"/>
+<junction x="104.14" y="30.48"/>
+<junction x="96.52" y="30.48"/>
+<junction x="104.14" y="63.5"/>
+<junction x="104.14" y="71.12"/>
+<pinref part="LIN" gate="G$1" pin="2"/>
+<pinref part="M1" gate="G$1" pin="D"/>
+<pinref part="M1" gate="G$1" pin="D$1"/>
+<pinref part="M1" gate="G$1" pin="D$3"/>
+<pinref part="M1" gate="G$1" pin="D$2"/>
+<pinref part="M1" gate="G$1" pin="D$4"/>
+<pinref part="CSEP$0" gate="G$1" pin="1"/>
+<pinref part="CSEP$2" gate="G$1" pin="1"/>
+<pinref part="CSEP$1" gate="G$1" pin="1"/>
+<pinref part="CSEP$3" gate="G$1" pin="1"/>
+</segment>
+</net>
+<net name="N$12" class="0">
+<segment>
+<wire x1="119.38" y1="63.5" x2="119.38" y2="86.36" width="0.1524" layer="91"/>
+<wire x1="119.38" y1="86.36" x2="76.2" y2="86.36" width="0.1524" layer="91"/>
+<wire x1="119.38" y1="63.5" x2="127" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="127" y1="63.5" x2="127" y2="66.04" width="0.1524" layer="91"/>
+<wire x1="111.76" y1="63.5" x2="119.38" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="111.76" y1="78.74" x2="111.76" y2="71.12" width="0.1524" layer="91"/>
+<wire x1="111.76" y1="71.12" x2="111.76" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="111.76" y1="63.5" x2="111.76" y2="55.88" width="0.1524" layer="91"/>
+<junction x="119.38" y="63.5"/>
+<junction x="127" y="63.5"/>
+<junction x="111.76" y="63.5"/>
+<junction x="111.76" y="71.12"/>
+<pinref part="LOUT" gate="G$1" pin="2"/>
+<pinref part="D1" gate="G$1" pin="A"/>
+<pinref part="D1" gate="G$1" pin="A1"/>
+<pinref part="CSEP$0" gate="G$1" pin="2"/>
+<pinref part="CSEP$3" gate="G$1" pin="2"/>
+<pinref part="CSEP$1" gate="G$1" pin="2"/>
+<pinref part="CSEP$2" gate="G$1" pin="2"/>
+</segment>
+</net>
+<net name="N$14" class="0">
+<segment>
+<wire x1="132.08" y1="63.5" x2="137.16" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="137.16" y1="58.42" x2="137.16" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="137.16" y1="63.5" x2="165.1" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="160.02" y1="35.56" x2="165.1" y2="35.56" width="0.1524" layer="91"/>
+<wire x1="165.1" y1="35.56" x2="170.18" y2="35.56" width="0.1524" layer="91"/>
+<wire x1="165.1" y1="35.56" x2="165.1" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="165.1" y1="63.5" x2="215.9" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="215.9" y1="63.5" x2="215.9" y2="48.26" width="0.1524" layer="91"/>
+<wire x1="215.9" y1="48.26" x2="215.9" y2="40.64" width="0.1524" layer="91"/>
+<wire x1="208.28" y1="40.64" x2="215.9" y2="40.64" width="0.1524" layer="91"/>
+<wire x1="218.44" y1="33.02" x2="215.9" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="215.9" y1="33.02" x2="215.9" y2="40.64" width="0.1524" layer="91"/>
+<junction x="137.16" y="63.5"/>
+<junction x="165.1" y="35.56"/>
+<junction x="165.1" y="63.5"/>
+<junction x="215.9" y="40.64"/>
+<pinref part="D1" gate="G$1" pin="C"/>
+<pinref part="RFB2" gate="G$1" pin="1"/>
+<pinref part="COUT$1" gate="G$1" pin="1"/>
+<pinref part="COUT$0" gate="G$1" pin="1"/>
+<pinref part="ROPOW" gate="G$1" pin="2"/>
+<pinref part="OUT" gate="G$1" pin="P$2"/>
+<wire x1="215.9" y1="33.02" x2="215.9" y2="15.24" width="0.1524" layer="91"/>
+<pinref part="OUT1" gate="G$1" pin="P$2"/>
+<wire x1="215.9" y1="15.24" x2="218.44" y2="15.24" width="0.1524" layer="91"/>
+<junction x="215.9" y="33.02"/>
+<pinref part="JP1" gate="G$1" pin="2"/>
+<wire x1="220.98" y1="48.26" x2="215.9" y2="48.26" width="0.1524" layer="91"/>
+<pinref part="JP2" gate="G$1" pin="2"/>
+<wire x1="220.98" y1="63.5" x2="215.9" y2="63.5" width="0.1524" layer="91"/>
+<pinref part="JP3" gate="G$1" pin="2"/>
+<wire x1="220.98" y1="78.74" x2="215.9" y2="78.74" width="0.1524" layer="91"/>
+<wire x1="215.9" y1="78.74" x2="215.9" y2="63.5" width="0.1524" layer="91"/>
+<junction x="215.9" y="63.5"/>
+<junction x="215.9" y="48.26"/>
+</segment>
+</net>
+<net name="N$15" class="0">
+<segment>
+<wire x1="137.16" y1="48.26" x2="137.16" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="137.16" y1="33.02" x2="137.16" y2="25.4" width="0.1524" layer="91"/>
+<wire x1="124.46" y1="33.02" x2="137.16" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="124.46" y1="53.34" x2="124.46" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="30.48" y1="53.34" x2="124.46" y2="53.34" width="0.1524" layer="91"/>
+<wire x1="30.48" y1="22.86" x2="30.48" y2="53.34" width="0.1524" layer="91"/>
+<wire x1="35.56" y1="22.86" x2="30.48" y2="22.86" width="0.1524" layer="91"/>
+<junction x="137.16" y="33.02"/>
+<pinref part="RFB1" gate="G$1" pin="1"/>
+<pinref part="RFB2" gate="G$1" pin="2"/>
+<pinref part="U$1" gate="G$1" pin="FB"/>
+</segment>
+</net>
+<net name="N$3" class="0">
+<segment>
+<wire x1="71.12" y1="33.02" x2="66.04" y2="33.02" width="0.1524" layer="91"/>
+<pinref part="CCC" gate="G$1" pin="1"/>
+<pinref part="U$1" gate="G$1" pin="VCC"/>
+</segment>
+</net>
+<net name="N$2" class="0">
+<segment>
+<wire x1="-88.9" y1="35.56" x2="-88.9" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="-20.32" y1="63.5" x2="-20.32" y2="60.96" width="0.1524" layer="91"/>
+<wire x1="-20.32" y1="63.5" x2="27.94" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="-33.02" y1="63.5" x2="-20.32" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="63.5" x2="-33.02" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="-66.04" y1="25.4" x2="-66.04" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="-66.04" y1="30.48" x2="-66.04" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="-66.04" y1="33.02" x2="-63.5" y2="33.02" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="33.02" x2="-63.5" y2="40.64" width="0.1524" layer="91"/>
+<wire x1="-63.5" y1="40.64" x2="-63.5" y2="63.5" width="0.1524" layer="91"/>
+<wire x1="-58.42" y1="40.64" x2="-63.5" y2="40.64" width="0.1524" layer="91"/>
+<wire x1="-68.58" y1="30.48" x2="-66.04" y2="30.48" width="0.1524" layer="91"/>
+<wire x1="-88.9" y1="30.48" x2="-68.58" y2="30.48" width="0.1524" layer="91"/>
+<junction x="-20.32" y="63.5"/>
+<junction x="-63.5" y="40.64"/>
+<junction x="-66.04" y="30.48"/>
+<junction x="-68.58" y="30.48"/>
+<junction x="-88.9" y="30.48"/>
+<junction x="-63.5" y="33.02"/>
+<junction x="-33.02" y="63.5"/>
+<pinref part="IN" gate="G$1" pin="P$1"/>
+<pinref part="RIPOW" gate="G$1" pin="2"/>
+<pinref part="LIN" gate="G$1" pin="1"/>
+<pinref part="RUVLO2" gate="G$1" pin="2"/>
+<pinref part="RBP" gate="G$1" pin="2"/>
+<pinref part="CIN$2" gate="G$1" pin="1"/>
+<pinref part="CIN$0" gate="G$1" pin="1"/>
+<pinref part="CIN$1" gate="G$1" pin="1"/>
+<pinref part="DTVS" gate="G$1" pin="C"/>
+</segment>
+</net>
+<net name="N$16" class="0">
+<segment>
+<pinref part="IPOW" gate="G$1" pin="A"/>
+<pinref part="RIPOW" gate="G$1" pin="1"/>
+</segment>
+</net>
+<net name="N$17" class="0">
+<segment>
+<pinref part="OPOW" gate="G$1" pin="A"/>
+<pinref part="ROPOW" gate="G$1" pin="1"/>
+</segment>
+</net>
+</nets>
+</sheet>
+</sheets>
+</schematic>
+</drawing>
+</eagle>
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBL b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBL
new file mode 100644
index 0000000..4ff399a
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBL
@@ -0,0 +1,901 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0827*%
+%ADD11C,0.0594*%
+%ADD12C,0.0436*%
+%ADD13C,0.0100*%
+%ADD14C,0.0400*%
+D10*
+X005873Y010569D02*
+X006700Y010569D01*
+X006700Y012537D02*
+X005873Y012537D01*
+X024918Y012242D02*
+X025745Y012242D01*
+X025745Y014211D02*
+X024918Y014211D01*
+X024918Y009978D02*
+X025745Y009978D01*
+X025745Y008010D02*
+X024918Y008010D01*
+D11*
+X021050Y007961D03*
+X021050Y009929D03*
+X022534Y012334D03*
+X021142Y013726D03*
+D12*
+X020460Y014161D03*
+X021838Y014654D03*
+X023659Y014211D03*
+X025381Y013473D03*
+X026907Y013866D03*
+X027546Y011799D03*
+X024692Y011455D03*
+X022723Y011750D03*
+X021001Y011701D03*
+X020509Y012341D03*
+X020706Y012882D03*
+X019279Y011750D03*
+X019525Y011160D03*
+X018934Y009782D03*
+X019279Y008847D03*
+X021641Y007518D03*
+X021887Y008305D03*
+X023708Y007518D03*
+X025086Y006681D03*
+X025430Y007223D03*
+X023954Y006337D03*
+X023757Y005549D03*
+X021739Y005549D03*
+X019721Y005549D03*
+X017753Y005549D03*
+X015538Y005549D03*
+X014111Y005549D03*
+X014210Y006435D03*
+X014800Y006829D03*
+X014456Y007518D03*
+X015489Y007518D03*
+X013471Y007075D03*
+X012684Y006386D03*
+X011651Y006435D03*
+X010962Y006386D03*
+X010371Y005648D03*
+X007664Y005845D03*
+X007664Y005303D03*
+X006188Y005303D03*
+X005893Y006484D03*
+X006533Y007419D03*
+X005893Y008108D03*
+X007123Y008994D03*
+X007812Y008305D03*
+X008550Y008945D03*
+X007960Y010077D03*
+X005893Y009339D03*
+X010223Y011061D03*
+X010223Y011652D03*
+X010223Y012242D03*
+X010223Y012882D03*
+X010223Y013522D03*
+X010223Y014112D03*
+X010223Y014752D03*
+X007615Y014801D03*
+X006483Y014801D03*
+X006483Y014112D03*
+X007615Y014063D03*
+X007615Y012980D03*
+X007566Y011849D03*
+X004810Y012193D03*
+X003678Y012242D03*
+X003678Y013276D03*
+X004958Y014112D03*
+X004958Y014801D03*
+X003727Y014703D03*
+X011355Y010667D03*
+X011897Y010667D03*
+X012389Y009831D03*
+X012930Y009831D03*
+X017655Y007469D03*
+X019672Y007469D03*
+X022527Y009634D03*
+X023708Y010126D03*
+X026513Y009043D03*
+X028088Y009978D03*
+X027349Y007567D03*
+X016473Y012685D03*
+X016473Y013226D03*
+X016473Y013817D03*
+X016473Y014358D03*
+X004367Y005352D03*
+D13*
+X003385Y005109D02*
+X003385Y011307D01*
+X007172Y011307D01*
+X007910Y010569D01*
+X010568Y010569D01*
+X010716Y010421D01*
+X010716Y009437D01*
+X014210Y009437D01*
+X015194Y010421D01*
+X018786Y010421D01*
+X020115Y009093D01*
+X021936Y009093D01*
+X021936Y012784D01*
+X022527Y013325D01*
+X024790Y013325D01*
+X025135Y012980D01*
+X027758Y012980D01*
+X027758Y010308D01*
+X026184Y010308D01*
+X026053Y010439D01*
+X025853Y010522D01*
+X024810Y010522D01*
+X024611Y010439D01*
+X024458Y010286D01*
+X024375Y010086D01*
+X024375Y009870D01*
+X024458Y009671D01*
+X024611Y009518D01*
+X024810Y009435D01*
+X025853Y009435D01*
+X026053Y009518D01*
+X026184Y009648D01*
+X027975Y009648D01*
+X028018Y009630D01*
+X028157Y009630D01*
+X028282Y009682D01*
+X028282Y005109D01*
+X007961Y005109D01*
+X007967Y005123D01*
+X010101Y005123D01*
+X010207Y005229D01*
+X010285Y005307D01*
+X010302Y005300D01*
+X010440Y005300D01*
+X010568Y005353D01*
+X010666Y005451D01*
+X010719Y005578D01*
+X010719Y005717D01*
+X010666Y005845D01*
+X010568Y005943D01*
+X010527Y005960D01*
+X010641Y005960D01*
+X010790Y005960D01*
+X010875Y006045D01*
+X010892Y006038D01*
+X011031Y006038D01*
+X011159Y006091D01*
+X011257Y006189D01*
+X011310Y006317D01*
+X011310Y006455D01*
+X011257Y006583D01*
+X011159Y006681D01*
+X011031Y006734D01*
+X010892Y006734D01*
+X010764Y006681D01*
+X010667Y006583D01*
+X010614Y006455D01*
+X010614Y006320D01*
+X010149Y006320D01*
+X010043Y006214D01*
+X009608Y005778D01*
+X008012Y005778D01*
+X008012Y005914D01*
+X007959Y006042D01*
+X007862Y006140D01*
+X007734Y006193D01*
+X007595Y006193D01*
+X007467Y006140D01*
+X007369Y006042D01*
+X007316Y005914D01*
+X007316Y005775D01*
+X007369Y005647D01*
+X007443Y005574D01*
+X007369Y005500D01*
+X007316Y005372D01*
+X007316Y005234D01*
+X007368Y005109D01*
+X006484Y005109D01*
+X006536Y005234D01*
+X006536Y005372D01*
+X006483Y005500D01*
+X006385Y005598D01*
+X006257Y005651D01*
+X006119Y005651D01*
+X005991Y005598D01*
+X005893Y005500D01*
+X005886Y005483D01*
+X004690Y005483D01*
+X004662Y005550D01*
+X005943Y005550D01*
+X006112Y005649D02*
+X004562Y005649D01*
+X004564Y005648D02*
+X004436Y005701D01*
+X004298Y005701D01*
+X004170Y005648D01*
+X004072Y005550D01*
+X004019Y005422D01*
+X004019Y005283D01*
+X004072Y005155D01*
+X004119Y005109D01*
+X003385Y005109D01*
+X003385Y005156D02*
+X004072Y005156D01*
+X004031Y005254D02*
+X003385Y005254D01*
+X003385Y005353D02*
+X004019Y005353D01*
+X004031Y005451D02*
+X003385Y005451D01*
+X003385Y005550D02*
+X004072Y005550D01*
+X004172Y005649D02*
+X003385Y005649D01*
+X003385Y005747D02*
+X007328Y005747D01*
+X007316Y005846D02*
+X003385Y005846D01*
+X003385Y005944D02*
+X007329Y005944D01*
+X007370Y006043D02*
+X003385Y006043D01*
+X003385Y006141D02*
+X007471Y006141D01*
+X007858Y006141D02*
+X009970Y006141D01*
+X009872Y006043D02*
+X007959Y006043D01*
+X008000Y005944D02*
+X009773Y005944D01*
+X009675Y005846D02*
+X008012Y005846D01*
+X007910Y005599D02*
+X007664Y005845D01*
+X007910Y005599D02*
+X009682Y005599D01*
+X010223Y006140D01*
+X010716Y006140D01*
+X010962Y006386D01*
+X011206Y006634D02*
+X028282Y006634D01*
+X028282Y006733D02*
+X011034Y006733D01*
+X010889Y006733D02*
+X003385Y006733D01*
+X003385Y006831D02*
+X028282Y006831D01*
+X028282Y006930D02*
+X003385Y006930D01*
+X003385Y007028D02*
+X028282Y007028D01*
+X028282Y007127D02*
+X003385Y007127D01*
+X003385Y007225D02*
+X028282Y007225D01*
+X028282Y007324D02*
+X003385Y007324D01*
+X003385Y007422D02*
+X028282Y007422D01*
+X028282Y007521D02*
+X003385Y007521D01*
+X003385Y007619D02*
+X028282Y007619D01*
+X028282Y007718D02*
+X003385Y007718D01*
+X003385Y007816D02*
+X028282Y007816D01*
+X028282Y007915D02*
+X003385Y007915D01*
+X003385Y008014D02*
+X028282Y008014D01*
+X028282Y008112D02*
+X003385Y008112D01*
+X003385Y008211D02*
+X028282Y008211D01*
+X028282Y008309D02*
+X003385Y008309D01*
+X003385Y008408D02*
+X028282Y008408D01*
+X028282Y008506D02*
+X003385Y008506D01*
+X003385Y008605D02*
+X028282Y008605D01*
+X028282Y008703D02*
+X003385Y008703D01*
+X003385Y008802D02*
+X028282Y008802D01*
+X028282Y008900D02*
+X003385Y008900D01*
+X003385Y008999D02*
+X028282Y008999D01*
+X028282Y009098D02*
+X021936Y009098D01*
+X021936Y009196D02*
+X028282Y009196D01*
+X028282Y009295D02*
+X021936Y009295D01*
+X021936Y009393D02*
+X028282Y009393D01*
+X028282Y009492D02*
+X025990Y009492D01*
+X026125Y009590D02*
+X028282Y009590D01*
+X027758Y010379D02*
+X026113Y010379D01*
+X025961Y010477D02*
+X027758Y010477D01*
+X027758Y010576D02*
+X021936Y010576D01*
+X021936Y010674D02*
+X027758Y010674D01*
+X027758Y010773D02*
+X021936Y010773D01*
+X021936Y010871D02*
+X027758Y010871D01*
+X027758Y010970D02*
+X021936Y010970D01*
+X021936Y011068D02*
+X027758Y011068D01*
+X027758Y011167D02*
+X021936Y011167D01*
+X021936Y011266D02*
+X027758Y011266D01*
+X027758Y011364D02*
+X021936Y011364D01*
+X021936Y011463D02*
+X027758Y011463D01*
+X027758Y011561D02*
+X021936Y011561D01*
+X021936Y011660D02*
+X027758Y011660D01*
+X027758Y011758D02*
+X021936Y011758D01*
+X021936Y011857D02*
+X027758Y011857D01*
+X027758Y011955D02*
+X021936Y011955D01*
+X021936Y012054D02*
+X027758Y012054D01*
+X027758Y012152D02*
+X021936Y012152D01*
+X021936Y012251D02*
+X027758Y012251D01*
+X027758Y012349D02*
+X021936Y012349D01*
+X021936Y012448D02*
+X027758Y012448D01*
+X027758Y012547D02*
+X021936Y012547D01*
+X021936Y012645D02*
+X027758Y012645D01*
+X027758Y012744D02*
+X021936Y012744D01*
+X022000Y012842D02*
+X027758Y012842D01*
+X027758Y012941D02*
+X022108Y012941D01*
+X022215Y013039D02*
+X025076Y013039D01*
+X024977Y013138D02*
+X022323Y013138D01*
+X022430Y013236D02*
+X024879Y013236D01*
+X025076Y013335D02*
+X028282Y013335D01*
+X028282Y013433D02*
+X024977Y013433D01*
+X024889Y013522D02*
+X022330Y013522D01*
+X021739Y012931D01*
+X021739Y009289D01*
+X020214Y009289D01*
+X018885Y010618D01*
+X018885Y011750D01*
+X018688Y011947D01*
+X016720Y011947D01*
+X016277Y012439D01*
+X016277Y015045D01*
+X028282Y015045D01*
+X028282Y013177D01*
+X025233Y013177D01*
+X024889Y013522D01*
+X025174Y013236D02*
+X028282Y013236D01*
+X028282Y013532D02*
+X016277Y013532D01*
+X016277Y013433D02*
+X022241Y013433D01*
+X022143Y013335D02*
+X016277Y013335D01*
+X016277Y013236D02*
+X022044Y013236D01*
+X021946Y013138D02*
+X016277Y013138D01*
+X016277Y013039D02*
+X021847Y013039D01*
+X021749Y012941D02*
+X016277Y012941D01*
+X016277Y012842D02*
+X021739Y012842D01*
+X021739Y012744D02*
+X016277Y012744D01*
+X016277Y012645D02*
+X021739Y012645D01*
+X021739Y012547D02*
+X016277Y012547D01*
+X016277Y012448D02*
+X021739Y012448D01*
+X021739Y012349D02*
+X016357Y012349D01*
+X016446Y012251D02*
+X021739Y012251D01*
+X021739Y012152D02*
+X016535Y012152D01*
+X016623Y012054D02*
+X021739Y012054D01*
+X021739Y011955D02*
+X016712Y011955D01*
+X015981Y011955D02*
+X009879Y011955D01*
+X009879Y011857D02*
+X015981Y011857D01*
+X015981Y011758D02*
+X009879Y011758D01*
+X009879Y011660D02*
+X015981Y011660D01*
+X015981Y011561D02*
+X009879Y011561D01*
+X009879Y011463D02*
+X015981Y011463D01*
+X015981Y011364D02*
+X009879Y011364D01*
+X009879Y011266D02*
+X015981Y011266D01*
+X015981Y011167D02*
+X009879Y011167D01*
+X009879Y011068D02*
+X015981Y011068D01*
+X015981Y010970D02*
+X009879Y010970D01*
+X009879Y010871D02*
+X015981Y010871D01*
+X015981Y010773D02*
+X010709Y010773D01*
+X010666Y010815D02*
+X009879Y010815D01*
+X009879Y015045D01*
+X015981Y015045D01*
+X015981Y010618D01*
+X015096Y010618D01*
+X014160Y009683D01*
+X011011Y009683D01*
+X011011Y010471D01*
+X010666Y010815D01*
+X010807Y010674D02*
+X015981Y010674D01*
+X015151Y010379D02*
+X018829Y010379D01*
+X018928Y010280D02*
+X015053Y010280D01*
+X014954Y010182D02*
+X019026Y010182D01*
+X019125Y010083D02*
+X014856Y010083D01*
+X014757Y009984D02*
+X019223Y009984D01*
+X019322Y009886D02*
+X014659Y009886D01*
+X014560Y009787D02*
+X019420Y009787D01*
+X019519Y009689D02*
+X014461Y009689D01*
+X014363Y009590D02*
+X019618Y009590D01*
+X019716Y009492D02*
+X014264Y009492D01*
+X014166Y009689D02*
+X011011Y009689D01*
+X011011Y009787D02*
+X014265Y009787D01*
+X014363Y009886D02*
+X011011Y009886D01*
+X011011Y009984D02*
+X014462Y009984D01*
+X014560Y010083D02*
+X011011Y010083D01*
+X011011Y010182D02*
+X014659Y010182D01*
+X014757Y010280D02*
+X011011Y010280D01*
+X011011Y010379D02*
+X014856Y010379D01*
+X014954Y010477D02*
+X011004Y010477D01*
+X010906Y010576D02*
+X015053Y010576D01*
+X015981Y012054D02*
+X009879Y012054D01*
+X009879Y012152D02*
+X015981Y012152D01*
+X015981Y012251D02*
+X009879Y012251D01*
+X009879Y012349D02*
+X015981Y012349D01*
+X015981Y012448D02*
+X009879Y012448D01*
+X009879Y012547D02*
+X015981Y012547D01*
+X015981Y012645D02*
+X009879Y012645D01*
+X009879Y012744D02*
+X015981Y012744D01*
+X015981Y012842D02*
+X009879Y012842D01*
+X009879Y012941D02*
+X015981Y012941D01*
+X015981Y013039D02*
+X009879Y013039D01*
+X009879Y013138D02*
+X015981Y013138D01*
+X015981Y013236D02*
+X009879Y013236D01*
+X009879Y013335D02*
+X015981Y013335D01*
+X015981Y013433D02*
+X009879Y013433D01*
+X009879Y013532D02*
+X015981Y013532D01*
+X015981Y013631D02*
+X009879Y013631D01*
+X009879Y013729D02*
+X015981Y013729D01*
+X015981Y013828D02*
+X009879Y013828D01*
+X009879Y013926D02*
+X015981Y013926D01*
+X015981Y014025D02*
+X009879Y014025D01*
+X009879Y014123D02*
+X015981Y014123D01*
+X015981Y014222D02*
+X009879Y014222D01*
+X009879Y014320D02*
+X015981Y014320D01*
+X015981Y014419D02*
+X009879Y014419D01*
+X009879Y014517D02*
+X015981Y014517D01*
+X015981Y014616D02*
+X009879Y014616D01*
+X009879Y014715D02*
+X015981Y014715D01*
+X015981Y014813D02*
+X009879Y014813D01*
+X009879Y014912D02*
+X015981Y014912D01*
+X015981Y015010D02*
+X009879Y015010D01*
+X009633Y015010D02*
+X003385Y015010D01*
+X003385Y015045D02*
+X009633Y015045D01*
+X009633Y010766D01*
+X008009Y010766D01*
+X007271Y011504D01*
+X003385Y011504D01*
+X003385Y015045D01*
+X003385Y014912D02*
+X009633Y014912D01*
+X009633Y014813D02*
+X003385Y014813D01*
+X003385Y014715D02*
+X009633Y014715D01*
+X009633Y014616D02*
+X003385Y014616D01*
+X003385Y014517D02*
+X009633Y014517D01*
+X009633Y014419D02*
+X003385Y014419D01*
+X003385Y014320D02*
+X009633Y014320D01*
+X009633Y014222D02*
+X003385Y014222D01*
+X003385Y014123D02*
+X009633Y014123D01*
+X009633Y014025D02*
+X003385Y014025D01*
+X003385Y013926D02*
+X009633Y013926D01*
+X009633Y013828D02*
+X003385Y013828D01*
+X003385Y013729D02*
+X009633Y013729D01*
+X009633Y013631D02*
+X003385Y013631D01*
+X003385Y013532D02*
+X009633Y013532D01*
+X009633Y013433D02*
+X003385Y013433D01*
+X003385Y013335D02*
+X009633Y013335D01*
+X009633Y013236D02*
+X003385Y013236D01*
+X003385Y013138D02*
+X009633Y013138D01*
+X009633Y013039D02*
+X003385Y013039D01*
+X003385Y012941D02*
+X009633Y012941D01*
+X009633Y012842D02*
+X003385Y012842D01*
+X003385Y012744D02*
+X009633Y012744D01*
+X009633Y012645D02*
+X003385Y012645D01*
+X003385Y012547D02*
+X009633Y012547D01*
+X009633Y012448D02*
+X003385Y012448D01*
+X003385Y012349D02*
+X009633Y012349D01*
+X009633Y012251D02*
+X003385Y012251D01*
+X003385Y012152D02*
+X009633Y012152D01*
+X009633Y012054D02*
+X003385Y012054D01*
+X003385Y011955D02*
+X009633Y011955D01*
+X009633Y011857D02*
+X003385Y011857D01*
+X003385Y011758D02*
+X009633Y011758D01*
+X009633Y011660D02*
+X003385Y011660D01*
+X003385Y011561D02*
+X009633Y011561D01*
+X009633Y011463D02*
+X007312Y011463D01*
+X007411Y011364D02*
+X009633Y011364D01*
+X009633Y011266D02*
+X007509Y011266D01*
+X007608Y011167D02*
+X009633Y011167D01*
+X009633Y011068D02*
+X007706Y011068D01*
+X007805Y010970D02*
+X009633Y010970D01*
+X009633Y010871D02*
+X007903Y010871D01*
+X008002Y010773D02*
+X009633Y010773D01*
+X010660Y010477D02*
+X003385Y010477D01*
+X003385Y010379D02*
+X010716Y010379D01*
+X010716Y010280D02*
+X003385Y010280D01*
+X003385Y010182D02*
+X010716Y010182D01*
+X010716Y010083D02*
+X003385Y010083D01*
+X003385Y009984D02*
+X010716Y009984D01*
+X010716Y009886D02*
+X003385Y009886D01*
+X003385Y009787D02*
+X010716Y009787D01*
+X010716Y009689D02*
+X003385Y009689D01*
+X003385Y009590D02*
+X010716Y009590D01*
+X010716Y009492D02*
+X003385Y009492D01*
+X003385Y009393D02*
+X019815Y009393D01*
+X019913Y009295D02*
+X003385Y009295D01*
+X003385Y009196D02*
+X020012Y009196D01*
+X020110Y009098D02*
+X003385Y009098D01*
+X003385Y010576D02*
+X007904Y010576D01*
+X007805Y010674D02*
+X003385Y010674D01*
+X003385Y010773D02*
+X007707Y010773D01*
+X007608Y010871D02*
+X003385Y010871D01*
+X003385Y010970D02*
+X007510Y010970D01*
+X007411Y011068D02*
+X003385Y011068D01*
+X003385Y011167D02*
+X007312Y011167D01*
+X007214Y011266D02*
+X003385Y011266D01*
+X003385Y006634D02*
+X010717Y006634D01*
+X010647Y006535D02*
+X003385Y006535D01*
+X003385Y006437D02*
+X010614Y006437D01*
+X010614Y006338D02*
+X003385Y006338D01*
+X003385Y006240D02*
+X010069Y006240D01*
+X010565Y005944D02*
+X028282Y005944D01*
+X028282Y005846D02*
+X010665Y005846D01*
+X010707Y005747D02*
+X028282Y005747D01*
+X028282Y005649D02*
+X010719Y005649D01*
+X010707Y005550D02*
+X028282Y005550D01*
+X028282Y005451D02*
+X010667Y005451D01*
+X010569Y005353D02*
+X028282Y005353D01*
+X028282Y005254D02*
+X010232Y005254D01*
+X010134Y005156D02*
+X028282Y005156D01*
+X028282Y006043D02*
+X011043Y006043D01*
+X010880Y006043D02*
+X010873Y006043D01*
+X011209Y006141D02*
+X028282Y006141D01*
+X028282Y006240D02*
+X011278Y006240D01*
+X011310Y006338D02*
+X028282Y006338D01*
+X028282Y006437D02*
+X011310Y006437D01*
+X011276Y006535D02*
+X028282Y006535D01*
+X024673Y009492D02*
+X021936Y009492D01*
+X021936Y009590D02*
+X024538Y009590D01*
+X024450Y009689D02*
+X021936Y009689D01*
+X021936Y009787D02*
+X024409Y009787D01*
+X024375Y009886D02*
+X021936Y009886D01*
+X021936Y009984D02*
+X024375Y009984D01*
+X024375Y010083D02*
+X021936Y010083D01*
+X021936Y010182D02*
+X024414Y010182D01*
+X024455Y010280D02*
+X021936Y010280D01*
+X021936Y010379D02*
+X024550Y010379D01*
+X024703Y010477D02*
+X021936Y010477D01*
+X021739Y010477D02*
+X019026Y010477D01*
+X019124Y010379D02*
+X021739Y010379D01*
+X021739Y010280D02*
+X019223Y010280D01*
+X019322Y010182D02*
+X021739Y010182D01*
+X021739Y010083D02*
+X019420Y010083D01*
+X019519Y009984D02*
+X021739Y009984D01*
+X021739Y009886D02*
+X019617Y009886D01*
+X019716Y009787D02*
+X021739Y009787D01*
+X021739Y009689D02*
+X019814Y009689D01*
+X019913Y009590D02*
+X021739Y009590D01*
+X021739Y009492D02*
+X020011Y009492D01*
+X020110Y009393D02*
+X021739Y009393D01*
+X021739Y009295D02*
+X020208Y009295D01*
+X018927Y010576D02*
+X021739Y010576D01*
+X021739Y010674D02*
+X018885Y010674D01*
+X018885Y010773D02*
+X021739Y010773D01*
+X021739Y010871D02*
+X018885Y010871D01*
+X018885Y010970D02*
+X021739Y010970D01*
+X021739Y011068D02*
+X018885Y011068D01*
+X018885Y011167D02*
+X021739Y011167D01*
+X021739Y011266D02*
+X018885Y011266D01*
+X018885Y011364D02*
+X021739Y011364D01*
+X021739Y011463D02*
+X018885Y011463D01*
+X018885Y011561D02*
+X021739Y011561D01*
+X021739Y011660D02*
+X018885Y011660D01*
+X018877Y011758D02*
+X021739Y011758D01*
+X021739Y011857D02*
+X018778Y011857D01*
+X016277Y013631D02*
+X028282Y013631D01*
+X028282Y013729D02*
+X016277Y013729D01*
+X016277Y013828D02*
+X028282Y013828D01*
+X028282Y013926D02*
+X016277Y013926D01*
+X016277Y014025D02*
+X028282Y014025D01*
+X028282Y014123D02*
+X016277Y014123D01*
+X016277Y014222D02*
+X028282Y014222D01*
+X028282Y014320D02*
+X016277Y014320D01*
+X016277Y014419D02*
+X028282Y014419D01*
+X028282Y014517D02*
+X016277Y014517D01*
+X016277Y014616D02*
+X028282Y014616D01*
+X028282Y014715D02*
+X016277Y014715D01*
+X016277Y014813D02*
+X028282Y014813D01*
+X028282Y014912D02*
+X016277Y014912D01*
+X016277Y015010D02*
+X028282Y015010D01*
+X011651Y006435D02*
+X011454Y006435D01*
+X010371Y005648D02*
+X010027Y005303D01*
+X007664Y005303D01*
+X007419Y005550D02*
+X006434Y005550D01*
+X006503Y005451D02*
+X007349Y005451D01*
+X007316Y005353D02*
+X006536Y005353D01*
+X006536Y005254D02*
+X007316Y005254D01*
+X007349Y005156D02*
+X006504Y005156D01*
+X006188Y005303D02*
+X004416Y005303D01*
+X004367Y005352D01*
+X004662Y005550D02*
+X004564Y005648D01*
+X006264Y005649D02*
+X007369Y005649D01*
+D14*
+X025332Y009978D02*
+X028088Y009978D01*
+X028088Y014211D01*
+X025332Y014211D01*
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBO b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBO
new file mode 100644
index 0000000..add7431
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBO
@@ -0,0 +1,10 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBS b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBS
new file mode 100644
index 0000000..234d994
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GBS
@@ -0,0 +1,30 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0907*%
+%ADD11C,0.0674*%
+D10*
+X005873Y010569D02*
+X006700Y010569D01*
+X006700Y012537D02*
+X005873Y012537D01*
+X024918Y012242D02*
+X025745Y012242D01*
+X025745Y014211D02*
+X024918Y014211D01*
+X024918Y009978D02*
+X025745Y009978D01*
+X025745Y008010D02*
+X024918Y008010D01*
+D11*
+X021050Y007961D03*
+X021050Y009929D03*
+X022534Y012334D03*
+X021142Y013726D03*
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTL b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTL
new file mode 100644
index 0000000..f605a11
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTL
@@ -0,0 +1,1810 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0000*%
+%ADD11R,0.0098X0.0394*%
+%ADD12R,0.0630X0.1063*%
+%ADD13R,0.0433X0.0394*%
+%ADD14R,0.0276X0.0354*%
+%ADD15R,0.0354X0.0276*%
+%ADD16R,0.0512X0.0591*%
+%ADD17R,0.0630X0.0787*%
+%ADD18R,0.0941X0.3740*%
+%ADD19R,0.3429X0.0937*%
+%ADD20R,0.2453X0.2654*%
+%ADD21R,0.0898X0.0639*%
+%ADD22R,0.0315X0.0134*%
+%ADD23R,0.0512X0.0134*%
+%ADD24R,0.0673X0.0902*%
+%ADD25C,0.0827*%
+%ADD26R,0.0358X0.0480*%
+%ADD27R,0.0472X0.0472*%
+%ADD28R,0.0630X0.0710*%
+%ADD29C,0.0594*%
+%ADD30C,0.0436*%
+%ADD31C,0.0100*%
+%ADD32C,0.0120*%
+D10*
+X003235Y004959D02*
+X003235Y015195D01*
+X028432Y015195D01*
+X028432Y004959D01*
+X003235Y004959D01*
+D11*
+X010765Y005800D03*
+X010962Y005800D03*
+X011159Y005800D03*
+X011355Y005800D03*
+X011552Y005800D03*
+X011552Y007464D03*
+X011355Y007464D03*
+X011159Y007464D03*
+X010962Y007464D03*
+X010765Y007464D03*
+D12*
+X005066Y007616D03*
+X003964Y007616D03*
+X003964Y006337D03*
+X005066Y006337D03*
+X005066Y008896D03*
+X003964Y008896D03*
+X012527Y010667D03*
+X013629Y010667D03*
+X013629Y011947D03*
+X012527Y011947D03*
+X012527Y013226D03*
+X013629Y013226D03*
+X013629Y014506D03*
+X012527Y014506D03*
+D13*
+X009426Y006730D03*
+X008757Y006730D03*
+X008757Y005894D03*
+X009426Y005894D03*
+D14*
+X008659Y005254D03*
+X008147Y005254D03*
+X007182Y005254D03*
+X006670Y005254D03*
+X006670Y005746D03*
+X007182Y005746D03*
+X008836Y007370D03*
+X009347Y007370D03*
+X009426Y008748D03*
+X009938Y008748D03*
+X012182Y007419D03*
+X012694Y007419D03*
+X012694Y006927D03*
+X012182Y006927D03*
+X012773Y005795D03*
+X013284Y005795D03*
+D15*
+X012143Y005786D03*
+X012143Y006297D03*
+X010027Y006671D03*
+X010027Y007183D03*
+D16*
+X009475Y008108D03*
+X008806Y008108D03*
+D17*
+X008885Y009880D03*
+X009987Y009880D03*
+D18*
+X011090Y012882D03*
+X008471Y012882D03*
+D19*
+X016720Y011091D03*
+X016720Y008473D03*
+D20*
+X018033Y013423D03*
+D21*
+X015220Y012526D03*
+X015220Y014321D03*
+D22*
+X010716Y010264D03*
+X010716Y010008D03*
+X010716Y009752D03*
+X010716Y009496D03*
+D23*
+X011798Y009496D03*
+X011798Y009752D03*
+X011798Y010008D03*
+X011798Y010264D03*
+D24*
+X011462Y009880D03*
+D25*
+X006700Y010569D02*
+X005873Y010569D01*
+X005873Y012537D02*
+X006700Y012537D01*
+X024918Y012242D02*
+X025745Y012242D01*
+X025745Y014211D02*
+X024918Y014211D01*
+X024918Y009978D02*
+X025745Y009978D01*
+X025745Y008010D02*
+X024918Y008010D01*
+D26*
+X005159Y005352D03*
+X003871Y005352D03*
+D27*
+X007153Y007223D03*
+X007979Y007223D03*
+X025115Y005992D03*
+X025942Y005992D03*
+D28*
+X026740Y005992D03*
+X027860Y005992D03*
+X007978Y006534D03*
+X006859Y006534D03*
+D29*
+X021050Y007961D03*
+X021050Y009929D03*
+X022534Y012334D03*
+X021142Y013726D03*
+D30*
+X020460Y014161D03*
+X021838Y014654D03*
+X023659Y014211D03*
+X025381Y013473D03*
+X026907Y013866D03*
+X027546Y011799D03*
+X024692Y011455D03*
+X022723Y011750D03*
+X021001Y011701D03*
+X020509Y012341D03*
+X020706Y012882D03*
+X019279Y011750D03*
+X019525Y011160D03*
+X018934Y009782D03*
+X019279Y008847D03*
+X021641Y007518D03*
+X021887Y008305D03*
+X023708Y007518D03*
+X025086Y006681D03*
+X025430Y007223D03*
+X023954Y006337D03*
+X023757Y005549D03*
+X021739Y005549D03*
+X019721Y005549D03*
+X017753Y005549D03*
+X015538Y005549D03*
+X014111Y005549D03*
+X014210Y006435D03*
+X014800Y006829D03*
+X014456Y007518D03*
+X015489Y007518D03*
+X013471Y007075D03*
+X012684Y006386D03*
+X011651Y006435D03*
+X010962Y006386D03*
+X010371Y005648D03*
+X007664Y005845D03*
+X007664Y005303D03*
+X006188Y005303D03*
+X005893Y006484D03*
+X006533Y007419D03*
+X005893Y008108D03*
+X007123Y008994D03*
+X007812Y008305D03*
+X008550Y008945D03*
+X007960Y010077D03*
+X005893Y009339D03*
+X010223Y011061D03*
+X010223Y011652D03*
+X010223Y012242D03*
+X010223Y012882D03*
+X010223Y013522D03*
+X010223Y014112D03*
+X010223Y014752D03*
+X007615Y014801D03*
+X006483Y014801D03*
+X006483Y014112D03*
+X007615Y014063D03*
+X007615Y012980D03*
+X007566Y011849D03*
+X004810Y012193D03*
+X003678Y012242D03*
+X003678Y013276D03*
+X004958Y014112D03*
+X004958Y014801D03*
+X003727Y014703D03*
+X011355Y010667D03*
+X011897Y010667D03*
+X012389Y009831D03*
+X012930Y009831D03*
+X017655Y007469D03*
+X019672Y007469D03*
+X022527Y009634D03*
+X023708Y010126D03*
+X026513Y009043D03*
+X028088Y009978D03*
+X027349Y007567D03*
+X016473Y012685D03*
+X016473Y013226D03*
+X016473Y013817D03*
+X016473Y014358D03*
+X004367Y005352D03*
+D31*
+X003871Y005352D01*
+X003385Y005353D02*
+X004367Y005353D01*
+X004367Y005451D02*
+X003385Y005451D01*
+X003385Y005550D02*
+X004367Y005550D01*
+X004367Y005649D02*
+X003385Y005649D01*
+X003385Y005747D02*
+X004367Y005747D01*
+X004367Y005846D02*
+X003385Y005846D01*
+X003385Y005944D02*
+X004367Y005944D01*
+X004367Y006043D02*
+X003385Y006043D01*
+X003385Y006141D02*
+X004367Y006141D01*
+X004367Y006240D02*
+X003385Y006240D01*
+X003385Y006338D02*
+X004367Y006338D01*
+X004367Y006437D02*
+X003385Y006437D01*
+X003385Y006535D02*
+X004367Y006535D01*
+X004367Y006634D02*
+X003385Y006634D01*
+X003385Y006733D02*
+X004367Y006733D01*
+X004367Y006831D02*
+X003385Y006831D01*
+X003385Y006930D02*
+X004367Y006930D01*
+X004367Y007028D02*
+X003385Y007028D01*
+X003385Y007127D02*
+X004367Y007127D01*
+X004367Y007225D02*
+X003385Y007225D01*
+X003385Y007324D02*
+X004367Y007324D01*
+X004367Y007422D02*
+X003385Y007422D01*
+X003385Y007521D02*
+X004367Y007521D01*
+X004367Y007619D02*
+X003385Y007619D01*
+X003385Y007718D02*
+X004367Y007718D01*
+X004367Y007816D02*
+X003385Y007816D01*
+X003385Y007915D02*
+X004367Y007915D01*
+X004367Y008014D02*
+X003385Y008014D01*
+X003385Y008112D02*
+X004367Y008112D01*
+X004367Y008211D02*
+X003385Y008211D01*
+X003385Y008309D02*
+X004367Y008309D01*
+X004367Y008408D02*
+X003385Y008408D01*
+X003385Y008506D02*
+X004367Y008506D01*
+X004367Y008605D02*
+X003385Y008605D01*
+X003385Y008703D02*
+X004367Y008703D01*
+X004367Y008802D02*
+X003385Y008802D01*
+X003385Y008900D02*
+X004367Y008900D01*
+X004367Y008999D02*
+X003385Y008999D01*
+X003385Y009098D02*
+X004367Y009098D01*
+X004367Y009196D02*
+X003385Y009196D01*
+X003385Y009295D02*
+X004367Y009295D01*
+X004367Y009393D02*
+X003385Y009393D01*
+X003385Y009492D02*
+X004367Y009492D01*
+X004367Y009536D02*
+X004367Y005109D01*
+X003385Y005109D01*
+X003385Y015045D01*
+X009633Y015045D01*
+X009633Y010766D01*
+X008009Y010766D01*
+X007271Y011504D01*
+X005302Y011504D01*
+X004712Y010913D01*
+X004712Y009880D01*
+X004367Y009536D01*
+X004422Y009590D02*
+X003385Y009590D01*
+X003385Y009689D02*
+X004520Y009689D01*
+X004619Y009787D02*
+X003385Y009787D01*
+X003385Y009886D02*
+X004712Y009886D01*
+X004712Y009984D02*
+X003385Y009984D01*
+X003385Y010083D02*
+X004712Y010083D01*
+X004712Y010182D02*
+X003385Y010182D01*
+X003385Y010280D02*
+X004712Y010280D01*
+X004712Y010379D02*
+X003385Y010379D01*
+X003385Y010477D02*
+X004712Y010477D01*
+X004712Y010576D02*
+X003385Y010576D01*
+X003385Y010674D02*
+X004712Y010674D01*
+X004712Y010773D02*
+X003385Y010773D01*
+X003385Y010871D02*
+X004712Y010871D01*
+X004768Y010970D02*
+X003385Y010970D01*
+X003385Y011068D02*
+X004867Y011068D01*
+X004965Y011167D02*
+X003385Y011167D01*
+X003385Y011266D02*
+X005064Y011266D01*
+X005162Y011364D02*
+X003385Y011364D01*
+X003385Y011463D02*
+X005261Y011463D01*
+X005401Y011307D02*
+X007172Y011307D01*
+X007910Y010569D01*
+X009436Y010569D01*
+X009436Y009055D01*
+X009235Y009055D01*
+X009158Y008979D01*
+X009158Y008526D01*
+X009090Y008457D01*
+X009090Y007759D01*
+X009166Y007683D01*
+X009436Y007683D01*
+X009436Y007677D01*
+X009156Y007677D01*
+X009080Y007601D01*
+X009080Y007139D01*
+X009156Y007063D01*
+X009400Y007063D01*
+X009406Y007057D01*
+X009156Y007057D01*
+X009080Y006981D01*
+X009080Y006480D01*
+X009156Y006404D01*
+X009436Y006404D01*
+X009436Y005109D01*
+X008414Y005109D01*
+X008414Y005485D01*
+X008338Y005561D01*
+X007955Y005561D01*
+X007927Y005533D01*
+X007886Y005574D01*
+X007959Y005647D01*
+X007987Y005714D01*
+X008410Y005714D01*
+X008410Y005643D01*
+X008487Y005567D01*
+X009027Y005567D01*
+X009103Y005643D01*
+X009103Y006144D01*
+X009027Y006221D01*
+X008487Y006221D01*
+X008423Y006157D01*
+X008423Y006942D01*
+X008347Y007018D01*
+X008346Y007018D01*
+X008346Y007513D01*
+X008269Y007589D01*
+X007689Y007589D01*
+X007613Y007513D01*
+X007613Y007018D01*
+X007609Y007018D01*
+X007533Y006942D01*
+X007533Y006167D01*
+X007467Y006140D01*
+X007377Y006050D01*
+X007374Y006053D01*
+X007232Y006053D01*
+X007303Y006125D01*
+X007303Y006942D01*
+X007227Y007018D01*
+X006490Y007018D01*
+X006414Y006942D01*
+X006414Y006125D01*
+X006485Y006053D01*
+X006479Y006053D01*
+X006403Y005977D01*
+X006403Y005581D01*
+X006385Y005598D01*
+X006257Y005651D01*
+X006119Y005651D01*
+X005991Y005598D01*
+X005893Y005500D01*
+X005840Y005372D01*
+X005840Y005234D01*
+X005892Y005109D01*
+X004662Y005109D01*
+X004662Y005156D01*
+X005872Y005156D01*
+X005840Y005254D02*
+X004703Y005254D01*
+X004715Y005283D02*
+X004715Y005422D01*
+X004662Y005549D01*
+X004662Y009486D01*
+X004958Y009782D01*
+X004958Y010864D01*
+X005401Y011307D01*
+X005359Y011266D02*
+X007214Y011266D01*
+X007312Y011167D02*
+X005260Y011167D01*
+X005162Y011068D02*
+X007411Y011068D01*
+X007510Y010970D02*
+X005063Y010970D01*
+X004965Y010871D02*
+X007608Y010871D01*
+X007707Y010773D02*
+X004958Y010773D01*
+X004958Y010674D02*
+X007805Y010674D01*
+X007904Y010576D02*
+X004958Y010576D01*
+X004958Y010477D02*
+X009436Y010477D01*
+X009436Y010379D02*
+X004958Y010379D01*
+X004958Y010280D02*
+X009436Y010280D01*
+X009436Y010182D02*
+X004958Y010182D01*
+X004958Y010083D02*
+X009436Y010083D01*
+X009436Y009984D02*
+X004958Y009984D01*
+X004958Y009886D02*
+X009436Y009886D01*
+X009436Y009787D02*
+X004958Y009787D01*
+X004865Y009689D02*
+X009436Y009689D01*
+X009436Y009590D02*
+X004766Y009590D01*
+X004668Y009492D02*
+X009436Y009492D01*
+X009436Y009393D02*
+X004662Y009393D01*
+X004662Y009295D02*
+X009436Y009295D01*
+X009436Y009196D02*
+X004662Y009196D01*
+X004662Y009098D02*
+X009436Y009098D01*
+X009633Y009098D02*
+X010536Y009098D01*
+X010536Y009196D02*
+X009633Y009196D01*
+X009633Y009295D02*
+X010536Y009295D01*
+X010536Y009299D02*
+X010536Y008231D01*
+X010641Y008125D01*
+X010976Y007791D01*
+X010868Y007791D01*
+X010662Y007791D01*
+X010586Y007715D01*
+X010586Y007558D01*
+X009861Y008282D01*
+X009861Y008457D01*
+X009785Y008534D01*
+X009694Y008534D01*
+X009694Y008979D01*
+X009633Y009040D01*
+X009633Y010569D01*
+X010027Y010569D01*
+X010076Y010618D01*
+X010568Y010618D01*
+X010962Y010224D01*
+X010962Y009683D01*
+X010949Y009671D01*
+X010927Y009693D01*
+X010504Y009693D01*
+X010428Y009617D01*
+X010428Y009375D01*
+X010504Y009299D01*
+X010536Y009299D01*
+X010428Y009393D02*
+X009633Y009393D01*
+X009633Y009492D02*
+X010428Y009492D01*
+X010428Y009590D02*
+X009633Y009590D01*
+X009633Y009689D02*
+X010500Y009689D01*
+X010716Y009752D02*
+X010716Y010008D01*
+X010716Y010264D01*
+X010808Y010379D02*
+X009633Y010379D01*
+X009633Y010477D02*
+X010709Y010477D01*
+X010610Y010576D02*
+X010033Y010576D01*
+X009879Y010815D02*
+X010666Y010815D01*
+X011159Y010323D01*
+X011159Y009536D01*
+X011003Y009380D01*
+X011003Y009375D01*
+X010927Y009299D01*
+X010922Y009299D01*
+X010912Y009289D01*
+X010912Y008404D01*
+X011326Y007990D01*
+X011330Y007993D01*
+X012462Y007993D01*
+X012611Y007993D01*
+X012643Y007961D01*
+X012684Y007961D01*
+X013127Y007518D01*
+X013767Y007518D01*
+X014013Y007764D01*
+X014013Y009683D01*
+X013324Y009683D01*
+X012979Y010028D01*
+X012979Y015045D01*
+X009879Y015045D01*
+X009879Y010815D01*
+X009879Y010871D02*
+X012979Y010871D01*
+X012979Y010773D02*
+X010709Y010773D01*
+X010807Y010674D02*
+X012979Y010674D01*
+X012979Y010576D02*
+X010906Y010576D01*
+X011004Y010477D02*
+X012979Y010477D01*
+X012979Y010379D02*
+X011103Y010379D01*
+X011159Y010280D02*
+X012979Y010280D01*
+X012979Y010182D02*
+X011159Y010182D01*
+X011159Y010083D02*
+X012979Y010083D01*
+X013023Y009984D02*
+X011159Y009984D01*
+X011159Y009886D02*
+X013121Y009886D01*
+X013220Y009787D02*
+X011159Y009787D01*
+X011159Y009689D02*
+X013318Y009689D01*
+X013422Y009880D02*
+X013176Y010126D01*
+X013176Y015045D01*
+X015981Y015045D01*
+X015981Y012390D01*
+X016523Y011750D01*
+X018491Y011750D01*
+X018639Y011602D01*
+X018639Y010618D01*
+X017851Y009880D01*
+X013422Y009880D01*
+X013416Y009886D02*
+X017858Y009886D01*
+X017963Y009984D02*
+X013318Y009984D01*
+X013219Y010083D02*
+X018068Y010083D01*
+X018173Y010182D02*
+X013176Y010182D01*
+X013176Y010280D02*
+X018278Y010280D01*
+X018383Y010379D02*
+X013176Y010379D01*
+X013176Y010477D02*
+X018488Y010477D01*
+X018594Y010576D02*
+X013176Y010576D01*
+X013176Y010674D02*
+X018639Y010674D01*
+X018639Y010773D02*
+X013176Y010773D01*
+X013176Y010871D02*
+X018639Y010871D01*
+X018639Y010970D02*
+X013176Y010970D01*
+X013176Y011068D02*
+X018639Y011068D01*
+X018639Y011167D02*
+X013176Y011167D01*
+X013176Y011266D02*
+X018639Y011266D01*
+X018639Y011364D02*
+X013176Y011364D01*
+X013176Y011463D02*
+X018639Y011463D01*
+X018639Y011561D02*
+X013176Y011561D01*
+X013176Y011660D02*
+X018582Y011660D01*
+X018778Y011857D02*
+X021739Y011857D01*
+X021739Y011955D02*
+X016712Y011955D01*
+X016720Y011947D02*
+X016277Y012439D01*
+X016277Y015045D01*
+X028282Y015045D01*
+X028282Y013177D01*
+X025233Y013177D01*
+X024889Y013522D01*
+X022330Y013522D01*
+X021739Y012931D01*
+X021739Y009289D01*
+X020214Y009289D01*
+X018885Y010618D01*
+X018885Y011750D01*
+X018688Y011947D01*
+X016720Y011947D01*
+X016623Y012054D02*
+X021739Y012054D01*
+X021739Y012152D02*
+X016535Y012152D01*
+X016446Y012251D02*
+X021739Y012251D01*
+X021739Y012349D02*
+X016357Y012349D01*
+X016277Y012448D02*
+X021739Y012448D01*
+X021739Y012547D02*
+X016277Y012547D01*
+X016277Y012645D02*
+X021739Y012645D01*
+X021739Y012744D02*
+X016277Y012744D01*
+X016277Y012842D02*
+X021739Y012842D01*
+X021749Y012941D02*
+X016277Y012941D01*
+X016277Y013039D02*
+X021847Y013039D01*
+X021946Y013138D02*
+X016277Y013138D01*
+X016277Y013236D02*
+X022044Y013236D01*
+X022143Y013335D02*
+X016277Y013335D01*
+X016277Y013433D02*
+X022241Y013433D01*
+X022527Y013325D02*
+X024790Y013325D01*
+X025135Y012980D01*
+X028282Y012980D01*
+X028282Y010275D01*
+X028157Y010326D01*
+X028018Y010326D01*
+X027890Y010274D01*
+X027793Y010176D01*
+X027740Y010048D01*
+X027740Y009909D01*
+X027793Y009781D01*
+X027890Y009683D01*
+X028006Y009635D01*
+X028006Y006477D01*
+X027491Y006477D01*
+X027415Y006401D01*
+X027415Y005583D01*
+X027491Y005507D01*
+X027652Y005507D01*
+X027652Y005346D01*
+X013474Y005346D01*
+X013474Y005488D01*
+X013476Y005488D01*
+X013552Y005564D01*
+X013552Y006026D01*
+X013476Y006102D01*
+X013093Y006102D01*
+X013029Y006038D01*
+X012964Y006102D01*
+X012581Y006102D01*
+X012505Y006026D01*
+X012505Y005965D01*
+X012450Y005965D01*
+X012450Y005977D01*
+X012374Y006053D01*
+X011912Y006053D01*
+X011836Y005977D01*
+X011836Y005733D01*
+X011684Y005582D01*
+X011535Y005582D01*
+X011535Y005875D01*
+X011535Y005875D01*
+X011535Y006051D01*
+X011458Y006127D01*
+X011252Y006127D01*
+X011195Y006127D01*
+X011257Y006189D01*
+X011310Y006317D01*
+X011310Y006455D01*
+X011257Y006583D01*
+X011159Y006681D01*
+X011031Y006734D01*
+X010945Y006734D01*
+X010945Y006936D01*
+X011028Y006853D01*
+X011133Y006747D01*
+X011914Y006747D01*
+X011914Y006696D01*
+X011990Y006620D01*
+X012374Y006620D01*
+X012450Y006696D01*
+X012450Y007158D01*
+X012435Y007173D01*
+X012450Y007188D01*
+X012450Y007650D01*
+X012374Y007726D01*
+X011990Y007726D01*
+X011914Y007650D01*
+X011914Y007644D01*
+X011731Y007644D01*
+X011731Y007715D01*
+X011682Y007764D01*
+X012536Y007764D01*
+X013029Y007321D01*
+X013865Y007321D01*
+X014210Y007665D01*
+X014210Y009437D01*
+X014407Y009634D01*
+X017901Y009634D01*
+X018540Y010224D01*
+X018983Y010224D01*
+X020115Y009093D01*
+X021936Y009093D01*
+X021936Y012784D01*
+X022527Y013325D01*
+X022430Y013236D02*
+X024879Y013236D01*
+X024977Y013138D02*
+X022323Y013138D01*
+X022215Y013039D02*
+X025076Y013039D01*
+X025174Y013236D02*
+X028282Y013236D01*
+X028282Y013335D02*
+X025076Y013335D01*
+X024977Y013433D02*
+X028282Y013433D01*
+X028282Y013532D02*
+X016277Y013532D01*
+X016277Y013631D02*
+X028282Y013631D01*
+X028282Y013729D02*
+X016277Y013729D01*
+X016277Y013828D02*
+X028282Y013828D01*
+X028282Y013926D02*
+X016277Y013926D01*
+X016277Y014025D02*
+X028282Y014025D01*
+X028282Y014123D02*
+X016277Y014123D01*
+X016277Y014222D02*
+X028282Y014222D01*
+X028282Y014320D02*
+X016277Y014320D01*
+X016277Y014419D02*
+X028282Y014419D01*
+X028282Y014517D02*
+X016277Y014517D01*
+X016277Y014616D02*
+X028282Y014616D01*
+X028282Y014715D02*
+X016277Y014715D01*
+X016277Y014813D02*
+X028282Y014813D01*
+X028282Y014912D02*
+X016277Y014912D01*
+X016277Y015010D02*
+X028282Y015010D01*
+X028282Y012941D02*
+X022108Y012941D01*
+X022000Y012842D02*
+X028282Y012842D01*
+X028282Y012744D02*
+X021936Y012744D01*
+X021936Y012645D02*
+X028282Y012645D01*
+X028282Y012547D02*
+X021936Y012547D01*
+X021936Y012448D02*
+X028282Y012448D01*
+X028282Y012349D02*
+X021936Y012349D01*
+X021936Y012251D02*
+X028282Y012251D01*
+X028282Y012152D02*
+X021936Y012152D01*
+X021936Y012054D02*
+X028282Y012054D01*
+X028282Y011955D02*
+X021936Y011955D01*
+X021936Y011857D02*
+X028282Y011857D01*
+X028282Y011758D02*
+X021936Y011758D01*
+X021936Y011660D02*
+X028282Y011660D01*
+X028282Y011561D02*
+X021936Y011561D01*
+X021936Y011463D02*
+X028282Y011463D01*
+X028282Y011364D02*
+X021936Y011364D01*
+X021936Y011266D02*
+X028282Y011266D01*
+X028282Y011167D02*
+X021936Y011167D01*
+X021936Y011068D02*
+X028282Y011068D01*
+X028282Y010970D02*
+X021936Y010970D01*
+X021936Y010871D02*
+X028282Y010871D01*
+X028282Y010773D02*
+X021936Y010773D01*
+X021936Y010674D02*
+X028282Y010674D01*
+X028282Y010576D02*
+X021936Y010576D01*
+X021936Y010477D02*
+X024703Y010477D01*
+X024611Y010439D02*
+X024810Y010522D01*
+X025853Y010522D01*
+X026053Y010439D01*
+X026206Y010286D01*
+X026288Y010086D01*
+X026288Y009870D01*
+X026206Y009671D01*
+X026053Y009518D01*
+X025853Y009435D01*
+X024810Y009435D01*
+X024611Y009518D01*
+X024458Y009671D01*
+X024375Y009870D01*
+X024375Y010086D01*
+X024458Y010286D01*
+X024611Y010439D01*
+X024550Y010379D02*
+X021936Y010379D01*
+X021936Y010280D02*
+X024455Y010280D01*
+X024414Y010182D02*
+X021936Y010182D01*
+X021936Y010083D02*
+X024375Y010083D01*
+X024375Y009984D02*
+X021936Y009984D01*
+X021936Y009886D02*
+X024375Y009886D01*
+X024409Y009787D02*
+X021936Y009787D01*
+X021936Y009689D02*
+X024450Y009689D01*
+X024538Y009590D02*
+X021936Y009590D01*
+X021936Y009492D02*
+X024673Y009492D01*
+X025990Y009492D02*
+X028006Y009492D01*
+X028006Y009590D02*
+X026125Y009590D01*
+X026213Y009689D02*
+X027885Y009689D01*
+X027790Y009787D02*
+X026254Y009787D01*
+X026288Y009886D02*
+X027749Y009886D01*
+X027740Y009984D02*
+X026288Y009984D01*
+X026288Y010083D02*
+X027754Y010083D01*
+X027798Y010182D02*
+X026249Y010182D01*
+X026208Y010280D02*
+X027906Y010280D01*
+X028269Y010280D02*
+X028282Y010280D01*
+X028282Y010379D02*
+X026113Y010379D01*
+X025961Y010477D02*
+X028282Y010477D01*
+X028186Y009978D02*
+X028088Y009978D01*
+X028186Y009978D02*
+X028186Y005992D01*
+X027860Y005992D01*
+X027415Y005944D02*
+X027185Y005944D01*
+X027185Y005846D02*
+X027415Y005846D01*
+X027415Y005747D02*
+X027185Y005747D01*
+X027185Y005649D02*
+X027415Y005649D01*
+X027449Y005550D02*
+X027152Y005550D01*
+X027185Y005583D02*
+X027185Y006401D01*
+X027109Y006477D01*
+X026372Y006477D01*
+X026295Y006401D01*
+X026295Y006295D01*
+X026232Y006358D01*
+X025652Y006358D01*
+X025576Y006282D01*
+X025576Y005702D01*
+X025652Y005626D01*
+X026232Y005626D01*
+X026295Y005689D01*
+X026295Y005583D01*
+X026372Y005507D01*
+X027109Y005507D01*
+X027185Y005583D01*
+X027652Y005451D02*
+X013474Y005451D01*
+X013474Y005353D02*
+X027652Y005353D01*
+X027415Y006043D02*
+X027185Y006043D01*
+X027185Y006141D02*
+X027415Y006141D01*
+X027415Y006240D02*
+X027185Y006240D01*
+X027185Y006338D02*
+X027415Y006338D01*
+X027451Y006437D02*
+X027149Y006437D01*
+X026740Y005992D02*
+X025942Y005992D01*
+X025576Y005944D02*
+X013552Y005944D01*
+X013552Y005846D02*
+X025576Y005846D01*
+X025576Y005747D02*
+X013552Y005747D01*
+X013552Y005649D02*
+X025629Y005649D01*
+X025576Y006043D02*
+X013536Y006043D01*
+X013033Y006043D02*
+X013024Y006043D01*
+X012773Y005795D02*
+X012763Y005786D01*
+X012143Y005786D01*
+X011759Y005402D01*
+X011405Y005402D01*
+X011355Y005451D01*
+X011355Y005800D01*
+X011535Y005846D02*
+X011836Y005846D01*
+X011836Y005944D02*
+X011535Y005944D01*
+X011535Y006043D02*
+X011901Y006043D01*
+X011651Y005898D02*
+X011651Y006435D01*
+X011310Y006437D02*
+X026331Y006437D01*
+X026295Y006338D02*
+X026252Y006338D01*
+X025632Y006338D02*
+X011310Y006338D01*
+X011278Y006240D02*
+X025576Y006240D01*
+X025576Y006141D02*
+X011209Y006141D01*
+X011159Y005800D02*
+X011159Y005352D01*
+X010962Y005156D01*
+X010273Y005156D01*
+X009928Y005500D01*
+X009928Y006573D01*
+X010027Y006671D01*
+X009485Y006671D01*
+X009426Y006730D01*
+X009080Y006733D02*
+X008423Y006733D01*
+X008423Y006831D02*
+X009080Y006831D01*
+X009080Y006930D02*
+X008423Y006930D01*
+X008346Y007028D02*
+X009127Y007028D01*
+X009092Y007127D02*
+X008346Y007127D01*
+X008346Y007225D02*
+X009080Y007225D01*
+X009080Y007324D02*
+X008346Y007324D01*
+X008346Y007422D02*
+X009080Y007422D01*
+X009080Y007521D02*
+X008337Y007521D01*
+X007979Y007223D02*
+X007978Y007221D01*
+X007978Y006534D01*
+X008423Y006535D02*
+X009080Y006535D01*
+X009080Y006634D02*
+X008423Y006634D01*
+X008423Y006437D02*
+X009122Y006437D01*
+X009436Y006338D02*
+X008423Y006338D01*
+X008423Y006240D02*
+X009436Y006240D01*
+X009436Y006141D02*
+X009103Y006141D01*
+X009103Y006043D02*
+X009436Y006043D01*
+X009436Y005944D02*
+X009103Y005944D01*
+X009103Y005846D02*
+X009436Y005846D01*
+X009436Y005747D02*
+X009103Y005747D01*
+X009103Y005649D02*
+X009436Y005649D01*
+X009436Y005550D02*
+X008349Y005550D01*
+X008410Y005649D02*
+X007960Y005649D01*
+X007944Y005550D02*
+X007910Y005550D01*
+X008097Y005303D02*
+X007664Y005303D01*
+X007231Y005303D01*
+X007182Y005254D01*
+X006670Y005254D02*
+X006237Y005254D01*
+X006188Y005303D01*
+X005943Y005550D02*
+X004662Y005550D01*
+X004662Y005649D02*
+X006112Y005649D01*
+X006264Y005649D02*
+X006403Y005649D01*
+X006403Y005747D02*
+X004662Y005747D01*
+X004662Y005846D02*
+X006403Y005846D01*
+X006403Y005944D02*
+X004662Y005944D01*
+X004662Y006043D02*
+X006468Y006043D01*
+X006414Y006141D02*
+X004662Y006141D01*
+X004662Y006240D02*
+X006414Y006240D01*
+X006414Y006338D02*
+X004662Y006338D01*
+X004662Y006437D02*
+X006414Y006437D01*
+X006414Y006535D02*
+X004662Y006535D01*
+X004662Y006634D02*
+X006414Y006634D01*
+X006414Y006733D02*
+X004662Y006733D01*
+X004662Y006831D02*
+X006414Y006831D01*
+X006414Y006930D02*
+X004662Y006930D01*
+X004662Y007028D02*
+X007613Y007028D01*
+X007613Y007127D02*
+X004662Y007127D01*
+X004662Y007225D02*
+X007613Y007225D01*
+X007613Y007324D02*
+X004662Y007324D01*
+X004662Y007422D02*
+X007613Y007422D01*
+X007621Y007521D02*
+X004662Y007521D01*
+X004662Y007619D02*
+X009098Y007619D01*
+X009131Y007718D02*
+X004662Y007718D01*
+X004662Y007816D02*
+X009090Y007816D01*
+X009090Y007915D02*
+X004662Y007915D01*
+X004662Y008014D02*
+X009090Y008014D01*
+X009090Y008112D02*
+X004662Y008112D01*
+X004662Y008211D02*
+X009090Y008211D01*
+X009090Y008309D02*
+X004662Y008309D01*
+X004662Y008408D02*
+X009090Y008408D01*
+X009138Y008506D02*
+X004662Y008506D01*
+X004662Y008605D02*
+X009158Y008605D01*
+X009158Y008703D02*
+X004662Y008703D01*
+X004662Y008802D02*
+X009158Y008802D01*
+X009158Y008900D02*
+X004662Y008900D01*
+X004662Y008999D02*
+X009178Y008999D01*
+X009674Y008999D02*
+X010536Y008999D01*
+X010536Y008900D02*
+X009694Y008900D01*
+X009694Y008802D02*
+X010536Y008802D01*
+X010536Y008703D02*
+X009694Y008703D01*
+X009694Y008605D02*
+X010536Y008605D01*
+X010536Y008506D02*
+X009812Y008506D01*
+X009861Y008408D02*
+X010536Y008408D01*
+X010536Y008309D02*
+X009861Y008309D01*
+X009933Y008211D02*
+X010556Y008211D01*
+X010654Y008112D02*
+X010031Y008112D01*
+X010130Y008014D02*
+X010753Y008014D01*
+X010851Y007915D02*
+X010228Y007915D01*
+X010327Y007816D02*
+X010950Y007816D01*
+X011159Y007862D02*
+X010716Y008305D01*
+X010716Y009496D01*
+X010918Y009295D02*
+X014013Y009295D01*
+X014013Y009393D02*
+X011016Y009393D01*
+X011115Y009492D02*
+X014013Y009492D01*
+X014013Y009590D02*
+X011159Y009590D01*
+X010962Y009689D02*
+X010931Y009689D01*
+X010962Y009787D02*
+X009633Y009787D01*
+X009633Y009886D02*
+X010962Y009886D01*
+X010962Y009984D02*
+X009633Y009984D01*
+X009633Y010083D02*
+X010962Y010083D01*
+X010962Y010182D02*
+X009633Y010182D01*
+X009633Y010280D02*
+X010906Y010280D01*
+X009987Y009880D02*
+X009938Y009831D01*
+X009938Y008748D01*
+X009426Y008748D02*
+X009426Y008158D01*
+X009475Y008108D01*
+X009781Y008108D01*
+X010568Y007321D01*
+X010568Y005997D01*
+X010765Y005800D01*
+X010962Y005800D02*
+X010962Y005500D01*
+X010912Y005451D01*
+X010568Y005451D01*
+X010371Y005648D01*
+X009436Y005451D02*
+X008414Y005451D01*
+X008414Y005353D02*
+X009436Y005353D01*
+X009436Y005254D02*
+X008414Y005254D01*
+X008414Y005156D02*
+X009436Y005156D01*
+X008757Y005894D02*
+X007714Y005894D01*
+X007664Y005845D01*
+X007281Y005845D01*
+X007182Y005746D01*
+X007303Y006141D02*
+X007471Y006141D01*
+X007533Y006240D02*
+X007303Y006240D01*
+X007303Y006338D02*
+X007533Y006338D01*
+X007533Y006437D02*
+X007303Y006437D01*
+X007303Y006535D02*
+X007533Y006535D01*
+X007533Y006634D02*
+X007303Y006634D01*
+X007303Y006733D02*
+X007533Y006733D01*
+X007533Y006831D02*
+X007303Y006831D01*
+X007303Y006930D02*
+X007533Y006930D01*
+X006859Y006534D02*
+X006670Y006345D01*
+X006670Y005746D01*
+X006670Y005254D01*
+X005873Y005451D02*
+X004703Y005451D01*
+X004715Y005353D02*
+X005840Y005353D01*
+X004715Y005283D02*
+X004662Y005156D01*
+X004367Y005156D02*
+X003385Y005156D01*
+X003385Y005254D02*
+X004367Y005254D01*
+X008097Y005303D02*
+X008147Y005254D01*
+X010765Y006583D02*
+X010962Y006386D01*
+X010765Y006583D02*
+X010765Y007464D01*
+X010962Y007464D02*
+X010962Y007173D01*
+X011208Y006927D01*
+X012182Y006927D01*
+X012450Y006930D02*
+X028006Y006930D01*
+X028006Y007028D02*
+X012450Y007028D01*
+X012450Y007127D02*
+X028006Y007127D01*
+X028006Y007225D02*
+X012450Y007225D01*
+X012450Y007324D02*
+X013025Y007324D01*
+X012916Y007422D02*
+X012450Y007422D01*
+X012450Y007521D02*
+X012806Y007521D01*
+X012697Y007619D02*
+X012450Y007619D01*
+X012382Y007718D02*
+X012587Y007718D01*
+X012536Y007813D02*
+X012694Y007656D01*
+X012694Y007419D01*
+X012694Y006927D01*
+X012694Y006849D01*
+X012143Y006297D01*
+X012049Y006297D01*
+X011651Y005898D01*
+X011552Y005800D01*
+X011535Y005747D02*
+X011836Y005747D01*
+X011751Y005649D02*
+X011535Y005649D01*
+X012384Y006043D02*
+X012521Y006043D01*
+X012388Y006634D02*
+X028006Y006634D01*
+X028006Y006733D02*
+X012450Y006733D01*
+X012450Y006831D02*
+X028006Y006831D01*
+X028006Y006535D02*
+X011276Y006535D01*
+X011206Y006634D02*
+X011977Y006634D01*
+X011914Y006733D02*
+X011034Y006733D01*
+X011049Y006831D02*
+X010945Y006831D01*
+X010945Y006930D02*
+X010951Y006930D01*
+X011265Y007124D02*
+X011282Y007107D01*
+X011914Y007107D01*
+X011914Y007158D01*
+X011929Y007173D01*
+X011914Y007188D01*
+X011914Y007284D01*
+X011731Y007284D01*
+X011731Y007213D01*
+X011655Y007137D01*
+X011449Y007137D01*
+X011373Y007213D01*
+X011373Y007389D01*
+X011372Y007389D01*
+X011372Y007538D01*
+X011373Y007539D01*
+X011373Y007715D01*
+X011422Y007764D01*
+X011338Y007764D01*
+X011338Y007389D01*
+X011338Y007389D01*
+X011338Y007213D01*
+X011306Y007182D01*
+X011306Y007124D01*
+X011265Y007124D01*
+X011306Y007127D02*
+X011914Y007127D01*
+X011914Y007225D02*
+X011731Y007225D01*
+X011552Y007464D02*
+X012138Y007464D01*
+X012182Y007419D01*
+X011982Y007718D02*
+X011728Y007718D01*
+X011405Y007813D02*
+X012536Y007813D01*
+X012730Y007915D02*
+X014013Y007915D01*
+X014013Y007816D02*
+X012828Y007816D01*
+X012927Y007718D02*
+X013967Y007718D01*
+X013868Y007619D02*
+X013025Y007619D01*
+X013124Y007521D02*
+X013770Y007521D01*
+X013967Y007422D02*
+X028006Y007422D01*
+X028006Y007324D02*
+X013868Y007324D01*
+X014065Y007521D02*
+X028006Y007521D01*
+X028006Y007619D02*
+X014164Y007619D01*
+X014210Y007718D02*
+X028006Y007718D01*
+X028006Y007816D02*
+X014210Y007816D01*
+X014210Y007915D02*
+X028006Y007915D01*
+X028006Y008014D02*
+X014210Y008014D01*
+X014210Y008112D02*
+X028006Y008112D01*
+X028006Y008211D02*
+X014210Y008211D01*
+X014210Y008309D02*
+X028006Y008309D01*
+X028006Y008408D02*
+X014210Y008408D01*
+X014210Y008506D02*
+X028006Y008506D01*
+X028006Y008605D02*
+X014210Y008605D01*
+X014210Y008703D02*
+X028006Y008703D01*
+X028006Y008802D02*
+X014210Y008802D01*
+X014210Y008900D02*
+X028006Y008900D01*
+X028006Y008999D02*
+X014210Y008999D01*
+X014210Y009098D02*
+X020110Y009098D01*
+X020012Y009196D02*
+X014210Y009196D01*
+X014210Y009295D02*
+X019913Y009295D01*
+X019815Y009393D02*
+X014210Y009393D01*
+X014264Y009492D02*
+X019716Y009492D01*
+X019618Y009590D02*
+X014363Y009590D01*
+X014013Y009196D02*
+X010912Y009196D01*
+X010912Y009098D02*
+X014013Y009098D01*
+X014013Y008999D02*
+X010912Y008999D01*
+X010912Y008900D02*
+X014013Y008900D01*
+X014013Y008802D02*
+X010912Y008802D01*
+X010912Y008703D02*
+X014013Y008703D01*
+X014013Y008605D02*
+X010912Y008605D01*
+X010912Y008506D02*
+X014013Y008506D01*
+X014013Y008408D02*
+X010912Y008408D01*
+X011007Y008309D02*
+X014013Y008309D01*
+X014013Y008211D02*
+X011105Y008211D01*
+X011204Y008112D02*
+X014013Y008112D01*
+X014013Y008014D02*
+X011302Y008014D01*
+X011159Y007862D02*
+X011159Y007464D01*
+X011338Y007422D02*
+X011372Y007422D01*
+X011355Y007464D02*
+X011355Y007764D01*
+X011405Y007813D01*
+X011376Y007718D02*
+X011338Y007718D01*
+X011338Y007619D02*
+X011373Y007619D01*
+X011372Y007521D02*
+X011338Y007521D01*
+X011338Y007324D02*
+X011373Y007324D01*
+X011373Y007225D02*
+X011338Y007225D01*
+X010586Y007619D02*
+X010524Y007619D01*
+X010589Y007718D02*
+X010425Y007718D01*
+X010027Y007183D02*
+X009534Y007183D01*
+X009347Y007370D01*
+X013538Y005550D02*
+X026329Y005550D01*
+X026295Y005649D02*
+X026255Y005649D01*
+X028006Y009098D02*
+X021936Y009098D01*
+X021936Y009196D02*
+X028006Y009196D01*
+X028006Y009295D02*
+X021936Y009295D01*
+X021936Y009393D02*
+X028006Y009393D01*
+X021739Y009393D02*
+X020110Y009393D01*
+X020208Y009295D02*
+X021739Y009295D01*
+X021739Y009492D02*
+X020011Y009492D01*
+X019913Y009590D02*
+X021739Y009590D01*
+X021739Y009689D02*
+X019814Y009689D01*
+X019716Y009787D02*
+X021739Y009787D01*
+X021739Y009886D02*
+X019617Y009886D01*
+X019519Y009984D02*
+X021739Y009984D01*
+X021739Y010083D02*
+X019420Y010083D01*
+X019322Y010182D02*
+X021739Y010182D01*
+X021739Y010280D02*
+X019223Y010280D01*
+X019124Y010379D02*
+X021739Y010379D01*
+X021739Y010477D02*
+X019026Y010477D01*
+X018927Y010576D02*
+X021739Y010576D01*
+X021739Y010674D02*
+X018885Y010674D01*
+X018885Y010773D02*
+X021739Y010773D01*
+X021739Y010871D02*
+X018885Y010871D01*
+X018885Y010970D02*
+X021739Y010970D01*
+X021739Y011068D02*
+X018885Y011068D01*
+X018885Y011167D02*
+X021739Y011167D01*
+X021739Y011266D02*
+X018885Y011266D01*
+X018885Y011364D02*
+X021739Y011364D01*
+X021739Y011463D02*
+X018885Y011463D01*
+X018885Y011561D02*
+X021739Y011561D01*
+X021739Y011660D02*
+X018885Y011660D01*
+X018877Y011758D02*
+X021739Y011758D01*
+X019125Y010083D02*
+X018387Y010083D01*
+X018280Y009984D02*
+X019223Y009984D01*
+X019322Y009886D02*
+X018174Y009886D01*
+X018067Y009787D02*
+X019420Y009787D01*
+X019519Y009689D02*
+X017960Y009689D01*
+X018494Y010182D02*
+X019026Y010182D01*
+X016516Y011758D02*
+X013176Y011758D01*
+X013176Y011857D02*
+X016432Y011857D01*
+X016349Y011955D02*
+X013176Y011955D01*
+X013176Y012054D02*
+X016266Y012054D01*
+X016182Y012152D02*
+X013176Y012152D01*
+X013176Y012251D02*
+X016099Y012251D01*
+X016015Y012349D02*
+X013176Y012349D01*
+X013176Y012448D02*
+X015981Y012448D01*
+X015981Y012547D02*
+X013176Y012547D01*
+X013176Y012645D02*
+X015981Y012645D01*
+X015981Y012744D02*
+X013176Y012744D01*
+X013176Y012842D02*
+X015981Y012842D01*
+X015981Y012941D02*
+X013176Y012941D01*
+X013176Y013039D02*
+X015981Y013039D01*
+X015981Y013138D02*
+X013176Y013138D01*
+X013176Y013236D02*
+X015981Y013236D01*
+X015981Y013335D02*
+X013176Y013335D01*
+X013176Y013433D02*
+X015981Y013433D01*
+X015981Y013532D02*
+X013176Y013532D01*
+X013176Y013631D02*
+X015981Y013631D01*
+X015981Y013729D02*
+X013176Y013729D01*
+X013176Y013828D02*
+X015981Y013828D01*
+X015981Y013926D02*
+X013176Y013926D01*
+X013176Y014025D02*
+X015981Y014025D01*
+X015981Y014123D02*
+X013176Y014123D01*
+X013176Y014222D02*
+X015981Y014222D01*
+X015981Y014320D02*
+X013176Y014320D01*
+X013176Y014419D02*
+X015981Y014419D01*
+X015981Y014517D02*
+X013176Y014517D01*
+X013176Y014616D02*
+X015981Y014616D01*
+X015981Y014715D02*
+X013176Y014715D01*
+X013176Y014813D02*
+X015981Y014813D01*
+X015981Y014912D02*
+X013176Y014912D01*
+X013176Y015010D02*
+X015981Y015010D01*
+X012979Y015010D02*
+X009879Y015010D01*
+X009879Y014912D02*
+X012979Y014912D01*
+X012979Y014813D02*
+X009879Y014813D01*
+X009879Y014715D02*
+X012979Y014715D01*
+X012979Y014616D02*
+X009879Y014616D01*
+X009879Y014517D02*
+X012979Y014517D01*
+X012979Y014419D02*
+X009879Y014419D01*
+X009879Y014320D02*
+X012979Y014320D01*
+X012979Y014222D02*
+X009879Y014222D01*
+X009879Y014123D02*
+X012979Y014123D01*
+X012979Y014025D02*
+X009879Y014025D01*
+X009879Y013926D02*
+X012979Y013926D01*
+X012979Y013828D02*
+X009879Y013828D01*
+X009879Y013729D02*
+X012979Y013729D01*
+X012979Y013631D02*
+X009879Y013631D01*
+X009879Y013532D02*
+X012979Y013532D01*
+X012979Y013433D02*
+X009879Y013433D01*
+X009879Y013335D02*
+X012979Y013335D01*
+X012979Y013236D02*
+X009879Y013236D01*
+X009879Y013138D02*
+X012979Y013138D01*
+X012979Y013039D02*
+X009879Y013039D01*
+X009879Y012941D02*
+X012979Y012941D01*
+X012979Y012842D02*
+X009879Y012842D01*
+X009879Y012744D02*
+X012979Y012744D01*
+X012979Y012645D02*
+X009879Y012645D01*
+X009879Y012547D02*
+X012979Y012547D01*
+X012979Y012448D02*
+X009879Y012448D01*
+X009879Y012349D02*
+X012979Y012349D01*
+X012979Y012251D02*
+X009879Y012251D01*
+X009879Y012152D02*
+X012979Y012152D01*
+X012979Y012054D02*
+X009879Y012054D01*
+X009879Y011955D02*
+X012979Y011955D01*
+X012979Y011857D02*
+X009879Y011857D01*
+X009879Y011758D02*
+X012979Y011758D01*
+X012979Y011660D02*
+X009879Y011660D01*
+X009879Y011561D02*
+X012979Y011561D01*
+X012979Y011463D02*
+X009879Y011463D01*
+X009879Y011364D02*
+X012979Y011364D01*
+X012979Y011266D02*
+X009879Y011266D01*
+X009879Y011167D02*
+X012979Y011167D01*
+X012979Y011068D02*
+X009879Y011068D01*
+X009879Y010970D02*
+X012979Y010970D01*
+X009633Y010970D02*
+X007805Y010970D01*
+X007903Y010871D02*
+X009633Y010871D01*
+X009633Y010773D02*
+X008002Y010773D01*
+X007706Y011068D02*
+X009633Y011068D01*
+X009633Y011167D02*
+X007608Y011167D01*
+X007509Y011266D02*
+X009633Y011266D01*
+X009633Y011364D02*
+X007411Y011364D01*
+X007312Y011463D02*
+X009633Y011463D01*
+X009633Y011561D02*
+X003385Y011561D01*
+X003385Y011660D02*
+X009633Y011660D01*
+X009633Y011758D02*
+X003385Y011758D01*
+X003385Y011857D02*
+X009633Y011857D01*
+X009633Y011955D02*
+X003385Y011955D01*
+X003385Y012054D02*
+X009633Y012054D01*
+X009633Y012152D02*
+X003385Y012152D01*
+X003385Y012251D02*
+X009633Y012251D01*
+X009633Y012349D02*
+X003385Y012349D01*
+X003385Y012448D02*
+X009633Y012448D01*
+X009633Y012547D02*
+X003385Y012547D01*
+X003385Y012645D02*
+X009633Y012645D01*
+X009633Y012744D02*
+X003385Y012744D01*
+X003385Y012842D02*
+X009633Y012842D01*
+X009633Y012941D02*
+X003385Y012941D01*
+X003385Y013039D02*
+X009633Y013039D01*
+X009633Y013138D02*
+X003385Y013138D01*
+X003385Y013236D02*
+X009633Y013236D01*
+X009633Y013335D02*
+X003385Y013335D01*
+X003385Y013433D02*
+X009633Y013433D01*
+X009633Y013532D02*
+X003385Y013532D01*
+X003385Y013631D02*
+X009633Y013631D01*
+X009633Y013729D02*
+X003385Y013729D01*
+X003385Y013828D02*
+X009633Y013828D01*
+X009633Y013926D02*
+X003385Y013926D01*
+X003385Y014025D02*
+X009633Y014025D01*
+X009633Y014123D02*
+X003385Y014123D01*
+X003385Y014222D02*
+X009633Y014222D01*
+X009633Y014320D02*
+X003385Y014320D01*
+X003385Y014419D02*
+X009633Y014419D01*
+X009633Y014517D02*
+X003385Y014517D01*
+X003385Y014616D02*
+X009633Y014616D01*
+X009633Y014715D02*
+X003385Y014715D01*
+X003385Y014813D02*
+X009633Y014813D01*
+X009633Y014912D02*
+X003385Y014912D01*
+X003385Y015010D02*
+X009633Y015010D01*
+D32*
+X013284Y005795D02*
+X013284Y005156D01*
+X027842Y005156D01*
+X027842Y005992D01*
+X027860Y005992D01*
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTO b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTO
new file mode 100644
index 0000000..73799e1
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTO
@@ -0,0 +1,233 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10C,0.0120*%
+%ADD11C,0.0070*%
+%ADD12C,0.0040*%
+%ADD13C,0.0030*%
+%ADD14C,0.0080*%
+%ADD15C,0.0050*%
+%ADD16R,0.0394X0.0787*%
+%ADD17R,0.0079X0.0079*%
+%ADD18C,0.0010*%
+D10*
+X006221Y009444D02*
+X007142Y009444D01*
+X003573Y010307D02*
+X003573Y011227D01*
+X023652Y011389D02*
+X023652Y012310D01*
+X027601Y012164D02*
+X027601Y011244D01*
+X023615Y008080D02*
+X023615Y007159D01*
+X027601Y007011D02*
+X027601Y007932D01*
+D11*
+X027717Y009877D02*
+X027717Y010404D01*
+X027454Y010141D02*
+X027981Y010141D01*
+X024044Y010879D02*
+X023517Y010879D01*
+X023780Y011142D02*
+X023780Y010615D01*
+X027717Y014109D02*
+X027717Y014636D01*
+X027454Y014373D02*
+X027981Y014373D01*
+X023945Y014914D02*
+X023418Y014914D01*
+X023682Y014651D02*
+X023682Y015178D01*
+X006152Y014141D02*
+X005625Y014141D01*
+X005889Y014405D02*
+X005889Y013877D01*
+X003965Y012700D02*
+X003438Y012700D01*
+X003702Y012963D02*
+X003702Y012436D01*
+D12*
+X003592Y011771D02*
+X003592Y011653D01*
+X003592Y011712D02*
+X003828Y011712D01*
+X003828Y011771D01*
+X003946Y011712D02*
+X004005Y011712D01*
+X003828Y011529D02*
+X003592Y011529D01*
+X003828Y011529D02*
+X003828Y011352D01*
+X003769Y011293D01*
+X003592Y011293D01*
+X005511Y014394D02*
+X005688Y014394D01*
+X005747Y014453D01*
+X005747Y014630D01*
+X005511Y014630D01*
+X005511Y014753D02*
+X005511Y014871D01*
+X005511Y014812D02*
+X005747Y014812D01*
+X005747Y014871D01*
+X005865Y014812D02*
+X005924Y014812D01*
+X022928Y010983D02*
+X022987Y011042D01*
+X023105Y011042D01*
+X023164Y010983D01*
+X023164Y010865D01*
+X023105Y010806D01*
+X022987Y010806D01*
+X022928Y010865D01*
+X022928Y010983D01*
+X022987Y010679D02*
+X022928Y010620D01*
+X022928Y010443D01*
+X023164Y010443D01*
+X023164Y010317D02*
+X023164Y010199D01*
+X023223Y010258D02*
+X022987Y010258D01*
+X022928Y010199D01*
+X022987Y010679D02*
+X023164Y010679D01*
+D13*
+X027600Y009425D02*
+X027600Y009376D01*
+X027648Y009328D01*
+X027890Y009328D01*
+X027890Y009473D01*
+X027842Y009521D01*
+X027745Y009521D01*
+X027697Y009473D01*
+X027697Y009328D01*
+X027745Y009227D02*
+X027697Y009178D01*
+X027697Y009033D01*
+X027648Y009033D02*
+X027600Y009082D01*
+X027600Y009130D01*
+X027648Y009033D02*
+X027890Y009033D01*
+X027890Y008932D02*
+X027697Y008932D01*
+X027793Y008932D02*
+X027890Y008835D01*
+X027890Y008787D01*
+X027842Y008686D02*
+X027745Y008686D01*
+X027697Y008638D01*
+X027697Y008541D01*
+X027745Y008493D01*
+X027842Y008493D01*
+X027890Y008541D01*
+X027890Y008638D01*
+X027842Y008686D01*
+X027890Y009227D02*
+X027745Y009227D01*
+D14*
+X011710Y007183D02*
+X011710Y006081D01*
+X010607Y006081D01*
+X010607Y007183D01*
+X011710Y007183D01*
+X010844Y006435D02*
+X010844Y006199D01*
+X010824Y006201D01*
+X010804Y006206D01*
+X010785Y006215D01*
+X010768Y006227D01*
+X010754Y006241D01*
+X010742Y006258D01*
+X010733Y006277D01*
+X010728Y006297D01*
+X010726Y006317D01*
+X010728Y006337D01*
+X010733Y006357D01*
+X010742Y006376D01*
+X010754Y006393D01*
+X010768Y006407D01*
+X010785Y006419D01*
+X010804Y006428D01*
+X010824Y006433D01*
+X010844Y006435D01*
+D15*
+X007546Y009585D02*
+X003216Y009585D01*
+X003216Y010175D01*
+X004239Y010175D01*
+X004239Y010963D01*
+X003216Y010963D01*
+X003216Y012144D01*
+X004239Y012144D01*
+X004239Y012931D01*
+X003216Y012931D01*
+X003216Y013522D01*
+X007546Y013522D01*
+X007546Y009585D01*
+X003216Y010175D02*
+X003216Y010963D01*
+X003216Y012144D02*
+X003216Y012931D01*
+X024072Y011258D02*
+X028403Y011258D01*
+X028403Y011849D01*
+X027379Y011849D01*
+X027379Y012636D01*
+X028403Y012636D01*
+X028403Y011849D01*
+X028403Y012636D02*
+X028403Y013817D01*
+X027379Y013817D01*
+X027379Y014604D01*
+X028403Y014604D01*
+X028403Y013817D01*
+X028403Y014604D02*
+X028403Y015195D01*
+X024072Y015195D01*
+X024072Y011258D01*
+X024072Y010963D02*
+X028403Y010963D01*
+X028403Y010372D01*
+X027379Y010372D01*
+X027379Y009585D01*
+X028403Y009585D01*
+X028403Y008404D01*
+X027379Y008404D01*
+X027379Y007616D01*
+X028403Y007616D01*
+X028403Y007026D01*
+X024072Y007026D01*
+X024072Y010963D01*
+X028403Y010372D02*
+X028403Y009585D01*
+X028403Y008404D02*
+X028403Y007616D01*
+D16*
+X004279Y005352D03*
+D17*
+X007527Y007223D03*
+X025489Y005992D03*
+D18*
+X021288Y008330D02*
+X021288Y008430D01*
+X021288Y009314D02*
+X021288Y009415D01*
+X021238Y009364D02*
+X021338Y009364D01*
+X022414Y012789D02*
+X022343Y012860D01*
+X021718Y013485D02*
+X021647Y013556D01*
+X021718Y013556D02*
+X021647Y013485D01*
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTP b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTP
new file mode 100644
index 0000000..5ba0035
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTP
@@ -0,0 +1,122 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10R,0.0098X0.0394*%
+%ADD11R,0.0630X0.1063*%
+%ADD12R,0.0433X0.0394*%
+%ADD13R,0.0276X0.0354*%
+%ADD14R,0.0354X0.0276*%
+%ADD15R,0.0512X0.0591*%
+%ADD16R,0.0630X0.0787*%
+%ADD17R,0.0941X0.3740*%
+%ADD18R,0.3429X0.0937*%
+%ADD19R,0.2453X0.2654*%
+%ADD20R,0.0898X0.0639*%
+%ADD21R,0.0315X0.0134*%
+%ADD22R,0.0512X0.0134*%
+%ADD23R,0.0673X0.0902*%
+%ADD24R,0.0358X0.0480*%
+%ADD25R,0.0472X0.0472*%
+%ADD26R,0.0630X0.0710*%
+D10*
+X010765Y005800D03*
+X010962Y005800D03*
+X011159Y005800D03*
+X011355Y005800D03*
+X011552Y005800D03*
+X011552Y007464D03*
+X011355Y007464D03*
+X011159Y007464D03*
+X010962Y007464D03*
+X010765Y007464D03*
+D11*
+X005066Y007616D03*
+X003964Y007616D03*
+X003964Y006337D03*
+X005066Y006337D03*
+X005066Y008896D03*
+X003964Y008896D03*
+X012527Y010667D03*
+X013629Y010667D03*
+X013629Y011947D03*
+X012527Y011947D03*
+X012527Y013226D03*
+X013629Y013226D03*
+X013629Y014506D03*
+X012527Y014506D03*
+D12*
+X009426Y006730D03*
+X008757Y006730D03*
+X008757Y005894D03*
+X009426Y005894D03*
+D13*
+X006670Y005254D03*
+X007182Y005254D03*
+X008147Y005254D03*
+X008659Y005254D03*
+X007182Y005746D03*
+X006670Y005746D03*
+X008836Y007370D03*
+X009347Y007370D03*
+X009426Y008748D03*
+X009938Y008748D03*
+X012182Y007419D03*
+X012694Y007419D03*
+X012694Y006927D03*
+X012182Y006927D03*
+X012773Y005795D03*
+X013284Y005795D03*
+D14*
+X012143Y005786D03*
+X012143Y006297D03*
+X010027Y006671D03*
+X010027Y007183D03*
+D15*
+X009475Y008108D03*
+X008806Y008108D03*
+D16*
+X008885Y009880D03*
+X009987Y009880D03*
+D17*
+X011090Y012882D03*
+X008471Y012882D03*
+D18*
+X016720Y011091D03*
+X016720Y008473D03*
+D19*
+X018033Y013423D03*
+D20*
+X015220Y012526D03*
+X015220Y014321D03*
+D21*
+X010716Y010264D03*
+X010716Y010008D03*
+X010716Y009752D03*
+X010716Y009496D03*
+D22*
+X011798Y009496D03*
+X011798Y009752D03*
+X011798Y010008D03*
+X011798Y010264D03*
+D23*
+X011462Y009880D03*
+D24*
+X005159Y005352D03*
+X003871Y005352D03*
+D25*
+X007153Y007223D03*
+X007979Y007223D03*
+X025115Y005992D03*
+X025942Y005992D03*
+D26*
+X026740Y005992D03*
+X027860Y005992D03*
+X007978Y006534D03*
+X006859Y006534D03*
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTS b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTS
new file mode 100644
index 0000000..a44a5af
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.GTS
@@ -0,0 +1,142 @@
+G75*
+G70*
+%OFA0B0*%
+%FSLAX24Y24*%
+%IPPOS*%
+%LPD*%
+%AMOC8*
+5,1,8,0,0,1.08239X$1,22.5*
+%
+%ADD10R,0.0178X0.0474*%
+%ADD11R,0.0710X0.1143*%
+%ADD12R,0.0513X0.0474*%
+%ADD13R,0.0356X0.0434*%
+%ADD14R,0.0434X0.0356*%
+%ADD15R,0.0592X0.0671*%
+%ADD16R,0.0710X0.0867*%
+%ADD17R,0.1021X0.3820*%
+%ADD18R,0.3509X0.1017*%
+%ADD19R,0.2533X0.2734*%
+%ADD20R,0.0978X0.0719*%
+%ADD21R,0.0395X0.0214*%
+%ADD22R,0.0592X0.0214*%
+%ADD23R,0.0753X0.0982*%
+%ADD24C,0.0907*%
+%ADD25R,0.0438X0.0560*%
+%ADD26R,0.0552X0.0552*%
+%ADD27R,0.0710X0.0790*%
+%ADD28C,0.0674*%
+D10*
+X010765Y005800D03*
+X010962Y005800D03*
+X011159Y005800D03*
+X011355Y005800D03*
+X011552Y005800D03*
+X011552Y007464D03*
+X011355Y007464D03*
+X011159Y007464D03*
+X010962Y007464D03*
+X010765Y007464D03*
+D11*
+X005066Y007616D03*
+X003964Y007616D03*
+X003964Y006337D03*
+X005066Y006337D03*
+X005066Y008896D03*
+X003964Y008896D03*
+X012527Y010667D03*
+X013629Y010667D03*
+X013629Y011947D03*
+X012527Y011947D03*
+X012527Y013226D03*
+X013629Y013226D03*
+X013629Y014506D03*
+X012527Y014506D03*
+D12*
+X009426Y006730D03*
+X008757Y006730D03*
+X008757Y005894D03*
+X009426Y005894D03*
+D13*
+X006670Y005254D03*
+X007182Y005254D03*
+X008147Y005254D03*
+X008659Y005254D03*
+X007182Y005746D03*
+X006670Y005746D03*
+X008836Y007370D03*
+X009347Y007370D03*
+X009426Y008748D03*
+X009938Y008748D03*
+X012182Y007419D03*
+X012694Y007419D03*
+X012694Y006927D03*
+X012182Y006927D03*
+X012773Y005795D03*
+X013284Y005795D03*
+D14*
+X012143Y005786D03*
+X012143Y006297D03*
+X010027Y006671D03*
+X010027Y007183D03*
+D15*
+X009475Y008108D03*
+X008806Y008108D03*
+D16*
+X008885Y009880D03*
+X009987Y009880D03*
+D17*
+X011090Y012882D03*
+X008471Y012882D03*
+D18*
+X016720Y011091D03*
+X016720Y008473D03*
+D19*
+X018033Y013423D03*
+D20*
+X015220Y012526D03*
+X015220Y014321D03*
+D21*
+X010716Y010264D03*
+X010716Y010008D03*
+X010716Y009752D03*
+X010716Y009496D03*
+D22*
+X011798Y009496D03*
+X011798Y009752D03*
+X011798Y010008D03*
+X011798Y010264D03*
+D23*
+X011462Y009880D03*
+D24*
+X006700Y010569D02*
+X005873Y010569D01*
+X005873Y012537D02*
+X006700Y012537D01*
+X024918Y012242D02*
+X025745Y012242D01*
+X025745Y014211D02*
+X024918Y014211D01*
+X024918Y009978D02*
+X025745Y009978D01*
+X025745Y008010D02*
+X024918Y008010D01*
+D25*
+X005159Y005352D03*
+X003871Y005352D03*
+D26*
+X007153Y007223D03*
+X007979Y007223D03*
+X025115Y005992D03*
+X025942Y005992D03*
+D27*
+X026740Y005992D03*
+X027860Y005992D03*
+X007978Y006534D03*
+X006859Y006534D03*
+D28*
+X021050Y007961D03*
+X021050Y009929D03*
+X022534Y012334D03*
+X021142Y013726D03*
+M02*
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.TXT b/gyro_board/schematic/power_converter_1.19.2012/power_converter.TXT
new file mode 100644
index 0000000..a9613e2
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.TXT
@@ -0,0 +1,103 @@
+%
+M48
+M72
+T01C0.0236
+T02C0.0354
+T03C0.0551
+%
+T01
+X4367Y5352
+X6188Y5303
+X7664Y5303
+X7664Y5845
+X5893Y6484
+X6533Y7419
+X5893Y8108
+X7123Y8994
+X7812Y8305
+X8550Y8945
+X7960Y10077
+X5893Y9339
+X10223Y11061
+X10223Y11652
+X10223Y12242
+X10223Y12882
+X10223Y13522
+X10223Y14112
+X10223Y14752
+X7615Y14801
+X6483Y14801
+X6483Y14112
+X7615Y14063
+X7615Y12980
+X7566Y11849
+X4810Y12193
+X3678Y12242
+X3678Y13276
+X4958Y14112
+X4958Y14801
+X3727Y14703
+X11355Y10667
+X11897Y10667
+X12389Y9831
+X12930Y9831
+X14456Y7518
+X15489Y7518
+X14800Y6829
+X14210Y6435
+X13471Y7075
+X12684Y6386
+X11651Y6435
+X10962Y6386
+X10371Y5648
+X14111Y5549
+X15538Y5549
+X17753Y5549
+X19721Y5549
+X21739Y5549
+X23757Y5549
+X23954Y6337
+X25086Y6681
+X25430Y7223
+X23708Y7518
+X21887Y8305
+X21641Y7518
+X19672Y7469
+X17655Y7469
+X19279Y8847
+X18934Y9782
+X19525Y11160
+X19279Y11750
+X20509Y12341
+X20706Y12882
+X21001Y11701
+X22723Y11750
+X24692Y11455
+X23708Y10126
+X22527Y9634
+X26513Y9043
+X28088Y9978
+X27546Y11799
+X25381Y13473
+X26907Y13866
+X23659Y14211
+X21838Y14654
+X20460Y14161
+X16473Y14358
+X16473Y13817
+X16473Y13226
+X16473Y12685
+X27349Y7567
+T02
+X21050Y7961
+X21050Y9929
+X22534Y12334
+X21142Y13726
+T03
+X25332Y14211
+X25332Y12242
+X25332Y9978
+X25332Y8010
+X6286Y10569
+X6286Y12537
+M30
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.ipc b/gyro_board/schematic/power_converter_1.19.2012/power_converter.ipc
new file mode 100644
index 0000000..6ca2dbd
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.ipc
@@ -0,0 +1,177 @@
+C  IPC-D-356 generated by EAGLE Version 5.11.0 Copyright (c) 1988-2010 CadSoft
+C  Database /home/austin/local/robotics/frc971/2012/trunk/src/gyro_board/schematic/power_converter.brd -- Exported at 1/19/12 12:29 AM
+C  
+P  JOB EAGLE 5.11 NETLIST, DATE: 1/19/12 12:29 AM
+P  UNITS CUST 0
+P  DIM N
+317GND              VIA         D  23PA00X   8415Y   1476X 436Y 436             
+317GND              VIA         D  23PA00X  11564Y   1870X 436Y 436             
+317GND              VIA         D  23PA00X  21850Y   1722X 436Y 436             
+317GND              VIA         D  23PA00X  20718Y   1377X 436Y 436             
+317GND              VIA         D  23PA00X  20521Y    590X 436Y 436             
+317GND              VIA         D  23PA00X  18503Y    590X 436Y 436             
+317GND              VIA         D  23PA00X  16486Y    590X 436Y 436             
+317GND              VIA         D  23PA00X  14517Y    590X 436Y 436             
+317GND              VIA         D  23PA00X  12303Y    590X 436Y 436             
+317GND              VIA         D  23PA00X  10875Y    590X 436Y 436             
+317GND              VIA         D  23PA00X   9448Y   1427X 436Y 436             
+317GND              VIA         D  23PA00X  10236Y   2116X 436Y 436             
+317GND              VIA         D  23PA00X  11220Y   2559X 436Y 436             
+317GND              VIA         D  23PA00X  10974Y   1476X 436Y 436             
+317GND              VIA         D  23PA00X  12253Y   2559X 436Y 436             
+317GND              VIA         D  23PA00X  14419Y   2509X 436Y 436             
+317GND              VIA         D  23PA00X  16437Y   2509X 436Y 436             
+317GND              VIA         D  23PA00X  15698Y   4822X 436Y 436             
+317GND              VIA         D  23PA00X  16043Y   3887X 436Y 436             
+317GND              VIA         D  23PA00X  19291Y   4675X 436Y 436             
+317GND              VIA         D  23PA00X  18651Y   3346X 436Y 436             
+317GND              VIA         D  23PA00X  18405Y   2559X 436Y 436             
+317GND              VIA         D  23PA00X  20472Y   2559X 436Y 436             
+317GND              VIA         D  23PA00X  22194Y   2263X 436Y 436             
+317GND              VIA         D  23PA00X  24114Y   2608X 436Y 436             
+317GND              VIA         D  23PA00X  23277Y   4084X 436Y 436             
+317GND              VIA         D  23PA00X  20472Y   5167X 436Y 436             
+317GND              VIA         D  23PA00X  19488Y   6791X 436Y 436             
+317GND              VIA         D  23PA00X  21456Y   6496X 436Y 436             
+317GND              VIA         D  23PA00X  24311Y   6840X 436Y 436             
+317GND              VIA         D  23PA00X   2657Y   4379X 436Y 436             
+317GND              VIA         D  23PA00X   2657Y   3149X 436Y 436             
+317GND              VIA         D  23PA00X   2657Y   1525X 436Y 436             
+317GND              VIA         D  23PA00X   3297Y   2460X 436Y 436             
+317GND              VIA         D  23PA00X   4576Y   3346X 436Y 436             
+317GND              VIA         D  23PA00X   5314Y   3986X 436Y 436             
+317GND              VIA         D  23PA00X   4724Y   5118X 436Y 436             
+317GND              VIA         D  23PA00X   3887Y   4035X 436Y 436             
+317N$1              VIA         D  23PA00X   7726Y   1427X 436Y 436             
+317N$1              VIA         D  23PA00X   4429Y    885X 436Y 436             
+317N$2              VIA         D  23PA00X   1131Y    393X 436Y 436             
+317N$2              VIA         D  23PA00X   2952Y    344X 436Y 436             
+317N$2              VIA         D  23PA00X    492Y   9744X 436Y 436             
+317N$2              VIA         D  23PA00X    442Y   8316X 436Y 436             
+317N$2              VIA         D  23PA00X    442Y   7283X 436Y 436             
+317N$2              VIA         D  23PA00X   1574Y   7234X 436Y 436             
+317N$2              VIA         D  23PA00X   4330Y   6889X 436Y 436             
+317N$2              VIA         D  23PA00X   4379Y   8021X 436Y 436             
+317N$2              VIA         D  23PA00X   4379Y   9104X 436Y 436             
+317N$2              VIA         D  23PA00X   3248Y   9153X 436Y 436             
+317N$2              VIA         D  23PA00X   1722Y   9153X 436Y 436             
+317N$2              VIA         D  23PA00X   1722Y   9842X 436Y 436             
+317N$2              VIA         D  23PA00X   3248Y   9842X 436Y 436             
+317N$2              VIA         D  23PA00X   4379Y   9842X 436Y 436             
+317N$4              VIA         D  23PA00X   7135Y    688X 436Y 436             
+317N$4              VIA         D  23PA00X   4429Y    344X 436Y 436             
+317N$13             VIA         D  23PA00X   9153Y   4872X 436Y 436             
+317N$13             VIA         D  23PA00X   9694Y   4872X 436Y 436             
+317N$13             VIA         D  23PA00X   8661Y   5708X 436Y 436             
+317N$13             VIA         D  23PA00X   8120Y   5708X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   6102X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   6692X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   7283X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   7923X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   8562X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   9153X 436Y 436             
+317N$13             VIA         D  23PA00X   6988Y   9793X 436Y 436             
+317N$14             VIA         D  23PA00X  22145Y   8513X 436Y 436             
+317N$14             VIA         D  23PA00X  20423Y   9251X 436Y 436             
+317N$14             VIA         D  23PA00X  23671Y   8907X 436Y 436             
+317N$14             VIA         D  23PA00X  17470Y   7923X 436Y 436             
+317N$14             VIA         D  23PA00X  17224Y   9202X 436Y 436             
+317N$14             VIA         D  23PA00X  13238Y   9399X 436Y 436             
+317N$14             VIA         D  23PA00X  13238Y   8858X 436Y 436             
+317N$14             VIA         D  23PA00X  13238Y   8267X 436Y 436             
+317N$14             VIA         D  23PA00X  13238Y   7726X 436Y 436             
+317N$14             VIA         D  23PA00X  16289Y   6200X 436Y 436             
+317N$14             VIA         D  23PA00X  17765Y   6742X 436Y 436             
+317N$14             VIA         D  23PA00X  16043Y   6791X 436Y 436             
+317N$14             VIA         D  23PA00X  17273Y   7381X 436Y 436             
+317N$14             VIA         D  23PA00X  18602Y   9694X 436Y 436             
+317N$14             VIA         D  23PA00X  24852Y   5019X 436Y 436             
+327N$1              CBP   -1          A01X   5521Y    935X 433Y 393R  0         
+327GND              CBP   -2          A01X   6190Y    935X 433Y 393R  0         
+327N$3              CCC   -1          A01X   8946Y   1968X 275Y 354R  0         
+327GND              CCC   -2          A01X   9458Y   1968X 275Y 354R  0         
+327N$7              CCOMP -1          A01X   6112Y   2411X 275Y 354R180         
+327GND              CCOMP -2          A01X   5600Y   2411X 275Y 354R180         
+327N$5              CCOMP2-1          A01X   6190Y   1771X 433Y 393R180         
+327GND              CCOMP2-2          A01X   5521Y   1771X 433Y 393R180         
+327N$2              CIN$0 -1          A01X    728Y   3937X 629Y1062R  0         
+327GND              CIN$0 -2          A01X   1830Y   3937X 629Y1062R  0         
+327N$2              CIN$1 -1          A01X    728Y   1377X 629Y1062R  0         
+327GND              CIN$1 -2          A01X   1830Y   1377X 629Y1062R  0         
+327N$2              CIN$2 -1          A01X    728Y   2657X 629Y1062R  0         
+327GND              CIN$2 -2          A01X   1830Y   2657X 629Y1062R  0         
+317N$14             COUT$0-+    D  35PA00X  17814Y   4970X 594Y 594R270         
+317GND              COUT$0--    D  35PA00X  17814Y   3001X 594Y 594R270         
+317N$14             COUT$1-+    D  35PA00X  17906Y   8766X 594Y 594R315         
+317GND              COUT$1--    D  35PA00X  19298Y   7374X 594Y 594R315         
+327N$8              CRAMP -1          A01X   6240Y   3149X 511Y 590R180         
+327GND              CRAMP -2          A01X   5570Y   3149X 511Y 590R180         
+327N$13             CSEP$0-1          A01X   9291Y   8267X 629Y1062R  0         
+327N$12             CSEP$0-2          A01X  10393Y   8267X 629Y1062R  0         
+327N$13             CSEP$1-1          A01X   9291Y   9547X 629Y1062R  0         
+327N$12             CSEP$1-2          A01X  10393Y   9547X 629Y1062R  0         
+327N$13             CSEP$2-1          A01X   9291Y   6988X 629Y1062R  0         
+327N$12             CSEP$2-2          A01X  10393Y   6988X 629Y1062R  0         
+327N$13             CSEP$3-1          A01X   9291Y   5708X 629Y1062R  0         
+327N$12             CSEP$3-2          A01X  10393Y   5708X 629Y1062R  0         
+327N$12             D1    -ANODE$0       A01X  11984Y   9362X 639Y 897R270         
+327N$12             D1    -ANODE$1       A01X  11984Y   7566X 639Y 897R270         
+327N$14             D1    -CATHODE       A01X  14797Y   8464X2653Y2452R270         
+327GND              DTVS  -ANODE       A01X   1923Y    393X 358Y 480R180         
+327N$2              DTVS  -CATHODE       A01X    635Y    393X 358Y 480R180         
+317N$2              IN    -P$1  D  55PA00X   3051Y   7578X 826Y1653R  0         
+317GND              IN    -P$2  D  55PA00X   3051Y   5610X 826Y1653R  0         
+327N$16             IPOW  -A          A01X   4744Y   2263X 472Y 472R 90         
+327GND              IPOW  -C          A01X   3917Y   2263X 472Y 472R 90         
+327N$2              LIN   -P$1        A01X   5236Y   7923X 940Y3740R  0         
+327N$13             LIN   -P$2        A01X   7854Y   7923X 940Y3740R  0         
+327GND              LOUT  -P$1        A01X  13484Y   3513X 937Y3429R 90         
+327N$12             LOUT  -P$2        A01X  13484Y   6131X 937Y3429R 90         
+327N$13             M1    -D$0        A01X   8226Y   4921X 901Y 673R270         
+327N$13             M1    -D$1        A01X   8562Y   5305X 133Y 511R270         
+327N$13             M1    -D$2        A01X   8562Y   5049X 133Y 511R270         
+327N$13             M1    -D$3        A01X   8562Y   4793X 133Y 511R270         
+327N$13             M1    -D$4        A01X   8562Y   4537X 133Y 511R270         
+327N$11             M1    -G          A01X   7480Y   4537X 314Y 133R  0         
+327N$10             M1    -S$0        A01X   7480Y   5305X 314Y 133R  0         
+327N$10             M1    -S$1        A01X   7480Y   5049X 314Y 133R  0         
+327N$10             M1    -S$2        A01X   7480Y   4793X 314Y 133R  0         
+327N$17             OPOW  -A          A01X  22706Y   1033X 472Y 472R 90         
+327GND              OPOW  -C          A01X  21879Y   1033X 472Y 472R 90         
+317GND              OUT   -P$1  D  55PA00X  22096Y   7283X 826Y1653R180         
+317N$14             OUT   -P$2  D  55PA00X  22096Y   9251X 826Y1653R180         
+317GND              OUT1  -P$1  D  55PA00X  22096Y   3051X 826Y1653R180         
+317N$14             OUT1  -P$2  D  55PA00X  22096Y   5019X 826Y1653R180         
+327N$1              RBP   -1          A01X   3946Y    787X 275Y 354R180         
+327N$2              RBP   -2          A01X   3435Y    787X 275Y 354R180         
+327N$7              RCOMP -1          A01X   6791Y   2224X 275Y 354R270         
+327N$5              RCOMP -2          A01X   6791Y   1712X 275Y 354R270         
+327GND              RFADJ -1          A01X   9458Y   2460X 275Y 354R180         
+327N$9              RFADJ -2          A01X   8946Y   2460X 275Y 354R180         
+327N$15             RFB1  -1          A01X   8907Y    826X 275Y 354R 90         
+327GND              RFB1  -2          A01X   8907Y   1338X 275Y 354R 90         
+327N$14             RFB2  -1          A01X  10049Y    836X 275Y 354R180         
+327N$15             RFB2  -2          A01X   9537Y    836X 275Y 354R180         
+327N$16             RIPOW -1          A01X   4742Y   1574X 629Y 709R180         
+327N$2              RIPOW -2          A01X   3623Y   1574X 629Y 709R180         
+327N$17             ROPOW -1          A01X  23505Y   1033X 629Y 709R  0         
+327N$14             ROPOW -2          A01X  24624Y   1033X 629Y 709R  0         
+327N$10             RRAMP -1          A01X   6702Y   3789X 275Y 354R180         
+327N$8              RRAMP -2          A01X   6190Y   3789X 275Y 354R180         
+327N$10             RSENSE-1          A01X   6751Y   4921X 629Y 787R180         
+327GND              RSENSE-2          A01X   5649Y   4921X 629Y 787R180         
+327GND              RUVLO1-1          A01X   5423Y    295X 275Y 354R180         
+327N$4              RUVLO1-2          A01X   4911Y    295X 275Y 354R180         
+327N$4              RUVLO2-1          A01X   3946Y    295X 275Y 354R180         
+327N$2              RUVLO2-2          A01X   3435Y    295X 275Y 354R180         
+327N$8              U$1   -1          A01X   7529Y    841X  98Y 393R  0         
+327N$4              U$1   -2          A01X   7726Y    841X  98Y 393R  0         
+327N$5              U$1   -3          A01X   7923Y    841X  98Y 393R  0         
+327N$15             U$1   -4          A01X   8120Y    841X  98Y 393R  0         
+327GND              U$1   -5          A01X   8316Y    841X  98Y 393R  0         
+327N$9              U$1   -6          A01X   8316Y   2505X  98Y 393R180         
+327GND              U$1   -7          A01X   8120Y   2505X  98Y 393R180         
+327N$11             U$1   -8          A01X   7923Y   2505X  98Y 393R180         
+327N$3              U$1   -9          A01X   7726Y   2505X  98Y 393R180         
+327N$1              U$1   -10         A01X   7529Y   2505X  98Y 393R180         
+999
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.parts.txt b/gyro_board/schematic/power_converter_1.19.2012/power_converter.parts.txt
new file mode 100644
index 0000000..48a13cd
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.parts.txt
@@ -0,0 +1,44 @@
+Partlist
+
+Exported from power_converter.brd at 1/22/12 2:03 PM
+
+EAGLE Version 5.10.0 Copyright (c) 1988-2010 CadSoft
+
+Part     Value              Package      Library      Position (mm)         Orientation
+
+CBP      C0603C104K5RACT    C0603        resistor     (14.875 2.375)        R0
+CCC      GRM155R61A224KE19D C0402        resistor     (23.375 5)            R0
+CCOMP    GRM155C80G184KE01  C0402        resistor     (14.875 6.125)        R180
+CCOMP2   GRM1885C1H162JA01  C0603        resistor     (14.875 4.5)          R180
+CIN$0    C3225X7R1E106M     C1210        resistor     (3.25 10)             R0
+CIN$1    C3225X7R1E106M     C1210        resistor     (3.25 3.5)            R0
+CIN$2    C3225X7R1E106M     C1210        resistor     (3.25 6.75)           R0
+COUT$0                      RR71C331MDN1 custom_parts (45.25 10.125)        R270
+COUT$1                      RR71C331MDN1 custom_parts (47.25 20.5)          R315
+CRAMP    CC0805KRX7R9BB56   C0805        resistor     (15 8)                R180
+CSEP$0   C3225X7R1E106M     C1210        resistor     (25 21)               R0
+CSEP$1   C3225X7R1E106M     C1210        resistor     (25 24.25)            R0
+CSEP$2   C3225X7R1E106M     C1210        resistor     (25 17.75)            R0
+CSEP$3   C3225X7R1E106M     C1210        resistor     (25 14.5)             R0
+D1        12CWQ10FNPB       D-PAK        custom_parts (35 21.5)             R270
+DTVS     MMSZ5246BT1G       SOD-123      custom_parts (3.25 1)              R180
+IN       39543-020239       39543-0202   custom_parts (7.75 16.75)          R270
+IPOW                        CHIPLED_0805 led          (11 5.75)             R90
+LIN      XAL1060-152ME      1060-152     custom_parts (16.625 20.125)       R0
+LOUT     XAL1010-153ME      1010-153     custom_parts (34.25 12.25)         R90
+M1       BSZ097N04LS_G      PG-TSDSON8   custom_parts (20.5 12.5)           R270
+OPOW                        CHIPLED_0805 led          (56.625 2.625)        R90
+OUT      39543-020239       39543-0202   custom_parts (56.125 21)           R90
+OUT1     39543-020239       39543-0202   custom_parts (56.125 10.25)        R90
+RBP      CRCW040220R0FKE    R0402        resistor     (9.375 2)             R180
+RCOMP    CRCW04021K58FKE    R0402        resistor     (17.25 5)             R270
+RFADJ    CRCW040233K2FKE    R0402        resistor     (23.375 6.25)         R180
+RFB1     CRCW040210K0FKED   R0402        resistor     (22.625 2.75)         R90
+RFB2     CRCW040284K5FKE    R0402        resistor     (24.875 2.125)        R180
+RIPOW    1K                 R1206        resistor     (10.625 4)            R180
+ROPOW    1K                 R1206        resistor     (61.125 2.625)        R0
+RRAMP    CRCW0402100RFKE    R0402        resistor     (16.375 9.625)        R180
+RSENSE   CSNL1206FT2L00     M1206        resistor     (15.75 12.5)          R180
+RUVLO1   CRCW040268K1FKE    R0402        resistor     (13.125 0.75)         R180
+RUVLO2   CRCW0402100KFKE    R0402        resistor     (9.375 0.75)          R180
+U$1      LM3481             MSOP10       custom_parts (20.125 4.25)         R0
diff --git a/gyro_board/schematic/power_converter_1.19.2012/power_converter.parts_mapping.txt b/gyro_board/schematic/power_converter_1.19.2012/power_converter.parts_mapping.txt
new file mode 100644
index 0000000..bb7ccec
--- /dev/null
+++ b/gyro_board/schematic/power_converter_1.19.2012/power_converter.parts_mapping.txt
@@ -0,0 +1,25 @@
+CIN$0,CIN$1,CIN$2,CSEP$0,CSEP$1,CSEP$2,CSEP$3	810-C3225X7R1E106M	1210 10 uF 25V caps
+IN,OUT,OUT1	538-39543-0202	Molex 39543-0202 screw terminal
+DTVS	863-MMSZ5246BT1G	zener tvs diodes (SOD-123 16V)
+OPOW,IPOW	720-LGR971-KN-1	green 0805 LEDs
+RIPOW,ROPOW	667-ERJ-P08J102V	1206 1K resistor
+RBP	71-CRCW0402-20-E3	0402 20 ohms
+CBP	80-C0603C104K5R	0603 0.1 uF 50V
+RCOMP	71-CRCW0402-1.58K-E3	0402 1.58K
+RUVLO1	71-CRCW0402-68.1K-E3	0402 68.1K
+RUVLO2	71-CRCW0402-100K-E3	0402 100K
+CCOMP2	81-GRM1885C1H162JA01	0603 1600 pF 50V
+CCOMP	81-GRM155C80G184KE1D	0402 0.18 uF 4V
+LIN	XAL1060-152MEB	1.5uH 3.15mOhms
+LOUT	XAL1010-153MEB	15uH 17.75mOhms
+RRAMP	71-CRCW0402-100-E3	0402 100 ohms
+CCC	81-GRM155R61A224KE19	0402 0.22 uF 10V
+RFADJ	71-CRCW0402-33.2K-E3	0402 33.2K 50V
+M1	BSZ097N04LSGINCT-ND	12A 2.1W 40V drain +-20V gate
+RSENSE	CSNL1206FT2L00CT-ND	webench rsense
+D1	844-12CWQ10FNPBF	12A 0.95V
+RFB2	71-CRCW0402-84.5K-E3	0402 84.5K
+RFB1	71-CRCW0402-10K-E3	0402 10K
+COUT$0,COUT$1	647-RR71C331MDN1	webench cout replacement (330 uF 16V)
+CRAMP	311-1125-1-ND	0805 560 pF 50V
+U$1	926-LM3481MM/NOPB	switching regulator controller
diff --git a/gyro_board/src/usb/CAN.c b/gyro_board/src/usb/CAN.c
new file mode 100644
index 0000000..74e0a62
--- /dev/null
+++ b/gyro_board/src/usb/CAN.c
@@ -0,0 +1,283 @@
+/* Standard includes. */
+#include "stdio.h"
+
+/* Scheduler includes. */
+#include "FreeRTOS.h"
+#include "queue.h"
+#include "task.h"
+
+/* Demo app includes. */
+#include "flash.h"
+#include "partest.h"
+#include "analog.h"
+#include "spi.h"
+#include "LPCUSB/usbapi.h"
+#include "CAN.h"
+
+static xQueueHandle CAN_tx_queue = NULL, CAN_rx_queue = NULL;
+
+/** Send a CAN message.  The message is stored by copy.
+ *
+ * \returns Zero on success, and one on failure to queue the message.
+ */
+int CAN_send(can_message *message) {
+  uint32_t sr = CAN1->SR;
+  // Queue the message up in a queue!
+  if (sr & 0x00040404) {
+    uint32_t IFx = (message->RTR << 30) +
+                   (message->length << 16) +
+                   (message->priority);
+
+    uint32_t data0 = message->wdata[0];
+    uint32_t data1 = message->wdata[1];
+
+    if(sr & 0x00000004){
+      CAN1->TFI1 = IFx;
+      CAN1->TID1 = message->id;
+      CAN1->TDA1 = data0; 
+      CAN1->TDB1 = data1;
+      CAN1->CMR = 0x00000021;
+      printf("Writing 1\n");
+      return 0;
+    } else if(sr & 0x00000400) {
+      CAN1->TFI2 = IFx;
+      CAN1->TID2 = message->id;
+      CAN1->TDA2 = data0; 
+      CAN1->TDB2 = data1;
+      CAN1->CMR = 0x00000041;
+      return 0;
+    } else if(sr & 0x00040000) {
+      CAN1->TFI3 = IFx;
+      CAN1->TID3 = message->id;
+      CAN1->TDA3 = data0; 
+      CAN1->TDB3 = data1;
+      CAN1->CMR = 0x00000081;
+      return 0;
+    }
+    return 1;
+  }
+  return xQueueSend(CAN_tx_queue, message, 0) != pdPASS;
+}
+
+/**
+ * Get a CAN message, blocking if one isn't available.
+ * This is useful for a read/dispatch thread.
+ *
+ * \returns 0 on Success, and nonzero on failure
+ */
+int CAN_get(can_message *message) {
+  // Blocking read the queue.
+  if (xQueueReceive(CAN_rx_queue, message, portMAX_DELAY) == pdFALSE) {
+    return 1;
+  } else {
+    return message->error;
+  }
+}
+
+void CAN_IRQHandler(void) {
+  uint32_t interrupts = CAN1->ICR;
+  long lHigherPriorityTaskWoken = pdFALSE;
+  can_message message;
+  // CAN1->CMR contains all the action items, like initiating a send et all.
+  // On a bus error interrupt, set an error semaphore so the handler can set the LED, or set it ourselfs.
+  printf("CAN interrupt\n");
+
+  if (interrupts & 0x1) {
+    // Recieved a packet.
+    uint32_t rfs = CAN1->RFS;
+
+    message.RTR = (rfs & 0x40000000) >> 30;
+    message.length = (rfs & 0x000f0000) >> 16;
+    message.id = CAN1->RID & 0x000007ff;
+
+    message.wdata[0] = CAN1->RDA;
+    message.wdata[1] = CAN1->RDB;
+
+    // Release the registers
+    CAN1->CMR = 0x00000004;
+
+    message.error = 0;
+
+    xQueueSendFromISR(CAN_rx_queue, &message, &lHigherPriorityTaskWoken);
+    portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+    return;
+  }
+
+  if (interrupts & 0x602) {
+    // TX buffers are no longer empty (now empty??)
+    if (xQueueReceiveFromISR(CAN_tx_queue, &message, &lHigherPriorityTaskWoken)) {
+      uint32_t IFx = (message.RTR << 30) +
+                     (message.length << 16) +
+                     (message.priority);
+      uint32_t data0 = message.wdata[0];
+      uint32_t data1 = message.wdata[1];
+
+      // Message was in the queue, and will now be sent.
+      if (interrupts & 0x2) {
+        // TX buffer 1 is no longer empty
+        CAN1->TFI1 = IFx;
+        CAN1->TID1 = message.id;
+        CAN1->TDA1 = data0; 
+        CAN1->TDB1 = data1;
+        CAN1->CMR = 0x00000021;
+      } else if (interrupts & 0x200) {
+        // TX buffer 2 is no longer empty
+        CAN1->TFI2 = IFx;
+        CAN1->TID2 = message.id;
+        CAN1->TDA2 = data0; 
+        CAN1->TDB2 = data1;
+        CAN1->CMR = 0x00000041;
+      } else if (interrupts & 0x400) {
+        // TX buffer 3 is no longer empty
+        CAN1->TFI3 = IFx;
+        CAN1->TID3 = message.id;
+        CAN1->TDA3 = data0; 
+        CAN1->TDB3 = data1;
+        CAN1->CMR = 0x00000081;
+      }
+    }
+    portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+    return;
+  }
+
+  if (interrupts & 0x4) {
+    // Error Warning interrupt
+    message.error = 0x01;
+    if (CAN1->GSR & 0x00000040) {
+      // Reached the limit.
+      message.error = 0x01;
+    } else if (CAN1->GSR & 0x00000080) {
+      // No longer allowed to send.
+      message.error = 0x20;
+    } else {
+      message.error = 0x20;
+    }
+    xQueueSendFromISR(CAN_rx_queue, &message, &lHigherPriorityTaskWoken);
+    portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+    return;
+  }
+
+  if (interrupts & 0x8) {
+    // Data overrun
+    CAN1->CMR = 0x00000008;
+    message.error = 0x02;
+    xQueueSendFromISR(CAN_rx_queue, &message, &lHigherPriorityTaskWoken);
+    portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+    return;
+  }
+
+  if (interrupts & 0x20) {
+    // Error Passive Interrupt
+    message.error = 0x04;
+    xQueueSendFromISR(CAN_rx_queue, &message, &lHigherPriorityTaskWoken);
+    portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+    return;
+  }
+
+  if (interrupts & 0x80) {
+    // Bus Error Interrupt
+    message.error = 0x08;
+    xQueueSendFromISR(CAN_rx_queue, &message, &lHigherPriorityTaskWoken);
+    portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+    return;
+  }
+  message.error = 0x10;
+  xQueueSendFromISR(CAN_rx_queue, &message, &lHigherPriorityTaskWoken);
+  portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+
+extern int VCOM_getchar(void);
+
+static portTASK_FUNCTION(vCAN1Write, pvParameters) {
+  can_message message;
+  message.RTR = 0;
+  message.id = 12;
+  message.priority = 1;
+  message.length = 4;
+
+  // Enable the pins.
+  PINCON->PINSEL3 = (PINCON->PINSEL3 & 0xffc3cf3f) | 0x00141040;
+
+  portTickType xLastFlashTime;
+  xLastFlashTime = xTaskGetTickCount();
+
+  for (;;) {
+    printf("hello\n");
+
+    int c = VCOM_getchar();
+    while (c != -1) {
+      printf("hello\n");
+      int j = c;
+      printf("Sending data 0x%x\n", j);
+      message.data[0] = j++;
+      message.data[1] = j++;
+      message.data[2] = j++;
+      message.data[3] = j;
+      CAN_send(&message);
+      c = VCOM_getchar();
+    }
+
+    vTaskDelayUntil(&xLastFlashTime, 500);
+  }
+}
+static portTASK_FUNCTION(vCAN1, pvParameters) {
+  portTickType xLastFlashTime;
+
+  CAN_rx_queue = xQueueCreate(20, sizeof(can_message));
+  CAN_tx_queue = xQueueCreate(5, sizeof(char));
+
+  if ((CAN_rx_queue == NULL) || (CAN_tx_queue == NULL)) {
+    /* Not enough heap available to create the buffer queues, can't do
+     * anything so just delete ourselves.
+     */
+    vTaskDelete(NULL);
+  }
+
+  // Enable CAN
+  SC->PCONP |= PCONP_PCCAN1;
+
+  PINCON->PINSEL0 = (PINCON->PINSEL0 & 0xfffffff0) | 0x00000005;
+  PINCON->PINMODE0 = (PINCON->PINMODE0 & 0xfffffffc) | 0x00000001;
+
+  // Enable RX, TX, overrun, Bus Error,
+  // Error Passive/Active, and Error Warning Interupts.
+  NVIC_SetPriority(CAN_IRQn, configCAN_INTERRUPT_PRIORITY);
+  NVIC_EnableIRQ(CAN_IRQn);
+
+  CAN1->IER = 0x000006af;
+
+  // Priority depends on the TX priority register
+  CAN1->MOD = 0x00000008;
+
+  CAN1->CMR = 0x00000004;
+
+  CANAF->AFMR = 0x00000002;
+
+  // CAN clocks. (Defaults look fine)
+
+  /* We need to initialise xLastFlashTime prior to the first call to
+  vTaskDelayUntil(). */
+  xLastFlashTime = xTaskGetTickCount();
+
+  can_message message;
+
+  xTaskCreate(vCAN1Write, (signed char *) "CAN1wx", configMINIMAL_STACK_SIZE + 100, NULL, tskIDLE_PRIORITY + 4, NULL);
+
+  for (;;) {
+    /* Delay for half the flash period then turn the LED on. */
+    if (CAN_get(&message)) {
+      printf("Message error 0x%x\n", message.error);
+    } else {
+      printf("Got a message with a length of %d\n", message.length);
+      printf("data[0] = 0x%x\n", message.data[0]);
+      printf("data[1] = 0x%x\n", message.data[1]);
+      printf("data[2] = 0x%x\n", message.data[2]);
+      printf("data[3] = 0x%x\n", message.data[3]);
+    }
+  }
+}
+
+
+void initCAN(void){
+  xTaskCreate(vCAN1, (signed char *) "CAN1rx", configMINIMAL_STACK_SIZE + 400, NULL, tskIDLE_PRIORITY + 1, NULL);
+}
diff --git a/gyro_board/src/usb/CAN.h b/gyro_board/src/usb/CAN.h
new file mode 100644
index 0000000..1ef39d5
--- /dev/null
+++ b/gyro_board/src/usb/CAN.h
@@ -0,0 +1,19 @@
+#ifndef _CAN_H_
+#define _CAN_H_
+
+typedef struct _can_message {
+  unsigned RTR:1;
+  unsigned error:7;
+  uint16_t id;
+  uint8_t priority;
+  uint8_t length;
+  union {
+    uint8_t data[8];
+    uint32_t wdata[2];
+  };
+} can_message;
+
+int CAN_get(can_message *message);
+void initCAN(void);
+
+#endif
diff --git a/gyro_board/src/usb/CommonDemoTasks/BlockQ.c b/gyro_board/src/usb/CommonDemoTasks/BlockQ.c
new file mode 100644
index 0000000..e05af05
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/BlockQ.c
@@ -0,0 +1,293 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * Creates six tasks that operate on three queues as follows:
+ *
+ * The first two tasks send and receive an incrementing number to/from a queue.
+ * One task acts as a producer and the other as the consumer.  The consumer is a
+ * higher priority than the producer and is set to block on queue reads.  The queue
+ * only has space for one item - as soon as the producer posts a message on the
+ * queue the consumer will unblock, pre-empt the producer, and remove the item.
+ *
+ * The second two tasks work the other way around.  Again the queue used only has
+ * enough space for one item.  This time the consumer has a lower priority than the
+ * producer.  The producer will try to post on the queue blocking when the queue is
+ * full.  When the consumer wakes it will remove the item from the queue, causing
+ * the producer to unblock, pre-empt the consumer, and immediately re-fill the
+ * queue.
+ *
+ * The last two tasks use the same queue producer and consumer functions.  This time the queue has
+ * enough space for lots of items and the tasks operate at the same priority.  The
+ * producer will execute, placing items into the queue.  The consumer will start
+ * executing when either the queue becomes full (causing the producer to block) or
+ * a context switch occurs (tasks of the same priority will time slice).
+ *
+ */
+
+/*
+
+Changes from V4.1.1
+
+	+ The second set of tasks were created the wrong way around.  This has been
+	  corrected.
+*/
+
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+
+/* Demo program include files. */
+#include "BlockQ.h"
+
+#define blckqSTACK_SIZE		configMINIMAL_STACK_SIZE
+#define blckqNUM_TASK_SETS	( 3 )
+
+/* Structure used to pass parameters to the blocking queue tasks. */
+typedef struct BLOCKING_QUEUE_PARAMETERS {
+	xQueueHandle xQueue;					/*< The queue to be used by the task. */
+	portTickType xBlockTime;				/*< The block time to use on queue reads/writes. */
+	volatile short *psCheckVariable;	/*< Incremented on each successful cycle to check the task is still running. */
+} xBlockingQueueParameters;
+
+/* Task function that creates an incrementing number and posts it on a queue. */
+static portTASK_FUNCTION_PROTO(vBlockingQueueProducer, pvParameters);
+
+/* Task function that removes the incrementing number from a queue and checks that
+it is the expected number. */
+static portTASK_FUNCTION_PROTO(vBlockingQueueConsumer, pvParameters);
+
+/* Variables which are incremented each time an item is removed from a queue, and
+found to be the expected value.
+These are used to check that the tasks are still running. */
+static volatile short sBlockingConsumerCount[ blckqNUM_TASK_SETS ] = {(unsigned short) 0, (unsigned short) 0, (unsigned short) 0 };
+
+/* Variable which are incremented each time an item is posted on a queue.   These
+are used to check that the tasks are still running. */
+static volatile short sBlockingProducerCount[ blckqNUM_TASK_SETS ] = {(unsigned short) 0, (unsigned short) 0, (unsigned short) 0 };
+
+/*-----------------------------------------------------------*/
+
+void vStartBlockingQueueTasks(unsigned portBASE_TYPE uxPriority)
+{
+	xBlockingQueueParameters *pxQueueParameters1, *pxQueueParameters2;
+	xBlockingQueueParameters *pxQueueParameters3, *pxQueueParameters4;
+	xBlockingQueueParameters *pxQueueParameters5, *pxQueueParameters6;
+	const unsigned portBASE_TYPE uxQueueSize1 = 1, uxQueueSize5 = 5;
+	const portTickType xBlockTime = (portTickType) 1000 / portTICK_RATE_MS;
+	const portTickType xDontBlock = (portTickType) 0;
+
+	/* Create the first two tasks as described at the top of the file. */
+
+	/* First create the structure used to pass parameters to the consumer tasks. */
+	pxQueueParameters1 = (xBlockingQueueParameters *) pvPortMalloc(sizeof(xBlockingQueueParameters));
+
+	/* Create the queue used by the first two tasks to pass the incrementing number.
+	Pass a pointer to the queue in the parameter structure. */
+	pxQueueParameters1->xQueue = xQueueCreate(uxQueueSize1, (unsigned portBASE_TYPE) sizeof(unsigned short));
+
+	/* The consumer is created first so gets a block time as described above. */
+	pxQueueParameters1->xBlockTime = xBlockTime;
+
+	/* Pass in the variable that this task is going to increment so we can check it
+	is still running. */
+	pxQueueParameters1->psCheckVariable = &(sBlockingConsumerCount[ 0 ]);
+
+	/* Create the structure used to pass parameters to the producer task. */
+	pxQueueParameters2 = (xBlockingQueueParameters *) pvPortMalloc(sizeof(xBlockingQueueParameters));
+
+	/* Pass the queue to this task also, using the parameter structure. */
+	pxQueueParameters2->xQueue = pxQueueParameters1->xQueue;
+
+	/* The producer is not going to block - as soon as it posts the consumer will
+	wake and remove the item so the producer should always have room to post. */
+	pxQueueParameters2->xBlockTime = xDontBlock;
+
+	/* Pass in the variable that this task is going to increment so we can check
+	it is still running. */
+	pxQueueParameters2->psCheckVariable = &(sBlockingProducerCount[ 0 ]);
+
+
+	/* Note the producer has a lower priority than the consumer when the tasks are
+	spawned. */
+	xTaskCreate(vBlockingQueueConsumer, (signed char *) "QConsB1", blckqSTACK_SIZE, (void *) pxQueueParameters1, uxPriority, NULL);
+	xTaskCreate(vBlockingQueueProducer, (signed char *) "QProdB2", blckqSTACK_SIZE, (void *) pxQueueParameters2, tskIDLE_PRIORITY, NULL);
+
+
+
+	/* Create the second two tasks as described at the top of the file.   This uses
+	the same mechanism but reverses the task priorities. */
+
+	pxQueueParameters3 = (xBlockingQueueParameters *) pvPortMalloc(sizeof(xBlockingQueueParameters));
+	pxQueueParameters3->xQueue = xQueueCreate(uxQueueSize1, (unsigned portBASE_TYPE) sizeof(unsigned short));
+	pxQueueParameters3->xBlockTime = xDontBlock;
+	pxQueueParameters3->psCheckVariable = &(sBlockingProducerCount[ 1 ]);
+
+	pxQueueParameters4 = (xBlockingQueueParameters *) pvPortMalloc(sizeof(xBlockingQueueParameters));
+	pxQueueParameters4->xQueue = pxQueueParameters3->xQueue;
+	pxQueueParameters4->xBlockTime = xBlockTime;
+	pxQueueParameters4->psCheckVariable = &(sBlockingConsumerCount[ 1 ]);
+
+	xTaskCreate(vBlockingQueueConsumer, (signed char *) "QProdB3", blckqSTACK_SIZE, (void *) pxQueueParameters3, tskIDLE_PRIORITY, NULL);
+	xTaskCreate(vBlockingQueueProducer, (signed char *) "QConsB4", blckqSTACK_SIZE, (void *) pxQueueParameters4, uxPriority, NULL);
+
+
+
+	/* Create the last two tasks as described above.  The mechanism is again just
+	the same.  This time both parameter structures are given a block time. */
+	pxQueueParameters5 = (xBlockingQueueParameters *) pvPortMalloc(sizeof(xBlockingQueueParameters));
+	pxQueueParameters5->xQueue = xQueueCreate(uxQueueSize5, (unsigned portBASE_TYPE) sizeof(unsigned short));
+	pxQueueParameters5->xBlockTime = xBlockTime;
+	pxQueueParameters5->psCheckVariable = &(sBlockingProducerCount[ 2 ]);
+
+	pxQueueParameters6 = (xBlockingQueueParameters *) pvPortMalloc(sizeof(xBlockingQueueParameters));
+	pxQueueParameters6->xQueue = pxQueueParameters5->xQueue;
+	pxQueueParameters6->xBlockTime = xBlockTime;
+	pxQueueParameters6->psCheckVariable = &(sBlockingConsumerCount[ 2 ]);
+
+	xTaskCreate(vBlockingQueueProducer, (signed char *) "QProdB5", blckqSTACK_SIZE, (void *) pxQueueParameters5, tskIDLE_PRIORITY, NULL);
+	xTaskCreate(vBlockingQueueConsumer, (signed char *) "QConsB6", blckqSTACK_SIZE, (void *) pxQueueParameters6, tskIDLE_PRIORITY, NULL);
+}
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(vBlockingQueueProducer, pvParameters)
+{
+	unsigned short usValue = 0;
+	xBlockingQueueParameters *pxQueueParameters;
+	short sErrorEverOccurred = pdFALSE;
+
+	pxQueueParameters = (xBlockingQueueParameters *) pvParameters;
+
+	for (;;) {
+		if (xQueueSend(pxQueueParameters->xQueue, (void *) &usValue, pxQueueParameters->xBlockTime) != pdPASS) {
+			sErrorEverOccurred = pdTRUE;
+		} else {
+			/* We have successfully posted a message, so increment the variable
+			used to check we are still running. */
+			if (sErrorEverOccurred == pdFALSE) {
+				(*pxQueueParameters->psCheckVariable)++;
+			}
+
+			/* Increment the variable we are going to post next time round.  The
+			consumer will expect the numbers to	follow in numerical order. */
+			++usValue;
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(vBlockingQueueConsumer, pvParameters)
+{
+	unsigned short usData, usExpectedValue = 0;
+	xBlockingQueueParameters *pxQueueParameters;
+	short sErrorEverOccurred = pdFALSE;
+
+	pxQueueParameters = (xBlockingQueueParameters *) pvParameters;
+
+	for (;;) {
+		if (xQueueReceive(pxQueueParameters->xQueue, &usData, pxQueueParameters->xBlockTime) == pdPASS) {
+			if (usData != usExpectedValue) {
+				/* Catch-up. */
+				usExpectedValue = usData;
+
+				sErrorEverOccurred = pdTRUE;
+			} else {
+				/* We have successfully received a message, so increment the
+				variable used to check we are still running. */
+				if (sErrorEverOccurred == pdFALSE) {
+					(*pxQueueParameters->psCheckVariable)++;
+				}
+
+				/* Increment the value we expect to remove from the queue next time
+				round. */
+				++usExpectedValue;
+			}
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running. */
+portBASE_TYPE xAreBlockingQueuesStillRunning(void)
+{
+	static short sLastBlockingConsumerCount[ blckqNUM_TASK_SETS ] = {(unsigned short) 0, (unsigned short) 0, (unsigned short) 0 };
+	static short sLastBlockingProducerCount[ blckqNUM_TASK_SETS ] = {(unsigned short) 0, (unsigned short) 0, (unsigned short) 0 };
+	portBASE_TYPE xReturn = pdPASS, xTasks;
+
+	/* Not too worried about mutual exclusion on these variables as they are 16
+	bits and we are only reading them. We also only care to see if they have
+	changed or not.
+
+	Loop through each check variable to and return pdFALSE if any are found not
+	to have changed since the last call. */
+
+	for (xTasks = 0; xTasks < blckqNUM_TASK_SETS; xTasks++) {
+		if (sBlockingConsumerCount[ xTasks ] == sLastBlockingConsumerCount[ xTasks ]) {
+			xReturn = pdFALSE;
+		}
+		sLastBlockingConsumerCount[ xTasks ] = sBlockingConsumerCount[ xTasks ];
+
+
+		if (sBlockingProducerCount[ xTasks ] == sLastBlockingProducerCount[ xTasks ]) {
+			xReturn = pdFALSE;
+		}
+		sLastBlockingProducerCount[ xTasks ] = sBlockingProducerCount[ xTasks ];
+	}
+
+	return xReturn;
+}
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/GenQTest.c b/gyro_board/src/usb/CommonDemoTasks/GenQTest.c
new file mode 100644
index 0000000..1b486ba
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/GenQTest.c
@@ -0,0 +1,525 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+/*
+ * Tests the extra queue functionality introduced in FreeRTOS.org V4.5.0 -
+ * including xQueueSendToFront(), xQueueSendToBack(), xQueuePeek() and
+ * mutex behaviour.
+ *
+ * See the comments above the prvSendFrontAndBackTest() and
+ * prvLowPriorityMutexTask() prototypes below for more information.
+ */
+
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+#include "semphr.h"
+
+/* Demo program include files. */
+#include "GenQTest.h"
+
+#define genqQUEUE_LENGTH		( 5 )
+#define genqNO_BLOCK			( 0 )
+
+#define genqMUTEX_LOW_PRIORITY		( tskIDLE_PRIORITY )
+#define genqMUTEX_TEST_PRIORITY		( tskIDLE_PRIORITY + 1 )
+#define genqMUTEX_MEDIUM_PRIORITY	( tskIDLE_PRIORITY + 2 )
+#define genqMUTEX_HIGH_PRIORITY		( tskIDLE_PRIORITY + 3 )
+
+/*-----------------------------------------------------------*/
+
+/*
+ * Tests the behaviour of the xQueueSendToFront() and xQueueSendToBack()
+ * macros by using both to fill a queue, then reading from the queue to
+ * check the resultant queue order is as expected.  Queue data is also
+ * peeked.
+ */
+static void prvSendFrontAndBackTest(void *pvParameters);
+
+/*
+ * The following three tasks are used to demonstrate the mutex behaviour.
+ * Each task is given a different priority to demonstrate the priority
+ * inheritance mechanism.
+ *
+ * The low priority task obtains a mutex.  After this a high priority task
+ * attempts to obtain the same mutex, causing its priority to be inherited
+ * by the low priority task.  The task with the inherited high priority then
+ * resumes a medium priority task to ensure it is not blocked by the medium
+ * priority task while it holds the inherited high priority.  Once the mutex
+ * is returned the task with the inherited priority returns to its original
+ * low priority, and is therefore immediately preempted by first the high
+ * priority task and then the medium prioroity task before it can continue.
+ */
+static void prvLowPriorityMutexTask(void *pvParameters);
+static void prvMediumPriorityMutexTask(void *pvParameters);
+static void prvHighPriorityMutexTask(void *pvParameters);
+
+/*-----------------------------------------------------------*/
+
+/* Flag that will be latched to pdTRUE should any unexpected behaviour be
+detected in any of the tasks. */
+static portBASE_TYPE xErrorDetected = pdFALSE;
+
+/* Counters that are incremented on each cycle of a test.  This is used to
+detect a stalled task - a test that is no longer running. */
+static volatile unsigned portLONG ulLoopCounter = 0;
+static volatile unsigned portLONG ulLoopCounter2 = 0;
+
+/* The variable that is guarded by the mutex in the mutex demo tasks. */
+static volatile unsigned portLONG ulGuardedVariable = 0;
+
+/* Handles used in the mutext test to suspend and resume the high and medium
+priority mutex test tasks. */
+static xTaskHandle xHighPriorityMutexTask, xMediumPriorityMutexTask;
+
+/*-----------------------------------------------------------*/
+
+void vStartGenericQueueTasks(unsigned portBASE_TYPE uxPriority)
+{
+	xQueueHandle xQueue;
+	xSemaphoreHandle xMutex;
+
+	/* Create the queue that we are going to use for the
+	prvSendFrontAndBackTest demo. */
+	xQueue = xQueueCreate(genqQUEUE_LENGTH, sizeof(unsigned portLONG));
+
+	/* vQueueAddToRegistry() adds the queue to the queue registry, if one is
+	in use.  The queue registry is provided as a means for kernel aware
+	debuggers to locate queues and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry(xQueue, (signed portCHAR *) "Gen_Queue_Test");
+
+	/* Create the demo task and pass it the queue just created.  We are
+	passing the queue handle by value so it does not matter that it is
+	declared on the stack here. */
+	xTaskCreate(prvSendFrontAndBackTest, (signed portCHAR *)"GenQ", configMINIMAL_STACK_SIZE, (void *) xQueue, uxPriority, NULL);
+
+	/* Create the mutex used by the prvMutexTest task. */
+	xMutex = xSemaphoreCreateMutex();
+
+	/* vQueueAddToRegistry() adds the mutex to the registry, if one is
+	in use.  The registry is provided as a means for kernel aware
+	debuggers to locate mutexes and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry((xQueueHandle) xMutex, (signed portCHAR *) "Gen_Queue_Mutex");
+
+	/* Create the mutex demo tasks and pass it the mutex just created.  We are
+	passing the mutex handle by value so it does not matter that it is declared
+	on the stack here. */
+	xTaskCreate(prvLowPriorityMutexTask, (signed portCHAR *)"MuLow", configMINIMAL_STACK_SIZE, (void *) xMutex, genqMUTEX_LOW_PRIORITY, NULL);
+	xTaskCreate(prvMediumPriorityMutexTask, (signed portCHAR *)"MuMed", configMINIMAL_STACK_SIZE, NULL, genqMUTEX_MEDIUM_PRIORITY, &xMediumPriorityMutexTask);
+	xTaskCreate(prvHighPriorityMutexTask, (signed portCHAR *)"MuHigh", configMINIMAL_STACK_SIZE, (void *) xMutex, genqMUTEX_HIGH_PRIORITY, &xHighPriorityMutexTask);
+}
+/*-----------------------------------------------------------*/
+
+static void prvSendFrontAndBackTest(void *pvParameters)
+{
+	unsigned portLONG ulData, ulData2;
+	xQueueHandle xQueue;
+
+#ifdef USE_STDIO
+	void vPrintDisplayMessage(const portCHAR * const * ppcMessageToSend);
+
+	const portCHAR * const pcTaskStartMsg = "Queue SendToFront/SendToBack/Peek test started.\r\n";
+
+	/* Queue a message for printing to say the task has started. */
+	vPrintDisplayMessage(&pcTaskStartMsg);
+#endif
+
+	xQueue = (xQueueHandle) pvParameters;
+
+	for (;;) {
+		/* The queue is empty, so sending an item to the back of the queue
+		should have the same efect as sending it to the front of the queue.
+
+		First send to the front and check everything is as expected. */
+		xQueueSendToFront(xQueue, (void *) &ulLoopCounter, genqNO_BLOCK);
+
+		if (uxQueueMessagesWaiting(xQueue) != 1) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (xQueueReceive(xQueue, (void *) &ulData, genqNO_BLOCK) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* The data we sent to the queue should equal the data we just received
+		from the queue. */
+		if (ulLoopCounter != ulData) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Then do the same, sending the data to the back, checking everything
+		is as expected. */
+		if (uxQueueMessagesWaiting(xQueue) != 0) {
+			xErrorDetected = pdTRUE;
+		}
+
+		xQueueSendToBack(xQueue, (void *) &ulLoopCounter, genqNO_BLOCK);
+
+		if (uxQueueMessagesWaiting(xQueue) != 1) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (xQueueReceive(xQueue, (void *) &ulData, genqNO_BLOCK) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 0) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* The data we sent to the queue should equal the data we just received
+		from the queue. */
+		if (ulLoopCounter != ulData) {
+			xErrorDetected = pdTRUE;
+		}
+
+#if configUSE_PREEMPTION == 0
+		taskYIELD();
+#endif
+
+
+
+		/* Place 2, 3, 4 into the queue, adding items to the back of the queue. */
+		for (ulData = 2; ulData < 5; ulData++) {
+			xQueueSendToBack(xQueue, (void *) &ulData, genqNO_BLOCK);
+		}
+
+		/* Now the order in the queue should be 2, 3, 4, with 2 being the first
+		thing to be read out.  Now add 1 then 0 to the front of the queue. */
+		if (uxQueueMessagesWaiting(xQueue) != 3) {
+			xErrorDetected = pdTRUE;
+		}
+		ulData = 1;
+		xQueueSendToFront(xQueue, (void *) &ulData, genqNO_BLOCK);
+		ulData = 0;
+		xQueueSendToFront(xQueue, (void *) &ulData, genqNO_BLOCK);
+
+		/* Now the queue should be full, and when we read the data out we
+		should receive 0, 1, 2, 3, 4. */
+		if (uxQueueMessagesWaiting(xQueue) != 5) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (xQueueSendToFront(xQueue, (void *) &ulData, genqNO_BLOCK) != errQUEUE_FULL) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (xQueueSendToBack(xQueue, (void *) &ulData, genqNO_BLOCK) != errQUEUE_FULL) {
+			xErrorDetected = pdTRUE;
+		}
+
+#if configUSE_PREEMPTION == 0
+		taskYIELD();
+#endif
+
+		/* Check the data we read out is in the expected order. */
+		for (ulData = 0; ulData < genqQUEUE_LENGTH; ulData++) {
+			/* Try peeking the data first. */
+			if (xQueuePeek(xQueue, &ulData2, genqNO_BLOCK) != pdPASS) {
+				xErrorDetected = pdTRUE;
+			}
+
+			if (ulData != ulData2) {
+				xErrorDetected = pdTRUE;
+			}
+
+
+			/* Now try receiving the data for real.  The value should be the
+			same.  Clobber the value first so we know we really received it. */
+			ulData2 = ~ulData2;
+			if (xQueueReceive(xQueue, &ulData2, genqNO_BLOCK) != pdPASS) {
+				xErrorDetected = pdTRUE;
+			}
+
+			if (ulData != ulData2) {
+				xErrorDetected = pdTRUE;
+			}
+		}
+
+		/* The queue should now be empty again. */
+		if (uxQueueMessagesWaiting(xQueue) != 0) {
+			xErrorDetected = pdTRUE;
+		}
+
+#if configUSE_PREEMPTION == 0
+		taskYIELD();
+#endif
+
+
+		/* Our queue is empty once more, add 10, 11 to the back. */
+		ulData = 10;
+		if (xQueueSend(xQueue, &ulData, genqNO_BLOCK) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+		ulData = 11;
+		if (xQueueSend(xQueue, &ulData, genqNO_BLOCK) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 2) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Now we should have 10, 11 in the queue.  Add 7, 8, 9 to the
+		front. */
+		for (ulData = 9; ulData >= 7; ulData--) {
+			if (xQueueSendToFront(xQueue, (void *) &ulData, genqNO_BLOCK) != pdPASS) {
+				xErrorDetected = pdTRUE;
+			}
+		}
+
+		/* Now check that the queue is full, and that receiving data provides
+		the expected sequence of 7, 8, 9, 10, 11. */
+		if (uxQueueMessagesWaiting(xQueue) != 5) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (xQueueSendToFront(xQueue, (void *) &ulData, genqNO_BLOCK) != errQUEUE_FULL) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (xQueueSendToBack(xQueue, (void *) &ulData, genqNO_BLOCK) != errQUEUE_FULL) {
+			xErrorDetected = pdTRUE;
+		}
+
+#if configUSE_PREEMPTION == 0
+		taskYIELD();
+#endif
+
+		/* Check the data we read out is in the expected order. */
+		for (ulData = 7; ulData < (7 + genqQUEUE_LENGTH); ulData++) {
+			if (xQueueReceive(xQueue, &ulData2, genqNO_BLOCK) != pdPASS) {
+				xErrorDetected = pdTRUE;
+			}
+
+			if (ulData != ulData2) {
+				xErrorDetected = pdTRUE;
+			}
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 0) {
+			xErrorDetected = pdTRUE;
+		}
+
+		ulLoopCounter++;
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvLowPriorityMutexTask(void *pvParameters)
+{
+	xSemaphoreHandle xMutex = (xSemaphoreHandle) pvParameters;
+
+#ifdef USE_STDIO
+	void vPrintDisplayMessage(const portCHAR * const * ppcMessageToSend);
+
+	const portCHAR * const pcTaskStartMsg = "Mutex with priority inheritance test started.\r\n";
+
+	/* Queue a message for printing to say the task has started. */
+	vPrintDisplayMessage(&pcTaskStartMsg);
+#endif
+
+	for (;;) {
+		/* Take the mutex.  It should be available now. */
+		if (xSemaphoreTake(xMutex, genqNO_BLOCK) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Set our guarded variable to a known start value. */
+		ulGuardedVariable = 0;
+
+		/* Our priority should be as per that assigned when the task was
+		created. */
+		if (uxTaskPriorityGet(NULL) != genqMUTEX_LOW_PRIORITY) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Now unsuspend the high priority task.  This will attempt to take the
+		mutex, and block when it finds it cannot obtain it. */
+		vTaskResume(xHighPriorityMutexTask);
+
+		/* We should now have inherited the prioritoy of the high priority task,
+		as by now it will have attempted to get the mutex. */
+		if (uxTaskPriorityGet(NULL) != genqMUTEX_HIGH_PRIORITY) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* We can attempt to set our priority to the test priority - between the
+		idle priority and the medium/high test priorities, but our actual
+		prioroity should remain at the high priority. */
+		vTaskPrioritySet(NULL, genqMUTEX_TEST_PRIORITY);
+		if (uxTaskPriorityGet(NULL) != genqMUTEX_HIGH_PRIORITY) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Now unsuspend the medium priority task.  This should not run as our
+		inherited priority is above that of the medium priority task. */
+		vTaskResume(xMediumPriorityMutexTask);
+
+		/* If the did run then it will have incremented our guarded variable. */
+		if (ulGuardedVariable != 0) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* When we give back the semaphore our priority should be disinherited
+		back to the priority to which we attempted to set ourselves.  This means
+		that when the high priority task next blocks, the medium priority task
+		should execute and increment the guarded variable.   When we next run
+		both the high and medium priority tasks will have been suspended again. */
+		if (xSemaphoreGive(xMutex) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Check that the guarded variable did indeed increment... */
+		if (ulGuardedVariable != 1) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* ... and that our priority has been disinherited to
+		genqMUTEX_TEST_PRIORITY. */
+		if (uxTaskPriorityGet(NULL) != genqMUTEX_TEST_PRIORITY) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Set our priority back to our original priority ready for the next
+		loop around this test. */
+		vTaskPrioritySet(NULL, genqMUTEX_LOW_PRIORITY);
+
+		/* Just to show we are still running. */
+		ulLoopCounter2++;
+
+#if configUSE_PREEMPTION == 0
+		taskYIELD();
+#endif
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvMediumPriorityMutexTask(void *pvParameters)
+{
+	(void) pvParameters;
+
+	for (;;) {
+		/* The medium priority task starts by suspending itself.  The low
+		priority task will unsuspend this task when required. */
+		vTaskSuspend(NULL);
+
+		/* When this task unsuspends all it does is increment the guarded
+		variable, this is so the low priority task knows that it has
+		executed. */
+		ulGuardedVariable++;
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvHighPriorityMutexTask(void *pvParameters)
+{
+	xSemaphoreHandle xMutex = (xSemaphoreHandle) pvParameters;
+
+	for (;;) {
+		/* The high priority task starts by suspending itself.  The low
+		priority task will unsuspend this task when required. */
+		vTaskSuspend(NULL);
+
+		/* When this task unsuspends all it does is attempt to obtain
+		the mutex.  It should find the mutex is not available so a
+		block time is specified. */
+		if (xSemaphoreTake(xMutex, portMAX_DELAY) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* When we eventually obtain the mutex we just give it back then
+		return to suspend ready for the next test. */
+		if (xSemaphoreGive(xMutex) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running. */
+portBASE_TYPE xAreGenericQueueTasksStillRunning(void)
+{
+	static unsigned portLONG ulLastLoopCounter = 0, ulLastLoopCounter2 = 0;
+
+	/* If the demo task is still running then we expect the loopcounters to
+	have incremented since this function was last called. */
+	if (ulLastLoopCounter == ulLoopCounter) {
+		xErrorDetected = pdTRUE;
+	}
+
+	if (ulLastLoopCounter2 == ulLoopCounter2) {
+		xErrorDetected = pdTRUE;
+	}
+
+	ulLastLoopCounter = ulLoopCounter;
+	ulLastLoopCounter2 = ulLoopCounter2;
+
+	/* Errors detected in the task itself will have latched xErrorDetected
+	to true. */
+
+	return !xErrorDetected;
+}
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/PollQ.c b/gyro_board/src/usb/CommonDemoTasks/PollQ.c
new file mode 100644
index 0000000..5428693
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/PollQ.c
@@ -0,0 +1,230 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * This version of PollQ. c is for use on systems that have limited stack
+ * space and no display facilities.  The complete version can be found in
+ * the Demo/Common/Full directory.
+ *
+ * Creates two tasks that communicate over a single queue.  One task acts as a
+ * producer, the other a consumer.
+ *
+ * The producer loops for three iteration, posting an incrementing number onto the
+ * queue each cycle.  It then delays for a fixed period before doing exactly the
+ * same again.
+ *
+ * The consumer loops emptying the queue.  Each item removed from the queue is
+ * checked to ensure it contains the expected value.  When the queue is empty it
+ * blocks for a fixed period, then does the same again.
+ *
+ * All queue access is performed without blocking.  The consumer completely empties
+ * the queue each time it runs so the producer should never find the queue full.
+ *
+ * An error is flagged if the consumer obtains an unexpected value or the producer
+ * find the queue is full.
+ */
+
+/*
+Changes from V2.0.0
+
+	+ Delay periods are now specified using variables and constants of
+	  portTickType rather than unsigned long.
+*/
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+
+/* Demo program include files. */
+#include "PollQ.h"
+
+#define pollqSTACK_SIZE			configMINIMAL_STACK_SIZE
+#define pollqQUEUE_SIZE			( 10 )
+#define pollqPRODUCER_DELAY		( ( portTickType ) 200 / portTICK_RATE_MS )
+#define pollqCONSUMER_DELAY		( pollqPRODUCER_DELAY - ( portTickType ) ( 20 / portTICK_RATE_MS ) )
+#define pollqNO_DELAY			( ( portTickType ) 0 )
+#define pollqVALUES_TO_PRODUCE	( ( signed portBASE_TYPE ) 3 )
+#define pollqINITIAL_VALUE		( ( signed portBASE_TYPE ) 0 )
+
+/* The task that posts the incrementing number onto the queue. */
+static portTASK_FUNCTION_PROTO(vPolledQueueProducer, pvParameters);
+
+/* The task that empties the queue. */
+static portTASK_FUNCTION_PROTO(vPolledQueueConsumer, pvParameters);
+
+/* Variables that are used to check that the tasks are still running with no
+errors. */
+static volatile signed portBASE_TYPE xPollingConsumerCount = pollqINITIAL_VALUE, xPollingProducerCount = pollqINITIAL_VALUE;
+
+/*-----------------------------------------------------------*/
+
+void vStartPolledQueueTasks(unsigned portBASE_TYPE uxPriority)
+{
+	static xQueueHandle xPolledQueue;
+
+	/* Create the queue used by the producer and consumer. */
+	xPolledQueue = xQueueCreate(pollqQUEUE_SIZE, (unsigned portBASE_TYPE) sizeof(unsigned short));
+
+	/* vQueueAddToRegistry() adds the queue to the queue registry, if one is
+	in use.  The queue registry is provided as a means for kernel aware
+	debuggers to locate queues and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry(xPolledQueue, (signed char *) "Poll_Test_Queue");
+
+	/* Spawn the producer and consumer. */
+	xTaskCreate(vPolledQueueConsumer, (signed char *) "QConsNB", pollqSTACK_SIZE, (void *) &xPolledQueue, uxPriority, (xTaskHandle *) NULL);
+	xTaskCreate(vPolledQueueProducer, (signed char *) "QProdNB", pollqSTACK_SIZE, (void *) &xPolledQueue, uxPriority, (xTaskHandle *) NULL);
+}
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(vPolledQueueProducer, pvParameters)
+{
+	unsigned short usValue = (unsigned short) 0;
+	signed portBASE_TYPE xError = pdFALSE, xLoop;
+
+	for (;;) {
+		for (xLoop = 0; xLoop < pollqVALUES_TO_PRODUCE; xLoop++) {
+			/* Send an incrementing number on the queue without blocking. */
+			if (xQueueSend(*((xQueueHandle *) pvParameters), (void *) &usValue, pollqNO_DELAY) != pdPASS) {
+				/* We should never find the queue full so if we get here there
+				has been an error. */
+				xError = pdTRUE;
+			} else {
+				if (xError == pdFALSE) {
+					/* If an error has ever been recorded we stop incrementing the
+					check variable. */
+					portENTER_CRITICAL();
+					xPollingProducerCount++;
+					portEXIT_CRITICAL();
+				}
+
+				/* Update the value we are going to post next time around. */
+				usValue++;
+			}
+		}
+
+		/* Wait before we start posting again to ensure the consumer runs and
+		empties the queue. */
+		vTaskDelay(pollqPRODUCER_DELAY);
+	}
+}  /*lint !e818 Function prototype must conform to API. */
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(vPolledQueueConsumer, pvParameters)
+{
+	unsigned short usData, usExpectedValue = (unsigned short) 0;
+	signed portBASE_TYPE xError = pdFALSE;
+
+	for (;;) {
+		/* Loop until the queue is empty. */
+		while (uxQueueMessagesWaiting(*((xQueueHandle *) pvParameters))) {
+			if (xQueueReceive(*((xQueueHandle *) pvParameters), &usData, pollqNO_DELAY) == pdPASS) {
+				if (usData != usExpectedValue) {
+					/* This is not what we expected to receive so an error has
+					occurred. */
+					xError = pdTRUE;
+
+					/* Catch-up to the value we received so our next expected
+					value should again be correct. */
+					usExpectedValue = usData;
+				} else {
+					if (xError == pdFALSE) {
+						/* Only increment the check variable if no errors have
+						occurred. */
+						portENTER_CRITICAL();
+						xPollingConsumerCount++;
+						portEXIT_CRITICAL();
+					}
+				}
+
+				/* Next time round we would expect the number to be one higher. */
+				usExpectedValue++;
+			}
+		}
+
+		/* Now the queue is empty we block, allowing the producer to place more
+		items in the queue. */
+		vTaskDelay(pollqCONSUMER_DELAY);
+	}
+} /*lint !e818 Function prototype must conform to API. */
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running with no errors. */
+portBASE_TYPE xArePollingQueuesStillRunning(void)
+{
+	portBASE_TYPE xReturn;
+
+	/* Check both the consumer and producer poll count to check they have both
+	been changed since out last trip round.  We do not need a critical section
+	around the check variables as this is called from a higher priority than
+	the other tasks that access the same variables. */
+	if ((xPollingConsumerCount == pollqINITIAL_VALUE) ||
+	                (xPollingProducerCount == pollqINITIAL_VALUE)
+	   ) {
+		xReturn = pdFALSE;
+	} else {
+		xReturn = pdTRUE;
+	}
+
+	/* Set the check variables back down so we know if they have been
+	incremented the next time around. */
+	xPollingConsumerCount = pollqINITIAL_VALUE;
+	xPollingProducerCount = pollqINITIAL_VALUE;
+
+	return xReturn;
+}
diff --git a/gyro_board/src/usb/CommonDemoTasks/QPeek.c b/gyro_board/src/usb/CommonDemoTasks/QPeek.c
new file mode 100644
index 0000000..6aa2f78
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/QPeek.c
@@ -0,0 +1,416 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+/*
+ * Tests the behaviour when data is peeked from a queue when there are
+ * multiple tasks blocked on the queue.
+ */
+
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+#include "semphr.h"
+
+/* Demo program include files. */
+#include "QPeek.h"
+
+#define qpeekQUEUE_LENGTH		( 5 )
+#define qpeekNO_BLOCK			( 0 )
+#define qpeekSHORT_DELAY		( 10 )
+
+#define qpeekLOW_PRIORITY			( tskIDLE_PRIORITY + 0 )
+#define qpeekMEDIUM_PRIORITY		( tskIDLE_PRIORITY + 1 )
+#define qpeekHIGH_PRIORITY			( tskIDLE_PRIORITY + 2 )
+#define qpeekHIGHEST_PRIORITY		( tskIDLE_PRIORITY + 3 )
+
+/*-----------------------------------------------------------*/
+
+/*
+ * The following three tasks are used to demonstrate the peeking behaviour.
+ * Each task is given a different priority to demonstrate the order in which
+ * tasks are woken as data is peeked from a queue.
+ */
+static void prvLowPriorityPeekTask(void *pvParameters);
+static void prvMediumPriorityPeekTask(void *pvParameters);
+static void prvHighPriorityPeekTask(void *pvParameters);
+static void prvHighestPriorityPeekTask(void *pvParameters);
+
+/*-----------------------------------------------------------*/
+
+/* Flag that will be latched to pdTRUE should any unexpected behaviour be
+detected in any of the tasks. */
+static volatile portBASE_TYPE xErrorDetected = pdFALSE;
+
+/* Counter that is incremented on each cycle of a test.  This is used to
+detect a stalled task - a test that is no longer running. */
+static volatile unsigned portLONG ulLoopCounter = 0;
+
+/* Handles to the test tasks. */
+xTaskHandle xMediumPriorityTask, xHighPriorityTask, xHighestPriorityTask;
+/*-----------------------------------------------------------*/
+
+void vStartQueuePeekTasks(void)
+{
+	xQueueHandle xQueue;
+
+	/* Create the queue that we are going to use for the test/demo. */
+	xQueue = xQueueCreate(qpeekQUEUE_LENGTH, sizeof(unsigned portLONG));
+
+	/* vQueueAddToRegistry() adds the queue to the queue registry, if one is
+	in use.  The queue registry is provided as a means for kernel aware
+	debuggers to locate queues and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry(xQueue, (signed portCHAR *) "QPeek_Test_Queue");
+
+	/* Create the demo tasks and pass it the queue just created.  We are
+	passing the queue handle by value so it does not matter that it is declared
+	on the stack here. */
+	xTaskCreate(prvLowPriorityPeekTask, (signed portCHAR *)"PeekL", configMINIMAL_STACK_SIZE, (void *) xQueue, qpeekLOW_PRIORITY, NULL);
+	xTaskCreate(prvMediumPriorityPeekTask, (signed portCHAR *)"PeekM", configMINIMAL_STACK_SIZE, (void *) xQueue, qpeekMEDIUM_PRIORITY, &xMediumPriorityTask);
+	xTaskCreate(prvHighPriorityPeekTask, (signed portCHAR *)"PeekH1", configMINIMAL_STACK_SIZE, (void *) xQueue, qpeekHIGH_PRIORITY, &xHighPriorityTask);
+	xTaskCreate(prvHighestPriorityPeekTask, (signed portCHAR *)"PeekH2", configMINIMAL_STACK_SIZE, (void *) xQueue, qpeekHIGHEST_PRIORITY, &xHighestPriorityTask);
+}
+/*-----------------------------------------------------------*/
+
+static void prvHighestPriorityPeekTask(void *pvParameters)
+{
+	xQueueHandle xQueue = (xQueueHandle) pvParameters;
+	unsigned portLONG ulValue;
+
+#ifdef USE_STDIO
+	{
+		void vPrintDisplayMessage(const portCHAR * const * ppcMessageToSend);
+
+		const portCHAR * const pcTaskStartMsg = "Queue peek test started.\r\n";
+
+		/* Queue a message for printing to say the task has started. */
+		vPrintDisplayMessage(&pcTaskStartMsg);
+	}
+#endif
+
+	for (;;) {
+		/* Try peeking from the queue.  The queue should be empty so we will
+		block, allowing the high priority task to execute. */
+		if (xQueuePeek(xQueue, &ulValue, portMAX_DELAY) != pdPASS) {
+			/* We expected to have received something by the time we unblock. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* When we reach here the high and medium priority tasks should still
+		be blocked on the queue.  We unblocked because the low priority task
+		wrote a value to the queue, which we should have peeked.  Peeking the
+		data (rather than receiving it) will leave the data on the queue, so
+		the high priority task should then have also been unblocked, but not
+		yet executed. */
+		if (ulValue != 0x11223344) {
+			/* We did not receive the expected value. */
+			xErrorDetected = pdTRUE;
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 1) {
+			/* The message should have been left on the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Now we are going to actually receive the data, so when the high
+		priority task runs it will find the queue empty and return to the
+		blocked state. */
+		ulValue = 0;
+		if (xQueueReceive(xQueue, &ulValue, qpeekNO_BLOCK) != pdPASS) {
+			/* We expected to receive the value. */
+			xErrorDetected = pdTRUE;
+		}
+
+		if (ulValue != 0x11223344) {
+			/* We did not receive the expected value - which should have been
+			the same value as was peeked. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Now we will block again as the queue is once more empty.  The low
+		priority task can then execute again. */
+		if (xQueuePeek(xQueue, &ulValue, portMAX_DELAY) != pdPASS) {
+			/* We expected to have received something by the time we unblock. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* When we get here the low priority task should have again written to the
+		queue. */
+		if (ulValue != 0x01234567) {
+			/* We did not receive the expected value. */
+			xErrorDetected = pdTRUE;
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 1) {
+			/* The message should have been left on the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* We only peeked the data, so suspending ourselves now should enable
+		the high priority task to also peek the data.  The high priority task
+		will have been unblocked when we peeked the data as we left the data
+		in the queue. */
+		vTaskSuspend(NULL);
+
+
+
+		/* This time we are going to do the same as the above test, but the
+		high priority task is going to receive the data, rather than peek it.
+		This means that the medium priority task should never peek the value. */
+		if (xQueuePeek(xQueue, &ulValue, portMAX_DELAY) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (ulValue != 0xaabbaabb) {
+			xErrorDetected = pdTRUE;
+		}
+
+		vTaskSuspend(NULL);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvHighPriorityPeekTask(void *pvParameters)
+{
+	xQueueHandle xQueue = (xQueueHandle) pvParameters;
+	unsigned portLONG ulValue;
+
+	for (;;) {
+		/* Try peeking from the queue.  The queue should be empty so we will
+		block, allowing the medium priority task to execute.  Both the high
+		and highest priority tasks will then be blocked on the queue. */
+		if (xQueuePeek(xQueue, &ulValue, portMAX_DELAY) != pdPASS) {
+			/* We expected to have received something by the time we unblock. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* When we get here the highest priority task should have peeked the data
+		(unblocking this task) then suspended (allowing this task to also peek
+		the data). */
+		if (ulValue != 0x01234567) {
+			/* We did not receive the expected value. */
+			xErrorDetected = pdTRUE;
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 1) {
+			/* The message should have been left on the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* We only peeked the data, so suspending ourselves now should enable
+		the medium priority task to also peek the data.  The medium priority task
+		will have been unblocked when we peeked the data as we left the data
+		in the queue. */
+		vTaskSuspend(NULL);
+
+
+		/* This time we are going actually receive the value, so the medium
+		priority task will never peek the data - we removed it from the queue. */
+		if (xQueueReceive(xQueue, &ulValue, portMAX_DELAY) != pdPASS) {
+			xErrorDetected = pdTRUE;
+		}
+
+		if (ulValue != 0xaabbaabb) {
+			xErrorDetected = pdTRUE;
+		}
+
+		vTaskSuspend(NULL);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvMediumPriorityPeekTask(void *pvParameters)
+{
+	xQueueHandle xQueue = (xQueueHandle) pvParameters;
+	unsigned portLONG ulValue;
+
+	for (;;) {
+		/* Try peeking from the queue.  The queue should be empty so we will
+		block, allowing the low priority task to execute.  The highest, high
+		and medium priority tasks will then all be blocked on the queue. */
+		if (xQueuePeek(xQueue, &ulValue, portMAX_DELAY) != pdPASS) {
+			/* We expected to have received something by the time we unblock. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* When we get here the high priority task should have peeked the data
+		(unblocking this task) then suspended (allowing this task to also peek
+		the data). */
+		if (ulValue != 0x01234567) {
+			/* We did not receive the expected value. */
+			xErrorDetected = pdTRUE;
+		}
+
+		if (uxQueueMessagesWaiting(xQueue) != 1) {
+			/* The message should have been left on the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Just so we know the test is still running. */
+		ulLoopCounter++;
+
+		/* Now we can suspend ourselves so the low priority task can execute
+		again. */
+		vTaskSuspend(NULL);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvLowPriorityPeekTask(void *pvParameters)
+{
+	xQueueHandle xQueue = (xQueueHandle) pvParameters;
+	unsigned portLONG ulValue;
+
+	for (;;) {
+		/* Write some data to the queue.  This should unblock the highest
+		priority task that is waiting to peek data from the queue. */
+		ulValue = 0x11223344;
+		if (xQueueSendToBack(xQueue, &ulValue, qpeekNO_BLOCK) != pdPASS) {
+			/* We were expecting the queue to be empty so we should not of
+			had a problem writing to the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* By the time we get here the data should have been removed from
+		the queue. */
+		if (uxQueueMessagesWaiting(xQueue) != 0) {
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Write another value to the queue, again waking the highest priority
+		task that is blocked on the queue. */
+		ulValue = 0x01234567;
+		if (xQueueSendToBack(xQueue, &ulValue, qpeekNO_BLOCK) != pdPASS) {
+			/* We were expecting the queue to be empty so we should not of
+			had a problem writing to the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* All the other tasks should now have successfully peeked the data.
+		The data is still in the queue so we should be able to receive it. */
+		ulValue = 0;
+		if (xQueueReceive(xQueue, &ulValue, qpeekNO_BLOCK) != pdPASS) {
+			/* We expected to receive the data. */
+			xErrorDetected = pdTRUE;
+		}
+
+		if (ulValue != 0x01234567) {
+			/* We did not receive the expected value. */
+		}
+
+		/* Lets just delay a while as this is an intensive test as we don't
+		want to starve other tests of processing time. */
+		vTaskDelay(qpeekSHORT_DELAY);
+
+		/* Unsuspend the other tasks so we can repeat the test - this time
+		however not all the other tasks will peek the data as the high
+		priority task is actually going to remove it from the queue.  Send
+		to front is used just to be different.  As the queue is empty it
+		makes no difference to the result. */
+		vTaskResume(xMediumPriorityTask);
+		vTaskResume(xHighPriorityTask);
+		vTaskResume(xHighestPriorityTask);
+
+		ulValue = 0xaabbaabb;
+		if (xQueueSendToFront(xQueue, &ulValue, qpeekNO_BLOCK) != pdPASS) {
+			/* We were expecting the queue to be empty so we should not of
+			had a problem writing to the queue. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* This time we should find that the queue is empty.  The high priority
+		task actually removed the data rather than just peeking it. */
+		if (xQueuePeek(xQueue, &ulValue, qpeekNO_BLOCK) != errQUEUE_EMPTY) {
+			/* We expected to receive the data. */
+			xErrorDetected = pdTRUE;
+		}
+
+		/* Unsuspend the highest and high priority tasks so we can go back
+		and repeat the whole thing.  The medium priority task should not be
+		suspended as it was not able to peek the data in this last case. */
+		vTaskResume(xHighPriorityTask);
+		vTaskResume(xHighestPriorityTask);
+
+		/* Lets just delay a while as this is an intensive test as we don't
+		want to starve other tests of processing time. */
+		vTaskDelay(qpeekSHORT_DELAY);
+	}
+}
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running. */
+portBASE_TYPE xAreQueuePeekTasksStillRunning(void)
+{
+	static unsigned portLONG ulLastLoopCounter = 0;
+
+	/* If the demo task is still running then we expect the loopcounter to
+	have incremented since this function was last called. */
+	if (ulLastLoopCounter == ulLoopCounter) {
+		xErrorDetected = pdTRUE;
+	}
+
+	ulLastLoopCounter = ulLoopCounter;
+
+	/* Errors detected in the task itself will have latched xErrorDetected
+	to true. */
+
+	return !xErrorDetected;
+}
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/blocktim.c b/gyro_board/src/usb/CommonDemoTasks/blocktim.c
new file mode 100644
index 0000000..0174cee
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/blocktim.c
@@ -0,0 +1,456 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * This file contains some test scenarios that ensure tasks do not exit queue
+ * send or receive functions prematurely.  A description of the tests is
+ * included within the code.
+ */
+
+/* Kernel includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+
+/* Demo includes. */
+#include "blocktim.h"
+
+/* Task priorities.  Allow these to be overridden. */
+#ifndef bktPRIMARY_PRIORITY
+#define bktPRIMARY_PRIORITY			( 3 )
+#endif
+
+#ifndef bktSECONDARY_PRIORITY
+#define bktSECONDARY_PRIORITY		( 2 )
+#endif
+
+/* Task behaviour. */
+#define bktQUEUE_LENGTH				( 5 )
+#define bktSHORT_WAIT				( ( ( portTickType ) 20 ) / portTICK_RATE_MS )
+#define bktPRIMARY_BLOCK_TIME		( 10 )
+#define bktALLOWABLE_MARGIN			( 15 )
+#define bktTIME_TO_BLOCK			( 175 )
+#define bktDONT_BLOCK				( ( portTickType ) 0 )
+#define bktRUN_INDICATOR			( ( unsigned portBASE_TYPE ) 0x55 )
+
+/* The queue on which the tasks block. */
+static xQueueHandle xTestQueue;
+
+/* Handle to the secondary task is required by the primary task for calls
+to vTaskSuspend/Resume(). */
+static xTaskHandle xSecondary;
+
+/* Used to ensure that tasks are still executing without error. */
+static volatile portBASE_TYPE xPrimaryCycles = 0, xSecondaryCycles = 0;
+static volatile portBASE_TYPE xErrorOccurred = pdFALSE;
+
+/* Provides a simple mechanism for the primary task to know when the
+secondary task has executed. */
+static volatile unsigned portBASE_TYPE xRunIndicator;
+
+/* The two test tasks.  Their behaviour is commented within the files. */
+static void vPrimaryBlockTimeTestTask(void *pvParameters);
+static void vSecondaryBlockTimeTestTask(void *pvParameters);
+
+/*-----------------------------------------------------------*/
+
+void vCreateBlockTimeTasks(void)
+{
+	/* Create the queue on which the two tasks block. */
+	xTestQueue = xQueueCreate(bktQUEUE_LENGTH, sizeof(portBASE_TYPE));
+
+	/* vQueueAddToRegistry() adds the queue to the queue registry, if one is
+	in use.  The queue registry is provided as a means for kernel aware
+	debuggers to locate queues and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry(xTestQueue, (signed char *) "Block_Time_Queue");
+
+	/* Create the two test tasks. */
+	xTaskCreate(vPrimaryBlockTimeTestTask, (signed char *)"BTest1", configMINIMAL_STACK_SIZE, NULL, bktPRIMARY_PRIORITY, NULL);
+	xTaskCreate(vSecondaryBlockTimeTestTask, (signed char *)"BTest2", configMINIMAL_STACK_SIZE, NULL, bktSECONDARY_PRIORITY, &xSecondary);
+}
+/*-----------------------------------------------------------*/
+
+static void vPrimaryBlockTimeTestTask(void *pvParameters)
+{
+	portBASE_TYPE xItem, xData;
+	portTickType xTimeWhenBlocking;
+	portTickType xTimeToBlock, xBlockedTime;
+
+	(void) pvParameters;
+
+	for (;;) {
+		/*********************************************************************
+		Test 1
+
+		Simple block time wakeup test on queue receives. */
+		for (xItem = 0; xItem < bktQUEUE_LENGTH; xItem++) {
+			/* The queue is empty. Attempt to read from the queue using a block
+			time.  When we wake, ensure the delta in time is as expected. */
+			xTimeToBlock = bktPRIMARY_BLOCK_TIME << xItem;
+
+			xTimeWhenBlocking = xTaskGetTickCount();
+
+			/* We should unblock after xTimeToBlock having not received
+			anything on the queue. */
+			if (xQueueReceive(xTestQueue, &xData, xTimeToBlock) != errQUEUE_EMPTY) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* How long were we blocked for? */
+			xBlockedTime = xTaskGetTickCount() - xTimeWhenBlocking;
+
+			if (xBlockedTime < xTimeToBlock) {
+				/* Should not have blocked for less than we requested. */
+				xErrorOccurred = pdTRUE;
+			}
+
+			if (xBlockedTime > (xTimeToBlock + bktALLOWABLE_MARGIN)) {
+				/* Should not have blocked for longer than we requested,
+				although we would not necessarily run as soon as we were
+				unblocked so a margin is allowed. */
+				xErrorOccurred = pdTRUE;
+			}
+		}
+
+		/*********************************************************************
+		Test 2
+
+		Simple block time wakeup test on queue sends.
+
+		First fill the queue.  It should be empty so all sends should pass. */
+		for (xItem = 0; xItem < bktQUEUE_LENGTH; xItem++) {
+			if (xQueueSend(xTestQueue, &xItem, bktDONT_BLOCK) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+
+#if configUSE_PREEMPTION == 0
+			taskYIELD();
+#endif
+		}
+
+		for (xItem = 0; xItem < bktQUEUE_LENGTH; xItem++) {
+			/* The queue is full. Attempt to write to the queue using a block
+			time.  When we wake, ensure the delta in time is as expected. */
+			xTimeToBlock = bktPRIMARY_BLOCK_TIME << xItem;
+
+			xTimeWhenBlocking = xTaskGetTickCount();
+
+			/* We should unblock after xTimeToBlock having not received
+			anything on the queue. */
+			if (xQueueSend(xTestQueue, &xItem, xTimeToBlock) != errQUEUE_FULL) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* How long were we blocked for? */
+			xBlockedTime = xTaskGetTickCount() - xTimeWhenBlocking;
+
+			if (xBlockedTime < xTimeToBlock) {
+				/* Should not have blocked for less than we requested. */
+				xErrorOccurred = pdTRUE;
+			}
+
+			if (xBlockedTime > (xTimeToBlock + bktALLOWABLE_MARGIN)) {
+				/* Should not have blocked for longer than we requested,
+				although we would not necessarily run as soon as we were
+				unblocked so a margin is allowed. */
+				xErrorOccurred = pdTRUE;
+			}
+		}
+
+		/*********************************************************************
+		Test 3
+
+		Wake the other task, it will block attempting to post to the queue.
+		When we read from the queue the other task will wake, but before it
+		can run we will post to the queue again.  When the other task runs it
+		will find the queue still full, even though it was woken.  It should
+		recognise that its block time has not expired and return to block for
+		the remains of its block time.
+
+		Wake the other task so it blocks attempting to post to the already
+		full queue. */
+		xRunIndicator = 0;
+		vTaskResume(xSecondary);
+
+		/* We need to wait a little to ensure the other task executes. */
+		while (xRunIndicator != bktRUN_INDICATOR) {
+			/* The other task has not yet executed. */
+			vTaskDelay(bktSHORT_WAIT);
+		}
+		/* Make sure the other task is blocked on the queue. */
+		vTaskDelay(bktSHORT_WAIT);
+		xRunIndicator = 0;
+
+		for (xItem = 0; xItem < bktQUEUE_LENGTH; xItem++) {
+			/* Now when we make space on the queue the other task should wake
+			but not execute as this task has higher priority. */
+			if (xQueueReceive(xTestQueue, &xData, bktDONT_BLOCK) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* Now fill the queue again before the other task gets a chance to
+			execute.  If the other task had executed we would find the queue
+			full ourselves, and the other task have set xRunIndicator. */
+			if (xQueueSend(xTestQueue, &xItem, bktDONT_BLOCK) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			if (xRunIndicator == bktRUN_INDICATOR) {
+				/* The other task should not have executed. */
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* Raise the priority of the other task so it executes and blocks
+			on the queue again. */
+			vTaskPrioritySet(xSecondary, bktPRIMARY_PRIORITY + 2);
+
+			/* The other task should now have re-blocked without exiting the
+			queue function. */
+			if (xRunIndicator == bktRUN_INDICATOR) {
+				/* The other task should not have executed outside of the
+				queue function. */
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* Set the priority back down. */
+			vTaskPrioritySet(xSecondary, bktSECONDARY_PRIORITY);
+		}
+
+		/* Let the other task timeout.  When it unblockes it will check that it
+		unblocked at the correct time, then suspend itself. */
+		while (xRunIndicator != bktRUN_INDICATOR) {
+			vTaskDelay(bktSHORT_WAIT);
+		}
+		vTaskDelay(bktSHORT_WAIT);
+		xRunIndicator = 0;
+
+
+		/*********************************************************************
+		Test 4
+
+		As per test 3 - but with the send and receive the other way around.
+		The other task blocks attempting to read from the queue.
+
+		Empty the queue.  We should find that it is full. */
+		for (xItem = 0; xItem < bktQUEUE_LENGTH; xItem++) {
+			if (xQueueReceive(xTestQueue, &xData, bktDONT_BLOCK) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+		}
+
+		/* Wake the other task so it blocks attempting to read from  the
+		already	empty queue. */
+		vTaskResume(xSecondary);
+
+		/* We need to wait a little to ensure the other task executes. */
+		while (xRunIndicator != bktRUN_INDICATOR) {
+			vTaskDelay(bktSHORT_WAIT);
+		}
+		vTaskDelay(bktSHORT_WAIT);
+		xRunIndicator = 0;
+
+		for (xItem = 0; xItem < bktQUEUE_LENGTH; xItem++) {
+			/* Now when we place an item on the queue the other task should
+			wake but not execute as this task has higher priority. */
+			if (xQueueSend(xTestQueue, &xItem, bktDONT_BLOCK) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* Now empty the queue again before the other task gets a chance to
+			execute.  If the other task had executed we would find the queue
+			empty ourselves, and the other task would be suspended. */
+			if (xQueueReceive(xTestQueue, &xData, bktDONT_BLOCK) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			if (xRunIndicator == bktRUN_INDICATOR) {
+				/* The other task should not have executed. */
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* Raise the priority of the other task so it executes and blocks
+			on the queue again. */
+			vTaskPrioritySet(xSecondary, bktPRIMARY_PRIORITY + 2);
+
+			/* The other task should now have re-blocked without exiting the
+			queue function. */
+			if (xRunIndicator == bktRUN_INDICATOR) {
+				/* The other task should not have executed outside of the
+				queue function. */
+				xErrorOccurred = pdTRUE;
+			}
+			vTaskPrioritySet(xSecondary, bktSECONDARY_PRIORITY);
+		}
+
+		/* Let the other task timeout.  When it unblockes it will check that it
+		unblocked at the correct time, then suspend itself. */
+		while (xRunIndicator != bktRUN_INDICATOR) {
+			vTaskDelay(bktSHORT_WAIT);
+		}
+		vTaskDelay(bktSHORT_WAIT);
+
+		xPrimaryCycles++;
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void vSecondaryBlockTimeTestTask(void *pvParameters)
+{
+	portTickType xTimeWhenBlocking, xBlockedTime;
+	portBASE_TYPE xData;
+
+	(void) pvParameters;
+
+	for (;;) {
+		/*********************************************************************
+		Test 1 and 2
+
+		This task does does not participate in these tests. */
+		vTaskSuspend(NULL);
+
+		/*********************************************************************
+		Test 3
+
+		The first thing we do is attempt to read from the queue.  It should be
+		full so we block.  Note the time before we block so we can check the
+		wake time is as per that expected. */
+		xTimeWhenBlocking = xTaskGetTickCount();
+
+		/* We should unblock after bktTIME_TO_BLOCK having not sent
+		anything to the queue. */
+		xData = 0;
+		xRunIndicator = bktRUN_INDICATOR;
+		if (xQueueSend(xTestQueue, &xData, bktTIME_TO_BLOCK) != errQUEUE_FULL) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* How long were we inside the send function? */
+		xBlockedTime = xTaskGetTickCount() - xTimeWhenBlocking;
+
+		/* We should not have blocked for less time than bktTIME_TO_BLOCK. */
+		if (xBlockedTime < bktTIME_TO_BLOCK) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* We should of not blocked for much longer than bktALLOWABLE_MARGIN
+		either.  A margin is permitted as we would not necessarily run as
+		soon as we unblocked. */
+		if (xBlockedTime > (bktTIME_TO_BLOCK + bktALLOWABLE_MARGIN)) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* Suspend ready for test 3. */
+		xRunIndicator = bktRUN_INDICATOR;
+		vTaskSuspend(NULL);
+
+		/*********************************************************************
+		Test 4
+
+		As per test three, but with the send and receive reversed. */
+		xTimeWhenBlocking = xTaskGetTickCount();
+
+		/* We should unblock after bktTIME_TO_BLOCK having not received
+		anything on the queue. */
+		xRunIndicator = bktRUN_INDICATOR;
+		if (xQueueReceive(xTestQueue, &xData, bktTIME_TO_BLOCK) != errQUEUE_EMPTY) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		xBlockedTime = xTaskGetTickCount() - xTimeWhenBlocking;
+
+		/* We should not have blocked for less time than bktTIME_TO_BLOCK. */
+		if (xBlockedTime < bktTIME_TO_BLOCK) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* We should of not blocked for much longer than bktALLOWABLE_MARGIN
+		either.  A margin is permitted as we would not necessarily run as soon
+		as we unblocked. */
+		if (xBlockedTime > (bktTIME_TO_BLOCK + bktALLOWABLE_MARGIN)) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		xRunIndicator = bktRUN_INDICATOR;
+
+		xSecondaryCycles++;
+	}
+}
+/*-----------------------------------------------------------*/
+
+portBASE_TYPE xAreBlockTimeTestTasksStillRunning(void)
+{
+	static portBASE_TYPE xLastPrimaryCycleCount = 0, xLastSecondaryCycleCount = 0;
+	portBASE_TYPE xReturn = pdPASS;
+
+	/* Have both tasks performed at least one cycle since this function was
+	last called? */
+	if (xPrimaryCycles == xLastPrimaryCycleCount) {
+		xReturn = pdFAIL;
+	}
+
+	if (xSecondaryCycles == xLastSecondaryCycleCount) {
+		xReturn = pdFAIL;
+	}
+
+	if (xErrorOccurred == pdTRUE) {
+		xReturn = pdFAIL;
+	}
+
+	xLastSecondaryCycleCount = xSecondaryCycles;
+	xLastPrimaryCycleCount = xPrimaryCycles;
+
+	return xReturn;
+}
diff --git a/gyro_board/src/usb/CommonDemoTasks/flash.c b/gyro_board/src/usb/CommonDemoTasks/flash.c
new file mode 100644
index 0000000..fadc899
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/flash.c
@@ -0,0 +1,146 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/**
+ * This version of flash .c is for use on systems that have limited stack space
+ * and no display facilities.  The complete version can be found in the
+ * Demo/Common/Full directory.
+ *
+ * Three tasks are created, each of which flash an LED at a different rate.  The first
+ * LED flashes every 200ms, the second every 400ms, the third every 600ms.
+ *
+ * The LED flash tasks provide instant visual feedback.  They show that the scheduler
+ * is still operational.
+ *
+ */
+
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* Demo program include files. */
+#include "partest.h"
+#include "flash.h"
+
+#define ledSTACK_SIZE		configMINIMAL_STACK_SIZE
+#define ledNUMBER_OF_LEDS	( 3 )
+#define ledFLASH_RATE_BASE	( ( portTickType ) 333 )
+
+/* Variable used by the created tasks to calculate the LED number to use, and
+the rate at which they should flash the LED. */
+static volatile unsigned portBASE_TYPE uxFlashTaskNumber = 0;
+
+/* The task that is created three times. */
+static portTASK_FUNCTION_PROTO(vLEDFlashTask, pvParameters);
+
+/*-----------------------------------------------------------*/
+
+// To continually print out the serial output, run the following command.
+// while true; do [ `ls /dev/ttyACM* 2>/dev/null` ] && ls /dev/ttyACM* | python -c "import sys; x = sys.stdin.readline()[:-1].split(' ')[0]; sys.stderr.write('Connecting to %s\n' % (x,)); print x" | xargs cat || sleep 0.25;  done
+
+void vStartLEDFlashTasks(unsigned portBASE_TYPE uxPriority)
+{
+	signed portBASE_TYPE xLEDTask;
+
+	/* Create the three tasks. */
+	for (xLEDTask = 0; xLEDTask < ledNUMBER_OF_LEDS; ++xLEDTask) {
+		/* Spawn the task. */
+		xTaskCreate(vLEDFlashTask, (signed char *) "LEDx", ledSTACK_SIZE, NULL, uxPriority, (xTaskHandle *) NULL);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(vLEDFlashTask, pvParameters)
+{
+	portTickType xFlashRate, xLastFlashTime;
+	unsigned portBASE_TYPE uxLED;
+
+	/* The parameters are not used. */
+	(void) pvParameters;
+
+	/* Calculate the LED and flash rate. */
+	portENTER_CRITICAL();
+	{
+		/* See which of the eight LED's we should use. */
+		uxLED = uxFlashTaskNumber;
+
+		/* Update so the next task uses the next LED. */
+		uxFlashTaskNumber++;
+	}
+	portEXIT_CRITICAL();
+
+	xFlashRate = ledFLASH_RATE_BASE + (ledFLASH_RATE_BASE * (portTickType) uxLED);
+	xFlashRate /= portTICK_RATE_MS;
+
+	/* We will turn the LED on and off again in the delay period, so each
+	delay is only half the total period. */
+	xFlashRate /= (portTickType) 2;
+
+	/* We need to initialise xLastFlashTime prior to the first call to
+	vTaskDelayUntil(). */
+	xLastFlashTime = xTaskGetTickCount();
+
+	for (;;) {
+		/* Delay for half the flash period then turn the LED on. */
+		vTaskDelayUntil(&xLastFlashTime, xFlashRate);
+		vParTestToggleLED(uxLED);
+
+		/* Delay for half the flash period then turn the LED off. */
+		vTaskDelayUntil(&xLastFlashTime, xFlashRate);
+		vParTestToggleLED(uxLED);
+	}
+} /*lint !e715 !e818 !e830 Function definition must be standard for task creation. */
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/AltBlckQ.h b/gyro_board/src/usb/CommonDemoTasks/include/AltBlckQ.h
new file mode 100644
index 0000000..dad37ba
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/AltBlckQ.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef ALT_BLOCK_Q_H
+#define ALT_BLOCK_Q_H
+
+void vStartAltBlockingQueueTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreAltBlockingQueuesStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/AltBlock.h b/gyro_board/src/usb/CommonDemoTasks/include/AltBlock.h
new file mode 100644
index 0000000..caa0516
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/AltBlock.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef FAST_BLOCK_TIME_TEST_H
+#define FAST_BLOCK_TIME_TEST_H
+
+void vCreateAltBlockTimeTasks(void);
+portBASE_TYPE xAreAltBlockTimeTestTasksStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/AltPollQ.h b/gyro_board/src/usb/CommonDemoTasks/include/AltPollQ.h
new file mode 100644
index 0000000..66ac04e
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/AltPollQ.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef ALT_POLLED_Q_H
+#define ALT_POLLED_Q_H
+
+void vStartAltPolledQueueTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreAltPollingQueuesStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/AltQTest.h b/gyro_board/src/usb/CommonDemoTasks/include/AltQTest.h
new file mode 100644
index 0000000..b8cc24d
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/AltQTest.h
@@ -0,0 +1,63 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef FAST_GEN_Q_TEST_H
+#define FAST_GEN_Q_TEST_H
+
+void vStartAltGenericQueueTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreAltGenericQueueTasksStillRunning(void);
+
+#endif /* GEN_Q_TEST_H */
+
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/BlockQ.h b/gyro_board/src/usb/CommonDemoTasks/include/BlockQ.h
new file mode 100644
index 0000000..30ea0e1
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/BlockQ.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef BLOCK_Q_H
+#define BLOCK_Q_H
+
+void vStartBlockingQueueTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreBlockingQueuesStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/GenQTest.h b/gyro_board/src/usb/CommonDemoTasks/include/GenQTest.h
new file mode 100644
index 0000000..32a2718
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/GenQTest.h
@@ -0,0 +1,63 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef GEN_Q_TEST_H
+#define GEN_Q_TEST_H
+
+void vStartGenericQueueTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreGenericQueueTasksStillRunning(void);
+
+#endif /* GEN_Q_TEST_H */
+
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/IntQueue.h b/gyro_board/src/usb/CommonDemoTasks/include/IntQueue.h
new file mode 100644
index 0000000..514e458
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/IntQueue.h
@@ -0,0 +1,68 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef QUEUE_ACCESS_TEST
+#define QUEUE_ACCESS_TEST
+
+void vStartInterruptQueueTasks(void);
+portBASE_TYPE xAreIntQueueTasksStillRunning(void);
+portBASE_TYPE xFirstTimerHandler(void);
+portBASE_TYPE xSecondTimerHandler(void);
+
+#endif /* QUEUE_ACCESS_TEST */
+
+
+
+
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/PollQ.h b/gyro_board/src/usb/CommonDemoTasks/include/PollQ.h
new file mode 100644
index 0000000..096b820
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/PollQ.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef POLLED_Q_H
+#define POLLED_Q_H
+
+void vStartPolledQueueTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xArePollingQueuesStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/QPeek.h b/gyro_board/src/usb/CommonDemoTasks/include/QPeek.h
new file mode 100644
index 0000000..2666ebd
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/QPeek.h
@@ -0,0 +1,63 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef Q_PEEK_TEST_H
+#define Q_PEEK_TEST_H
+
+void vStartQueuePeekTasks(void);
+portBASE_TYPE xAreQueuePeekTasksStillRunning(void);
+
+#endif /* Q_PEEK_TEST_H */
+
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/blocktim.h b/gyro_board/src/usb/CommonDemoTasks/include/blocktim.h
new file mode 100644
index 0000000..72fac90
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/blocktim.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef BLOCK_TIME_TEST_H
+#define BLOCK_TIME_TEST_H
+
+void vCreateBlockTimeTasks(void);
+portBASE_TYPE xAreBlockTimeTestTasksStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/comtest.h b/gyro_board/src/usb/CommonDemoTasks/include/comtest.h
new file mode 100644
index 0000000..df974e2
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/comtest.h
@@ -0,0 +1,63 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef COMTEST_H
+#define COMTEST_H
+
+void vAltStartComTestTasks(unsigned portBASE_TYPE uxPriority, unsigned long ulBaudRate, unsigned portBASE_TYPE uxLED);
+void vStartComTestTasks(unsigned portBASE_TYPE uxPriority, eCOMPort ePort, eBaud eBaudRate);
+portBASE_TYPE xAreComTestTasksStillRunning(void);
+void vComTestUnsuspendTask(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/comtest2.h b/gyro_board/src/usb/CommonDemoTasks/include/comtest2.h
new file mode 100644
index 0000000..18beab0
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/comtest2.h
@@ -0,0 +1,61 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef COMTEST_H
+#define COMTEST_H
+
+void vAltStartComTestTasks(unsigned portBASE_TYPE uxPriority, unsigned long ulBaudRate, unsigned portBASE_TYPE uxLED);
+portBASE_TYPE xAreComTestTasksStillRunning(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/countsem.h b/gyro_board/src/usb/CommonDemoTasks/include/countsem.h
new file mode 100644
index 0000000..d08db7b
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/countsem.h
@@ -0,0 +1,61 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef COUNT_SEMAPHORE_TEST_H
+#define COUNT_SEMAPHORE_TEST_H
+
+void vStartCountingSemaphoreTasks(void);
+portBASE_TYPE xAreCountingSemaphoreTasksStillRunning(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/crflash.h b/gyro_board/src/usb/CommonDemoTasks/include/crflash.h
new file mode 100644
index 0000000..6a5f715
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/crflash.h
@@ -0,0 +1,73 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef CRFLASH_LED_H
+#define CRFLASH_LED_H
+
+/*
+ * Create the co-routines used to flash the LED's at different rates.
+ *
+ * @param uxPriority The number of 'fixed delay' co-routines to create.  This
+ *		  also effects the number of LED's that will be utilised.  For example,
+ *		  passing in 3 will cause LED's 0 to 2 to be utilised.
+ */
+void vStartFlashCoRoutines(unsigned portBASE_TYPE uxPriority);
+
+/*
+ * Return pdPASS or pdFAIL depending on whether an error has been detected
+ * or not.
+ */
+portBASE_TYPE xAreFlashCoRoutinesStillRunning(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/crhook.h b/gyro_board/src/usb/CommonDemoTasks/include/crhook.h
new file mode 100644
index 0000000..370677f
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/crhook.h
@@ -0,0 +1,69 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef CRHOOK_H
+#define CRHOOK_H
+
+/*
+ * Create the co-routines used to communicate wit the tick hook.
+ */
+void vStartHookCoRoutines(void);
+
+/*
+ * Return pdPASS or pdFAIL depending on whether an error has been detected
+ * or not.
+ */
+portBASE_TYPE xAreHookCoRoutinesStillRunning(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/death.h b/gyro_board/src/usb/CommonDemoTasks/include/death.h
new file mode 100644
index 0000000..155f4f1
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/death.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef SUICIDE_TASK_H
+#define SUICIDE_TASK_H
+
+void vCreateSuicidalTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xIsCreateTaskStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/dynamic.h b/gyro_board/src/usb/CommonDemoTasks/include/dynamic.h
new file mode 100644
index 0000000..b2bf281
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/dynamic.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef DYNAMIC_MANIPULATION_H
+#define DYNAMIC_MANIPULATION_H
+
+void vStartDynamicPriorityTasks(void);
+portBASE_TYPE xAreDynamicPriorityTasksStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/fileIO.h b/gyro_board/src/usb/CommonDemoTasks/include/fileIO.h
new file mode 100644
index 0000000..9f3c7e0
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/fileIO.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef FILE_IO_H
+#define FILE_OI_H
+
+void vDisplayMessage(const char * const pcMessageToPrint);
+void vWriteMessageToDisk(const char * const pcMessage);
+void vWriteBufferToDisk(const char * const pcBuffer, unsigned long ulBufferLength);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/flash.h b/gyro_board/src/usb/CommonDemoTasks/include/flash.h
new file mode 100644
index 0000000..008df24
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/flash.h
@@ -0,0 +1,60 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef FLASH_LED_H
+#define FLASH_LED_H
+
+void vStartLEDFlashTasks(unsigned portBASE_TYPE uxPriority);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/flop.h b/gyro_board/src/usb/CommonDemoTasks/include/flop.h
new file mode 100644
index 0000000..2e5fb79
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/flop.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef FLOP_TASKS_H
+#define FLOP_TASKS_H
+
+void vStartMathTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreMathsTaskStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/integer.h b/gyro_board/src/usb/CommonDemoTasks/include/integer.h
new file mode 100644
index 0000000..0bdf620
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/integer.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef INTEGER_TASKS_H
+#define INTEGER_TASKS_H
+
+void vStartIntegerMathTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreIntegerMathsTaskStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/mevents.h b/gyro_board/src/usb/CommonDemoTasks/include/mevents.h
new file mode 100644
index 0000000..5452d4b
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/mevents.h
@@ -0,0 +1,62 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef EVENTS_TEST_H
+#define EVENTS_TEST_H
+
+void vStartMultiEventTasks(void);
+portBASE_TYPE xAreMultiEventTasksStillRunning(void);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/partest.h b/gyro_board/src/usb/CommonDemoTasks/include/partest.h
new file mode 100644
index 0000000..4318351
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/partest.h
@@ -0,0 +1,64 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef PARTEST_H
+#define PARTEST_H
+
+#define partstDEFAULT_PORT_ADDRESS		( ( unsigned short ) 0x378 )
+
+void vParTestInitialise(void);
+void vParTestSetLED(unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue);
+void vParTestToggleLED(unsigned portBASE_TYPE uxLED);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/print.h b/gyro_board/src/usb/CommonDemoTasks/include/print.h
new file mode 100644
index 0000000..f0242bd
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/print.h
@@ -0,0 +1,63 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef PRINT_H
+#define PRINT_H
+
+void vPrintInitialise(void);
+void vPrintDisplayMessage(const char * const * pcMessageToSend);
+const char *pcPrintGetNextMessage(portTickType xPrintRate);
+
+#endif
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/recmutex.h b/gyro_board/src/usb/CommonDemoTasks/include/recmutex.h
new file mode 100644
index 0000000..856d6f8
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/recmutex.h
@@ -0,0 +1,61 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef RECURSIVE_MUTEX_TEST_H
+#define RECURSIVE_MUTEX_TEST_H
+
+void vStartRecursiveMutexTasks(void);
+portBASE_TYPE xAreRecursiveMutexTasksStillRunning(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/semtest.h b/gyro_board/src/usb/CommonDemoTasks/include/semtest.h
new file mode 100644
index 0000000..04d5369
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/semtest.h
@@ -0,0 +1,61 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef SEMAPHORE_TEST_H
+#define SEMAPHORE_TEST_H
+
+void vStartSemaphoreTasks(unsigned portBASE_TYPE uxPriority);
+portBASE_TYPE xAreSemaphoreTasksStillRunning(void);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/include/serial.h b/gyro_board/src/usb/CommonDemoTasks/include/serial.h
new file mode 100644
index 0000000..dcc76ea
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/include/serial.h
@@ -0,0 +1,119 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef SERIAL_COMMS_H
+#define SERIAL_COMMS_H
+
+typedef void * xComPortHandle;
+
+typedef enum {
+	serCOM1,
+	serCOM2,
+	serCOM3,
+	serCOM4,
+	serCOM5,
+	serCOM6,
+	serCOM7,
+	serCOM8
+} eCOMPort;
+
+typedef enum {
+	serNO_PARITY,
+	serODD_PARITY,
+	serEVEN_PARITY,
+	serMARK_PARITY,
+	serSPACE_PARITY
+} eParity;
+
+typedef enum {
+	serSTOP_1,
+	serSTOP_2
+} eStopBits;
+
+typedef enum {
+	serBITS_5,
+	serBITS_6,
+	serBITS_7,
+	serBITS_8
+} eDataBits;
+
+typedef enum {
+	ser50,
+	ser75,
+	ser110,
+	ser134,
+	ser150,
+	ser200,
+	ser300,
+	ser600,
+	ser1200,
+	ser1800,
+	ser2400,
+	ser4800,
+	ser9600,
+	ser19200,
+	ser38400,
+	ser57600,
+	ser115200
+} eBaud;
+
+xComPortHandle xSerialPortInitMinimal(unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength);
+xComPortHandle xSerialPortInit(eCOMPort ePort, eBaud eWantedBaud, eParity eWantedParity, eDataBits eWantedDataBits, eStopBits eWantedStopBits, unsigned portBASE_TYPE uxBufferLength);
+void vSerialPutString(xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength);
+signed portBASE_TYPE xSerialGetChar(xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime);
+signed portBASE_TYPE xSerialPutChar(xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime);
+portBASE_TYPE xSerialWaitForSemaphore(xComPortHandle xPort);
+void vSerialClose(xComPortHandle xPort);
+
+#endif
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/integer.c b/gyro_board/src/usb/CommonDemoTasks/integer.c
new file mode 100644
index 0000000..4e2db69
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/integer.c
@@ -0,0 +1,206 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * This version of integer. c is for use on systems that have limited stack
+ * space and no display facilities.  The complete version can be found in
+ * the Demo/Common/Full directory.
+ *
+ * As with the full version, the tasks created in this file are a good test
+ * of the scheduler context switch mechanism.  The processor has to access
+ * 32bit variables in two or four chunks (depending on the processor).  The low
+ * priority of these tasks means there is a high probability that a context
+ * switch will occur mid calculation.  See flop. c documentation for
+ * more information.
+ *
+ */
+
+/*
+Changes from V1.2.1
+
+	+ The constants used in the calculations are larger to ensure the
+	  optimiser does not truncate them to 16 bits.
+
+Changes from V1.2.3
+
+	+ uxTaskCheck is now just used as a boolean.  Instead of incrementing
+	  the variable each cycle of the task, the variable is simply set to
+	  true.  sAreIntegerMathsTaskStillRunning() sets it back to false and
+	  expects it to have been set back to true by the time it is called
+	  again.
+	+ A division has been included in the calculation.
+*/
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* Demo program include files. */
+#include "integer.h"
+
+/* The constants used in the calculation. */
+#define intgCONST1				( ( long ) 123 )
+#define intgCONST2				( ( long ) 234567 )
+#define intgCONST3				( ( long ) -3 )
+#define intgCONST4				( ( long ) 7 )
+#define intgEXPECTED_ANSWER		( ( ( intgCONST1 + intgCONST2 ) * intgCONST3 ) / intgCONST4 )
+
+#define intgSTACK_SIZE			configMINIMAL_STACK_SIZE
+
+/* As this is the minimal version, we will only create one task. */
+#define intgNUMBER_OF_TASKS		( 1 )
+
+/* The task function.  Repeatedly performs a 32 bit calculation, checking the
+result against the expected result.  If the result is incorrect then the
+context switch must have caused some corruption. */
+static portTASK_FUNCTION_PROTO(vCompeteingIntMathTask, pvParameters);
+
+/* Variables that are set to true within the calculation task to indicate
+that the task is still executing.  The check task sets the variable back to
+false, flagging an error if the variable is still false the next time it
+is called. */
+static volatile signed portBASE_TYPE xTaskCheck[ intgNUMBER_OF_TASKS ] = {(signed portBASE_TYPE) pdFALSE };
+
+/*-----------------------------------------------------------*/
+
+void vStartIntegerMathTasks(unsigned portBASE_TYPE uxPriority)
+{
+	short sTask;
+
+	for (sTask = 0; sTask < intgNUMBER_OF_TASKS; sTask++) {
+		xTaskCreate(vCompeteingIntMathTask, (signed char *) "IntMath", intgSTACK_SIZE, (void *) &(xTaskCheck[ sTask ]), uxPriority, (xTaskHandle *) NULL);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(vCompeteingIntMathTask, pvParameters)
+{
+	/* These variables are all effectively set to constants so they are volatile to
+	ensure the compiler does not just get rid of them. */
+	volatile long lValue;
+	short sError = pdFALSE;
+	volatile signed portBASE_TYPE *pxTaskHasExecuted;
+
+	/* Set a pointer to the variable we are going to set to true each
+	iteration.  This is also a good test of the parameter passing mechanism
+	within each port. */
+	pxTaskHasExecuted = (volatile signed portBASE_TYPE *) pvParameters;
+
+	/* Keep performing a calculation and checking the result against a constant. */
+	for (;;) {
+		/* Perform the calculation.  This will store partial value in
+		registers, resulting in a good test of the context switch mechanism. */
+		lValue = intgCONST1;
+		lValue += intgCONST2;
+
+		/* Yield in case cooperative scheduling is being used. */
+#if configUSE_PREEMPTION == 0
+		{
+			taskYIELD();
+		}
+#endif
+
+		/* Finish off the calculation. */
+		lValue *= intgCONST3;
+		lValue /= intgCONST4;
+
+		/* If the calculation is found to be incorrect we stop setting the
+		TaskHasExecuted variable so the check task can see an error has
+		occurred. */
+		if (lValue != intgEXPECTED_ANSWER) { /*lint !e774 volatile used to prevent this being optimised out. */
+			sError = pdTRUE;
+		}
+
+		if (sError == pdFALSE) {
+			/* We have not encountered any errors, so set the flag that show
+			we are still executing.  This will be periodically cleared by
+			the check task. */
+			portENTER_CRITICAL();
+			*pxTaskHasExecuted = pdTRUE;
+			portEXIT_CRITICAL();
+		}
+
+		/* Yield in case cooperative scheduling is being used. */
+#if configUSE_PREEMPTION == 0
+		{
+			taskYIELD();
+		}
+#endif
+	}
+}
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running. */
+portBASE_TYPE xAreIntegerMathsTaskStillRunning(void)
+{
+	portBASE_TYPE xReturn = pdTRUE;
+	short sTask;
+
+	/* Check the maths tasks are still running by ensuring their check variables
+	are still being set to true. */
+	for (sTask = 0; sTask < intgNUMBER_OF_TASKS; sTask++) {
+		if (xTaskCheck[ sTask ] == pdFALSE) {
+			/* The check has not incremented so an error exists. */
+			xReturn = pdFALSE;
+		}
+
+		/* Reset the check variable so we can tell if it has been set by
+		the next time around. */
+		xTaskCheck[ sTask ] = pdFALSE;
+	}
+
+	return xReturn;
+}
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/recmutex.c b/gyro_board/src/usb/CommonDemoTasks/recmutex.c
new file mode 100644
index 0000000..9d163d8
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/recmutex.c
@@ -0,0 +1,334 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+	The tasks defined on this page demonstrate the use of recursive mutexes.
+
+	For recursive mutex functionality the created mutex should be created using
+	xSemaphoreCreateRecursiveMutex(), then be manipulated
+	using the xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() API
+	functions.
+
+	This demo creates three tasks all of which access the same recursive mutex:
+
+	prvRecursiveMutexControllingTask() has the highest priority so executes
+	first and grabs the mutex.  It then performs some recursive accesses -
+	between each of which it sleeps for a short period to let the lower
+	priority tasks execute.  When it has completed its demo functionality
+	it gives the mutex back before suspending itself.
+
+	prvRecursiveMutexBlockingTask() attempts to access the mutex by performing
+	a blocking 'take'.  The blocking task has a lower priority than the
+	controlling	task so by the time it executes the mutex has already been
+	taken by the controlling task,  causing the blocking task to block.  It
+	does not unblock until the controlling task has given the mutex back,
+	and it does not actually run until the controlling task has suspended
+	itself (due to the relative priorities).  When it eventually does obtain
+	the mutex all it does is give the mutex back prior to also suspending
+	itself.  At this point both the controlling task and the blocking task are
+	suspended.
+
+	prvRecursiveMutexPollingTask() runs at the idle priority.  It spins round
+	a tight loop attempting to obtain the mutex with a non-blocking call.  As
+	the lowest priority task it will not successfully obtain the mutex until
+	both the controlling and blocking tasks are suspended.  Once it eventually
+	does obtain the mutex it first unsuspends both the controlling task and
+	blocking task prior to giving the mutex back - resulting in the polling
+	task temporarily inheriting the controlling tasks priority.
+*/
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+
+/* Demo app include files. */
+#include "recmutex.h"
+
+/* Priorities assigned to the three tasks. */
+#define recmuCONTROLLING_TASK_PRIORITY	( tskIDLE_PRIORITY + 2 )
+#define recmuBLOCKING_TASK_PRIORITY		( tskIDLE_PRIORITY + 1 )
+#define recmuPOLLING_TASK_PRIORITY		( tskIDLE_PRIORITY + 0 )
+
+/* The recursive call depth. */
+#define recmuMAX_COUNT					( 10 )
+
+/* Misc. */
+#define recmuSHORT_DELAY				( 20 / portTICK_RATE_MS )
+#define recmuNO_DELAY					( ( portTickType ) 0 )
+#define recmuTWO_TICK_DELAY				( ( portTickType ) 2 )
+
+/* The three tasks as described at the top of this file. */
+static void prvRecursiveMutexControllingTask(void *pvParameters);
+static void prvRecursiveMutexBlockingTask(void *pvParameters);
+static void prvRecursiveMutexPollingTask(void *pvParameters);
+
+/* The mutex used by the demo. */
+static xSemaphoreHandle xMutex;
+
+/* Variables used to detect and latch errors. */
+static volatile portBASE_TYPE xErrorOccurred = pdFALSE, xControllingIsSuspended = pdFALSE, xBlockingIsSuspended = pdFALSE;
+static volatile unsigned portBASE_TYPE uxControllingCycles = 0, uxBlockingCycles, uxPollingCycles = 0;
+
+/* Handles of the two higher priority tasks, required so they can be resumed
+(unsuspended). */
+static xTaskHandle xControllingTaskHandle, xBlockingTaskHandle;
+
+/*-----------------------------------------------------------*/
+
+void vStartRecursiveMutexTasks(void)
+{
+	/* Just creates the mutex and the three tasks. */
+
+	xMutex = xSemaphoreCreateRecursiveMutex();
+
+	/* vQueueAddToRegistry() adds the mutex to the registry, if one is
+	in use.  The registry is provided as a means for kernel aware
+	debuggers to locate mutex and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry((xQueueHandle) xMutex, (signed portCHAR *) "Recursive_Mutex");
+
+
+	if (xMutex != NULL) {
+		xTaskCreate(prvRecursiveMutexControllingTask, (signed portCHAR *) "Rec1", configMINIMAL_STACK_SIZE, NULL, recmuCONTROLLING_TASK_PRIORITY, &xControllingTaskHandle);
+		xTaskCreate(prvRecursiveMutexBlockingTask, (signed portCHAR *) "Rec2", configMINIMAL_STACK_SIZE, NULL, recmuBLOCKING_TASK_PRIORITY, &xBlockingTaskHandle);
+		xTaskCreate(prvRecursiveMutexPollingTask, (signed portCHAR *) "Rec3", configMINIMAL_STACK_SIZE, NULL, recmuPOLLING_TASK_PRIORITY, NULL);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvRecursiveMutexControllingTask(void *pvParameters)
+{
+	unsigned portBASE_TYPE ux;
+
+	/* Just to remove compiler warning. */
+	(void) pvParameters;
+
+	for (;;) {
+		/* Should not be able to 'give' the mutex, as we have not yet 'taken'
+		it. */
+		if (xSemaphoreGiveRecursive(xMutex) == pdPASS) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		for (ux = 0; ux < recmuMAX_COUNT; ux++) {
+			/* We should now be able to take the mutex as many times as
+			we like.  A one tick delay is used so the polling task will
+			inherit our priority on all but the first cycle of this task.
+			If we did not block attempting to receive the mutex then no
+			priority inheritance would occur. */
+			if (xSemaphoreTakeRecursive(xMutex, recmuTWO_TICK_DELAY) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+
+			/* Ensure the other task attempting to access the mutex (and the
+			other demo tasks) are able to execute. */
+			vTaskDelay(recmuSHORT_DELAY);
+		}
+
+		/* For each time we took the mutex, give it back. */
+		for (ux = 0; ux < recmuMAX_COUNT; ux++) {
+			/* Ensure the other task attempting to access the mutex (and the
+			other demo tasks) are able to execute. */
+			vTaskDelay(recmuSHORT_DELAY);
+
+			/* We should now be able to give the mutex as many times as we
+			took it. */
+			if (xSemaphoreGiveRecursive(xMutex) != pdPASS) {
+				xErrorOccurred = pdTRUE;
+			}
+		}
+
+		/* Having given it back the same number of times as it was taken, we
+		should no longer be the mutex owner, so the next give sh ould fail. */
+		if (xSemaphoreGiveRecursive(xMutex) == pdPASS) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* Keep count of the number of cycles this task has performed so a
+		stall can be detected. */
+		uxControllingCycles++;
+
+		/* Suspend ourselves to the blocking task can execute. */
+		xControllingIsSuspended = pdTRUE;
+		vTaskSuspend(NULL);
+		xControllingIsSuspended = pdFALSE;
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvRecursiveMutexBlockingTask(void *pvParameters)
+{
+	/* Just to remove compiler warning. */
+	(void) pvParameters;
+
+	for (;;) {
+		/* Attempt to obtain the mutex.  We should block until the
+		controlling task has given up the mutex, and not actually execute
+		past this call until the controlling task is suspended. */
+		if (xSemaphoreTakeRecursive(xMutex, portMAX_DELAY) == pdPASS) {
+			if (xControllingIsSuspended != pdTRUE) {
+				/* Did not expect to execute until the controlling task was
+				suspended. */
+				xErrorOccurred = pdTRUE;
+			} else {
+				/* Give the mutex back before suspending ourselves to allow
+				the polling task to obtain the mutex. */
+				if (xSemaphoreGiveRecursive(xMutex) != pdPASS) {
+					xErrorOccurred = pdTRUE;
+				}
+
+				xBlockingIsSuspended = pdTRUE;
+				vTaskSuspend(NULL);
+				xBlockingIsSuspended = pdFALSE;
+			}
+		} else {
+			/* We should not leave the xSemaphoreTakeRecursive() function
+			until the mutex was obtained. */
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* The controlling and blocking tasks should be in lock step. */
+		if (uxControllingCycles != (uxBlockingCycles + 1)) {
+			xErrorOccurred = pdTRUE;
+		}
+
+		/* Keep count of the number of cycles this task has performed so a
+		stall can be detected. */
+		uxBlockingCycles++;
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvRecursiveMutexPollingTask(void *pvParameters)
+{
+	/* Just to remove compiler warning. */
+	(void) pvParameters;
+
+	for (;;) {
+		/* Keep attempting to obtain the mutex.  We should only obtain it when
+		the blocking task has suspended itself. */
+		if (xSemaphoreTakeRecursive(xMutex, recmuNO_DELAY) == pdPASS) {
+			/* Is the blocking task suspended? */
+			if (xBlockingIsSuspended != pdTRUE) {
+				xErrorOccurred = pdTRUE;
+			} else {
+				/* Keep count of the number of cycles this task has performed so
+				a stall can be detected. */
+				uxPollingCycles++;
+
+				/* We can resume the other tasks here even though they have a
+				higher priority than the polling task.  When they execute they
+				will attempt to obtain the mutex but fail because the polling
+				task is still the mutex holder.  The polling task (this task)
+				will then inherit the higher priority. */
+				vTaskResume(xBlockingTaskHandle);
+				vTaskResume(xControllingTaskHandle);
+
+				/* Release the mutex, disinheriting the higher priority again. */
+				if (xSemaphoreGiveRecursive(xMutex) != pdPASS) {
+					xErrorOccurred = pdTRUE;
+				}
+			}
+		}
+
+#if configUSE_PREEMPTION == 0
+		{
+			taskYIELD();
+		}
+#endif
+	}
+}
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running. */
+portBASE_TYPE xAreRecursiveMutexTasksStillRunning(void)
+{
+	portBASE_TYPE xReturn;
+	static unsigned portBASE_TYPE uxLastControllingCycles = 0, uxLastBlockingCycles = 0, uxLastPollingCycles = 0;
+
+	/* Is the controlling task still cycling? */
+	if (uxLastControllingCycles == uxControllingCycles) {
+		xErrorOccurred = pdTRUE;
+	} else {
+		uxLastControllingCycles = uxControllingCycles;
+	}
+
+	/* Is the blocking task still cycling? */
+	if (uxLastBlockingCycles == uxBlockingCycles) {
+		xErrorOccurred = pdTRUE;
+	} else {
+		uxLastBlockingCycles = uxBlockingCycles;
+	}
+
+	/* Is the polling task still cycling? */
+	if (uxLastPollingCycles == uxPollingCycles) {
+		xErrorOccurred = pdTRUE;
+	} else {
+		uxLastPollingCycles = uxPollingCycles;
+	}
+
+	if (xErrorOccurred == pdTRUE) {
+		xReturn = pdFAIL;
+	} else {
+		xReturn = pdTRUE;
+	}
+
+	return xReturn;
+}
+
+
+
+
diff --git a/gyro_board/src/usb/CommonDemoTasks/semtest.c b/gyro_board/src/usb/CommonDemoTasks/semtest.c
new file mode 100644
index 0000000..055ed11
--- /dev/null
+++ b/gyro_board/src/usb/CommonDemoTasks/semtest.c
@@ -0,0 +1,263 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * Creates two sets of two tasks.  The tasks within a set share a variable, access
+ * to which is guarded by a semaphore.
+ *
+ * Each task starts by attempting to obtain the semaphore.  On obtaining a
+ * semaphore a task checks to ensure that the guarded variable has an expected
+ * value.  It then clears the variable to zero before counting it back up to the
+ * expected value in increments of 1.  After each increment the variable is checked
+ * to ensure it contains the value to which it was just set. When the starting
+ * value is again reached the task releases the semaphore giving the other task in
+ * the set a chance to do exactly the same thing.  The starting value is high
+ * enough to ensure that a tick is likely to occur during the incrementing loop.
+ *
+ * An error is flagged if at any time during the process a shared variable is
+ * found to have a value other than that expected.  Such an occurrence would
+ * suggest an error in the mutual exclusion mechanism by which access to the
+ * variable is restricted.
+ *
+ * The first set of two tasks poll their semaphore.  The second set use blocking
+ * calls.
+ *
+ */
+
+
+#include <stdlib.h>
+
+/* Scheduler include files. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+
+/* Demo app include files. */
+#include "semtest.h"
+
+/* The value to which the shared variables are counted. */
+#define semtstBLOCKING_EXPECTED_VALUE		( ( unsigned long ) 0xfff )
+#define semtstNON_BLOCKING_EXPECTED_VALUE	( ( unsigned long ) 0xff  )
+
+#define semtstSTACK_SIZE			configMINIMAL_STACK_SIZE
+
+#define semtstNUM_TASKS				( 4 )
+
+#define semtstDELAY_FACTOR			( ( portTickType ) 10 )
+
+/* The task function as described at the top of the file. */
+static portTASK_FUNCTION_PROTO(prvSemaphoreTest, pvParameters);
+
+/* Structure used to pass parameters to each task. */
+typedef struct SEMAPHORE_PARAMETERS {
+	xSemaphoreHandle xSemaphore;
+	volatile unsigned long *pulSharedVariable;
+	portTickType xBlockTime;
+} xSemaphoreParameters;
+
+/* Variables used to check that all the tasks are still running without errors. */
+static volatile short sCheckVariables[ semtstNUM_TASKS ] = { 0 };
+static volatile short sNextCheckVariable = 0;
+
+/*-----------------------------------------------------------*/
+
+void vStartSemaphoreTasks(unsigned portBASE_TYPE uxPriority)
+{
+	xSemaphoreParameters *pxFirstSemaphoreParameters, *pxSecondSemaphoreParameters;
+	const portTickType xBlockTime = (portTickType) 100;
+
+	/* Create the structure used to pass parameters to the first two tasks. */
+	pxFirstSemaphoreParameters = (xSemaphoreParameters *) pvPortMalloc(sizeof(xSemaphoreParameters));
+
+	if (pxFirstSemaphoreParameters != NULL) {
+		/* Create the semaphore used by the first two tasks. */
+		vSemaphoreCreateBinary(pxFirstSemaphoreParameters->xSemaphore);
+
+		if (pxFirstSemaphoreParameters->xSemaphore != NULL) {
+			/* Create the variable which is to be shared by the first two tasks. */
+			pxFirstSemaphoreParameters->pulSharedVariable = (unsigned long *) pvPortMalloc(sizeof(unsigned long));
+
+			/* Initialise the share variable to the value the tasks expect. */
+			*(pxFirstSemaphoreParameters->pulSharedVariable) = semtstNON_BLOCKING_EXPECTED_VALUE;
+
+			/* The first two tasks do not block on semaphore calls. */
+			pxFirstSemaphoreParameters->xBlockTime = (portTickType) 0;
+
+			/* Spawn the first two tasks.  As they poll they operate at the idle priority. */
+			xTaskCreate(prvSemaphoreTest, (signed char *) "PolSEM1", semtstSTACK_SIZE, (void *) pxFirstSemaphoreParameters, tskIDLE_PRIORITY, (xTaskHandle *) NULL);
+			xTaskCreate(prvSemaphoreTest, (signed char *) "PolSEM2", semtstSTACK_SIZE, (void *) pxFirstSemaphoreParameters, tskIDLE_PRIORITY, (xTaskHandle *) NULL);
+		}
+	}
+
+	/* Do exactly the same to create the second set of tasks, only this time
+	provide a block time for the semaphore calls. */
+	pxSecondSemaphoreParameters = (xSemaphoreParameters *) pvPortMalloc(sizeof(xSemaphoreParameters));
+	if (pxSecondSemaphoreParameters != NULL) {
+		vSemaphoreCreateBinary(pxSecondSemaphoreParameters->xSemaphore);
+
+		if (pxSecondSemaphoreParameters->xSemaphore != NULL) {
+			pxSecondSemaphoreParameters->pulSharedVariable = (unsigned long *) pvPortMalloc(sizeof(unsigned long));
+			*(pxSecondSemaphoreParameters->pulSharedVariable) = semtstBLOCKING_EXPECTED_VALUE;
+			pxSecondSemaphoreParameters->xBlockTime = xBlockTime / portTICK_RATE_MS;
+
+			xTaskCreate(prvSemaphoreTest, (signed char *) "BlkSEM1", semtstSTACK_SIZE, (void *) pxSecondSemaphoreParameters, uxPriority, (xTaskHandle *) NULL);
+			xTaskCreate(prvSemaphoreTest, (signed char *) "BlkSEM2", semtstSTACK_SIZE, (void *) pxSecondSemaphoreParameters, uxPriority, (xTaskHandle *) NULL);
+		}
+	}
+
+	/* vQueueAddToRegistry() adds the semaphore to the registry, if one is
+	in use.  The registry is provided as a means for kernel aware
+	debuggers to locate semaphores and has no purpose if a kernel aware debugger
+	is not being used.  The call to vQueueAddToRegistry() will be removed
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
+	defined to be less than 1. */
+	vQueueAddToRegistry((xQueueHandle) pxFirstSemaphoreParameters->xSemaphore, (signed char *) "Counting_Sem_1");
+	vQueueAddToRegistry((xQueueHandle) pxSecondSemaphoreParameters->xSemaphore, (signed char *) "Counting_Sem_2");
+}
+/*-----------------------------------------------------------*/
+
+static portTASK_FUNCTION(prvSemaphoreTest, pvParameters)
+{
+	xSemaphoreParameters *pxParameters;
+	volatile unsigned long *pulSharedVariable, ulExpectedValue;
+	unsigned long ulCounter;
+	short sError = pdFALSE, sCheckVariableToUse;
+
+	/* See which check variable to use.  sNextCheckVariable is not semaphore
+	protected! */
+	portENTER_CRITICAL();
+	sCheckVariableToUse = sNextCheckVariable;
+	sNextCheckVariable++;
+	portEXIT_CRITICAL();
+
+	/* A structure is passed in as the parameter.  This contains the shared
+	variable being guarded. */
+	pxParameters = (xSemaphoreParameters *) pvParameters;
+	pulSharedVariable = pxParameters->pulSharedVariable;
+
+	/* If we are blocking we use a much higher count to ensure loads of context
+	switches occur during the count. */
+	if (pxParameters->xBlockTime > (portTickType) 0) {
+		ulExpectedValue = semtstBLOCKING_EXPECTED_VALUE;
+	} else {
+		ulExpectedValue = semtstNON_BLOCKING_EXPECTED_VALUE;
+	}
+
+	for (;;) {
+		/* Try to obtain the semaphore. */
+		if (xSemaphoreTake(pxParameters->xSemaphore, pxParameters->xBlockTime) == pdPASS) {
+			/* We have the semaphore and so expect any other tasks using the
+			shared variable to have left it in the state we expect to find
+			it. */
+			if (*pulSharedVariable != ulExpectedValue) {
+				sError = pdTRUE;
+			}
+
+			/* Clear the variable, then count it back up to the expected value
+			before releasing the semaphore.  Would expect a context switch or
+			two during this time. */
+			for (ulCounter = (unsigned long) 0; ulCounter <= ulExpectedValue; ulCounter++) {
+				*pulSharedVariable = ulCounter;
+				if (*pulSharedVariable != ulCounter) {
+					sError = pdTRUE;
+				}
+			}
+
+			/* Release the semaphore, and if no errors have occurred increment the check
+			variable. */
+			if (xSemaphoreGive(pxParameters->xSemaphore) == pdFALSE) {
+				sError = pdTRUE;
+			}
+
+			if (sError == pdFALSE) {
+				if (sCheckVariableToUse < semtstNUM_TASKS) {
+					(sCheckVariables[ sCheckVariableToUse ])++;
+				}
+			}
+
+			/* If we have a block time then we are running at a priority higher
+			than the idle priority.  This task takes a long time to complete
+			a cycle	(deliberately so to test the guarding) so will be starving
+			out lower priority tasks.  Block for some time to allow give lower
+			priority tasks some processor time. */
+			vTaskDelay(pxParameters->xBlockTime * semtstDELAY_FACTOR);
+		} else {
+			if (pxParameters->xBlockTime == (portTickType) 0) {
+				/* We have not got the semaphore yet, so no point using the
+				processor.  We are not blocking when attempting to obtain the
+				semaphore. */
+				taskYIELD();
+			}
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+/* This is called to check that all the created tasks are still running. */
+portBASE_TYPE xAreSemaphoreTasksStillRunning(void)
+{
+	static short sLastCheckVariables[ semtstNUM_TASKS ] = { 0 };
+	portBASE_TYPE xTask, xReturn = pdTRUE;
+
+	for (xTask = 0; xTask < semtstNUM_TASKS; xTask++) {
+		if (sLastCheckVariables[ xTask ] == sCheckVariables[ xTask ]) {
+			xReturn = pdFALSE;
+		}
+
+		sLastCheckVariables[ xTask ] = sCheckVariables[ xTask ];
+	}
+
+	return xReturn;
+}
+
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/FreeRTOS.h b/gyro_board/src/usb/FreeRTOS/include/FreeRTOS.h
new file mode 100644
index 0000000..afbd505
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/FreeRTOS.h
@@ -0,0 +1,420 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef INC_FREERTOS_H
+#define INC_FREERTOS_H
+
+
+/*
+ * Include the generic headers required for the FreeRTOS port being used.
+ */
+#include <stddef.h>
+
+/* Basic FreeRTOS definitions. */
+#include "projdefs.h"
+
+/* Application specific configuration options. */
+#include "FreeRTOSConfig.h"
+
+/* Definitions specific to the port being used. */
+#include "portable.h"
+
+
+/* Defines the prototype to which the application task hook function must
+conform. */
+typedef portBASE_TYPE(*pdTASK_HOOK_CODE)(void *);
+
+
+
+
+
+/*
+ * Check all the required application specific macros have been defined.
+ * These macros are application specific and (as downloaded) are defined
+ * within FreeRTOSConfig.h.
+ */
+
+#ifndef configUSE_PREEMPTION
+#error Missing definition:  configUSE_PREEMPTION should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef configUSE_IDLE_HOOK
+#error Missing definition:  configUSE_IDLE_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef configUSE_TICK_HOOK
+#error Missing definition:  configUSE_TICK_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef configUSE_CO_ROUTINES
+#error  Missing definition:  configUSE_CO_ROUTINES should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_vTaskPrioritySet
+#error Missing definition:  INCLUDE_vTaskPrioritySet should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_uxTaskPriorityGet
+#error Missing definition:  INCLUDE_uxTaskPriorityGet should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_vTaskDelete
+#error Missing definition:  INCLUDE_vTaskDelete		 should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_vTaskCleanUpResources
+#error Missing definition:  INCLUDE_vTaskCleanUpResources should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_vTaskSuspend
+#error Missing definition:  INCLUDE_vTaskSuspend	 should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_vTaskDelayUntil
+#error Missing definition:  INCLUDE_vTaskDelayUntil should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef INCLUDE_vTaskDelay
+#error Missing definition:  INCLUDE_vTaskDelay should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef configUSE_16_BIT_TICKS
+#error Missing definition:  configUSE_16_BIT_TICKS should be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
+#endif
+
+#ifndef configUSE_APPLICATION_TASK_TAG
+#define configUSE_APPLICATION_TASK_TAG 0
+#endif
+
+#ifndef INCLUDE_uxTaskGetStackHighWaterMark
+#define INCLUDE_uxTaskGetStackHighWaterMark 0
+#endif
+
+#ifndef configUSE_RECURSIVE_MUTEXES
+#define configUSE_RECURSIVE_MUTEXES 0
+#endif
+
+#ifndef configUSE_MUTEXES
+#define configUSE_MUTEXES 0
+#endif
+
+#ifndef configUSE_COUNTING_SEMAPHORES
+#define configUSE_COUNTING_SEMAPHORES 0
+#endif
+
+#ifndef configUSE_ALTERNATIVE_API
+#define configUSE_ALTERNATIVE_API 0
+#endif
+
+#ifndef portCRITICAL_NESTING_IN_TCB
+#define portCRITICAL_NESTING_IN_TCB 0
+#endif
+
+#ifndef configMAX_TASK_NAME_LEN
+#define configMAX_TASK_NAME_LEN 16
+#endif
+
+#ifndef configIDLE_SHOULD_YIELD
+#define configIDLE_SHOULD_YIELD		1
+#endif
+
+#if configMAX_TASK_NAME_LEN < 1
+#undef configMAX_TASK_NAME_LEN
+#define configMAX_TASK_NAME_LEN 1
+#endif
+
+#ifndef INCLUDE_xTaskResumeFromISR
+#define INCLUDE_xTaskResumeFromISR 1
+#endif
+
+#ifndef INCLUDE_xTaskGetSchedulerState
+#define INCLUDE_xTaskGetSchedulerState 0
+#endif
+
+#if ( configUSE_MUTEXES == 1 )
+/* xTaskGetCurrentTaskHandle is used by the priority inheritance mechanism
+within the mutex implementation so must be available if mutexes are used. */
+#undef INCLUDE_xTaskGetCurrentTaskHandle
+#define INCLUDE_xTaskGetCurrentTaskHandle 1
+#else
+#ifndef INCLUDE_xTaskGetCurrentTaskHandle
+#define INCLUDE_xTaskGetCurrentTaskHandle 0
+#endif
+#endif
+
+
+#ifndef portSET_INTERRUPT_MASK_FROM_ISR
+#define portSET_INTERRUPT_MASK_FROM_ISR() 0
+#endif
+
+#ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
+#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue
+#endif
+
+
+#ifndef configQUEUE_REGISTRY_SIZE
+#define configQUEUE_REGISTRY_SIZE 0
+#endif
+
+#if configQUEUE_REGISTRY_SIZE < 1
+#define configQUEUE_REGISTRY_SIZE 0
+#define vQueueAddToRegistry( xQueue, pcName )
+#define vQueueUnregisterQueue( xQueue )
+#endif
+
+
+/* Remove any unused trace macros. */
+#ifndef traceSTART
+/* Used to perform any necessary initialisation - for example, open a file
+into which trace is to be written. */
+#define traceSTART()
+#endif
+
+#ifndef traceEND
+/* Use to close a trace, for example close a file into which trace has been
+written. */
+#define traceEND()
+#endif
+
+#ifndef traceTASK_SWITCHED_IN
+/* Called after a task has been selected to run.  pxCurrentTCB holds a pointer
+to the task control block of the selected task. */
+#define traceTASK_SWITCHED_IN()
+#endif
+
+#ifndef traceTASK_SWITCHED_OUT
+/* Called before a task has been selected to run.  pxCurrentTCB holds a pointer
+to the task control block of the task being switched out. */
+#define traceTASK_SWITCHED_OUT()
+#endif
+
+#ifndef traceBLOCKING_ON_QUEUE_RECEIVE
+/* Task is about to block because it cannot read from a
+queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
+upon which the read was attempted.  pxCurrentTCB points to the TCB of the
+task that attempted the read. */
+#define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue )
+#endif
+
+#ifndef traceBLOCKING_ON_QUEUE_SEND
+/* Task is about to block because it cannot write to a
+queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
+upon which the write was attempted.  pxCurrentTCB points to the TCB of the
+task that attempted the write. */
+#define traceBLOCKING_ON_QUEUE_SEND( pxQueue )
+#endif
+
+#ifndef configCHECK_FOR_STACK_OVERFLOW
+#define configCHECK_FOR_STACK_OVERFLOW 0
+#endif
+
+/* The following event macros are embedded in the kernel API calls. */
+
+#ifndef traceQUEUE_CREATE
+#define traceQUEUE_CREATE( pxNewQueue )
+#endif
+
+#ifndef traceQUEUE_CREATE_FAILED
+#define traceQUEUE_CREATE_FAILED()
+#endif
+
+#ifndef traceCREATE_MUTEX
+#define traceCREATE_MUTEX( pxNewQueue )
+#endif
+
+#ifndef traceCREATE_MUTEX_FAILED
+#define traceCREATE_MUTEX_FAILED()
+#endif
+
+#ifndef traceGIVE_MUTEX_RECURSIVE
+#define traceGIVE_MUTEX_RECURSIVE( pxMutex )
+#endif
+
+#ifndef traceGIVE_MUTEX_RECURSIVE_FAILED
+#define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex )
+#endif
+
+#ifndef traceTAKE_MUTEX_RECURSIVE
+#define traceTAKE_MUTEX_RECURSIVE( pxMutex )
+#endif
+
+#ifndef traceCREATE_COUNTING_SEMAPHORE
+#define traceCREATE_COUNTING_SEMAPHORE()
+#endif
+
+#ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED
+#define traceCREATE_COUNTING_SEMAPHORE_FAILED()
+#endif
+
+#ifndef traceQUEUE_SEND
+#define traceQUEUE_SEND( pxQueue )
+#endif
+
+#ifndef traceQUEUE_SEND_FAILED
+#define traceQUEUE_SEND_FAILED( pxQueue )
+#endif
+
+#ifndef traceQUEUE_RECEIVE
+#define traceQUEUE_RECEIVE( pxQueue )
+#endif
+
+#ifndef traceQUEUE_PEEK
+#define traceQUEUE_PEEK( pxQueue )
+#endif
+
+#ifndef traceQUEUE_RECEIVE_FAILED
+#define traceQUEUE_RECEIVE_FAILED( pxQueue )
+#endif
+
+#ifndef traceQUEUE_SEND_FROM_ISR
+#define traceQUEUE_SEND_FROM_ISR( pxQueue )
+#endif
+
+#ifndef traceQUEUE_SEND_FROM_ISR_FAILED
+#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue )
+#endif
+
+#ifndef traceQUEUE_RECEIVE_FROM_ISR
+#define traceQUEUE_RECEIVE_FROM_ISR( pxQueue )
+#endif
+
+#ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED
+#define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue )
+#endif
+
+#ifndef traceQUEUE_DELETE
+#define traceQUEUE_DELETE( pxQueue )
+#endif
+
+#ifndef traceTASK_CREATE
+#define traceTASK_CREATE( pxNewTCB )
+#endif
+
+#ifndef traceTASK_CREATE_FAILED
+#define traceTASK_CREATE_FAILED( pxNewTCB )
+#endif
+
+#ifndef traceTASK_DELETE
+#define traceTASK_DELETE( pxTaskToDelete )
+#endif
+
+#ifndef traceTASK_DELAY_UNTIL
+#define traceTASK_DELAY_UNTIL()
+#endif
+
+#ifndef traceTASK_DELAY
+#define traceTASK_DELAY()
+#endif
+
+#ifndef traceTASK_PRIORITY_SET
+#define traceTASK_PRIORITY_SET( pxTask, uxNewPriority )
+#endif
+
+#ifndef traceTASK_SUSPEND
+#define traceTASK_SUSPEND( pxTaskToSuspend )
+#endif
+
+#ifndef traceTASK_RESUME
+#define traceTASK_RESUME( pxTaskToResume )
+#endif
+
+#ifndef traceTASK_RESUME_FROM_ISR
+#define traceTASK_RESUME_FROM_ISR( pxTaskToResume )
+#endif
+
+#ifndef traceTASK_INCREMENT_TICK
+#define traceTASK_INCREMENT_TICK( xTickCount )
+#endif
+
+#ifndef configGENERATE_RUN_TIME_STATS
+#define configGENERATE_RUN_TIME_STATS 0
+#endif
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+
+#ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
+#error If configGENERATE_RUN_TIME_STATS is defined then portCONFIGURE_TIMER_FOR_RUN_TIME_STATS must also be defined.  portCONFIGURE_TIMER_FOR_RUN_TIME_STATS should call a port layer function to setup a peripheral timer/counter that can then be used as the run time counter time base.
+#endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
+
+#ifndef portGET_RUN_TIME_COUNTER_VALUE
+#error If configGENERATE_RUN_TIME_STATS is defined then portGET_RUN_TIME_COUNTER_VALUE must also be defined.  portGET_RUN_TIME_COUNTER_VALUE should evaluate to the counter value of the timer/counter peripheral used as the run time counter time base.
+#endif /* portGET_RUN_TIME_COUNTER_VALUE */
+
+#endif /* configGENERATE_RUN_TIME_STATS */
+
+#ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
+#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
+#endif
+
+#ifndef configUSE_MALLOC_FAILED_HOOK
+#define configUSE_MALLOC_FAILED_HOOK 0
+#endif
+
+#ifndef portPRIVILEGE_BIT
+#define portPRIVILEGE_BIT ( ( unsigned portBASE_TYPE ) 0x00 )
+#endif
+
+#ifndef portYIELD_WITHIN_API
+#define portYIELD_WITHIN_API portYIELD
+#endif
+
+#ifndef pvPortMallocAligned
+#define pvPortMallocAligned( x, puxStackBuffer ) ( ( puxStackBuffer == NULL ) ? ( pvPortMalloc( x ) ) : ( puxStackBuffer ) )
+#endif
+
+#ifndef vPortFreeAligned
+#define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree )
+#endif
+
+#endif /* INC_FREERTOS_H */
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/StackMacros.h b/gyro_board/src/usb/FreeRTOS/include/StackMacros.h
new file mode 100644
index 0000000..67d4c09
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/StackMacros.h
@@ -0,0 +1,173 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef STACK_MACROS_H
+#define STACK_MACROS_H
+
+/*
+ * Call the stack overflow hook function if the stack of the task being swapped
+ * out is currently overflowed, or looks like it might have overflowed in the
+ * past.
+ *
+ * Setting configCHECK_FOR_STACK_OVERFLOW to 1 will cause the macro to check
+ * the current stack state only - comparing the current top of stack value to
+ * the stack limit.  Setting configCHECK_FOR_STACK_OVERFLOW to greater than 1
+ * will also cause the last few stack bytes to be checked to ensure the value
+ * to which the bytes were set when the task was created have not been
+ * overwritten.  Note this second test does not guarantee that an overflowed
+ * stack will always be recognised.
+ */
+
+/*-----------------------------------------------------------*/
+
+#if( configCHECK_FOR_STACK_OVERFLOW == 0 )
+
+/* FreeRTOSConfig.h is not set to check for stack overflows. */
+#define taskFIRST_CHECK_FOR_STACK_OVERFLOW()
+#define taskSECOND_CHECK_FOR_STACK_OVERFLOW()
+
+#endif /* configCHECK_FOR_STACK_OVERFLOW == 0 */
+/*-----------------------------------------------------------*/
+
+#if( configCHECK_FOR_STACK_OVERFLOW == 1 )
+
+/* FreeRTOSConfig.h is only set to use the first method of
+overflow checking. */
+#define taskSECOND_CHECK_FOR_STACK_OVERFLOW()
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH < 0 ) )
+
+/* Only the current stack state is to be checked. */
+#define taskFIRST_CHECK_FOR_STACK_OVERFLOW()														\
+	{																									\
+	extern void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName );			\
+																										\
+		/* Is the currently saved stack pointer within the stack limit? */								\
+		if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack )										\
+		{																								\
+			vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName );	\
+		}																								\
+	}
+
+#endif /* configCHECK_FOR_STACK_OVERFLOW > 0 */
+/*-----------------------------------------------------------*/
+
+#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH > 0 ) )
+
+/* Only the current stack state is to be checked. */
+#define taskFIRST_CHECK_FOR_STACK_OVERFLOW()														\
+	{																									\
+	extern void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName );		\
+																										\
+		/* Is the currently saved stack pointer within the stack limit? */								\
+		if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack )									\
+		{																								\
+			vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName );	\
+		}																								\
+	}
+
+#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */
+/*-----------------------------------------------------------*/
+
+#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) )
+
+#define taskSECOND_CHECK_FOR_STACK_OVERFLOW()																									\
+	{																																				\
+	extern void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName );													\
+	static const unsigned char ucExpectedStackBytes[] = {	tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE };	\
+																																					\
+																																					\
+		/* Has the extremity of the task stack ever been written over? */																			\
+		if( memcmp( ( void * ) pxCurrentTCB->pxStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 )						\
+		{																																			\
+			vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName );												\
+		}																																			\
+	}
+
+#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */
+/*-----------------------------------------------------------*/
+
+#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) )
+
+#define taskSECOND_CHECK_FOR_STACK_OVERFLOW()																									\
+	{																																				\
+	extern void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName );													\
+	char *pcEndOfStack = ( char * ) pxCurrentTCB->pxEndOfStack;																				\
+	static const unsigned char ucExpectedStackBytes[] = {	tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,		\
+																tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE };	\
+																																					\
+																																					\
+		pcEndOfStack -= sizeof( ucExpectedStackBytes );																								\
+																																					\
+		/* Has the extremity of the task stack ever been written over? */																			\
+		if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 )								\
+		{																																			\
+			vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName );												\
+		}																																			\
+	}
+
+#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */
+/*-----------------------------------------------------------*/
+
+#endif /* STACK_MACROS_H */
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/croutine.h b/gyro_board/src/usb/FreeRTOS/include/croutine.h
new file mode 100644
index 0000000..bcedb26
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/croutine.h
@@ -0,0 +1,749 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef INC_FREERTOS_H
+#error "#include FreeRTOS.h" must appear in source files before "#include croutine.h"
+#endif
+
+
+
+
+#ifndef CO_ROUTINE_H
+#define CO_ROUTINE_H
+
+#include "list.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+	/* Used to hide the implementation of the co-routine control block.  The
+	control block structure however has to be included in the header due to
+	the macro implementation of the co-routine functionality. */
+	typedef void * xCoRoutineHandle;
+
+	/* Defines the prototype to which co-routine functions must conform. */
+	typedef void (*crCOROUTINE_CODE)(xCoRoutineHandle, unsigned portBASE_TYPE);
+
+	typedef struct corCoRoutineControlBlock {
+		crCOROUTINE_CODE 		pxCoRoutineFunction;
+		xListItem				xGenericListItem;	/*< List item used to place the CRCB in ready and blocked queues. */
+		xListItem				xEventListItem;		/*< List item used to place the CRCB in event lists. */
+		unsigned portBASE_TYPE 	uxPriority;			/*< The priority of the co-routine in relation to other co-routines. */
+		unsigned portBASE_TYPE 	uxIndex;			/*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */
+		unsigned short 		uxState;			/*< Used internally by the co-routine implementation. */
+	} corCRCB; /* Co-routine control block.  Note must be identical in size down to uxPriority with tskTCB. */
+
+	/**
+	 * croutine. h
+	 *<pre>
+	 portBASE_TYPE xCoRoutineCreate(
+	                                 crCOROUTINE_CODE pxCoRoutineCode,
+	                                 unsigned portBASE_TYPE uxPriority,
+	                                 unsigned portBASE_TYPE uxIndex
+	                               );</pre>
+	 *
+	 * Create a new co-routine and add it to the list of co-routines that are
+	 * ready to run.
+	 *
+	 * @param pxCoRoutineCode Pointer to the co-routine function.  Co-routine
+	 * functions require special syntax - see the co-routine section of the WEB
+	 * documentation for more information.
+	 *
+	 * @param uxPriority The priority with respect to other co-routines at which
+	 *  the co-routine will run.
+	 *
+	 * @param uxIndex Used to distinguish between different co-routines that
+	 * execute the same function.  See the example below and the co-routine section
+	 * of the WEB documentation for further information.
+	 *
+	 * @return pdPASS if the co-routine was successfully created and added to a ready
+	 * list, otherwise an error code defined with ProjDefs.h.
+	 *
+	 * Example usage:
+	   <pre>
+	 // Co-routine to be created.
+	 void vFlashCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // Variables in co-routines must be declared static if they must maintain value across a blocking call.
+	 // This may not be necessary for const variables.
+	 static const char cLedToFlash[ 2 ] = { 5, 6 };
+	 static const portTickType uxFlashRates[ 2 ] = { 200, 400 };
+
+	     // Must start every co-routine with a call to crSTART();
+	     crSTART( xHandle );
+
+	     for( ;; )
+	     {
+	         // This co-routine just delays for a fixed period, then toggles
+	         // an LED.  Two co-routines are created using this function, so
+	         // the uxIndex parameter is used to tell the co-routine which
+	         // LED to flash and how long to delay.  This assumes xQueue has
+	         // already been created.
+	         vParTestToggleLED( cLedToFlash[ uxIndex ] );
+	         crDELAY( xHandle, uxFlashRates[ uxIndex ] );
+	     }
+
+	     // Must end every co-routine with a call to crEND();
+	     crEND();
+	 }
+
+	 // Function that creates two co-routines.
+	 void vOtherFunction( void )
+	 {
+	 unsigned char ucParameterToPass;
+	 xTaskHandle xHandle;
+
+	     // Create two co-routines at priority 0.  The first is given index 0
+	     // so (from the code above) toggles LED 5 every 200 ticks.  The second
+	     // is given index 1 so toggles LED 6 every 400 ticks.
+	     for( uxIndex = 0; uxIndex < 2; uxIndex++ )
+	     {
+	         xCoRoutineCreate( vFlashCoRoutine, 0, uxIndex );
+	     }
+	 }
+	   </pre>
+	 * \defgroup xCoRoutineCreate xCoRoutineCreate
+	 * \ingroup Tasks
+	 */
+	signed portBASE_TYPE xCoRoutineCreate(crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex);
+
+
+	/**
+	 * croutine. h
+	 *<pre>
+	 void vCoRoutineSchedule( void );</pre>
+	 *
+	 * Run a co-routine.
+	 *
+	 * vCoRoutineSchedule() executes the highest priority co-routine that is able
+	 * to run.  The co-routine will execute until it either blocks, yields or is
+	 * preempted by a task.  Co-routines execute cooperatively so one
+	 * co-routine cannot be preempted by another, but can be preempted by a task.
+	 *
+	 * If an application comprises of both tasks and co-routines then
+	 * vCoRoutineSchedule should be called from the idle task (in an idle task
+	 * hook).
+	 *
+	 * Example usage:
+	   <pre>
+	 // This idle task hook will schedule a co-routine each time it is called.
+	 // The rest of the idle task will execute between co-routine calls.
+	 void vApplicationIdleHook( void )
+	 {
+		vCoRoutineSchedule();
+	 }
+
+	 // Alternatively, if you do not require any other part of the idle task to
+	 // execute, the idle task hook can call vCoRoutineScheduler() within an
+	 // infinite loop.
+	 void vApplicationIdleHook( void )
+	 {
+	    for( ;; )
+	    {
+	        vCoRoutineSchedule();
+	    }
+	 }
+	 </pre>
+	 * \defgroup vCoRoutineSchedule vCoRoutineSchedule
+	 * \ingroup Tasks
+	 */
+	void vCoRoutineSchedule(void);
+
+	/**
+	 * croutine. h
+	 * <pre>
+	 crSTART( xCoRoutineHandle xHandle );</pre>
+	 *
+	 * This macro MUST always be called at the start of a co-routine function.
+	 *
+	 * Example usage:
+	   <pre>
+	 // Co-routine to be created.
+	 void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // Variables in co-routines must be declared static if they must maintain value across a blocking call.
+	 static long ulAVariable;
+
+	     // Must start every co-routine with a call to crSTART();
+	     crSTART( xHandle );
+
+	     for( ;; )
+	     {
+	          // Co-routine functionality goes here.
+	     }
+
+	     // Must end every co-routine with a call to crEND();
+	     crEND();
+	 }</pre>
+	 * \defgroup crSTART crSTART
+	 * \ingroup Tasks
+	 */
+#define crSTART( pxCRCB ) switch( ( ( corCRCB * )pxCRCB )->uxState ) { case 0:
+
+	/**
+	 * croutine. h
+	 * <pre>
+	 crEND();</pre>
+	 *
+	 * This macro MUST always be called at the end of a co-routine function.
+	 *
+	 * Example usage:
+	   <pre>
+	 // Co-routine to be created.
+	 void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // Variables in co-routines must be declared static if they must maintain value across a blocking call.
+	 static long ulAVariable;
+
+	     // Must start every co-routine with a call to crSTART();
+	     crSTART( xHandle );
+
+	     for( ;; )
+	     {
+	          // Co-routine functionality goes here.
+	     }
+
+	     // Must end every co-routine with a call to crEND();
+	     crEND();
+	 }</pre>
+	 * \defgroup crSTART crSTART
+	 * \ingroup Tasks
+	 */
+#define crEND() }
+
+	/*
+	 * These macros are intended for internal use by the co-routine implementation
+	 * only.  The macros should not be used directly by application writers.
+	 */
+#define crSET_STATE0( xHandle ) ( ( corCRCB * )xHandle)->uxState = (__LINE__ * 2); return; case (__LINE__ * 2):
+#define crSET_STATE1( xHandle ) ( ( corCRCB * )xHandle)->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1):
+
+	/**
+	 * croutine. h
+	 *<pre>
+	 crDELAY( xCoRoutineHandle xHandle, portTickType xTicksToDelay );</pre>
+	 *
+	 * Delay a co-routine for a fixed period of time.
+	 *
+	 * crDELAY can only be called from the co-routine function itself - not
+	 * from within a function called by the co-routine function.  This is because
+	 * co-routines do not maintain their own stack.
+	 *
+	 * @param xHandle The handle of the co-routine to delay.  This is the xHandle
+	 * parameter of the co-routine function.
+	 *
+	 * @param xTickToDelay The number of ticks that the co-routine should delay
+	 * for.  The actual amount of time this equates to is defined by
+	 * configTICK_RATE_HZ (set in FreeRTOSConfig.h).  The constant portTICK_RATE_MS
+	 * can be used to convert ticks to milliseconds.
+	 *
+	 * Example usage:
+	   <pre>
+	 // Co-routine to be created.
+	 void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // Variables in co-routines must be declared static if they must maintain value across a blocking call.
+	 // This may not be necessary for const variables.
+	 // We are to delay for 200ms.
+	 static const xTickType xDelayTime = 200 / portTICK_RATE_MS;
+
+	     // Must start every co-routine with a call to crSTART();
+	     crSTART( xHandle );
+
+	     for( ;; )
+	     {
+	        // Delay for 200ms.
+	        crDELAY( xHandle, xDelayTime );
+
+	        // Do something here.
+	     }
+
+	     // Must end every co-routine with a call to crEND();
+	     crEND();
+	 }</pre>
+	 * \defgroup crDELAY crDELAY
+	 * \ingroup Tasks
+	 */
+#define crDELAY( xHandle, xTicksToDelay )												\
+	if( xTicksToDelay > 0 )																\
+	{																					\
+		vCoRoutineAddToDelayedList( xTicksToDelay, NULL );								\
+	}																					\
+	crSET_STATE0( xHandle );
+
+	/**
+	 * <pre>
+	 crQUEUE_SEND(
+	                  xCoRoutineHandle xHandle,
+	                  xQueueHandle pxQueue,
+	                  void *pvItemToQueue,
+	                  portTickType xTicksToWait,
+	                  portBASE_TYPE *pxResult
+	             )</pre>
+	 *
+	 * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine
+	 * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks.
+	 *
+	 * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas
+	 * xQueueSend() and xQueueReceive() can only be used from tasks.
+	 *
+	 * crQUEUE_SEND can only be called from the co-routine function itself - not
+	 * from within a function called by the co-routine function.  This is because
+	 * co-routines do not maintain their own stack.
+	 *
+	 * See the co-routine section of the WEB documentation for information on
+	 * passing data between tasks and co-routines and between ISR's and
+	 * co-routines.
+	 *
+	 * @param xHandle The handle of the calling co-routine.  This is the xHandle
+	 * parameter of the co-routine function.
+	 *
+	 * @param pxQueue The handle of the queue on which the data will be posted.
+	 * The handle is obtained as the return value when the queue is created using
+	 * the xQueueCreate() API function.
+	 *
+	 * @param pvItemToQueue A pointer to the data being posted onto the queue.
+	 * The number of bytes of each queued item is specified when the queue is
+	 * created.  This number of bytes is copied from pvItemToQueue into the queue
+	 * itself.
+	 *
+	 * @param xTickToDelay The number of ticks that the co-routine should block
+	 * to wait for space to become available on the queue, should space not be
+	 * available immediately. The actual amount of time this equates to is defined
+	 * by configTICK_RATE_HZ (set in FreeRTOSConfig.h).  The constant
+	 * portTICK_RATE_MS can be used to convert ticks to milliseconds (see example
+	 * below).
+	 *
+	 * @param pxResult The variable pointed to by pxResult will be set to pdPASS if
+	 * data was successfully posted onto the queue, otherwise it will be set to an
+	 * error defined within ProjDefs.h.
+	 *
+	 * Example usage:
+	   <pre>
+	 // Co-routine function that blocks for a fixed period then posts a number onto
+	 // a queue.
+	 static void prvCoRoutineFlashTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // Variables in co-routines must be declared static if they must maintain value across a blocking call.
+	 static portBASE_TYPE xNumberToPost = 0;
+	 static portBASE_TYPE xResult;
+
+	    // Co-routines must begin with a call to crSTART().
+	    crSTART( xHandle );
+
+	    for( ;; )
+	    {
+	        // This assumes the queue has already been created.
+	        crQUEUE_SEND( xHandle, xCoRoutineQueue, &xNumberToPost, NO_DELAY, &xResult );
+
+	        if( xResult != pdPASS )
+	        {
+	            // The message was not posted!
+	        }
+
+	        // Increment the number to be posted onto the queue.
+	        xNumberToPost++;
+
+	        // Delay for 100 ticks.
+	        crDELAY( xHandle, 100 );
+	    }
+
+	    // Co-routines must end with a call to crEND().
+	    crEND();
+	 }</pre>
+	 * \defgroup crQUEUE_SEND crQUEUE_SEND
+	 * \ingroup Tasks
+	 */
+#define crQUEUE_SEND( xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult )			\
+{																						\
+	*pxResult = xQueueCRSend( pxQueue, pvItemToQueue, xTicksToWait );					\
+	if( *pxResult == errQUEUE_BLOCKED )													\
+	{																					\
+		crSET_STATE0( xHandle );														\
+		*pxResult = xQueueCRSend( pxQueue, pvItemToQueue, 0 );							\
+	}																					\
+	if( *pxResult == errQUEUE_YIELD )													\
+	{																					\
+		crSET_STATE1( xHandle );														\
+		*pxResult = pdPASS;																\
+	}																					\
+}
+
+	/**
+	 * croutine. h
+	 * <pre>
+	  crQUEUE_RECEIVE(
+	                     xCoRoutineHandle xHandle,
+	                     xQueueHandle pxQueue,
+	                     void *pvBuffer,
+	                     portTickType xTicksToWait,
+	                     portBASE_TYPE *pxResult
+	                 )</pre>
+	 *
+	 * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine
+	 * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks.
+	 *
+	 * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas
+	 * xQueueSend() and xQueueReceive() can only be used from tasks.
+	 *
+	 * crQUEUE_RECEIVE can only be called from the co-routine function itself - not
+	 * from within a function called by the co-routine function.  This is because
+	 * co-routines do not maintain their own stack.
+	 *
+	 * See the co-routine section of the WEB documentation for information on
+	 * passing data between tasks and co-routines and between ISR's and
+	 * co-routines.
+	 *
+	 * @param xHandle The handle of the calling co-routine.  This is the xHandle
+	 * parameter of the co-routine function.
+	 *
+	 * @param pxQueue The handle of the queue from which the data will be received.
+	 * The handle is obtained as the return value when the queue is created using
+	 * the xQueueCreate() API function.
+	 *
+	 * @param pvBuffer The buffer into which the received item is to be copied.
+	 * The number of bytes of each queued item is specified when the queue is
+	 * created.  This number of bytes is copied into pvBuffer.
+	 *
+	 * @param xTickToDelay The number of ticks that the co-routine should block
+	 * to wait for data to become available from the queue, should data not be
+	 * available immediately. The actual amount of time this equates to is defined
+	 * by configTICK_RATE_HZ (set in FreeRTOSConfig.h).  The constant
+	 * portTICK_RATE_MS can be used to convert ticks to milliseconds (see the
+	 * crQUEUE_SEND example).
+	 *
+	 * @param pxResult The variable pointed to by pxResult will be set to pdPASS if
+	 * data was successfully retrieved from the queue, otherwise it will be set to
+	 * an error code as defined within ProjDefs.h.
+	 *
+	 * Example usage:
+	 <pre>
+	 // A co-routine receives the number of an LED to flash from a queue.  It
+	 // blocks on the queue until the number is received.
+	 static void prvCoRoutineFlashWorkTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // Variables in co-routines must be declared static if they must maintain value across a blocking call.
+	 static portBASE_TYPE xResult;
+	 static unsigned portBASE_TYPE uxLEDToFlash;
+
+	    // All co-routines must start with a call to crSTART().
+	    crSTART( xHandle );
+
+	    for( ;; )
+	    {
+	        // Wait for data to become available on the queue.
+	        crQUEUE_RECEIVE( xHandle, xCoRoutineQueue, &uxLEDToFlash, portMAX_DELAY, &xResult );
+
+	        if( xResult == pdPASS )
+	        {
+	            // We received the LED to flash - flash it!
+	            vParTestToggleLED( uxLEDToFlash );
+	        }
+	    }
+
+	    crEND();
+	 }</pre>
+	 * \defgroup crQUEUE_RECEIVE crQUEUE_RECEIVE
+	 * \ingroup Tasks
+	 */
+#define crQUEUE_RECEIVE( xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult )			\
+{																						\
+	*pxResult = xQueueCRReceive( pxQueue, pvBuffer, xTicksToWait );						\
+	if( *pxResult == errQUEUE_BLOCKED ) 												\
+	{																					\
+		crSET_STATE0( xHandle );														\
+		*pxResult = xQueueCRReceive( pxQueue, pvBuffer, 0 );							\
+	}																					\
+	if( *pxResult == errQUEUE_YIELD )													\
+	{																					\
+		crSET_STATE1( xHandle );														\
+		*pxResult = pdPASS;																\
+	}																					\
+}
+
+	/**
+	 * croutine. h
+	 * <pre>
+	  crQUEUE_SEND_FROM_ISR(
+	                            xQueueHandle pxQueue,
+	                            void *pvItemToQueue,
+	                            portBASE_TYPE xCoRoutinePreviouslyWoken
+	                       )</pre>
+	 *
+	 * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the
+	 * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR()
+	 * functions used by tasks.
+	 *
+	 * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to
+	 * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and
+	 * xQueueReceiveFromISR() can only be used to pass data between a task and and
+	 * ISR.
+	 *
+	 * crQUEUE_SEND_FROM_ISR can only be called from an ISR to send data to a queue
+	 * that is being used from within a co-routine.
+	 *
+	 * See the co-routine section of the WEB documentation for information on
+	 * passing data between tasks and co-routines and between ISR's and
+	 * co-routines.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param xCoRoutinePreviouslyWoken This is included so an ISR can post onto
+	 * the same queue multiple times from a single interrupt.  The first call
+	 * should always pass in pdFALSE.  Subsequent calls should pass in
+	 * the value returned from the previous call.
+	 *
+	 * @return pdTRUE if a co-routine was woken by posting onto the queue.  This is
+	 * used by the ISR to determine if a context switch may be required following
+	 * the ISR.
+	 *
+	 * Example usage:
+	 <pre>
+	 // A co-routine that blocks on a queue waiting for characters to be received.
+	 static void vReceivingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 char cRxedChar;
+	 portBASE_TYPE xResult;
+
+	     // All co-routines must start with a call to crSTART().
+	     crSTART( xHandle );
+
+	     for( ;; )
+	     {
+	         // Wait for data to become available on the queue.  This assumes the
+	         // queue xCommsRxQueue has already been created!
+	         crQUEUE_RECEIVE( xHandle, xCommsRxQueue, &uxLEDToFlash, portMAX_DELAY, &xResult );
+
+	         // Was a character received?
+	         if( xResult == pdPASS )
+	         {
+	             // Process the character here.
+	         }
+	     }
+
+	     // All co-routines must end with a call to crEND().
+	     crEND();
+	 }
+
+	 // An ISR that uses a queue to send characters received on a serial port to
+	 // a co-routine.
+	 void vUART_ISR( void )
+	 {
+	 char cRxedChar;
+	 portBASE_TYPE xCRWokenByPost = pdFALSE;
+
+	     // We loop around reading characters until there are none left in the UART.
+	     while( UART_RX_REG_NOT_EMPTY() )
+	     {
+	         // Obtain the character from the UART.
+	         cRxedChar = UART_RX_REG;
+
+	         // Post the character onto a queue.  xCRWokenByPost will be pdFALSE
+	         // the first time around the loop.  If the post causes a co-routine
+	         // to be woken (unblocked) then xCRWokenByPost will be set to pdTRUE.
+	         // In this manner we can ensure that if more than one co-routine is
+	         // blocked on the queue only one is woken by this ISR no matter how
+	         // many characters are posted to the queue.
+	         xCRWokenByPost = crQUEUE_SEND_FROM_ISR( xCommsRxQueue, &cRxedChar, xCRWokenByPost );
+	     }
+	 }</pre>
+	 * \defgroup crQUEUE_SEND_FROM_ISR crQUEUE_SEND_FROM_ISR
+	 * \ingroup Tasks
+	 */
+#define crQUEUE_SEND_FROM_ISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken )
+
+
+	/**
+	 * croutine. h
+	 * <pre>
+	  crQUEUE_SEND_FROM_ISR(
+	                            xQueueHandle pxQueue,
+	                            void *pvBuffer,
+	                            portBASE_TYPE * pxCoRoutineWoken
+	                       )</pre>
+	 *
+	 * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the
+	 * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR()
+	 * functions used by tasks.
+	 *
+	 * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to
+	 * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and
+	 * xQueueReceiveFromISR() can only be used to pass data between a task and and
+	 * ISR.
+	 *
+	 * crQUEUE_RECEIVE_FROM_ISR can only be called from an ISR to receive data
+	 * from a queue that is being used from within a co-routine (a co-routine
+	 * posted to the queue).
+	 *
+	 * See the co-routine section of the WEB documentation for information on
+	 * passing data between tasks and co-routines and between ISR's and
+	 * co-routines.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvBuffer A pointer to a buffer into which the received item will be
+	 * placed.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from the queue into
+	 * pvBuffer.
+	 *
+	 * @param pxCoRoutineWoken A co-routine may be blocked waiting for space to become
+	 * available on the queue.  If crQUEUE_RECEIVE_FROM_ISR causes such a
+	 * co-routine to unblock *pxCoRoutineWoken will get set to pdTRUE, otherwise
+	 * *pxCoRoutineWoken will remain unchanged.
+	 *
+	 * @return pdTRUE an item was successfully received from the queue, otherwise
+	 * pdFALSE.
+	 *
+	 * Example usage:
+	 <pre>
+	 // A co-routine that posts a character to a queue then blocks for a fixed
+	 // period.  The character is incremented each time.
+	 static void vSendingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+	 {
+	 // cChar holds its value while this co-routine is blocked and must therefore
+	 // be declared static.
+	 static char cCharToTx = 'a';
+	 portBASE_TYPE xResult;
+
+	     // All co-routines must start with a call to crSTART().
+	     crSTART( xHandle );
+
+	     for( ;; )
+	     {
+	         // Send the next character to the queue.
+	         crQUEUE_SEND( xHandle, xCoRoutineQueue, &cCharToTx, NO_DELAY, &xResult );
+
+	         if( xResult == pdPASS )
+	         {
+	             // The character was successfully posted to the queue.
+	         }
+			 else
+			 {
+				// Could not post the character to the queue.
+			 }
+
+	         // Enable the UART Tx interrupt to cause an interrupt in this
+			 // hypothetical UART.  The interrupt will obtain the character
+			 // from the queue and send it.
+			 ENABLE_RX_INTERRUPT();
+
+			 // Increment to the next character then block for a fixed period.
+			 // cCharToTx will maintain its value across the delay as it is
+			 // declared static.
+			 cCharToTx++;
+			 if( cCharToTx > 'x' )
+			 {
+				cCharToTx = 'a';
+			 }
+			 crDELAY( 100 );
+	     }
+
+	     // All co-routines must end with a call to crEND().
+	     crEND();
+	 }
+
+	 // An ISR that uses a queue to receive characters to send on a UART.
+	 void vUART_ISR( void )
+	 {
+	 char cCharToTx;
+	 portBASE_TYPE xCRWokenByPost = pdFALSE;
+
+	     while( UART_TX_REG_EMPTY() )
+	     {
+	         // Are there any characters in the queue waiting to be sent?
+			 // xCRWokenByPost will automatically be set to pdTRUE if a co-routine
+			 // is woken by the post - ensuring that only a single co-routine is
+			 // woken no matter how many times we go around this loop.
+	         if( crQUEUE_RECEIVE_FROM_ISR( pxQueue, &cCharToTx, &xCRWokenByPost ) )
+			 {
+				 SEND_CHARACTER( cCharToTx );
+			 }
+	     }
+	 }</pre>
+	 * \defgroup crQUEUE_RECEIVE_FROM_ISR crQUEUE_RECEIVE_FROM_ISR
+	 * \ingroup Tasks
+	 */
+#define crQUEUE_RECEIVE_FROM_ISR( pxQueue, pvBuffer, pxCoRoutineWoken ) xQueueCRReceiveFromISR( pxQueue, pvBuffer, pxCoRoutineWoken )
+
+	/*
+	 * This function is intended for internal use by the co-routine macros only.
+	 * The macro nature of the co-routine implementation requires that the
+	 * prototype appears here.  The function should not be used by application
+	 * writers.
+	 *
+	 * Removes the current co-routine from its ready list and places it in the
+	 * appropriate delayed list.
+	 */
+	void vCoRoutineAddToDelayedList(portTickType xTicksToDelay, xList *pxEventList);
+
+	/*
+	 * This function is intended for internal use by the queue implementation only.
+	 * The function should not be used by application writers.
+	 *
+	 * Removes the highest priority co-routine from the event list and places it in
+	 * the pending ready list.
+	 */
+	signed portBASE_TYPE xCoRoutineRemoveFromEventList(const xList *pxEventList);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CO_ROUTINE_H */
diff --git a/gyro_board/src/usb/FreeRTOS/include/list.h b/gyro_board/src/usb/FreeRTOS/include/list.h
new file mode 100644
index 0000000..5299ec9
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/list.h
@@ -0,0 +1,303 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * This is the list implementation used by the scheduler.  While it is tailored
+ * heavily for the schedulers needs, it is also available for use by
+ * application code.
+ *
+ * xLists can only store pointers to xListItems.  Each xListItem contains a
+ * numeric value (xItemValue).  Most of the time the lists are sorted in
+ * descending item value order.
+ *
+ * Lists are created already containing one list item.  The value of this
+ * item is the maximum possible that can be stored, it is therefore always at
+ * the end of the list and acts as a marker.  The list member pxHead always
+ * points to this marker - even though it is at the tail of the list.  This
+ * is because the tail contains a wrap back pointer to the true head of
+ * the list.
+ *
+ * In addition to it's value, each list item contains a pointer to the next
+ * item in the list (pxNext), a pointer to the list it is in (pxContainer)
+ * and a pointer to back to the object that contains it.  These later two
+ * pointers are included for efficiency of list manipulation.  There is
+ * effectively a two way link between the object containing the list item and
+ * the list item itself.
+ *
+ *
+ * \page ListIntroduction List Implementation
+ * \ingroup FreeRTOSIntro
+ */
+
+/*
+	Changes from V4.3.1
+
+	+ Included local const within listGET_OWNER_OF_NEXT_ENTRY() to assist
+	  compiler with optimisation.  Thanks B.R.
+*/
+
+#ifndef LIST_H
+#define LIST_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+	/*
+	 * Definition of the only type of object that a list can contain.
+	 */
+	struct xLIST_ITEM {
+		portTickType xItemValue;				/*< The value being listed.  In most cases this is used to sort the list in descending order. */
+		volatile struct xLIST_ITEM * pxNext;	/*< Pointer to the next xListItem in the list. */
+		volatile struct xLIST_ITEM * pxPrevious;/*< Pointer to the previous xListItem in the list. */
+		void * pvOwner;							/*< Pointer to the object (normally a TCB) that contains the list item.  There is therefore a two way link between the object containing the list item and the list item itself. */
+		void * pvContainer;						/*< Pointer to the list in which this list item is placed (if any). */
+	};
+	typedef struct xLIST_ITEM xListItem;		/* For some reason lint wants this as two separate definitions. */
+
+	struct xMINI_LIST_ITEM {
+		portTickType xItemValue;
+		volatile struct xLIST_ITEM *pxNext;
+		volatile struct xLIST_ITEM *pxPrevious;
+	};
+	typedef struct xMINI_LIST_ITEM xMiniListItem;
+
+	/*
+	 * Definition of the type of queue used by the scheduler.
+	 */
+	typedef struct xLIST {
+		volatile unsigned portBASE_TYPE uxNumberOfItems;
+		volatile xListItem * pxIndex;			/*< Used to walk through the list.  Points to the last item returned by a call to pvListGetOwnerOfNextEntry (). */
+		volatile xMiniListItem xListEnd;		/*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */
+	} xList;
+
+	/*
+	 * Access macro to set the owner of a list item.  The owner of a list item
+	 * is the object (usually a TCB) that contains the list item.
+	 *
+	 * \page listSET_LIST_ITEM_OWNER listSET_LIST_ITEM_OWNER
+	 * \ingroup LinkedList
+	 */
+#define listSET_LIST_ITEM_OWNER( pxListItem, pxOwner )		( pxListItem )->pvOwner = ( void * ) pxOwner
+
+	/*
+	 * Access macro to set the value of the list item.  In most cases the value is
+	 * used to sort the list in descending order.
+	 *
+	 * \page listSET_LIST_ITEM_VALUE listSET_LIST_ITEM_VALUE
+	 * \ingroup LinkedList
+	 */
+#define listSET_LIST_ITEM_VALUE( pxListItem, xValue )		( pxListItem )->xItemValue = xValue
+
+	/*
+	 * Access macro the retrieve the value of the list item.  The value can
+	 * represent anything - for example a the priority of a task, or the time at
+	 * which a task should be unblocked.
+	 *
+	 * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE
+	 * \ingroup LinkedList
+	 */
+#define listGET_LIST_ITEM_VALUE( pxListItem )				( ( pxListItem )->xItemValue )
+
+	/*
+	 * Access macro to determine if a list contains any items.  The macro will
+	 * only have the value true if the list is empty.
+	 *
+	 * \page listLIST_IS_EMPTY listLIST_IS_EMPTY
+	 * \ingroup LinkedList
+	 */
+#define listLIST_IS_EMPTY( pxList )				( ( pxList )->uxNumberOfItems == ( unsigned portBASE_TYPE ) 0 )
+
+	/*
+	 * Access macro to return the number of items in the list.
+	 */
+#define listCURRENT_LIST_LENGTH( pxList )		( ( pxList )->uxNumberOfItems )
+
+	/*
+	 * Access function to obtain the owner of the next entry in a list.
+	 *
+	 * The list member pxIndex is used to walk through a list.  Calling
+	 * listGET_OWNER_OF_NEXT_ENTRY increments pxIndex to the next item in the list
+	 * and returns that entries pxOwner parameter.  Using multiple calls to this
+	 * function it is therefore possible to move through every item contained in
+	 * a list.
+	 *
+	 * The pxOwner parameter of a list item is a pointer to the object that owns
+	 * the list item.  In the scheduler this is normally a task control block.
+	 * The pxOwner parameter effectively creates a two way link between the list
+	 * item and its owner.
+	 *
+	 * @param pxList The list from which the next item owner is to be returned.
+	 *
+	 * \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY
+	 * \ingroup LinkedList
+	 */
+#define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList )									\
+{																						\
+xList * const pxConstList = pxList;														\
+	/* Increment the index to the next item and return the item, ensuring */			\
+	/* we don't return the marker used at the end of the list.  */						\
+	( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext;						\
+	if( ( pxConstList )->pxIndex == ( xListItem * ) &( ( pxConstList )->xListEnd ) )	\
+	{																					\
+		( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext;					\
+	}																					\
+	pxTCB = ( pxConstList )->pxIndex->pvOwner;											\
+}
+
+
+	/*
+	 * Access function to obtain the owner of the first entry in a list.  Lists
+	 * are normally sorted in ascending item value order.
+	 *
+	 * This function returns the pxOwner member of the first item in the list.
+	 * The pxOwner parameter of a list item is a pointer to the object that owns
+	 * the list item.  In the scheduler this is normally a task control block.
+	 * The pxOwner parameter effectively creates a two way link between the list
+	 * item and its owner.
+	 *
+	 * @param pxList The list from which the owner of the head item is to be
+	 * returned.
+	 *
+	 * \page listGET_OWNER_OF_HEAD_ENTRY listGET_OWNER_OF_HEAD_ENTRY
+	 * \ingroup LinkedList
+	 */
+#define listGET_OWNER_OF_HEAD_ENTRY( pxList )  ( ( pxList->uxNumberOfItems != ( unsigned portBASE_TYPE ) 0 ) ? ( (&( pxList->xListEnd ))->pxNext->pvOwner ) : ( NULL ) )
+
+	/*
+	 * Check to see if a list item is within a list.  The list item maintains a
+	 * "container" pointer that points to the list it is in.  All this macro does
+	 * is check to see if the container and the list match.
+	 *
+	 * @param pxList The list we want to know if the list item is within.
+	 * @param pxListItem The list item we want to know if is in the list.
+	 * @return pdTRUE is the list item is in the list, otherwise pdFALSE.
+	 * pointer against
+	 */
+#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( pxListItem )->pvContainer == ( void * ) pxList )
+
+	/*
+	 * Must be called before a list is used!  This initialises all the members
+	 * of the list structure and inserts the xListEnd item into the list as a
+	 * marker to the back of the list.
+	 *
+	 * @param pxList Pointer to the list being initialised.
+	 *
+	 * \page vListInitialise vListInitialise
+	 * \ingroup LinkedList
+	 */
+	void vListInitialise(xList *pxList);
+
+	/*
+	 * Must be called before a list item is used.  This sets the list container to
+	 * null so the item does not think that it is already contained in a list.
+	 *
+	 * @param pxItem Pointer to the list item being initialised.
+	 *
+	 * \page vListInitialiseItem vListInitialiseItem
+	 * \ingroup LinkedList
+	 */
+	void vListInitialiseItem(xListItem *pxItem);
+
+	/*
+	 * Insert a list item into a list.  The item will be inserted into the list in
+	 * a position determined by its item value (descending item value order).
+	 *
+	 * @param pxList The list into which the item is to be inserted.
+	 *
+	 * @param pxNewListItem The item to that is to be placed in the list.
+	 *
+	 * \page vListInsert vListInsert
+	 * \ingroup LinkedList
+	 */
+	void vListInsert(xList *pxList, xListItem *pxNewListItem);
+
+	/*
+	 * Insert a list item into a list.  The item will be inserted in a position
+	 * such that it will be the last item within the list returned by multiple
+	 * calls to listGET_OWNER_OF_NEXT_ENTRY.
+	 *
+	 * The list member pvIndex is used to walk through a list.  Calling
+	 * listGET_OWNER_OF_NEXT_ENTRY increments pvIndex to the next item in the list.
+	 * Placing an item in a list using vListInsertEnd effectively places the item
+	 * in the list position pointed to by pvIndex.  This means that every other
+	 * item within the list will be returned by listGET_OWNER_OF_NEXT_ENTRY before
+	 * the pvIndex parameter again points to the item being inserted.
+	 *
+	 * @param pxList The list into which the item is to be inserted.
+	 *
+	 * @param pxNewListItem The list item to be inserted into the list.
+	 *
+	 * \page vListInsertEnd vListInsertEnd
+	 * \ingroup LinkedList
+	 */
+	void vListInsertEnd(xList *pxList, xListItem *pxNewListItem);
+
+	/*
+	 * Remove an item from a list.  The list item has a pointer to the list that
+	 * it is in, so only the list item need be passed into the function.
+	 *
+	 * @param vListRemove The item to be removed.  The item will remove itself from
+	 * the list pointed to by it's pxContainer parameter.
+	 *
+	 * \page vListRemove vListRemove
+	 * \ingroup LinkedList
+	 */
+	void vListRemove(xListItem *pxItemToRemove);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/mpu_wrappers.h b/gyro_board/src/usb/FreeRTOS/include/mpu_wrappers.h
new file mode 100644
index 0000000..ad8ce2d
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/mpu_wrappers.h
@@ -0,0 +1,135 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef MPU_WRAPPERS_H
+#define MPU_WRAPPERS_H
+
+/* This file redefines API functions to be called through a wrapper macro, but
+only for ports that are using the MPU. */
+#ifdef portUSING_MPU_WRAPPERS
+
+/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is
+included from queue.c or task.c to prevent it from having an effect within
+those files. */
+#ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+#define xTaskGenericCreate				MPU_xTaskGenericCreate
+#define vTaskAllocateMPURegions			MPU_vTaskAllocateMPURegions
+#define vTaskDelete						MPU_vTaskDelete
+#define vTaskDelayUntil					MPU_vTaskDelayUntil
+#define vTaskDelay						MPU_vTaskDelay
+#define uxTaskPriorityGet				MPU_uxTaskPriorityGet
+#define vTaskPrioritySet				MPU_vTaskPrioritySet
+#define vTaskSuspend					MPU_vTaskSuspend
+#define xTaskIsTaskSuspended			MPU_xTaskIsTaskSuspended
+#define vTaskResume						MPU_vTaskResume
+#define vTaskSuspendAll					MPU_vTaskSuspendAll
+#define xTaskResumeAll					MPU_xTaskResumeAll
+#define xTaskGetTickCount				MPU_xTaskGetTickCount
+#define uxTaskGetNumberOfTasks			MPU_uxTaskGetNumberOfTasks
+#define vTaskList						MPU_vTaskList
+#define vTaskGetRunTimeStats			MPU_vTaskGetRunTimeStats
+#define vTaskStartTrace					MPU_vTaskStartTrace
+#define ulTaskEndTrace					MPU_ulTaskEndTrace
+#define vTaskSetApplicationTaskTag		MPU_vTaskSetApplicationTaskTag
+#define xTaskGetApplicationTaskTag		MPU_xTaskGetApplicationTaskTag
+#define xTaskCallApplicationTaskHook	MPU_xTaskCallApplicationTaskHook
+#define uxTaskGetStackHighWaterMark		MPU_uxTaskGetStackHighWaterMark
+#define xTaskGetCurrentTaskHandle		MPU_xTaskGetCurrentTaskHandle
+#define xTaskGetSchedulerState			MPU_xTaskGetSchedulerState
+
+#define xQueueCreate					MPU_xQueueCreate
+#define xQueueCreateMutex				MPU_xQueueCreateMutex
+#define xQueueGiveMutexRecursive		MPU_xQueueGiveMutexRecursive
+#define xQueueTakeMutexRecursive		MPU_xQueueTakeMutexRecursive
+#define xQueueCreateCountingSemaphore	MPU_xQueueCreateCountingSemaphore
+#define xQueueGenericSend				MPU_xQueueGenericSend
+#define xQueueAltGenericSend			MPU_xQueueAltGenericSend
+#define xQueueAltGenericReceive			MPU_xQueueAltGenericReceive
+#define xQueueGenericReceive			MPU_xQueueGenericReceive
+#define uxQueueMessagesWaiting			MPU_uxQueueMessagesWaiting
+#define vQueueDelete					MPU_vQueueDelete
+
+#define pvPortMalloc					MPU_pvPortMalloc
+#define vPortFree						MPU_vPortFree
+#define xPortGetFreeHeapSize			MPU_xPortGetFreeHeapSize
+#define vPortInitialiseBlocks			MPU_vPortInitialiseBlocks
+
+#if configQUEUE_REGISTRY_SIZE > 0
+#define vQueueAddToRegistry				MPU_vQueueAddToRegistry
+#define vQueueUnregisterQueue			MPU_vQueueUnregisterQueue
+#endif
+
+/* Remove the privileged function macro. */
+#define PRIVILEGED_FUNCTION
+
+#else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
+
+/* Ensure API functions go in the privileged execution section. */
+#define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions")))
+#define PRIVILEGED_DATA __attribute__((section("privileged_data")))
+//#define PRIVILEGED_DATA
+
+#endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
+
+#else /* portUSING_MPU_WRAPPERS */
+
+#define PRIVILEGED_FUNCTION
+#define PRIVILEGED_DATA
+#define portUSING_MPU_WRAPPERS 0
+
+#endif /* portUSING_MPU_WRAPPERS */
+
+
+#endif /* MPU_WRAPPERS_H */
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/portable.h b/gyro_board/src/usb/FreeRTOS/include/portable.h
new file mode 100644
index 0000000..385be74
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/portable.h
@@ -0,0 +1,391 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*-----------------------------------------------------------
+ * Portable layer API.  Each function must be defined for each port.
+ *----------------------------------------------------------*/
+
+#ifndef PORTABLE_H
+#define PORTABLE_H
+
+/* Include the macro file relevant to the port being used. */
+
+#ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT
+#include "..\..\Source\portable\owatcom\16bitdos\pc\portmacro.h"
+typedef void (__interrupt __far *pxISR)();
+#endif
+
+#ifdef OPEN_WATCOM_FLASH_LITE_186_PORT
+#include "..\..\Source\portable\owatcom\16bitdos\flsh186\portmacro.h"
+typedef void (__interrupt __far *pxISR)();
+#endif
+
+#ifdef GCC_MEGA_AVR
+#include "../portable/GCC/ATMega323/portmacro.h"
+#endif
+
+#ifdef IAR_MEGA_AVR
+#include "../portable/IAR/ATMega323/portmacro.h"
+#endif
+
+#ifdef MPLAB_PIC24_PORT
+#include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h"
+#endif
+
+#ifdef MPLAB_DSPIC_PORT
+#include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h"
+#endif
+
+#ifdef MPLAB_PIC18F_PORT
+#include "..\..\Source\portable\MPLAB\PIC18F\portmacro.h"
+#endif
+
+#ifdef MPLAB_PIC32MX_PORT
+#include "..\..\Source\portable\MPLAB\PIC32MX\portmacro.h"
+#endif
+
+#ifdef _FEDPICC
+#include "libFreeRTOS/Include/portmacro.h"
+#endif
+
+#ifdef SDCC_CYGNAL
+#include "../../Source/portable/SDCC/Cygnal/portmacro.h"
+#endif
+
+#ifdef GCC_ARM7
+#include "../../Source/portable/GCC/ARM7_LPC2000/portmacro.h"
+#endif
+
+#ifdef GCC_ARM7_ECLIPSE
+#include "portmacro.h"
+#endif
+
+#ifdef ROWLEY_LPC23xx
+#include "../../Source/portable/GCC/ARM7_LPC23xx/portmacro.h"
+#endif
+
+#ifdef IAR_MSP430
+#include "..\..\Source\portable\IAR\MSP430\portmacro.h"
+#endif
+
+#ifdef GCC_MSP430
+#include "../../Source/portable/GCC/MSP430F449/portmacro.h"
+#endif
+
+#ifdef ROWLEY_MSP430
+#include "../../Source/portable/Rowley/MSP430F449/portmacro.h"
+#endif
+
+#ifdef ARM7_LPC21xx_KEIL_RVDS
+#include "..\..\Source\portable\RVDS\ARM7_LPC21xx\portmacro.h"
+#endif
+
+#ifdef SAM7_GCC
+#include "../../Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h"
+#endif
+
+#ifdef SAM7_IAR
+#include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h"
+#endif
+
+#ifdef SAM9XE_IAR
+#include "..\..\Source\portable\IAR\AtmelSAM9XE\portmacro.h"
+#endif
+
+#ifdef LPC2000_IAR
+#include "..\..\Source\portable\IAR\LPC2000\portmacro.h"
+#endif
+
+#ifdef STR71X_IAR
+#include "..\..\Source\portable\IAR\STR71x\portmacro.h"
+#endif
+
+#ifdef STR75X_IAR
+#include "..\..\Source\portable\IAR\STR75x\portmacro.h"
+#endif
+
+#ifdef STR75X_GCC
+#include "..\..\Source\portable\GCC\STR75x\portmacro.h"
+#endif
+
+#ifdef STR91X_IAR
+#include "..\..\Source\portable\IAR\STR91x\portmacro.h"
+#endif
+
+#ifdef GCC_H8S
+#include "../../Source/portable/GCC/H8S2329/portmacro.h"
+#endif
+
+#ifdef GCC_AT91FR40008
+#include "../../Source/portable/GCC/ARM7_AT91FR40008/portmacro.h"
+#endif
+
+#ifdef RVDS_ARMCM3_LM3S102
+#include "../../Source/portable/RVDS/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef GCC_ARMCM3_LM3S102
+#include "../../Source/portable/GCC/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef GCC_ARMCM3
+#include "../../Source/portable/GCC/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef IAR_ARM_CM3
+#include "../../Source/portable/IAR/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef IAR_ARMCM3_LM
+#include "../../Source/portable/IAR/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef HCS12_CODE_WARRIOR
+#include "../../Source/portable/CodeWarrior/HCS12/portmacro.h"
+#endif
+
+#ifdef MICROBLAZE_GCC
+#include "../../Source/portable/GCC/MicroBlaze/portmacro.h"
+#endif
+
+#ifdef TERN_EE
+#include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h"
+#endif
+
+#ifdef GCC_HCS12
+#include "../../Source/portable/GCC/HCS12/portmacro.h"
+#endif
+
+#ifdef GCC_MCF5235
+#include "../../Source/portable/GCC/MCF5235/portmacro.h"
+#endif
+
+#ifdef COLDFIRE_V2_GCC
+#include "../../../Source/portable/GCC/ColdFire_V2/portmacro.h"
+#endif
+
+#ifdef COLDFIRE_V2_CODEWARRIOR
+#include "../../Source/portable/CodeWarrior/ColdFire_V2/portmacro.h"
+#endif
+
+#ifdef GCC_PPC405
+#include "../../Source/portable/GCC/PPC405_Xilinx/portmacro.h"
+#endif
+
+#ifdef GCC_PPC440
+#include "../../Source/portable/GCC/PPC440_Xilinx/portmacro.h"
+#endif
+
+#ifdef _16FX_SOFTUNE
+#include "..\..\Source\portable\Softune\MB96340\portmacro.h"
+#endif
+
+#ifdef BCC_INDUSTRIAL_PC_PORT
+/* A short file name has to be used in place of the normal
+FreeRTOSConfig.h when using the Borland compiler. */
+#include "frconfig.h"
+#include "..\portable\BCC\16BitDOS\PC\prtmacro.h"
+typedef void (__interrupt __far *pxISR)();
+#endif
+
+#ifdef BCC_FLASH_LITE_186_PORT
+/* A short file name has to be used in place of the normal
+FreeRTOSConfig.h when using the Borland compiler. */
+#include "frconfig.h"
+#include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h"
+typedef void (__interrupt __far *pxISR)();
+#endif
+
+#ifdef __GNUC__
+#ifdef __AVR32_AVR32A__
+#include "portmacro.h"
+#endif
+#endif
+
+#ifdef __ICCAVR32__
+#ifdef __CORE__
+#if __CORE__ == __AVR32A__
+#include "portmacro.h"
+#endif
+#endif
+#endif
+
+#ifdef __91467D
+#include "portmacro.h"
+#endif
+
+#ifdef __96340
+#include "portmacro.h"
+#endif
+
+
+#ifdef __IAR_V850ES_Fx3__
+#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Jx3__
+#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Jx3_L__
+#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Jx2__
+#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Hx2__
+#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_78K0R_Kx3__
+#include "../../Source/portable/IAR/78K0R/portmacro.h"
+#endif
+
+#ifdef __IAR_78K0R_Kx3L__
+#include "../../Source/portable/IAR/78K0R/portmacro.h"
+#endif
+
+/* Catch all to ensure portmacro.h is included in the build.  Newer demos
+have the path as part of the project options, rather than as relative from
+the project location.  If portENTER_CRITICAL() has not been defined then
+portmacro.h has not yet been included - as every portmacro.h provides a
+portENTER_CRITICAL() definition.  Check the demo application for your demo
+to find the path to the correct portmacro.h file. */
+#ifndef portENTER_CRITICAL
+#include "portmacro.h"
+#endif
+
+#if portBYTE_ALIGNMENT == 8
+#define portBYTE_ALIGNMENT_MASK ( 0x0007 )
+#endif
+
+#if portBYTE_ALIGNMENT == 4
+#define portBYTE_ALIGNMENT_MASK	( 0x0003 )
+#endif
+
+#if portBYTE_ALIGNMENT == 2
+#define portBYTE_ALIGNMENT_MASK	( 0x0001 )
+#endif
+
+#if portBYTE_ALIGNMENT == 1
+#define portBYTE_ALIGNMENT_MASK	( 0x0000 )
+#endif
+
+#ifndef portBYTE_ALIGNMENT_MASK
+#error "Invalid portBYTE_ALIGNMENT definition"
+#endif
+
+#ifndef portNUM_CONFIGURABLE_REGIONS
+#define portNUM_CONFIGURABLE_REGIONS 1
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "mpu_wrappers.h"
+
+	/*
+	 * Setup the stack of a new task so it is ready to be placed under the
+	 * scheduler control.  The registers have to be placed on the stack in
+	 * the order that the port expects to find them.
+	 *
+	 */
+#if( portUSING_MPU_WRAPPERS == 1 )
+	portSTACK_TYPE *pxPortInitialiseStack(portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters, portBASE_TYPE xRunPrivileged) PRIVILEGED_FUNCTION;
+#else
+	portSTACK_TYPE *pxPortInitialiseStack(portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters);
+#endif
+
+	/*
+	 * Map to the memory management routines required for the port.
+	 */
+	void *pvPortMalloc(size_t xSize) PRIVILEGED_FUNCTION;
+	void vPortFree(void *pv) PRIVILEGED_FUNCTION;
+	void vPortInitialiseBlocks(void) PRIVILEGED_FUNCTION;
+	size_t xPortGetFreeHeapSize(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Setup the hardware ready for the scheduler to take control.  This generally
+	 * sets up a tick interrupt and sets timers for the correct tick frequency.
+	 */
+	portBASE_TYPE xPortStartScheduler(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so
+	 * the hardware is left in its original condition after the scheduler stops
+	 * executing.
+	 */
+	void vPortEndScheduler(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * The structures and methods of manipulating the MPU are contained within the
+	 * port layer.
+	 *
+	 * Fills the xMPUSettings structure with the memory region information
+	 * contained in xRegions.
+	 */
+#if( portUSING_MPU_WRAPPERS == 1 )
+	struct xMEMORY_REGION;
+	void vPortStoreTaskMPUSettings(xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, portSTACK_TYPE *pxBottomOfStack, unsigned short usStackDepth) PRIVILEGED_FUNCTION;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PORTABLE_H */
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/projdefs.h b/gyro_board/src/usb/FreeRTOS/include/projdefs.h
new file mode 100644
index 0000000..543992d
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/projdefs.h
@@ -0,0 +1,77 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef PROJDEFS_H
+#define PROJDEFS_H
+
+/* Defines the prototype to which task functions must conform. */
+typedef void (*pdTASK_CODE)(void *);
+
+#define pdTRUE		( 1 )
+#define pdFALSE		( 0 )
+
+#define pdPASS									( 1 )
+#define pdFAIL									( 0 )
+#define errQUEUE_EMPTY							( 0 )
+#define errQUEUE_FULL							( 0 )
+
+/* Error definitions. */
+#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY	( -1 )
+#define errNO_TASK_TO_RUN						( -2 )
+#define errQUEUE_BLOCKED						( -4 )
+#define errQUEUE_YIELD							( -5 )
+
+#endif /* PROJDEFS_H */
+
+
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/queue.h b/gyro_board/src/usb/FreeRTOS/include/queue.h
new file mode 100644
index 0000000..8d5dcba
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/queue.h
@@ -0,0 +1,1262 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef INC_FREERTOS_H
+#error "#include FreeRTOS.h" must appear in source files before "#include queue.h"
+#endif
+
+
+
+
+#ifndef QUEUE_H
+#define QUEUE_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+#include "mpu_wrappers.h"
+
+
+	typedef void * xQueueHandle;
+
+
+	/* For internal use only. */
+#define	queueSEND_TO_BACK	( 0 )
+#define	queueSEND_TO_FRONT	( 1 )
+
+
+	/**
+	 * queue. h
+	 * <pre>
+	 xQueueHandle xQueueCreate(
+								  unsigned portBASE_TYPE uxQueueLength,
+								  unsigned portBASE_TYPE uxItemSize
+							  );
+	 * </pre>
+	 *
+	 * Creates a new queue instance.  This allocates the storage required by the
+	 * new queue and returns a handle for the queue.
+	 *
+	 * @param uxQueueLength The maximum number of items that the queue can contain.
+	 *
+	 * @param uxItemSize The number of bytes each item in the queue will require.
+	 * Items are queued by copy, not by reference, so this is the number of bytes
+	 * that will be copied for each posted item.  Each item on the queue must be
+	 * the same size.
+	 *
+	 * @return If the queue is successfully create then a handle to the newly
+	 * created queue is returned.  If the queue cannot be created then 0 is
+	 * returned.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 };
+
+	 void vATask( void *pvParameters )
+	 {
+	 xQueueHandle xQueue1, xQueue2;
+
+		// Create a queue capable of containing 10 unsigned long values.
+		xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );
+		if( xQueue1 == 0 )
+		{
+			// Queue was not created and must not be used.
+		}
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
+		if( xQueue2 == 0 )
+		{
+			// Queue was not created and must not be used.
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueCreate xQueueCreate
+	 * \ingroup QueueManagement
+	 */
+	xQueueHandle xQueueCreate(unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize);
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueSendToToFront(
+									   xQueueHandle	xQueue,
+									   const	void	*	pvItemToQueue,
+									   portTickType	xTicksToWait
+								   );
+	 * </pre>
+	 *
+	 * This is a macro that calls xQueueGenericSend().
+	 *
+	 * Post an item to the front of a queue.  The item is queued by copy, not by
+	 * reference.  This function must not be called from an interrupt service
+	 * routine.  See xQueueSendFromISR () for an alternative which may be used
+	 * in an ISR.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for space to become available on the queue, should it already
+	 * be full.  The call will return immediately if this is set to 0 and the
+	 * queue is full.  The time is defined in tick periods so the constant
+	 * portTICK_RATE_MS should be used to convert to real time if this is required.
+	 *
+	 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 unsigned long ulVar = 10UL;
+
+	 void vATask( void *pvParameters )
+	 {
+	 xQueueHandle xQueue1, xQueue2;
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 unsigned long values.
+		xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
+
+		// ...
+
+		if( xQueue1 != 0 )
+		{
+			// Send an unsigned long.  Wait for 10 ticks for space to become
+			// available if necessary.
+			if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )
+			{
+				// Failed to post the message, even after 10 ticks.
+			}
+		}
+
+		if( xQueue2 != 0 )
+		{
+			// Send a pointer to a struct AMessage object.  Don't block if the
+			// queue is already full.
+			pxMessage = & xMessage;
+			xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueSend xQueueSend
+	 * \ingroup QueueManagement
+	 */
+#define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_FRONT )
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueSendToBack(
+									   xQueueHandle	xQueue,
+									   const	void	*	pvItemToQueue,
+									   portTickType	xTicksToWait
+								   );
+	 * </pre>
+	 *
+	 * This is a macro that calls xQueueGenericSend().
+	 *
+	 * Post an item to the back of a queue.  The item is queued by copy, not by
+	 * reference.  This function must not be called from an interrupt service
+	 * routine.  See xQueueSendFromISR () for an alternative which may be used
+	 * in an ISR.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for space to become available on the queue, should it already
+	 * be full.  The call will return immediately if this is set to 0 and the queue
+	 * is full.  The  time is defined in tick periods so the constant
+	 * portTICK_RATE_MS should be used to convert to real time if this is required.
+	 *
+	 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 unsigned long ulVar = 10UL;
+
+	 void vATask( void *pvParameters )
+	 {
+	 xQueueHandle xQueue1, xQueue2;
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 unsigned long values.
+		xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
+
+		// ...
+
+		if( xQueue1 != 0 )
+		{
+			// Send an unsigned long.  Wait for 10 ticks for space to become
+			// available if necessary.
+			if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )
+			{
+				// Failed to post the message, even after 10 ticks.
+			}
+		}
+
+		if( xQueue2 != 0 )
+		{
+			// Send a pointer to a struct AMessage object.  Don't block if the
+			// queue is already full.
+			pxMessage = & xMessage;
+			xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueSend xQueueSend
+	 * \ingroup QueueManagement
+	 */
+#define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueSend(
+								  xQueueHandle xQueue,
+								  const void * pvItemToQueue,
+								  portTickType xTicksToWait
+							 );
+	 * </pre>
+	 *
+	 * This is a macro that calls xQueueGenericSend().  It is included for
+	 * backward compatibility with versions of FreeRTOS.org that did not
+	 * include the xQueueSendToFront() and xQueueSendToBack() macros.  It is
+	 * equivalent to xQueueSendToBack().
+	 *
+	 * Post an item on a queue.  The item is queued by copy, not by reference.
+	 * This function must not be called from an interrupt service routine.
+	 * See xQueueSendFromISR () for an alternative which may be used in an ISR.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for space to become available on the queue, should it already
+	 * be full.  The call will return immediately if this is set to 0 and the
+	 * queue is full.  The time is defined in tick periods so the constant
+	 * portTICK_RATE_MS should be used to convert to real time if this is required.
+	 *
+	 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 unsigned long ulVar = 10UL;
+
+	 void vATask( void *pvParameters )
+	 {
+	 xQueueHandle xQueue1, xQueue2;
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 unsigned long values.
+		xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
+
+		// ...
+
+		if( xQueue1 != 0 )
+		{
+			// Send an unsigned long.  Wait for 10 ticks for space to become
+			// available if necessary.
+			if( xQueueSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )
+			{
+				// Failed to post the message, even after 10 ticks.
+			}
+		}
+
+		if( xQueue2 != 0 )
+		{
+			// Send a pointer to a struct AMessage object.  Don't block if the
+			// queue is already full.
+			pxMessage = & xMessage;
+			xQueueSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueSend xQueueSend
+	 * \ingroup QueueManagement
+	 */
+#define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )
+
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueGenericSend(
+										xQueueHandle xQueue,
+										const void * pvItemToQueue,
+										portTickType xTicksToWait
+										portBASE_TYPE xCopyPosition
+									);
+	 * </pre>
+	 *
+	 * It is preferred that the macros xQueueSend(), xQueueSendToFront() and
+	 * xQueueSendToBack() are used in place of calling this function directly.
+	 *
+	 * Post an item on a queue.  The item is queued by copy, not by reference.
+	 * This function must not be called from an interrupt service routine.
+	 * See xQueueSendFromISR () for an alternative which may be used in an ISR.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for space to become available on the queue, should it already
+	 * be full.  The call will return immediately if this is set to 0 and the
+	 * queue is full.  The time is defined in tick periods so the constant
+	 * portTICK_RATE_MS should be used to convert to real time if this is required.
+	 *
+	 * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the
+	 * item at the back of the queue, or queueSEND_TO_FRONT to place the item
+	 * at the front of the queue (for high priority messages).
+	 *
+	 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 unsigned long ulVar = 10UL;
+
+	 void vATask( void *pvParameters )
+	 {
+	 xQueueHandle xQueue1, xQueue2;
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 unsigned long values.
+		xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
+
+		// ...
+
+		if( xQueue1 != 0 )
+		{
+			// Send an unsigned long.  Wait for 10 ticks for space to become
+			// available if necessary.
+			if( xQueueGenericSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10, queueSEND_TO_BACK ) != pdPASS )
+			{
+				// Failed to post the message, even after 10 ticks.
+			}
+		}
+
+		if( xQueue2 != 0 )
+		{
+			// Send a pointer to a struct AMessage object.  Don't block if the
+			// queue is already full.
+			pxMessage = & xMessage;
+			xQueueGenericSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0, queueSEND_TO_BACK );
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueSend xQueueSend
+	 * \ingroup QueueManagement
+	 */
+	signed portBASE_TYPE xQueueGenericSend(xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition);
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueuePeek(
+								 xQueueHandle xQueue,
+								 void *pvBuffer,
+								 portTickType xTicksToWait
+							 );</pre>
+	 *
+	 * This is a macro that calls the xQueueGenericReceive() function.
+	 *
+	 * Receive an item from a queue without removing the item from the queue.
+	 * The item is received by copy so a buffer of adequate size must be
+	 * provided.  The number of bytes copied into the buffer was defined when
+	 * the queue was created.
+	 *
+	 * Successfully received items remain on the queue so will be returned again
+	 * by the next call, or a call to xQueueReceive().
+	 *
+	 * This macro must not be used in an interrupt service routine.
+	 *
+	 * @param pxQueue The handle to the queue from which the item is to be
+	 * received.
+	 *
+	 * @param pvBuffer Pointer to the buffer into which the received item will
+	 * be copied.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for an item to receive should the queue be empty at the time
+	 * of the call.	 The time is defined in tick periods so the constant
+	 * portTICK_RATE_MS should be used to convert to real time if this is required.
+	 * xQueuePeek() will return immediately if xTicksToWait is 0 and the queue
+	 * is empty.
+	 *
+	 * @return pdTRUE if an item was successfully received from the queue,
+	 * otherwise pdFALSE.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 xQueueHandle xQueue;
+
+	 // Task to create a queue and post a value.
+	 void vATask( void *pvParameters )
+	 {
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );
+		if( xQueue == 0 )
+		{
+			// Failed to create the queue.
+		}
+
+		// ...
+
+		// Send a pointer to a struct AMessage object.  Don't block if the
+		// queue is already full.
+		pxMessage = & xMessage;
+		xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 );
+
+		// ... Rest of task code.
+	 }
+
+	 // Task to peek the data from the queue.
+	 void vADifferentTask( void *pvParameters )
+	 {
+	 struct AMessage *pxRxedMessage;
+
+		if( xQueue != 0 )
+		{
+			// Peek a message on the created queue.  Block for 10 ticks if a
+			// message is not immediately available.
+			if( xQueuePeek( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) )
+			{
+				// pcRxedMessage now points to the struct AMessage variable posted
+				// by vATask, but the item still remains on the queue.
+			}
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueReceive xQueueReceive
+	 * \ingroup QueueManagement
+	 */
+#define xQueuePeek( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( xQueue, pvBuffer, xTicksToWait, pdTRUE )
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueReceive(
+									 xQueueHandle xQueue,
+									 void *pvBuffer,
+									 portTickType xTicksToWait
+								);</pre>
+	 *
+	 * This is a macro that calls the xQueueGenericReceive() function.
+	 *
+	 * Receive an item from a queue.  The item is received by copy so a buffer of
+	 * adequate size must be provided.  The number of bytes copied into the buffer
+	 * was defined when the queue was created.
+	 *
+	 * Successfully received items are removed from the queue.
+	 *
+	 * This function must not be used in an interrupt service routine.  See
+	 * xQueueReceiveFromISR for an alternative that can.
+	 *
+	 * @param pxQueue The handle to the queue from which the item is to be
+	 * received.
+	 *
+	 * @param pvBuffer Pointer to the buffer into which the received item will
+	 * be copied.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for an item to receive should the queue be empty at the time
+	 * of the call.	 xQueueReceive() will return immediately if xTicksToWait
+	 * is zero and the queue is empty.  The time is defined in tick periods so the
+	 * constant portTICK_RATE_MS should be used to convert to real time if this is
+	 * required.
+	 *
+	 * @return pdTRUE if an item was successfully received from the queue,
+	 * otherwise pdFALSE.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 xQueueHandle xQueue;
+
+	 // Task to create a queue and post a value.
+	 void vATask( void *pvParameters )
+	 {
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );
+		if( xQueue == 0 )
+		{
+			// Failed to create the queue.
+		}
+
+		// ...
+
+		// Send a pointer to a struct AMessage object.  Don't block if the
+		// queue is already full.
+		pxMessage = & xMessage;
+		xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 );
+
+		// ... Rest of task code.
+	 }
+
+	 // Task to receive from the queue.
+	 void vADifferentTask( void *pvParameters )
+	 {
+	 struct AMessage *pxRxedMessage;
+
+		if( xQueue != 0 )
+		{
+			// Receive a message on the created queue.  Block for 10 ticks if a
+			// message is not immediately available.
+			if( xQueueReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) )
+			{
+				// pcRxedMessage now points to the struct AMessage variable posted
+				// by vATask.
+			}
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueReceive xQueueReceive
+	 * \ingroup QueueManagement
+	 */
+#define xQueueReceive( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( xQueue, pvBuffer, xTicksToWait, pdFALSE )
+
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueGenericReceive(
+										   xQueueHandle	xQueue,
+										   void	*pvBuffer,
+										   portTickType	xTicksToWait
+										   portBASE_TYPE	xJustPeek
+										);</pre>
+	 *
+	 * It is preferred that the macro xQueueReceive() be used rather than calling
+	 * this function directly.
+	 *
+	 * Receive an item from a queue.  The item is received by copy so a buffer of
+	 * adequate size must be provided.  The number of bytes copied into the buffer
+	 * was defined when the queue was created.
+	 *
+	 * This function must not be used in an interrupt service routine.  See
+	 * xQueueReceiveFromISR for an alternative that can.
+	 *
+	 * @param pxQueue The handle to the queue from which the item is to be
+	 * received.
+	 *
+	 * @param pvBuffer Pointer to the buffer into which the received item will
+	 * be copied.
+	 *
+	 * @param xTicksToWait The maximum amount of time the task should block
+	 * waiting for an item to receive should the queue be empty at the time
+	 * of the call.	 The time is defined in tick periods so the constant
+	 * portTICK_RATE_MS should be used to convert to real time if this is required.
+	 * xQueueGenericReceive() will return immediately if the queue is empty and
+	 * xTicksToWait is 0.
+	 *
+	 * @param xJustPeek When set to true, the item received from the queue is not
+	 * actually removed from the queue - meaning a subsequent call to
+	 * xQueueReceive() will return the same item.  When set to false, the item
+	 * being received from the queue is also removed from the queue.
+	 *
+	 * @return pdTRUE if an item was successfully received from the queue,
+	 * otherwise pdFALSE.
+	 *
+	 * Example usage:
+	   <pre>
+	 struct AMessage
+	 {
+		char ucMessageID;
+		char ucData[ 20 ];
+	 } xMessage;
+
+	 xQueueHandle xQueue;
+
+	 // Task to create a queue and post a value.
+	 void vATask( void *pvParameters )
+	 {
+	 struct AMessage *pxMessage;
+
+		// Create a queue capable of containing 10 pointers to AMessage structures.
+		// These should be passed by pointer as they contain a lot of data.
+		xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );
+		if( xQueue == 0 )
+		{
+			// Failed to create the queue.
+		}
+
+		// ...
+
+		// Send a pointer to a struct AMessage object.  Don't block if the
+		// queue is already full.
+		pxMessage = & xMessage;
+		xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 );
+
+		// ... Rest of task code.
+	 }
+
+	 // Task to receive from the queue.
+	 void vADifferentTask( void *pvParameters )
+	 {
+	 struct AMessage *pxRxedMessage;
+
+		if( xQueue != 0 )
+		{
+			// Receive a message on the created queue.  Block for 10 ticks if a
+			// message is not immediately available.
+			if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) )
+			{
+				// pcRxedMessage now points to the struct AMessage variable posted
+				// by vATask.
+			}
+		}
+
+		// ... Rest of task code.
+	 }
+	 </pre>
+	 * \defgroup xQueueReceive xQueueReceive
+	 * \ingroup QueueManagement
+	 */
+	signed portBASE_TYPE xQueueGenericReceive(xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeek);
+
+	/**
+	 * queue. h
+	 * <pre>unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );</pre>
+	 *
+	 * Return the number of messages stored in a queue.
+	 *
+	 * @param xQueue A handle to the queue being queried.
+	 *
+	 * @return The number of messages available in the queue.
+	 *
+	 * \page uxQueueMessagesWaiting uxQueueMessagesWaiting
+	 * \ingroup QueueManagement
+	 */
+	unsigned portBASE_TYPE uxQueueMessagesWaiting(const xQueueHandle xQueue);
+
+	/**
+	 * queue. h
+	 * <pre>void vQueueDelete( xQueueHandle xQueue );</pre>
+	 *
+	 * Delete a queue - freeing all the memory allocated for storing of items
+	 * placed on the queue.
+	 *
+	 * @param xQueue A handle to the queue to be deleted.
+	 *
+	 * \page vQueueDelete vQueueDelete
+	 * \ingroup QueueManagement
+	 */
+	void vQueueDelete(xQueueHandle xQueue);
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueSendToFrontFromISR(
+											 xQueueHandle pxQueue,
+											 const void *pvItemToQueue,
+											 portBASE_TYPE *pxHigherPriorityTaskWoken
+										  );
+	 </pre>
+	 *
+	 * This is a macro that calls xQueueGenericSendFromISR().
+	 *
+	 * Post an item to the front of a queue.  It is safe to use this macro from
+	 * within an interrupt service routine.
+	 *
+	 * Items are queued by copy not reference so it is preferable to only
+	 * queue small items, especially when called from an ISR.  In most cases
+	 * it would be preferable to store a pointer to the item being queued.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param pxHigherPriorityTaskWoken xQueueSendToFrontFromISR() will set
+	 * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task
+	 * to unblock, and the unblocked task has a priority higher than the currently
+	 * running task.  If xQueueSendToFromFromISR() sets this value to pdTRUE then
+	 * a context switch should be requested before the interrupt is exited.
+	 *
+	 * @return pdTRUE if the data was successfully sent to the queue, otherwise
+	 * errQUEUE_FULL.
+	 *
+	 * Example usage for buffered IO (where the ISR can obtain more than one value
+	 * per call):
+	   <pre>
+	 void vBufferISR( void )
+	 {
+	 char cIn;
+	 portBASE_TYPE xHigherPrioritTaskWoken;
+
+		// We have not woken a task at the start of the ISR.
+		xHigherPriorityTaskWoken = pdFALSE;
+
+		// Loop until the buffer is empty.
+		do
+		{
+			// Obtain a byte from the buffer.
+			cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS );
+
+			// Post the byte.
+			xQueueSendToFrontFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken );
+
+		} while( portINPUT_BYTE( BUFFER_COUNT ) );
+
+		// Now the buffer is empty we can switch context if necessary.
+		if( xHigherPriorityTaskWoken )
+		{
+			taskYIELD ();
+		}
+	 }
+	 </pre>
+	 *
+	 * \defgroup xQueueSendFromISR xQueueSendFromISR
+	 * \ingroup QueueManagement
+	 */
+#define xQueueSendToFrontFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken, queueSEND_TO_FRONT )
+
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueSendToBackFromISR(
+											 xQueueHandle pxQueue,
+											 const void *pvItemToQueue,
+											 portBASE_TYPE *pxHigherPriorityTaskWoken
+										  );
+	 </pre>
+	 *
+	 * This is a macro that calls xQueueGenericSendFromISR().
+	 *
+	 * Post an item to the back of a queue.  It is safe to use this macro from
+	 * within an interrupt service routine.
+	 *
+	 * Items are queued by copy not reference so it is preferable to only
+	 * queue small items, especially when called from an ISR.  In most cases
+	 * it would be preferable to store a pointer to the item being queued.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param pxHigherPriorityTaskWoken xQueueSendToBackFromISR() will set
+	 * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task
+	 * to unblock, and the unblocked task has a priority higher than the currently
+	 * running task.  If xQueueSendToBackFromISR() sets this value to pdTRUE then
+	 * a context switch should be requested before the interrupt is exited.
+	 *
+	 * @return pdTRUE if the data was successfully sent to the queue, otherwise
+	 * errQUEUE_FULL.
+	 *
+	 * Example usage for buffered IO (where the ISR can obtain more than one value
+	 * per call):
+	   <pre>
+	 void vBufferISR( void )
+	 {
+	 char cIn;
+	 portBASE_TYPE xHigherPriorityTaskWoken;
+
+		// We have not woken a task at the start of the ISR.
+		xHigherPriorityTaskWoken = pdFALSE;
+
+		// Loop until the buffer is empty.
+		do
+		{
+			// Obtain a byte from the buffer.
+			cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS );
+
+			// Post the byte.
+			xQueueSendToBackFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken );
+
+		} while( portINPUT_BYTE( BUFFER_COUNT ) );
+
+		// Now the buffer is empty we can switch context if necessary.
+		if( xHigherPriorityTaskWoken )
+		{
+			taskYIELD ();
+		}
+	 }
+	 </pre>
+	 *
+	 * \defgroup xQueueSendFromISR xQueueSendFromISR
+	 * \ingroup QueueManagement
+	 */
+#define xQueueSendToBackFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken, queueSEND_TO_BACK )
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueSendFromISR(
+										 xQueueHandle pxQueue,
+										 const void *pvItemToQueue,
+										 portBASE_TYPE *pxHigherPriorityTaskWoken
+									);
+	 </pre>
+	 *
+	 * This is a macro that calls xQueueGenericSendFromISR().  It is included
+	 * for backward compatibility with versions of FreeRTOS.org that did not
+	 * include the xQueueSendToBackFromISR() and xQueueSendToFrontFromISR()
+	 * macros.
+	 *
+	 * Post an item to the back of a queue.  It is safe to use this function from
+	 * within an interrupt service routine.
+	 *
+	 * Items are queued by copy not reference so it is preferable to only
+	 * queue small items, especially when called from an ISR.  In most cases
+	 * it would be preferable to store a pointer to the item being queued.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param pxHigherPriorityTaskWoken xQueueSendFromISR() will set
+	 * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task
+	 * to unblock, and the unblocked task has a priority higher than the currently
+	 * running task.  If xQueueSendFromISR() sets this value to pdTRUE then
+	 * a context switch should be requested before the interrupt is exited.
+	 *
+	 * @return pdTRUE if the data was successfully sent to the queue, otherwise
+	 * errQUEUE_FULL.
+	 *
+	 * Example usage for buffered IO (where the ISR can obtain more than one value
+	 * per call):
+	   <pre>
+	 void vBufferISR( void )
+	 {
+	 char cIn;
+	 portBASE_TYPE xHigherPriorityTaskWoken;
+
+		// We have not woken a task at the start of the ISR.
+		xHigherPriorityTaskWoken = pdFALSE;
+
+		// Loop until the buffer is empty.
+		do
+		{
+			// Obtain a byte from the buffer.
+			cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS );
+
+			// Post the byte.
+			xQueueSendFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken );
+
+		} while( portINPUT_BYTE( BUFFER_COUNT ) );
+
+		// Now the buffer is empty we can switch context if necessary.
+		if( xHigherPriorityTaskWoken )
+		{
+			// Actual macro used here is port specific.
+			taskYIELD_FROM_ISR ();
+		}
+	 }
+	 </pre>
+	 *
+	 * \defgroup xQueueSendFromISR xQueueSendFromISR
+	 * \ingroup QueueManagement
+	 */
+#define xQueueSendFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken, queueSEND_TO_BACK )
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueGenericSendFromISR(
+											   xQueueHandle	pxQueue,
+											   const	void	*pvItemToQueue,
+											   portBASE_TYPE	*pxHigherPriorityTaskWoken,
+											   portBASE_TYPE	xCopyPosition
+										   );
+	 </pre>
+	 *
+	 * It is preferred that the macros xQueueSendFromISR(),
+	 * xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place
+	 * of calling this function directly.
+	 *
+	 * Post an item on a queue.  It is safe to use this function from within an
+	 * interrupt service routine.
+	 *
+	 * Items are queued by copy not reference so it is preferable to only
+	 * queue small items, especially when called from an ISR.  In most cases
+	 * it would be preferable to store a pointer to the item being queued.
+	 *
+	 * @param xQueue The handle to the queue on which the item is to be posted.
+	 *
+	 * @param pvItemToQueue A pointer to the item that is to be placed on the
+	 * queue.  The size of the items the queue will hold was defined when the
+	 * queue was created, so this many bytes will be copied from pvItemToQueue
+	 * into the queue storage area.
+	 *
+	 * @param pxHigherPriorityTaskWoken xQueueGenericSendFromISR() will set
+	 * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task
+	 * to unblock, and the unblocked task has a priority higher than the currently
+	 * running task.  If xQueueGenericSendFromISR() sets this value to pdTRUE then
+	 * a context switch should be requested before the interrupt is exited.
+	 *
+	 * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the
+	 * item at the back of the queue, or queueSEND_TO_FRONT to place the item
+	 * at the front of the queue (for high priority messages).
+	 *
+	 * @return pdTRUE if the data was successfully sent to the queue, otherwise
+	 * errQUEUE_FULL.
+	 *
+	 * Example usage for buffered IO (where the ISR can obtain more than one value
+	 * per call):
+	   <pre>
+	 void vBufferISR( void )
+	 {
+	 char cIn;
+	 portBASE_TYPE xHigherPriorityTaskWokenByPost;
+
+		// We have not woken a task at the start of the ISR.
+		xHigherPriorityTaskWokenByPost = pdFALSE;
+
+		// Loop until the buffer is empty.
+		do
+		{
+			// Obtain a byte from the buffer.
+			cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS );
+
+			// Post each byte.
+			xQueueGenericSendFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWokenByPost, queueSEND_TO_BACK );
+
+		} while( portINPUT_BYTE( BUFFER_COUNT ) );
+
+		// Now the buffer is empty we can switch context if necessary.  Note that the
+		// name of the yield function required is port specific.
+		if( xHigherPriorityTaskWokenByPost )
+		{
+			taskYIELD_YIELD_FROM_ISR();
+		}
+	 }
+	 </pre>
+	 *
+	 * \defgroup xQueueSendFromISR xQueueSendFromISR
+	 * \ingroup QueueManagement
+	 */
+	signed portBASE_TYPE xQueueGenericSendFromISR(xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition);
+
+	/**
+	 * queue. h
+	 * <pre>
+	 portBASE_TYPE xQueueReceiveFromISR(
+										   xQueueHandle	pxQueue,
+										   void	*pvBuffer,
+										   portBASE_TYPE	*pxTaskWoken
+									   );
+	 * </pre>
+	 *
+	 * Receive an item from a queue.  It is safe to use this function from within an
+	 * interrupt service routine.
+	 *
+	 * @param pxQueue The handle to the queue from which the item is to be
+	 * received.
+	 *
+	 * @param pvBuffer Pointer to the buffer into which the received item will
+	 * be copied.
+	 *
+	 * @param pxTaskWoken A task may be blocked waiting for space to become
+	 * available on the queue.  If xQueueReceiveFromISR causes such a task to
+	 * unblock *pxTaskWoken will get set to pdTRUE, otherwise *pxTaskWoken will
+	 * remain unchanged.
+	 *
+	 * @return pdTRUE if an item was successfully received from the queue,
+	 * otherwise pdFALSE.
+	 *
+	 * Example usage:
+	   <pre>
+
+	 xQueueHandle xQueue;
+
+	 // Function to create a queue and post some values.
+	 void vAFunction( void *pvParameters )
+	 {
+	 char cValueToPost;
+	 const portTickType xBlockTime = ( portTickType )0xff;
+
+		// Create a queue capable of containing 10 characters.
+		xQueue = xQueueCreate( 10, sizeof( char ) );
+		if( xQueue == 0 )
+		{
+			// Failed to create the queue.
+		}
+
+		// ...
+
+		// Post some characters that will be used within an ISR.  If the queue
+		// is full then this task will block for xBlockTime ticks.
+		cValueToPost = 'a';
+		xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );
+		cValueToPost = 'b';
+		xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );
+
+		// ... keep posting characters ... this task may block when the queue
+		// becomes full.
+
+		cValueToPost = 'c';
+		xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );
+	 }
+
+	 // ISR that outputs all the characters received on the queue.
+	 void vISR_Routine( void )
+	 {
+	 portBASE_TYPE xTaskWokenByReceive = pdFALSE;
+	 char cRxedChar;
+
+		while( xQueueReceiveFromISR( xQueue, ( void * ) &cRxedChar, &xTaskWokenByReceive) )
+		{
+			// A character was received.  Output the character now.
+			vOutputCharacter( cRxedChar );
+
+			// If removing the character from the queue woke the task that was
+			// posting onto the queue cTaskWokenByReceive will have been set to
+			// pdTRUE.  No matter how many times this loop iterates only one
+			// task will be woken.
+		}
+
+		if( cTaskWokenByPost != ( char ) pdFALSE;
+		{
+			taskYIELD ();
+		}
+	 }
+	 </pre>
+	 * \defgroup xQueueReceiveFromISR xQueueReceiveFromISR
+	 * \ingroup QueueManagement
+	 */
+	signed portBASE_TYPE xQueueReceiveFromISR(xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken);
+
+	/*
+	 * Utilities to query queue that are safe to use from an ISR.  These utilities
+	 * should be used only from witin an ISR, or within a critical section.
+	 */
+	signed portBASE_TYPE xQueueIsQueueEmptyFromISR(const xQueueHandle pxQueue);
+	signed portBASE_TYPE xQueueIsQueueFullFromISR(const xQueueHandle pxQueue);
+	unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR(const xQueueHandle pxQueue);
+
+
+	/*
+	 * xQueueAltGenericSend() is an alternative version of xQueueGenericSend().
+	 * Likewise xQueueAltGenericReceive() is an alternative version of
+	 * xQueueGenericReceive().
+	 *
+	 * The source code that implements the alternative (Alt) API is much
+	 * simpler	because it executes everything from within a critical section.
+	 * This is	the approach taken by many other RTOSes, but FreeRTOS.org has the
+	 * preferred fully featured API too.  The fully featured API has more
+	 * complex	code that takes longer to execute, but makes much less use of
+	 * critical sections.  Therefore the alternative API sacrifices interrupt
+	 * responsiveness to gain execution speed, whereas the fully featured API
+	 * sacrifices execution speed to ensure better interrupt responsiveness.
+	 */
+	signed portBASE_TYPE xQueueAltGenericSend(xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition);
+	signed portBASE_TYPE xQueueAltGenericReceive(xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking);
+#define xQueueAltSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_FRONT )
+#define xQueueAltSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )
+#define xQueueAltReceive( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( xQueue, pvBuffer, xTicksToWait, pdFALSE )
+#define xQueueAltPeek( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( xQueue, pvBuffer, xTicksToWait, pdTRUE )
+
+	/*
+	 * The functions defined above are for passing data to and from tasks.  The
+	 * functions below are the equivalents for passing data to and from
+	 * co-routines.
+	 *
+	 * These functions are called from the co-routine macro implementation and
+	 * should not be called directly from application code.  Instead use the macro
+	 * wrappers defined within croutine.h.
+	 */
+	signed portBASE_TYPE xQueueCRSendFromISR(xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken);
+	signed portBASE_TYPE xQueueCRReceiveFromISR(xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken);
+	signed portBASE_TYPE xQueueCRSend(xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait);
+	signed portBASE_TYPE xQueueCRReceive(xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait);
+
+	/*
+	 * For internal use only.  Use xSemaphoreCreateMutex() or
+	 * xSemaphoreCreateCounting() instead of calling these functions directly.
+	 */
+	xQueueHandle xQueueCreateMutex(void);
+	xQueueHandle xQueueCreateCountingSemaphore(unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount);
+
+	/*
+	 * For internal use only.  Use xSemaphoreTakeMutexRecursive() or
+	 * xSemaphoreGiveMutexRecursive() instead of calling these functions directly.
+	 */
+	portBASE_TYPE xQueueTakeMutexRecursive(xQueueHandle xMutex, portTickType xBlockTime);
+	portBASE_TYPE xQueueGiveMutexRecursive(xQueueHandle xMutex);
+
+	/*
+	 * The registry is provided as a means for kernel aware debuggers to
+	 * locate queues, semaphores and mutexes.  Call vQueueAddToRegistry() add
+	 * a queue, semaphore or mutex handle to the registry if you want the handle
+	 * to be available to a kernel aware debugger.  If you are not using a kernel
+	 * aware debugger then this function can be ignored.
+	 *
+	 * configQUEUE_REGISTRY_SIZE defines the maximum number of handles the
+	 * registry can hold.  configQUEUE_REGISTRY_SIZE must be greater than 0
+	 * within FreeRTOSConfig.h for the registry to be available.  Its value
+	 * does not effect the number of queues, semaphores and mutexes that can be
+	 * created - just the number that the registry can hold.
+	 *
+	 * @param xQueue The handle of the queue being added to the registry.  This
+	 * is the handle returned by a call to xQueueCreate().  Semaphore and mutex
+	 * handles can also be passed in here.
+	 *
+	 * @param pcName The name to be associated with the handle.  This is the
+	 * name that the kernel aware debugger will display.
+	 */
+#if configQUEUE_REGISTRY_SIZE > 0
+	void vQueueAddToRegistry(xQueueHandle xQueue, signed char *pcName);
+#endif
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* QUEUE_H */
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/semphr.h b/gyro_board/src/usb/FreeRTOS/include/semphr.h
new file mode 100644
index 0000000..b941518
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/semphr.h
@@ -0,0 +1,711 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef INC_FREERTOS_H
+#error "#include FreeRTOS.h" must appear in source files before "#include semphr.h"
+#endif
+
+#ifndef SEMAPHORE_H
+#define SEMAPHORE_H
+
+#include "queue.h"
+
+typedef xQueueHandle xSemaphoreHandle;
+
+#define semBINARY_SEMAPHORE_QUEUE_LENGTH	( ( unsigned char ) 1 )
+#define semSEMAPHORE_QUEUE_ITEM_LENGTH		( ( unsigned char ) 0 )
+#define semGIVE_BLOCK_TIME					( ( portTickType ) 0 )
+
+
+/**
+ * semphr. h
+ * <pre>vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore )</pre>
+ *
+ * <i>Macro</i> that implements a semaphore by using the existing queue mechanism.
+ * The queue length is 1 as this is a binary semaphore.  The data size is 0
+ * as we don't want to actually store any data - we just want to know if the
+ * queue is empty or full.
+ *
+ * This type of semaphore can be used for pure synchronisation between tasks or
+ * between an interrupt and a task.  The semaphore need not be given back once
+ * obtained, so one task/interrupt can continuously 'give' the semaphore while
+ * another continuously 'takes' the semaphore.  For this reason this type of
+ * semaphore does not use a priority inheritance mechanism.  For an alternative
+ * that does use priority inheritance see xSemaphoreCreateMutex().
+ *
+ * @param xSemaphore Handle to the created semaphore.  Should be of type xSemaphoreHandle.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xSemaphore;
+
+ void vATask( void * pvParameters )
+ {
+    // Semaphore cannot be used before a call to vSemaphoreCreateBinary ().
+    // This is a macro so pass the variable in directly.
+    vSemaphoreCreateBinary( xSemaphore );
+
+    if( xSemaphore != NULL )
+    {
+        // The semaphore was created successfully.
+        // The semaphore can now be used.
+    }
+ }
+ </pre>
+ * \defgroup vSemaphoreCreateBinary vSemaphoreCreateBinary
+ * \ingroup Semaphores
+ */
+#define vSemaphoreCreateBinary( xSemaphore )		{																								\
+														xSemaphore = xQueueCreate( ( unsigned portBASE_TYPE ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH );	\
+														if( xSemaphore != NULL )																	\
+														{																							\
+															xSemaphoreGive( xSemaphore );															\
+														}																							\
+													}
+
+/**
+ * semphr. h
+ * <pre>xSemaphoreTake(
+ *                   xSemaphoreHandle xSemaphore,
+ *                   portTickType xBlockTime
+ *               )</pre>
+ *
+ * <i>Macro</i> to obtain a semaphore.  The semaphore must have previously been
+ * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or
+ * xSemaphoreCreateCounting().
+ *
+ * @param xSemaphore A handle to the semaphore being taken - obtained when
+ * the semaphore was created.
+ *
+ * @param xBlockTime The time in ticks to wait for the semaphore to become
+ * available.  The macro portTICK_RATE_MS can be used to convert this to a
+ * real time.  A block time of zero can be used to poll the semaphore.  A block
+ * time of portMAX_DELAY can be used to block indefinitely (provided
+ * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h).
+ *
+ * @return pdTRUE if the semaphore was obtained.  pdFALSE
+ * if xBlockTime expired without the semaphore becoming available.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xSemaphore = NULL;
+
+ // A task that creates a semaphore.
+ void vATask( void * pvParameters )
+ {
+    // Create the semaphore to guard a shared resource.
+    vSemaphoreCreateBinary( xSemaphore );
+ }
+
+ // A task that uses the semaphore.
+ void vAnotherTask( void * pvParameters )
+ {
+    // ... Do other things.
+
+    if( xSemaphore != NULL )
+    {
+        // See if we can obtain the semaphore.  If the semaphore is not available
+        // wait 10 ticks to see if it becomes free.
+        if( xSemaphoreTake( xSemaphore, ( portTickType ) 10 ) == pdTRUE )
+        {
+            // We were able to obtain the semaphore and can now access the
+            // shared resource.
+
+            // ...
+
+            // We have finished accessing the shared resource.  Release the
+            // semaphore.
+            xSemaphoreGive( xSemaphore );
+        }
+        else
+        {
+            // We could not obtain the semaphore and can therefore not access
+            // the shared resource safely.
+        }
+    }
+ }
+ </pre>
+ * \defgroup xSemaphoreTake xSemaphoreTake
+ * \ingroup Semaphores
+ */
+#define xSemaphoreTake( xSemaphore, xBlockTime )		xQueueGenericReceive( ( xQueueHandle ) xSemaphore, NULL, xBlockTime, pdFALSE )
+
+/**
+ * semphr. h
+ * xSemaphoreTakeRecursive(
+ *                          xSemaphoreHandle xMutex,
+ *                          portTickType xBlockTime
+ *                        )
+ *
+ * <i>Macro</i> to recursively obtain, or 'take', a mutex type semaphore.
+ * The mutex must have previously been created using a call to
+ * xSemaphoreCreateRecursiveMutex();
+ *
+ * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this
+ * macro to be available.
+ *
+ * This macro must not be used on mutexes created using xSemaphoreCreateMutex().
+ *
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex
+ * doesn't become available again until the owner has called
+ * xSemaphoreGiveRecursive() for each successful 'take' request.  For example,
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will
+ * not be available to any other task until it has also  'given' the mutex back
+ * exactly five times.
+ *
+ * @param xMutex A handle to the mutex being obtained.  This is the
+ * handle returned by xSemaphoreCreateRecursiveMutex();
+ *
+ * @param xBlockTime The time in ticks to wait for the semaphore to become
+ * available.  The macro portTICK_RATE_MS can be used to convert this to a
+ * real time.  A block time of zero can be used to poll the semaphore.  If
+ * the task already owns the semaphore then xSemaphoreTakeRecursive() will
+ * return immediately no matter what the value of xBlockTime.
+ *
+ * @return pdTRUE if the semaphore was obtained.  pdFALSE if xBlockTime
+ * expired without the semaphore becoming available.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xMutex = NULL;
+
+ // A task that creates a mutex.
+ void vATask( void * pvParameters )
+ {
+    // Create the mutex to guard a shared resource.
+    xMutex = xSemaphoreCreateRecursiveMutex();
+ }
+
+ // A task that uses the mutex.
+ void vAnotherTask( void * pvParameters )
+ {
+    // ... Do other things.
+
+    if( xMutex != NULL )
+    {
+        // See if we can obtain the mutex.  If the mutex is not available
+        // wait 10 ticks to see if it becomes free.
+        if( xSemaphoreTakeRecursive( xSemaphore, ( portTickType ) 10 ) == pdTRUE )
+        {
+            // We were able to obtain the mutex and can now access the
+            // shared resource.
+
+            // ...
+            // For some reason due to the nature of the code further calls to
+			// xSemaphoreTakeRecursive() are made on the same mutex.  In real
+			// code these would not be just sequential calls as this would make
+			// no sense.  Instead the calls are likely to be buried inside
+			// a more complex call structure.
+            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
+            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
+
+            // The mutex has now been 'taken' three times, so will not be
+			// available to another task until it has also been given back
+			// three times.  Again it is unlikely that real code would have
+			// these calls sequentially, but instead buried in a more complex
+			// call structure.  This is just for illustrative purposes.
+            xSemaphoreGiveRecursive( xMutex );
+			xSemaphoreGiveRecursive( xMutex );
+			xSemaphoreGiveRecursive( xMutex );
+
+			// Now the mutex can be taken by other tasks.
+        }
+        else
+        {
+            // We could not obtain the mutex and can therefore not access
+            // the shared resource safely.
+        }
+    }
+ }
+ </pre>
+ * \defgroup xSemaphoreTakeRecursive xSemaphoreTakeRecursive
+ * \ingroup Semaphores
+ */
+#define xSemaphoreTakeRecursive( xMutex, xBlockTime )	xQueueTakeMutexRecursive( xMutex, xBlockTime )
+
+
+/*
+ * xSemaphoreAltTake() is an alternative version of xSemaphoreTake().
+ *
+ * The source code that implements the alternative (Alt) API is much
+ * simpler	because it executes everything from within a critical section.
+ * This is	the approach taken by many other RTOSes, but FreeRTOS.org has the
+ * preferred fully featured API too.  The fully featured API has more
+ * complex	code that takes longer to execute, but makes much less use of
+ * critical sections.  Therefore the alternative API sacrifices interrupt
+ * responsiveness to gain execution speed, whereas the fully featured API
+ * sacrifices execution speed to ensure better interrupt responsiveness.
+ */
+#define xSemaphoreAltTake( xSemaphore, xBlockTime )		xQueueAltGenericReceive( ( xQueueHandle ) xSemaphore, NULL, xBlockTime, pdFALSE )
+
+/**
+ * semphr. h
+ * <pre>xSemaphoreGive( xSemaphoreHandle xSemaphore )</pre>
+ *
+ * <i>Macro</i> to release a semaphore.  The semaphore must have previously been
+ * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or
+ * xSemaphoreCreateCounting(). and obtained using sSemaphoreTake().
+ *
+ * This macro must not be used from an ISR.  See xSemaphoreGiveFromISR () for
+ * an alternative which can be used from an ISR.
+ *
+ * This macro must also not be used on semaphores created using
+ * xSemaphoreCreateRecursiveMutex().
+ *
+ * @param xSemaphore A handle to the semaphore being released.  This is the
+ * handle returned when the semaphore was created.
+ *
+ * @return pdTRUE if the semaphore was released.  pdFALSE if an error occurred.
+ * Semaphores are implemented using queues.  An error can occur if there is
+ * no space on the queue to post a message - indicating that the
+ * semaphore was not first obtained correctly.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xSemaphore = NULL;
+
+ void vATask( void * pvParameters )
+ {
+    // Create the semaphore to guard a shared resource.
+    vSemaphoreCreateBinary( xSemaphore );
+
+    if( xSemaphore != NULL )
+    {
+        if( xSemaphoreGive( xSemaphore ) != pdTRUE )
+        {
+            // We would expect this call to fail because we cannot give
+            // a semaphore without first "taking" it!
+        }
+
+        // Obtain the semaphore - don't block if the semaphore is not
+        // immediately available.
+        if( xSemaphoreTake( xSemaphore, ( portTickType ) 0 ) )
+        {
+            // We now have the semaphore and can access the shared resource.
+
+            // ...
+
+            // We have finished accessing the shared resource so can free the
+            // semaphore.
+            if( xSemaphoreGive( xSemaphore ) != pdTRUE )
+            {
+                // We would not expect this call to fail because we must have
+                // obtained the semaphore to get here.
+            }
+        }
+    }
+ }
+ </pre>
+ * \defgroup xSemaphoreGive xSemaphoreGive
+ * \ingroup Semaphores
+ */
+#define xSemaphoreGive( xSemaphore )		xQueueGenericSend( ( xQueueHandle ) xSemaphore, NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )
+
+/**
+ * semphr. h
+ * <pre>xSemaphoreGiveRecursive( xSemaphoreHandle xMutex )</pre>
+ *
+ * <i>Macro</i> to recursively release, or 'give', a mutex type semaphore.
+ * The mutex must have previously been created using a call to
+ * xSemaphoreCreateRecursiveMutex();
+ *
+ * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this
+ * macro to be available.
+ *
+ * This macro must not be used on mutexes created using xSemaphoreCreateMutex().
+ *
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex
+ * doesn't become available again until the owner has called
+ * xSemaphoreGiveRecursive() for each successful 'take' request.  For example,
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will
+ * not be available to any other task until it has also  'given' the mutex back
+ * exactly five times.
+ *
+ * @param xMutex A handle to the mutex being released, or 'given'.  This is the
+ * handle returned by xSemaphoreCreateMutex();
+ *
+ * @return pdTRUE if the semaphore was given.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xMutex = NULL;
+
+ // A task that creates a mutex.
+ void vATask( void * pvParameters )
+ {
+    // Create the mutex to guard a shared resource.
+    xMutex = xSemaphoreCreateRecursiveMutex();
+ }
+
+ // A task that uses the mutex.
+ void vAnotherTask( void * pvParameters )
+ {
+    // ... Do other things.
+
+    if( xMutex != NULL )
+    {
+        // See if we can obtain the mutex.  If the mutex is not available
+        // wait 10 ticks to see if it becomes free.
+        if( xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ) == pdTRUE )
+        {
+            // We were able to obtain the mutex and can now access the
+            // shared resource.
+
+            // ...
+            // For some reason due to the nature of the code further calls to
+			// xSemaphoreTakeRecursive() are made on the same mutex.  In real
+			// code these would not be just sequential calls as this would make
+			// no sense.  Instead the calls are likely to be buried inside
+			// a more complex call structure.
+            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
+            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
+
+            // The mutex has now been 'taken' three times, so will not be
+			// available to another task until it has also been given back
+			// three times.  Again it is unlikely that real code would have
+			// these calls sequentially, it would be more likely that the calls
+			// to xSemaphoreGiveRecursive() would be called as a call stack
+			// unwound.  This is just for demonstrative purposes.
+            xSemaphoreGiveRecursive( xMutex );
+			xSemaphoreGiveRecursive( xMutex );
+			xSemaphoreGiveRecursive( xMutex );
+
+			// Now the mutex can be taken by other tasks.
+        }
+        else
+        {
+            // We could not obtain the mutex and can therefore not access
+            // the shared resource safely.
+        }
+    }
+ }
+ </pre>
+ * \defgroup xSemaphoreGiveRecursive xSemaphoreGiveRecursive
+ * \ingroup Semaphores
+ */
+#define xSemaphoreGiveRecursive( xMutex )	xQueueGiveMutexRecursive( xMutex )
+
+/*
+ * xSemaphoreAltGive() is an alternative version of xSemaphoreGive().
+ *
+ * The source code that implements the alternative (Alt) API is much
+ * simpler	because it executes everything from within a critical section.
+ * This is	the approach taken by many other RTOSes, but FreeRTOS.org has the
+ * preferred fully featured API too.  The fully featured API has more
+ * complex	code that takes longer to execute, but makes much less use of
+ * critical sections.  Therefore the alternative API sacrifices interrupt
+ * responsiveness to gain execution speed, whereas the fully featured API
+ * sacrifices execution speed to ensure better interrupt responsiveness.
+ */
+#define xSemaphoreAltGive( xSemaphore )		xQueueAltGenericSend( ( xQueueHandle ) xSemaphore, NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )
+
+/**
+ * semphr. h
+ * <pre>
+ xSemaphoreGiveFromISR(
+                          xSemaphoreHandle xSemaphore,
+                          signed portBASE_TYPE *pxHigherPriorityTaskWoken
+                      )</pre>
+ *
+ * <i>Macro</i> to  release a semaphore.  The semaphore must have previously been
+ * created with a call to vSemaphoreCreateBinary() or xSemaphoreCreateCounting().
+ *
+ * Mutex type semaphores (those created using a call to xSemaphoreCreateMutex())
+ * must not be used with this macro.
+ *
+ * This macro can be used from an ISR.
+ *
+ * @param xSemaphore A handle to the semaphore being released.  This is the
+ * handle returned when the semaphore was created.
+ *
+ * @param pxHigherPriorityTaskWoken xSemaphoreGiveFromISR() will set
+ * *pxHigherPriorityTaskWoken to pdTRUE if giving the semaphore caused a task
+ * to unblock, and the unblocked task has a priority higher than the currently
+ * running task.  If xSemaphoreGiveFromISR() sets this value to pdTRUE then
+ * a context switch should be requested before the interrupt is exited.
+ *
+ * @return pdTRUE if the semaphore was successfully given, otherwise errQUEUE_FULL.
+ *
+ * Example usage:
+ <pre>
+ \#define LONG_TIME 0xffff
+ \#define TICKS_TO_WAIT	10
+ xSemaphoreHandle xSemaphore = NULL;
+
+ // Repetitive task.
+ void vATask( void * pvParameters )
+ {
+    for( ;; )
+    {
+        // We want this task to run every 10 ticks of a timer.  The semaphore
+        // was created before this task was started.
+
+        // Block waiting for the semaphore to become available.
+        if( xSemaphoreTake( xSemaphore, LONG_TIME ) == pdTRUE )
+        {
+            // It is time to execute.
+
+            // ...
+
+            // We have finished our task.  Return to the top of the loop where
+            // we will block on the semaphore until it is time to execute
+            // again.  Note when using the semaphore for synchronisation with an
+			// ISR in this manner there is no need to 'give' the semaphore back.
+        }
+    }
+ }
+
+ // Timer ISR
+ void vTimerISR( void * pvParameters )
+ {
+ static unsigned char ucLocalTickCount = 0;
+ static signed portBASE_TYPE xHigherPriorityTaskWoken;
+
+    // A timer tick has occurred.
+
+    // ... Do other time functions.
+
+    // Is it time for vATask () to run?
+	xHigherPriorityTaskWoken = pdFALSE;
+    ucLocalTickCount++;
+    if( ucLocalTickCount >= TICKS_TO_WAIT )
+    {
+        // Unblock the task by releasing the semaphore.
+        xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken );
+
+        // Reset the count so we release the semaphore again in 10 ticks time.
+        ucLocalTickCount = 0;
+    }
+
+    if( xHigherPriorityTaskWoken != pdFALSE )
+    {
+        // We can force a context switch here.  Context switching from an
+        // ISR uses port specific syntax.  Check the demo task for your port
+        // to find the syntax required.
+    }
+ }
+ </pre>
+ * \defgroup xSemaphoreGiveFromISR xSemaphoreGiveFromISR
+ * \ingroup Semaphores
+ */
+#define xSemaphoreGiveFromISR( xSemaphore, pxHigherPriorityTaskWoken )			xQueueGenericSendFromISR( ( xQueueHandle ) xSemaphore, NULL, pxHigherPriorityTaskWoken, queueSEND_TO_BACK )
+
+/**
+ * semphr. h
+ * <pre>xSemaphoreHandle xSemaphoreCreateMutex( void )</pre>
+ *
+ * <i>Macro</i> that implements a mutex semaphore by using the existing queue
+ * mechanism.
+ *
+ * Mutexes created using this macro can be accessed using the xSemaphoreTake()
+ * and xSemaphoreGive() macros.  The xSemaphoreTakeRecursive() and
+ * xSemaphoreGiveRecursive() macros should not be used.
+ *
+ * This type of semaphore uses a priority inheritance mechanism so a task
+ * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the
+ * semaphore it is no longer required.
+ *
+ * Mutex type semaphores cannot be used from within interrupt service routines.
+ *
+ * See vSemaphoreCreateBinary() for an alternative implementation that can be
+ * used for pure synchronisation (where one task or interrupt always 'gives' the
+ * semaphore and another always 'takes' the semaphore) and from within interrupt
+ * service routines.
+ *
+ * @return xSemaphore Handle to the created mutex semaphore.  Should be of type
+ *		xSemaphoreHandle.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xSemaphore;
+
+ void vATask( void * pvParameters )
+ {
+    // Semaphore cannot be used before a call to xSemaphoreCreateMutex().
+    // This is a macro so pass the variable in directly.
+    xSemaphore = xSemaphoreCreateMutex();
+
+    if( xSemaphore != NULL )
+    {
+        // The semaphore was created successfully.
+        // The semaphore can now be used.
+    }
+ }
+ </pre>
+ * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex
+ * \ingroup Semaphores
+ */
+#define xSemaphoreCreateMutex() xQueueCreateMutex()
+
+
+/**
+ * semphr. h
+ * <pre>xSemaphoreHandle xSemaphoreCreateRecursiveMutex( void )</pre>
+ *
+ * <i>Macro</i> that implements a recursive mutex by using the existing queue
+ * mechanism.
+ *
+ * Mutexes created using this macro can be accessed using the
+ * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros.  The
+ * xSemaphoreTake() and xSemaphoreGive() macros should not be used.
+ *
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex
+ * doesn't become available again until the owner has called
+ * xSemaphoreGiveRecursive() for each successful 'take' request.  For example,
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will
+ * not be available to any other task until it has also  'given' the mutex back
+ * exactly five times.
+ *
+ * This type of semaphore uses a priority inheritance mechanism so a task
+ * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the
+ * semaphore it is no longer required.
+ *
+ * Mutex type semaphores cannot be used from within interrupt service routines.
+ *
+ * See vSemaphoreCreateBinary() for an alternative implementation that can be
+ * used for pure synchronisation (where one task or interrupt always 'gives' the
+ * semaphore and another always 'takes' the semaphore) and from within interrupt
+ * service routines.
+ *
+ * @return xSemaphore Handle to the created mutex semaphore.  Should be of type
+ *		xSemaphoreHandle.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xSemaphore;
+
+ void vATask( void * pvParameters )
+ {
+    // Semaphore cannot be used before a call to xSemaphoreCreateMutex().
+    // This is a macro so pass the variable in directly.
+    xSemaphore = xSemaphoreCreateRecursiveMutex();
+
+    if( xSemaphore != NULL )
+    {
+        // The semaphore was created successfully.
+        // The semaphore can now be used.
+    }
+ }
+ </pre>
+ * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex
+ * \ingroup Semaphores
+ */
+#define xSemaphoreCreateRecursiveMutex() xQueueCreateMutex()
+
+/**
+ * semphr. h
+ * <pre>xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount )</pre>
+ *
+ * <i>Macro</i> that creates a counting semaphore by using the existing
+ * queue mechanism.
+ *
+ * Counting semaphores are typically used for two things:
+ *
+ * 1) Counting events.
+ *
+ *    In this usage scenario an event handler will 'give' a semaphore each time
+ *    an event occurs (incrementing the semaphore count value), and a handler
+ *    task will 'take' a semaphore each time it processes an event
+ *    (decrementing the semaphore count value).  The count value is therefore
+ *    the difference between the number of events that have occurred and the
+ *    number that have been processed.  In this case it is desirable for the
+ *    initial count value to be zero.
+ *
+ * 2) Resource management.
+ *
+ *    In this usage scenario the count value indicates the number of resources
+ *    available.  To obtain control of a resource a task must first obtain a
+ *    semaphore - decrementing the semaphore count value.  When the count value
+ *    reaches zero there are no free resources.  When a task finishes with the
+ *    resource it 'gives' the semaphore back - incrementing the semaphore count
+ *    value.  In this case it is desirable for the initial count value to be
+ *    equal to the maximum count value, indicating that all resources are free.
+ *
+ * @param uxMaxCount The maximum count value that can be reached.  When the
+ *        semaphore reaches this value it can no longer be 'given'.
+ *
+ * @param uxInitialCount The count value assigned to the semaphore when it is
+ *        created.
+ *
+ * @return Handle to the created semaphore.  Null if the semaphore could not be
+ *         created.
+ *
+ * Example usage:
+ <pre>
+ xSemaphoreHandle xSemaphore;
+
+ void vATask( void * pvParameters )
+ {
+ xSemaphoreHandle xSemaphore = NULL;
+
+    // Semaphore cannot be used before a call to xSemaphoreCreateCounting().
+    // The max value to which the semaphore can count should be 10, and the
+    // initial value assigned to the count should be 0.
+    xSemaphore = xSemaphoreCreateCounting( 10, 0 );
+
+    if( xSemaphore != NULL )
+    {
+        // The semaphore was created successfully.
+        // The semaphore can now be used.
+    }
+ }
+ </pre>
+ * \defgroup xSemaphoreCreateCounting xSemaphoreCreateCounting
+ * \ingroup Semaphores
+ */
+#define xSemaphoreCreateCounting( uxMaxCount, uxInitialCount ) xQueueCreateCountingSemaphore( uxMaxCount, uxInitialCount )
+
+
+#endif /* SEMAPHORE_H */
+
+
diff --git a/gyro_board/src/usb/FreeRTOS/include/task.h b/gyro_board/src/usb/FreeRTOS/include/task.h
new file mode 100644
index 0000000..a8d8a62
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/include/task.h
@@ -0,0 +1,1261 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+#ifndef INC_FREERTOS_H
+#error "#include FreeRTOS.h" must appear in source files before "#include task.h"
+#endif
+
+
+
+#ifndef TASK_H
+#define TASK_H
+
+#include "portable.h"
+#include "list.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+	/*-----------------------------------------------------------
+	 * MACROS AND DEFINITIONS
+	 *----------------------------------------------------------*/
+
+#define tskKERNEL_VERSION_NUMBER "V6.0.4"
+
+	/**
+	 * task. h
+	 *
+	 * Type by which tasks are referenced.  For example, a call to xTaskCreate
+	 * returns (via a pointer parameter) an xTaskHandle variable that can then
+	 * be used as a parameter to vTaskDelete to delete the task.
+	 *
+	 * \page xTaskHandle xTaskHandle
+	 * \ingroup Tasks
+	 */
+	typedef void * xTaskHandle;
+
+	/*
+	 * Used internally only.
+	 */
+	typedef struct xTIME_OUT {
+		portBASE_TYPE xOverflowCount;
+		portTickType  xTimeOnEntering;
+	} xTimeOutType;
+
+	/*
+	 * Defines the memory ranges allocated to the task when an MPU is used.
+	 */
+	typedef struct xMEMORY_REGION {
+		void *pvBaseAddress;
+		unsigned long ulLengthInBytes;
+		unsigned long ulParameters;
+	} xMemoryRegion;
+
+	/*
+	 * Parameters required to create an MPU protected task.
+	 */
+	typedef struct xTASK_PARAMTERS {
+		pdTASK_CODE pvTaskCode;
+		const signed char * const pcName;
+		unsigned short usStackDepth;
+		void *pvParameters;
+		unsigned portBASE_TYPE uxPriority;
+		portSTACK_TYPE *puxStackBuffer;
+		xMemoryRegion xRegions[ portNUM_CONFIGURABLE_REGIONS ];
+	} xTaskParameters;
+
+	/*
+	 * Defines the priority used by the idle task.  This must not be modified.
+	 *
+	 * \ingroup TaskUtils
+	 */
+#define tskIDLE_PRIORITY			( ( unsigned portBASE_TYPE ) 0 )
+
+	/**
+	 * task. h
+	 *
+	 * Macro for forcing a context switch.
+	 *
+	 * \page taskYIELD taskYIELD
+	 * \ingroup SchedulerControl
+	 */
+#define taskYIELD()					portYIELD()
+
+	/**
+	 * task. h
+	 *
+	 * Macro to mark the start of a critical code region.  Preemptive context
+	 * switches cannot occur when in a critical region.
+	 *
+	 * NOTE: This may alter the stack (depending on the portable implementation)
+	 * so must be used with care!
+	 *
+	 * \page taskENTER_CRITICAL taskENTER_CRITICAL
+	 * \ingroup SchedulerControl
+	 */
+#define taskENTER_CRITICAL()		portENTER_CRITICAL()
+
+	/**
+	 * task. h
+	 *
+	 * Macro to mark the end of a critical code region.  Preemptive context
+	 * switches cannot occur when in a critical region.
+	 *
+	 * NOTE: This may alter the stack (depending on the portable implementation)
+	 * so must be used with care!
+	 *
+	 * \page taskEXIT_CRITICAL taskEXIT_CRITICAL
+	 * \ingroup SchedulerControl
+	 */
+#define taskEXIT_CRITICAL()			portEXIT_CRITICAL()
+
+	/**
+	 * task. h
+	 *
+	 * Macro to disable all maskable interrupts.
+	 *
+	 * \page taskDISABLE_INTERRUPTS taskDISABLE_INTERRUPTS
+	 * \ingroup SchedulerControl
+	 */
+#define taskDISABLE_INTERRUPTS()	portDISABLE_INTERRUPTS()
+
+	/**
+	 * task. h
+	 *
+	 * Macro to enable microcontroller interrupts.
+	 *
+	 * \page taskENABLE_INTERRUPTS taskENABLE_INTERRUPTS
+	 * \ingroup SchedulerControl
+	 */
+#define taskENABLE_INTERRUPTS()		portENABLE_INTERRUPTS()
+
+	/* Definitions returned by xTaskGetSchedulerState(). */
+#define taskSCHEDULER_NOT_STARTED	0
+#define taskSCHEDULER_RUNNING		1
+#define taskSCHEDULER_SUSPENDED		2
+
+	/*-----------------------------------------------------------
+	 * TASK CREATION API
+	 *----------------------------------------------------------*/
+
+	/**
+	 * task. h
+	 *<pre>
+	 portBASE_TYPE xTaskCreate(
+								  pdTASK_CODE pvTaskCode,
+								  const char * const pcName,
+								  unsigned short usStackDepth,
+								  void *pvParameters,
+								  unsigned portBASE_TYPE uxPriority,
+								  xTaskHandle *pvCreatedTask
+							  );</pre>
+	 *
+	 * Create a new task and add it to the list of tasks that are ready to run.
+	 *
+	 * xTaskCreate() can only be used to create a task that has unrestricted
+	 * access to the entire microcontroller memory map.  Systems that include MPU
+	 * support can alternatively create an MPU constrained task using
+	 * xTaskCreateRestricted().
+	 *
+	 * @param pvTaskCode Pointer to the task entry function.  Tasks
+	 * must be implemented to never return (i.e. continuous loop).
+	 *
+	 * @param pcName A descriptive name for the task.  This is mainly used to
+	 * facilitate debugging.  Max length defined by tskMAX_TASK_NAME_LEN - default
+	 * is 16.
+	 *
+	 * @param usStackDepth The size of the task stack specified as the number of
+	 * variables the stack can hold - not the number of bytes.  For example, if
+	 * the stack is 16 bits wide and usStackDepth is defined as 100, 200 bytes
+	 * will be allocated for stack storage.
+	 *
+	 * @param pvParameters Pointer that will be used as the parameter for the task
+	 * being created.
+	 *
+	 * @param uxPriority The priority at which the task should run.  Systems that
+	 * include MPU support can optionally create tasks in a privileged (system)
+	 * mode by setting bit portPRIVILEGE_BIT of the priority parameter.  For
+	 * example, to create a privileged task at priority 2 the uxPriority parameter
+	 * should be set to ( 2 | portPRIVILEGE_BIT ).
+	 *
+	 * @param pvCreatedTask Used to pass back a handle by which the created task
+	 * can be referenced.
+	 *
+	 * @return pdPASS if the task was successfully created and added to a ready
+	 * list, otherwise an error code defined in the file errors. h
+	 *
+	 * Example usage:
+	   <pre>
+	 // Task to be created.
+	 void vTaskCode( void * pvParameters )
+	 {
+		 for( ;; )
+		 {
+			 // Task code goes here.
+		 }
+	 }
+
+	 // Function that creates a task.
+	 void vOtherFunction( void )
+	 {
+	 static unsigned char ucParameterToPass;
+	 xTaskHandle xHandle;
+
+		 // Create the task, storing the handle.  Note that the passed parameter ucParameterToPass
+		 // must exist for the lifetime of the task, so in this case is declared static.  If it was just an
+		 // an automatic stack variable it might no longer exist, or at least have been corrupted, by the time
+		 // the new task attempts to access it.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
+
+		 // Use the handle to delete the task.
+		 vTaskDelete( xHandle );
+	 }
+	   </pre>
+	 * \defgroup xTaskCreate xTaskCreate
+	 * \ingroup Tasks
+	 */
+#define xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask ) xTaskGenericCreate( ( pvTaskCode ), ( pcName ), ( usStackDepth ), ( pvParameters ), ( uxPriority ), ( pxCreatedTask ), ( NULL ), ( NULL ) )
+
+	/**
+	 * task. h
+	 *<pre>
+	 portBASE_TYPE xTaskCreateRestricted( xTaskParameters *pxTaskDefinition, xTaskHandle *pxCreatedTask );</pre>
+	 *
+	 * xTaskCreateRestricted() should only be used in systems that include an MPU
+	 * implementation.
+	 *
+	 * Create a new task and add it to the list of tasks that are ready to run.
+	 * The function parameters define the memory regions and associated access
+	 * permissions allocated to the task.
+	 *
+	 * @param pxTaskDefinition Pointer to a structure that contains a member
+	 * for each of the normal xTaskCreate() parameters (see the xTaskCreate() API
+	 * documentation) plus an optional stack buffer and the memory region
+	 * definitions.
+	 *
+	 * @param pxCreatedTask Used to pass back a handle by which the created task
+	 * can be referenced.
+	 *
+	 * @return pdPASS if the task was successfully created and added to a ready
+	 * list, otherwise an error code defined in the file errors. h
+	 *
+	 * Example usage:
+	   <pre>
+	// Create an xTaskParameters structure that defines the task to be created.
+	static const xTaskParameters xCheckTaskParameters =
+	{
+		vATask,		// pvTaskCode - the function that implements the task.
+		"ATask",	// pcName - just a text name for the task to assist debugging.
+		100,		// usStackDepth	- the stack size DEFINED IN WORDS.
+		NULL,		// pvParameters - passed into the task function as the function parameters.
+		( 1UL | portPRIVILEGE_BIT ),// uxPriority - task priority, set the portPRIVILEGE_BIT if the task should run in a privileged state.
+		cStackBuffer,// puxStackBuffer - the buffer to be used as the task stack.
+
+		// xRegions - Allocate up to three separate memory regions for access by
+		// the task, with appropriate access permissions.  Different processors have
+		// different memory alignment requirements - refer to the FreeRTOS documentation
+		// for full information.
+		{
+			// Base address					Length	Parameters
+	        { cReadWriteArray,				32,		portMPU_REGION_READ_WRITE },
+	        { cReadOnlyArray,				32,		portMPU_REGION_READ_ONLY },
+	        { cPrivilegedOnlyAccessArray,	128,	portMPU_REGION_PRIVILEGED_READ_WRITE }
+		}
+	};
+
+	int main( void )
+	{
+	xTaskHandle xHandle;
+
+		// Create a task from the const structure defined above.  The task handle
+		// is requested (the second parameter is not NULL) but in this case just for
+		// demonstration purposes as its not actually used.
+		xTaskCreateRestricted( &xRegTest1Parameters, &xHandle );
+
+		// Start the scheduler.
+		vTaskStartScheduler();
+
+		// Will only get here if there was insufficient memory to create the idle
+		// task.
+		for( ;; );
+	}
+	   </pre>
+	 * \defgroup xTaskCreateRestricted xTaskCreateRestricted
+	 * \ingroup Tasks
+	 */
+#define xTaskCreateRestricted( x, pxCreatedTask ) xTaskGenericCreate( ((x)->pvTaskCode), ((x)->pcName), ((x)->usStackDepth), ((x)->pvParameters), ((x)->uxPriority), (pxCreatedTask), ((x)->puxStackBuffer), ((x)->xRegions) )
+
+	/**
+	 * task. h
+	 *<pre>
+	 void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions );</pre>
+	 *
+	 * Memory regions are assigned to a restricted task when the task is created by
+	 * a call to xTaskCreateRestricted().  These regions can be redefined using
+	 * vTaskAllocateMPURegions().
+	 *
+	 * @param xTask The handle of the task being updated.
+	 *
+	 * @param xRegions A pointer to an xMemoryRegion structure that contains the
+	 * new memory region definitions.
+	 *
+	 * Example usage:
+	   <pre>
+	// Define an array of xMemoryRegion structures that configures an MPU region
+	// allowing read/write access for 1024 bytes starting at the beginning of the
+	// ucOneKByte array.  The other two of the maximum 3 definable regions are
+	// unused so set to zero.
+	static const xMemoryRegion xAltRegions[ portNUM_CONFIGURABLE_REGIONS ] =
+	{
+		// Base address		Length		Parameters
+		{ ucOneKByte,		1024,		portMPU_REGION_READ_WRITE },
+		{ 0,				0,			0 },
+		{ 0,				0,			0 }
+	};
+
+	void vATask( void *pvParameters )
+	{
+		// This task was created such that it has access to certain regions of
+		// memory as defined by the MPU configuration.  At some point it is
+		// desired that these MPU regions are replaced with that defined in the
+		// xAltRegions const struct above.  Use a call to vTaskAllocateMPURegions()
+		// for this purpose.  NULL is used as the task handle to indicate that this
+		// function should modify the MPU regions of the calling task.
+		vTaskAllocateMPURegions( NULL, xAltRegions );
+
+		// Now the task can continue its function, but from this point on can only
+		// access its stack and the ucOneKByte array (unless any other statically
+		// defined or shared regions have been declared elsewhere).
+	}
+	   </pre>
+	 * \defgroup xTaskCreateRestricted xTaskCreateRestricted
+	 * \ingroup Tasks
+	 */
+	void vTaskAllocateMPURegions(xTaskHandle xTask, const xMemoryRegion * const pxRegions) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskDelete( xTaskHandle pxTask );</pre>
+	 *
+	 * INCLUDE_vTaskDelete must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Remove a task from the RTOS real time kernels management.  The task being
+	 * deleted will be removed from all ready, blocked, suspended and event lists.
+	 *
+	 * NOTE:  The idle task is responsible for freeing the kernel allocated
+	 * memory from tasks that have been deleted.  It is therefore important that
+	 * the idle task is not starved of microcontroller processing time if your
+	 * application makes any calls to vTaskDelete ().  Memory allocated by the
+	 * task code is not automatically freed, and should be freed before the task
+	 * is deleted.
+	 *
+	 * See the demo application file death.c for sample code that utilises
+	 * vTaskDelete ().
+	 *
+	 * @param pxTask The handle of the task to be deleted.  Passing NULL will
+	 * cause the calling task to be deleted.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vOtherFunction( void )
+	 {
+	 xTaskHandle xHandle;
+
+		 // Create the task, storing the handle.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
+
+		 // Use the handle to delete the task.
+		 vTaskDelete( xHandle );
+	 }
+	   </pre>
+	 * \defgroup vTaskDelete vTaskDelete
+	 * \ingroup Tasks
+	 */
+	void vTaskDelete(xTaskHandle pxTask) PRIVILEGED_FUNCTION;
+
+
+	/*-----------------------------------------------------------
+	 * TASK CONTROL API
+	 *----------------------------------------------------------*/
+
+	/**
+	 * task. h
+	 * <pre>void vTaskDelay( portTickType xTicksToDelay );</pre>
+	 *
+	 * Delay a task for a given number of ticks.  The actual time that the
+	 * task remains blocked depends on the tick rate.  The constant
+	 * portTICK_RATE_MS can be used to calculate real time from the tick
+	 * rate - with the resolution of one tick period.
+	 *
+	 * INCLUDE_vTaskDelay must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 *
+	 * vTaskDelay() specifies a time at which the task wishes to unblock relative to
+	 * the time at which vTaskDelay() is called.  For example, specifying a block
+	 * period of 100 ticks will cause the task to unblock 100 ticks after
+	 * vTaskDelay() is called.  vTaskDelay() does not therefore provide a good method
+	 * of controlling the frequency of a cyclical task as the path taken through the
+	 * code, as well as other task and interrupt activity, will effect the frequency
+	 * at which vTaskDelay() gets called and therefore the time at which the task
+	 * next executes.  See vTaskDelayUntil() for an alternative API function designed
+	 * to facilitate fixed frequency execution.  It does this by specifying an
+	 * absolute time (rather than a relative time) at which the calling task should
+	 * unblock.
+	 *
+	 * @param xTicksToDelay The amount of time, in tick periods, that
+	 * the calling task should block.
+	 *
+	 * Example usage:
+
+	 void vTaskFunction( void * pvParameters )
+	 {
+	 void vTaskFunction( void * pvParameters )
+	 {
+	 // Block for 500ms.
+	 const portTickType xDelay = 500 / portTICK_RATE_MS;
+
+		 for( ;; )
+		 {
+			 // Simply toggle the LED every 500ms, blocking between each toggle.
+			 vToggleLED();
+			 vTaskDelay( xDelay );
+		 }
+	 }
+
+	 * \defgroup vTaskDelay vTaskDelay
+	 * \ingroup TaskCtrl
+	 */
+	void vTaskDelay(portTickType xTicksToDelay) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );</pre>
+	 *
+	 * INCLUDE_vTaskDelayUntil must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Delay a task until a specified time.  This function can be used by cyclical
+	 * tasks to ensure a constant execution frequency.
+	 *
+	 * This function differs from vTaskDelay () in one important aspect:  vTaskDelay () will
+	 * cause a task to block for the specified number of ticks from the time vTaskDelay () is
+	 * called.  It is therefore difficult to use vTaskDelay () by itself to generate a fixed
+	 * execution frequency as the time between a task starting to execute and that task
+	 * calling vTaskDelay () may not be fixed [the task may take a different path though the
+	 * code between calls, or may get interrupted or preempted a different number of times
+	 * each time it executes].
+	 *
+	 * Whereas vTaskDelay () specifies a wake time relative to the time at which the function
+	 * is called, vTaskDelayUntil () specifies the absolute (exact) time at which it wishes to
+	 * unblock.
+	 *
+	 * The constant portTICK_RATE_MS can be used to calculate real time from the tick
+	 * rate - with the resolution of one tick period.
+	 *
+	 * @param pxPreviousWakeTime Pointer to a variable that holds the time at which the
+	 * task was last unblocked.  The variable must be initialised with the current time
+	 * prior to its first use (see the example below).  Following this the variable is
+	 * automatically updated within vTaskDelayUntil ().
+	 *
+	 * @param xTimeIncrement The cycle time period.  The task will be unblocked at
+	 * time *pxPreviousWakeTime + xTimeIncrement.  Calling vTaskDelayUntil with the
+	 * same xTimeIncrement parameter value will cause the task to execute with
+	 * a fixed interface period.
+	 *
+	 * Example usage:
+	   <pre>
+	 // Perform an action every 10 ticks.
+	 void vTaskFunction( void * pvParameters )
+	 {
+	 portTickType xLastWakeTime;
+	 const portTickType xFrequency = 10;
+
+		 // Initialise the xLastWakeTime variable with the current time.
+		 xLastWakeTime = xTaskGetTickCount ();
+		 for( ;; )
+		 {
+			 // Wait for the next cycle.
+			 vTaskDelayUntil( &xLastWakeTime, xFrequency );
+
+			 // Perform action here.
+		 }
+	 }
+	   </pre>
+	 * \defgroup vTaskDelayUntil vTaskDelayUntil
+	 * \ingroup TaskCtrl
+	 */
+	void vTaskDelayUntil(portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );</pre>
+	 *
+	 * INCLUDE_xTaskPriorityGet must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Obtain the priority of any task.
+	 *
+	 * @param pxTask Handle of the task to be queried.  Passing a NULL
+	 * handle results in the priority of the calling task being returned.
+	 *
+	 * @return The priority of pxTask.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vAFunction( void )
+	 {
+	 xTaskHandle xHandle;
+
+		 // Create a task, storing the handle.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
+
+		 // ...
+
+		 // Use the handle to obtain the priority of the created task.
+		 // It was created with tskIDLE_PRIORITY, but may have changed
+		 // it itself.
+		 if( uxTaskPriorityGet( xHandle ) != tskIDLE_PRIORITY )
+		 {
+			 // The task has changed it's priority.
+		 }
+
+		 // ...
+
+		 // Is our priority higher than the created task?
+		 if( uxTaskPriorityGet( xHandle ) < uxTaskPriorityGet( NULL ) )
+		 {
+			 // Our priority (obtained using NULL handle) is higher.
+		 }
+	 }
+	   </pre>
+	 * \defgroup uxTaskPriorityGet uxTaskPriorityGet
+	 * \ingroup TaskCtrl
+	 */
+	unsigned portBASE_TYPE uxTaskPriorityGet(xTaskHandle pxTask) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority );</pre>
+	 *
+	 * INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Set the priority of any task.
+	 *
+	 * A context switch will occur before the function returns if the priority
+	 * being set is higher than the currently executing task.
+	 *
+	 * @param pxTask Handle to the task for which the priority is being set.
+	 * Passing a NULL handle results in the priority of the calling task being set.
+	 *
+	 * @param uxNewPriority The priority to which the task will be set.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vAFunction( void )
+	 {
+	 xTaskHandle xHandle;
+
+		 // Create a task, storing the handle.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
+
+		 // ...
+
+		 // Use the handle to raise the priority of the created task.
+		 vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 );
+
+		 // ...
+
+		 // Use a NULL handle to raise our priority to the same value.
+		 vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 );
+	 }
+	   </pre>
+	 * \defgroup vTaskPrioritySet vTaskPrioritySet
+	 * \ingroup TaskCtrl
+	 */
+	void vTaskPrioritySet(xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskSuspend( xTaskHandle pxTaskToSuspend );</pre>
+	 *
+	 * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Suspend any task.  When suspended a task will never get any microcontroller
+	 * processing time, no matter what its priority.
+	 *
+	 * Calls to vTaskSuspend are not accumulative -
+	 * i.e. calling vTaskSuspend () twice on the same task still only requires one
+	 * call to vTaskResume () to ready the suspended task.
+	 *
+	 * @param pxTaskToSuspend Handle to the task being suspended.  Passing a NULL
+	 * handle will cause the calling task to be suspended.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vAFunction( void )
+	 {
+	 xTaskHandle xHandle;
+
+		 // Create a task, storing the handle.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
+
+		 // ...
+
+		 // Use the handle to suspend the created task.
+		 vTaskSuspend( xHandle );
+
+		 // ...
+
+		 // The created task will not run during this period, unless
+		 // another task calls vTaskResume( xHandle ).
+
+		 //...
+
+
+		 // Suspend ourselves.
+		 vTaskSuspend( NULL );
+
+		 // We cannot get here unless another task calls vTaskResume
+		 // with our handle as the parameter.
+	 }
+	   </pre>
+	 * \defgroup vTaskSuspend vTaskSuspend
+	 * \ingroup TaskCtrl
+	 */
+	void vTaskSuspend(xTaskHandle pxTaskToSuspend) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskResume( xTaskHandle pxTaskToResume );</pre>
+	 *
+	 * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Resumes a suspended task.
+	 *
+	 * A task that has been suspended by one of more calls to vTaskSuspend ()
+	 * will be made available for running again by a single call to
+	 * vTaskResume ().
+	 *
+	 * @param pxTaskToResume Handle to the task being readied.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vAFunction( void )
+	 {
+	 xTaskHandle xHandle;
+
+		 // Create a task, storing the handle.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
+
+		 // ...
+
+		 // Use the handle to suspend the created task.
+		 vTaskSuspend( xHandle );
+
+		 // ...
+
+		 // The created task will not run during this period, unless
+		 // another task calls vTaskResume( xHandle ).
+
+		 //...
+
+
+		 // Resume the suspended task ourselves.
+		 vTaskResume( xHandle );
+
+		 // The created task will once again get microcontroller processing
+		 // time in accordance with it priority within the system.
+	 }
+	   </pre>
+	 * \defgroup vTaskResume vTaskResume
+	 * \ingroup TaskCtrl
+	 */
+	void vTaskResume(xTaskHandle pxTaskToResume) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void xTaskResumeFromISR( xTaskHandle pxTaskToResume );</pre>
+	 *
+	 * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be
+	 * available.  See the configuration section for more information.
+	 *
+	 * An implementation of vTaskResume() that can be called from within an ISR.
+	 *
+	 * A task that has been suspended by one of more calls to vTaskSuspend ()
+	 * will be made available for running again by a single call to
+	 * xTaskResumeFromISR ().
+	 *
+	 * @param pxTaskToResume Handle to the task being readied.
+	 *
+	 * \defgroup vTaskResumeFromISR vTaskResumeFromISR
+	 * \ingroup TaskCtrl
+	 */
+	portBASE_TYPE xTaskResumeFromISR(xTaskHandle pxTaskToResume) PRIVILEGED_FUNCTION;
+
+	/*-----------------------------------------------------------
+	 * SCHEDULER CONTROL
+	 *----------------------------------------------------------*/
+
+	/**
+	 * task. h
+	 * <pre>void vTaskStartScheduler( void );</pre>
+	 *
+	 * Starts the real time kernel tick processing.  After calling the kernel
+	 * has control over which tasks are executed and when.  This function
+	 * does not return until an executing task calls vTaskEndScheduler ().
+	 *
+	 * At least one task should be created via a call to xTaskCreate ()
+	 * before calling vTaskStartScheduler ().  The idle task is created
+	 * automatically when the first application task is created.
+	 *
+	 * See the demo application file main.c for an example of creating
+	 * tasks and starting the kernel.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vAFunction( void )
+	 {
+		 // Create at least one task before starting the kernel.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
+
+		 // Start the real time kernel with preemption.
+		 vTaskStartScheduler ();
+
+		 // Will not get here unless a task calls vTaskEndScheduler ()
+	 }
+	   </pre>
+	 *
+	 * \defgroup vTaskStartScheduler vTaskStartScheduler
+	 * \ingroup SchedulerControl
+	 */
+	void vTaskStartScheduler(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskEndScheduler( void );</pre>
+	 *
+	 * Stops the real time kernel tick.  All created tasks will be automatically
+	 * deleted and multitasking (either preemptive or cooperative) will
+	 * stop.  Execution then resumes from the point where vTaskStartScheduler ()
+	 * was called, as if vTaskStartScheduler () had just returned.
+	 *
+	 * See the demo application file main. c in the demo/PC directory for an
+	 * example that uses vTaskEndScheduler ().
+	 *
+	 * vTaskEndScheduler () requires an exit function to be defined within the
+	 * portable layer (see vPortEndScheduler () in port. c for the PC port).  This
+	 * performs hardware specific operations such as stopping the kernel tick.
+	 *
+	 * vTaskEndScheduler () will cause all of the resources allocated by the
+	 * kernel to be freed - but will not free resources allocated by application
+	 * tasks.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vTaskCode( void * pvParameters )
+	 {
+		 for( ;; )
+		 {
+			 // Task code goes here.
+
+			 // At some point we want to end the real time kernel processing
+			 // so call ...
+			 vTaskEndScheduler ();
+		 }
+	 }
+
+	 void vAFunction( void )
+	 {
+		 // Create at least one task before starting the kernel.
+		 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
+
+		 // Start the real time kernel with preemption.
+		 vTaskStartScheduler ();
+
+		 // Will only get here when the vTaskCode () task has called
+		 // vTaskEndScheduler ().  When we get here we are back to single task
+		 // execution.
+	 }
+	   </pre>
+	 *
+	 * \defgroup vTaskEndScheduler vTaskEndScheduler
+	 * \ingroup SchedulerControl
+	 */
+	void vTaskEndScheduler(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>void vTaskSuspendAll( void );</pre>
+	 *
+	 * Suspends all real time kernel activity while keeping interrupts (including the
+	 * kernel tick) enabled.
+	 *
+	 * After calling vTaskSuspendAll () the calling task will continue to execute
+	 * without risk of being swapped out until a call to xTaskResumeAll () has been
+	 * made.
+	 *
+	 * API functions that have the potential to cause a context switch (for example,
+	 * vTaskDelayUntil(), xQueueSend(), etc.) must not be called while the scheduler
+	 * is suspended.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vTask1( void * pvParameters )
+	 {
+		 for( ;; )
+		 {
+			 // Task code goes here.
+
+			 // ...
+
+			 // At some point the task wants to perform a long operation during
+			 // which it does not want to get swapped out.  It cannot use
+			 // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the
+			 // operation may cause interrupts to be missed - including the
+			 // ticks.
+
+			 // Prevent the real time kernel swapping out the task.
+			 vTaskSuspendAll ();
+
+			 // Perform the operation here.  There is no need to use critical
+			 // sections as we have all the microcontroller processing time.
+			 // During this time interrupts will still operate and the kernel
+			 // tick count will be maintained.
+
+			 // ...
+
+			 // The operation is complete.  Restart the kernel.
+			 xTaskResumeAll ();
+		 }
+	 }
+	   </pre>
+	 * \defgroup vTaskSuspendAll vTaskSuspendAll
+	 * \ingroup SchedulerControl
+	 */
+	void vTaskSuspendAll(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>char xTaskResumeAll( void );</pre>
+	 *
+	 * Resumes real time kernel activity following a call to vTaskSuspendAll ().
+	 * After a call to vTaskSuspendAll () the kernel will take control of which
+	 * task is executing at any time.
+	 *
+	 * @return If resuming the scheduler caused a context switch then pdTRUE is
+	 *		  returned, otherwise pdFALSE is returned.
+	 *
+	 * Example usage:
+	   <pre>
+	 void vTask1( void * pvParameters )
+	 {
+		 for( ;; )
+		 {
+			 // Task code goes here.
+
+			 // ...
+
+			 // At some point the task wants to perform a long operation during
+			 // which it does not want to get swapped out.  It cannot use
+			 // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the
+			 // operation may cause interrupts to be missed - including the
+			 // ticks.
+
+			 // Prevent the real time kernel swapping out the task.
+			 vTaskSuspendAll ();
+
+			 // Perform the operation here.  There is no need to use critical
+			 // sections as we have all the microcontroller processing time.
+			 // During this time interrupts will still operate and the real
+			 // time kernel tick count will be maintained.
+
+			 // ...
+
+			 // The operation is complete.  Restart the kernel.  We want to force
+			 // a context switch - but there is no point if resuming the scheduler
+			 // caused a context switch already.
+			 if( !xTaskResumeAll () )
+			 {
+				  taskYIELD ();
+			 }
+		 }
+	 }
+	   </pre>
+	 * \defgroup xTaskResumeAll xTaskResumeAll
+	 * \ingroup SchedulerControl
+	 */
+	signed portBASE_TYPE xTaskResumeAll(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <pre>signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask );</pre>
+	 *
+	 * Utility task that simply returns pdTRUE if the task referenced by xTask is
+	 * currently in the Suspended state, or pdFALSE if the task referenced by xTask
+	 * is in any other state.
+	 *
+	 */
+	signed portBASE_TYPE xTaskIsTaskSuspended(xTaskHandle xTask) PRIVILEGED_FUNCTION;
+
+	/*-----------------------------------------------------------
+	 * TASK UTILITIES
+	 *----------------------------------------------------------*/
+
+	/**
+	 * task. h
+	 * <PRE>volatile portTickType xTaskGetTickCount( void );</PRE>
+	 *
+	 * @return The count of ticks since vTaskStartScheduler was called.
+	 *
+	 * \page xTaskGetTickCount xTaskGetTickCount
+	 * \ingroup TaskUtils
+	 */
+	portTickType xTaskGetTickCount(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <PRE>unsigned short uxTaskGetNumberOfTasks( void );</PRE>
+	 *
+	 * @return The number of tasks that the real time kernel is currently managing.
+	 * This includes all ready, blocked and suspended tasks.  A task that
+	 * has been deleted but not yet freed by the idle task will also be
+	 * included in the count.
+	 *
+	 * \page uxTaskGetNumberOfTasks uxTaskGetNumberOfTasks
+	 * \ingroup TaskUtils
+	 */
+	unsigned portBASE_TYPE uxTaskGetNumberOfTasks(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <PRE>void vTaskList( char *pcWriteBuffer );</PRE>
+	 *
+	 * configUSE_TRACE_FACILITY must be defined as 1 for this function to be
+	 * available.  See the configuration section for more information.
+	 *
+	 * NOTE: This function will disable interrupts for its duration.  It is
+	 * not intended for normal application runtime use but as a debug aid.
+	 *
+	 * Lists all the current tasks, along with their current state and stack
+	 * usage high water mark.
+	 *
+	 * Tasks are reported as blocked ('B'), ready ('R'), deleted ('D') or
+	 * suspended ('S').
+	 *
+	 * @param pcWriteBuffer A buffer into which the above mentioned details
+	 * will be written, in ascii form.  This buffer is assumed to be large
+	 * enough to contain the generated report.  Approximately 40 bytes per
+	 * task should be sufficient.
+	 *
+	 * \page vTaskList vTaskList
+	 * \ingroup TaskUtils
+	 */
+	void vTaskList(signed char *pcWriteBuffer) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <PRE>void vTaskGetRunTimeStats( char *pcWriteBuffer );</PRE>
+	 *
+	 * configGENERATE_RUN_TIME_STATS must be defined as 1 for this function
+	 * to be available.  The application must also then provide definitions
+	 * for portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and
+	 * portGET_RUN_TIME_COUNTER_VALUE to configure a peripheral timer/counter
+	 * and return the timers current count value respectively.  The counter
+	 * should be at least 10 times the frequency of the tick count.
+	 *
+	 * NOTE: This function will disable interrupts for its duration.  It is
+	 * not intended for normal application runtime use but as a debug aid.
+	 *
+	 * Setting configGENERATE_RUN_TIME_STATS to 1 will result in a total
+	 * accumulated execution time being stored for each task.  The resolution
+	 * of the accumulated time value depends on the frequency of the timer
+	 * configured by the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() macro.
+	 * Calling vTaskGetRunTimeStats() writes the total execution time of each
+	 * task into a buffer, both as an absolute count value and as a percentage
+	 * of the total system execution time.
+	 *
+	 * @param pcWriteBuffer A buffer into which the execution times will be
+	 * written, in ascii form.  This buffer is assumed to be large enough to
+	 * contain the generated report.  Approximately 40 bytes per task should
+	 * be sufficient.
+	 *
+	 * \page vTaskGetRunTimeStats vTaskGetRunTimeStats
+	 * \ingroup TaskUtils
+	 */
+	void vTaskGetRunTimeStats(signed char *pcWriteBuffer) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <PRE>void vTaskStartTrace( char * pcBuffer, unsigned portBASE_TYPE uxBufferSize );</PRE>
+	 *
+	 * Starts a real time kernel activity trace.  The trace logs the identity of
+	 * which task is running when.
+	 *
+	 * The trace file is stored in binary format.  A separate DOS utility called
+	 * convtrce.exe is used to convert this into a tab delimited text file which
+	 * can be viewed and plotted in a spread sheet.
+	 *
+	 * @param pcBuffer The buffer into which the trace will be written.
+	 *
+	 * @param ulBufferSize The size of pcBuffer in bytes.  The trace will continue
+	 * until either the buffer in full, or ulTaskEndTrace () is called.
+	 *
+	 * \page vTaskStartTrace vTaskStartTrace
+	 * \ingroup TaskUtils
+	 */
+	void vTaskStartTrace(signed char * pcBuffer, unsigned long ulBufferSize) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task. h
+	 * <PRE>unsigned long ulTaskEndTrace( void );</PRE>
+	 *
+	 * Stops a kernel activity trace.  See vTaskStartTrace ().
+	 *
+	 * @return The number of bytes that have been written into the trace buffer.
+	 *
+	 * \page usTaskEndTrace usTaskEndTrace
+	 * \ingroup TaskUtils
+	 */
+	unsigned long ulTaskEndTrace(void) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task.h
+	 * <PRE>unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask );</PRE>
+	 *
+	 * INCLUDE_uxTaskGetStackHighWaterMark must be set to 1 in FreeRTOSConfig.h for
+	 * this function to be available.
+	 *
+	 * Returns the high water mark of the stack associated with xTask.  That is,
+	 * the minimum free stack space there has been (in bytes) since the task
+	 * started.  The smaller the returned number the closer the task has come
+	 * to overflowing its stack.
+	 *
+	 * @param xTask Handle of the task associated with the stack to be checked.
+	 * Set xTask to NULL to check the stack of the calling task.
+	 *
+	 * @return The smallest amount of free stack space there has been (in bytes)
+	 * since the task referenced by xTask was created.
+	 */
+	unsigned portBASE_TYPE uxTaskGetStackHighWaterMark(xTaskHandle xTask) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task.h
+	 * <pre>void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );</pre>
+	 *
+	 * Sets pxHookFunction to be the task hook function used by the task xTask.
+	 * Passing xTask as NULL has the effect of setting the calling tasks hook
+	 * function.
+	 */
+	void vTaskSetApplicationTaskTag(xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task.h
+	 * <pre>void xTaskGetApplicationTaskTag( xTaskHandle xTask );</pre>
+	 *
+	 * Returns the pxHookFunction value assigned to the task xTask.
+	 */
+	pdTASK_HOOK_CODE xTaskGetApplicationTaskTag(xTaskHandle xTask) PRIVILEGED_FUNCTION;
+
+	/**
+	 * task.h
+	 * <pre>portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );</pre>
+	 *
+	 * Calls the hook function associated with xTask.  Passing xTask as NULL has
+	 * the effect of calling the Running tasks (the calling task) hook function.
+	 *
+	 * pvParameter is passed to the hook function for the task to interpret as it
+	 * wants.
+	 */
+	portBASE_TYPE xTaskCallApplicationTaskHook(xTaskHandle xTask, void *pvParameter) PRIVILEGED_FUNCTION;
+
+
+	/*-----------------------------------------------------------
+	 * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES
+	 *----------------------------------------------------------*/
+
+	/*
+	 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS ONLY
+	 * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS
+	 * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.
+	 *
+	 * Called from the real time kernel tick (either preemptive or cooperative),
+	 * this increments the tick count and checks if any tasks that are blocked
+	 * for a finite period required removing from a blocked list and placing on
+	 * a ready list.
+	 */
+	void vTaskIncrementTick(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS AN
+	 * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.
+	 *
+	 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.
+	 *
+	 * Removes the calling task from the ready list and places it both
+	 * on the list of tasks waiting for a particular event, and the
+	 * list of delayed tasks.  The task will be removed from both lists
+	 * and replaced on the ready list should either the event occur (and
+	 * there be no higher priority tasks waiting on the same event) or
+	 * the delay period expires.
+	 *
+	 * @param pxEventList The list containing tasks that are blocked waiting
+	 * for the event to occur.
+	 *
+	 * @param xTicksToWait The maximum amount of time that the task should wait
+	 * for the event to occur.  This is specified in kernel ticks,the constant
+	 * portTICK_RATE_MS can be used to convert kernel ticks into a real time
+	 * period.
+	 */
+	void vTaskPlaceOnEventList(const xList * const pxEventList, portTickType xTicksToWait) PRIVILEGED_FUNCTION;
+
+	/*
+	 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS AN
+	 * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.
+	 *
+	 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.
+	 *
+	 * Removes a task from both the specified event list and the list of blocked
+	 * tasks, and places it on a ready queue.
+	 *
+	 * xTaskRemoveFromEventList () will be called if either an event occurs to
+	 * unblock a task, or the block timeout period expires.
+	 *
+	 * @return pdTRUE if the task being removed has a higher priority than the task
+	 * making the call, otherwise pdFALSE.
+	 */
+	signed portBASE_TYPE xTaskRemoveFromEventList(const xList * const pxEventList) PRIVILEGED_FUNCTION;
+
+	/*
+	 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS AN
+	 * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.
+	 *
+	 * INCLUDE_vTaskCleanUpResources and INCLUDE_vTaskSuspend must be defined as 1
+	 * for this function to be available.
+	 * See the configuration section for more information.
+	 *
+	 * Empties the ready and delayed queues of task control blocks, freeing the
+	 * memory allocated for the task control block and task stacks as it goes.
+	 */
+	void vTaskCleanUpResources(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS ONLY
+	 * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS
+	 * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.
+	 *
+	 * Sets the pointer to the current TCB to the TCB of the highest priority task
+	 * that is ready to run.
+	 */
+	void vTaskSwitchContext(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Return the handle of the calling task.
+	 */
+	xTaskHandle xTaskGetCurrentTaskHandle(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Capture the current time status for future reference.
+	 */
+	void vTaskSetTimeOutState(xTimeOutType * const pxTimeOut) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Compare the time status now with that previously captured to see if the
+	 * timeout has expired.
+	 */
+	portBASE_TYPE xTaskCheckForTimeOut(xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Shortcut used by the queue implementation to prevent unnecessary call to
+	 * taskYIELD();
+	 */
+	void vTaskMissedYield(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Returns the scheduler state as taskSCHEDULER_RUNNING,
+	 * taskSCHEDULER_NOT_STARTED or taskSCHEDULER_SUSPENDED.
+	 */
+	portBASE_TYPE xTaskGetSchedulerState(void) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Raises the priority of the mutex holder to that of the calling task should
+	 * the mutex holder have a priority less than the calling task.
+	 */
+	void vTaskPriorityInherit(xTaskHandle * const pxMutexHolder) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Set the priority of a task back to its proper priority in the case that it
+	 * inherited a higher priority while it was holding a semaphore.
+	 */
+	void vTaskPriorityDisinherit(xTaskHandle * const pxMutexHolder) PRIVILEGED_FUNCTION;
+
+	/*
+	 * Generic version of the task creation function which is in turn called by the
+	 * xTaskCreate() and xTaskCreateRestricted() macros.
+	 */
+	signed portBASE_TYPE xTaskGenericCreate(pdTASK_CODE pvTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions) PRIVILEGED_FUNCTION;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* TASK_H */
+
+
+
diff --git a/gyro_board/src/usb/FreeRTOS/list.c b/gyro_board/src/usb/FreeRTOS/list.c
new file mode 100644
index 0000000..0b88791
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/list.c
@@ -0,0 +1,186 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+#include <stdlib.h>
+#include "FreeRTOS.h"
+#include "list.h"
+
+/*-----------------------------------------------------------
+ * PUBLIC LIST API documented in list.h
+ *----------------------------------------------------------*/
+
+void vListInitialise(xList *pxList)
+{
+	/* The list structure contains a list item which is used to mark the
+	end of the list.  To initialise the list the list end is inserted
+	as the only list entry. */
+	pxList->pxIndex = (xListItem *) & (pxList->xListEnd);
+
+	/* The list end value is the highest possible value in the list to
+	ensure it remains at the end of the list. */
+	pxList->xListEnd.xItemValue = portMAX_DELAY;
+
+	/* The list end next and previous pointers point to itself so we know
+	when the list is empty. */
+	pxList->xListEnd.pxNext = (xListItem *) & (pxList->xListEnd);
+	pxList->xListEnd.pxPrevious = (xListItem *) & (pxList->xListEnd);
+
+	pxList->uxNumberOfItems = 0;
+}
+/*-----------------------------------------------------------*/
+
+void vListInitialiseItem(xListItem *pxItem)
+{
+	/* Make sure the list item is not recorded as being on a list. */
+	pxItem->pvContainer = NULL;
+}
+/*-----------------------------------------------------------*/
+
+void vListInsertEnd(xList *pxList, xListItem *pxNewListItem)
+{
+	volatile xListItem * pxIndex;
+
+	/* Insert a new list item into pxList, but rather than sort the list,
+	makes the new list item the last item to be removed by a call to
+	pvListGetOwnerOfNextEntry.  This means it has to be the item pointed to by
+	the pxIndex member. */
+	pxIndex = pxList->pxIndex;
+
+	pxNewListItem->pxNext = pxIndex->pxNext;
+	pxNewListItem->pxPrevious = pxList->pxIndex;
+	pxIndex->pxNext->pxPrevious = (volatile xListItem *) pxNewListItem;
+	pxIndex->pxNext = (volatile xListItem *) pxNewListItem;
+	pxList->pxIndex = (volatile xListItem *) pxNewListItem;
+
+	/* Remember which list the item is in. */
+	pxNewListItem->pvContainer = (void *) pxList;
+
+	(pxList->uxNumberOfItems)++;
+}
+/*-----------------------------------------------------------*/
+
+void vListInsert(xList *pxList, xListItem *pxNewListItem)
+{
+	volatile xListItem *pxIterator;
+	portTickType xValueOfInsertion;
+
+	/* Insert the new list item into the list, sorted in ulListItem order. */
+	xValueOfInsertion = pxNewListItem->xItemValue;
+
+	/* If the list already contains a list item with the same item value then
+	the new list item should be placed after it.  This ensures that TCB's which
+	are stored in ready lists (all of which have the same ulListItem value)
+	get an equal share of the CPU.  However, if the xItemValue is the same as
+	the back marker the iteration loop below will not end.  This means we need
+	to guard against this by checking the value first and modifying the
+	algorithm slightly if necessary. */
+	if (xValueOfInsertion == portMAX_DELAY) {
+		pxIterator = pxList->xListEnd.pxPrevious;
+	} else {
+		/* *** NOTE ***********************************************************
+		If you find your application is crashing here then likely causes are:
+			1) Stack overflow -
+			   see http://www.freertos.org/Stacks-and-stack-overflow-checking.html
+			2) Incorrect interrupt priority assignment, especially on Cortex M3
+			   parts where numerically high priority values denote low actual
+			   interrupt priories, which can seem counter intuitive.  See
+			   configMAX_SYSCALL_INTERRUPT_PRIORITY on http://www.freertos.org/a00110.html
+			3) Calling an API function from within a critical section or when
+			   the scheduler is suspended.
+			4) Using a queue or semaphore before it has been initialised or
+			   before the scheduler has been started (are interrupts firing
+			   before vTaskStartScheduler() has been called?).
+		See http://www.freertos.org/FAQHelp.html for more tips.
+		**********************************************************************/
+
+		for (pxIterator = (xListItem *) & (pxList->xListEnd); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext) {
+			/* There is nothing to do here, we are just iterating to the
+			wanted insertion position. */
+		}
+	}
+
+	pxNewListItem->pxNext = pxIterator->pxNext;
+	pxNewListItem->pxNext->pxPrevious = (volatile xListItem *) pxNewListItem;
+	pxNewListItem->pxPrevious = pxIterator;
+	pxIterator->pxNext = (volatile xListItem *) pxNewListItem;
+
+	/* Remember which list the item is in.  This allows fast removal of the
+	item later. */
+	pxNewListItem->pvContainer = (void *) pxList;
+
+	(pxList->uxNumberOfItems)++;
+}
+/*-----------------------------------------------------------*/
+
+void vListRemove(xListItem *pxItemToRemove)
+{
+	xList * pxList;
+
+	pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;
+	pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;
+
+	/* The list item knows which list it is in.  Obtain the list from the list
+	item. */
+	pxList = (xList *) pxItemToRemove->pvContainer;
+
+	/* Make sure the index is left pointing to a valid item. */
+	if (pxList->pxIndex == pxItemToRemove) {
+		pxList->pxIndex = pxItemToRemove->pxPrevious;
+	}
+
+	pxItemToRemove->pvContainer = NULL;
+	(pxList->uxNumberOfItems)--;
+}
+/*-----------------------------------------------------------*/
+
diff --git a/gyro_board/src/usb/FreeRTOS/portable/GCC/ARM_CM3/port.c b/gyro_board/src/usb/FreeRTOS/portable/GCC/ARM_CM3/port.c
new file mode 100644
index 0000000..fb55c72
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/portable/GCC/ARM_CM3/port.c
@@ -0,0 +1,280 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*-----------------------------------------------------------
+ * Implementation of functions defined in portable.h for the ARM CM3 port.
+ *----------------------------------------------------------*/
+
+/* Scheduler includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is
+defined.  The value should also ensure backward compatibility.
+FreeRTOS.org versions prior to V4.4.0 did not include this definition. */
+#ifndef configKERNEL_INTERRUPT_PRIORITY
+#define configKERNEL_INTERRUPT_PRIORITY 255
+#endif
+
+/* Constants required to manipulate the NVIC. */
+#define portNVIC_SYSTICK_CTRL		( ( volatile unsigned long *) 0xe000e010 )
+#define portNVIC_SYSTICK_LOAD		( ( volatile unsigned long *) 0xe000e014 )
+#define portNVIC_INT_CTRL			( ( volatile unsigned long *) 0xe000ed04 )
+#define portNVIC_SYSPRI2			( ( volatile unsigned long *) 0xe000ed20 )
+#define portNVIC_SYSTICK_CLK		0x00000004
+#define portNVIC_SYSTICK_INT		0x00000002
+#define portNVIC_SYSTICK_ENABLE		0x00000001
+#define portNVIC_PENDSVSET			0x10000000
+#define portNVIC_PENDSV_PRI			( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 16 )
+#define portNVIC_SYSTICK_PRI		( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24 )
+
+/* Constants required to set up the initial stack. */
+#define portINITIAL_XPSR			( 0x01000000 )
+
+/* The priority used by the kernel is assigned to a variable to make access
+from inline assembler easier. */
+const unsigned long ulKernelPriority = configKERNEL_INTERRUPT_PRIORITY;
+
+/* Each task maintains its own interrupt status in the critical nesting
+variable. */
+static unsigned portBASE_TYPE uxCriticalNesting = 0xaaaaaaaa;
+
+/*
+ * Setup the timer to generate the tick interrupts.
+ */
+static void prvSetupTimerInterrupt(void);
+
+/*
+ * Exception handlers.
+ */
+void xPortPendSVHandler(void) __attribute__((naked));
+void xPortSysTickHandler(void);
+void vPortSVCHandler(void) __attribute__((naked));
+
+/*
+ * Start first task is a separate function so it can be tested in isolation.
+ */
+void vPortStartFirstTask(void) __attribute__((naked));
+
+/*-----------------------------------------------------------*/
+
+/*
+ * See header file for description.
+ */
+portSTACK_TYPE *pxPortInitialiseStack(portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters)
+{
+	/* Simulate the stack frame as it would be created by a context switch
+	interrupt. */
+	pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */
+	*pxTopOfStack = portINITIAL_XPSR;	/* xPSR */
+	pxTopOfStack--;
+	*pxTopOfStack = (portSTACK_TYPE) pxCode;	/* PC */
+	pxTopOfStack--;
+	*pxTopOfStack = 0;	/* LR */
+	pxTopOfStack -= 5;	/* R12, R3, R2 and R1. */
+	*pxTopOfStack = (portSTACK_TYPE) pvParameters;	/* R0 */
+	pxTopOfStack -= 8;	/* R11, R10, R9, R8, R7, R6, R5 and R4. */
+
+	return pxTopOfStack;
+}
+/*-----------------------------------------------------------*/
+
+void vPortSVCHandler(void)
+{
+	__asm volatile(
+	        "	ldr	r3, pxCurrentTCBConst2		\n" /* Restore the context. */
+	        "	ldr r1, [r3]					\n" /* Use pxCurrentTCBConst to get the pxCurrentTCB address. */
+	        "	ldr r0, [r1]					\n" /* The first item in pxCurrentTCB is the task top of stack. */
+	        "	ldmia r0!, {r4-r11}				\n" /* Pop the registers that are not automatically saved on exception entry and the critical nesting count. */
+	        "	msr psp, r0						\n" /* Restore the task stack pointer. */
+	        "	mov r0, #0 						\n"
+	        "	msr	basepri, r0					\n"
+	        "	orr r14, #0xd					\n"
+	        "	bx r14							\n"
+	        "									\n"
+	        "	.align 2						\n"
+	        "pxCurrentTCBConst2: .word pxCurrentTCB				\n"
+	);
+}
+/*-----------------------------------------------------------*/
+
+void vPortStartFirstTask(void)
+{
+	__asm volatile(
+	        " ldr r0, =0xE000ED08 	\n" /* Use the NVIC offset register to locate the stack. */
+	        " ldr r0, [r0] 			\n"
+	        " ldr r0, [r0] 			\n"
+	        " msr msp, r0			\n" /* Set the msp back to the start of the stack. */
+	        " svc 0					\n" /* System call to start first task. */
+	);
+}
+/*-----------------------------------------------------------*/
+
+/*
+ * See header file for description.
+ */
+portBASE_TYPE xPortStartScheduler(void)
+{
+	/* Make PendSV, CallSV and SysTick the same priroity as the kernel. */
+	*(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;
+	*(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI;
+
+	/* Start the timer that generates the tick ISR.  Interrupts are disabled
+	here already. */
+	prvSetupTimerInterrupt();
+
+	/* Initialise the critical nesting count ready for the first task. */
+	uxCriticalNesting = 0;
+
+	/* Start the first task. */
+	vPortStartFirstTask();
+
+	/* Should not get here! */
+	return 0;
+}
+/*-----------------------------------------------------------*/
+
+void vPortEndScheduler(void)
+{
+	/* It is unlikely that the CM3 port will require this function as there
+	is nothing to return to.  */
+}
+/*-----------------------------------------------------------*/
+
+void vPortYieldFromISR(void)
+{
+	/* Set a PendSV to request a context switch. */
+	*(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;
+}
+/*-----------------------------------------------------------*/
+
+void vPortEnterCritical(void)
+{
+	portDISABLE_INTERRUPTS();
+	uxCriticalNesting++;
+}
+/*-----------------------------------------------------------*/
+
+void vPortExitCritical(void)
+{
+	uxCriticalNesting--;
+	if (uxCriticalNesting == 0) {
+		portENABLE_INTERRUPTS();
+	}
+}
+/*-----------------------------------------------------------*/
+
+void xPortPendSVHandler(void)
+{
+	/* This is a naked function. */
+
+	__asm volatile
+	(
+	        "	mrs r0, psp							\n"
+	        "										\n"
+	        "	ldr	r3, pxCurrentTCBConst			\n" /* Get the location of the current TCB. */
+	        "	ldr	r2, [r3]						\n"
+	        "										\n"
+	        "	stmdb r0!, {r4-r11}					\n" /* Save the remaining registers. */
+	        "	str r0, [r2]						\n" /* Save the new top of stack into the first member of the TCB. */
+	        "										\n"
+	        "	stmdb sp!, {r3, r14}				\n"
+	        "	mov r0, %0							\n"
+	        "	msr basepri, r0						\n"
+	        "	bl vTaskSwitchContext				\n"
+	        "	mov r0, #0							\n"
+	        "	msr basepri, r0						\n"
+	        "	ldmia sp!, {r3, r14}				\n"
+	        "										\n"	/* Restore the context, including the critical nesting count. */
+	        "	ldr r1, [r3]						\n"
+	        "	ldr r0, [r1]						\n" /* The first item in pxCurrentTCB is the task top of stack. */
+	        "	ldmia r0!, {r4-r11}					\n" /* Pop the registers. */
+	        "	msr psp, r0							\n"
+	        "	bx r14								\n"
+	        "										\n"
+	        "	.align 2							\n"
+	        "pxCurrentTCBConst: .word pxCurrentTCB	\n"
+	        ::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY)
+	);
+}
+/*-----------------------------------------------------------*/
+
+void xPortSysTickHandler(void)
+{
+	unsigned long ulDummy;
+
+	/* If using preemption, also force a context switch. */
+#if configUSE_PREEMPTION == 1
+	*(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;
+#endif
+
+	ulDummy = portSET_INTERRUPT_MASK_FROM_ISR();
+	{
+		vTaskIncrementTick();
+	}
+	portCLEAR_INTERRUPT_MASK_FROM_ISR(ulDummy);
+}
+/*-----------------------------------------------------------*/
+
+/*
+ * Setup the systick timer to generate the tick interrupts at the required
+ * frequency.
+ */
+void prvSetupTimerInterrupt(void)
+{
+	/* Configure SysTick to interrupt at the requested rate. */
+	*(portNVIC_SYSTICK_LOAD) = (configCPU_CLOCK_HZ / configTICK_RATE_HZ) - 1UL;
+	*(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;
+}
+/*-----------------------------------------------------------*/
+
diff --git a/gyro_board/src/usb/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h b/gyro_board/src/usb/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h
new file mode 100644
index 0000000..35c57ac
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h
@@ -0,0 +1,157 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+#ifndef PORTMACRO_H
+#define PORTMACRO_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+	/*-----------------------------------------------------------
+	 * Port specific definitions.
+	 *
+	 * The settings in this file configure FreeRTOS correctly for the
+	 * given hardware and compiler.
+	 *
+	 * These settings should not be altered.
+	 *-----------------------------------------------------------
+	 */
+
+	/* Type definitions. */
+#define portCHAR		char
+#define portFLOAT		float
+#define portDOUBLE		double
+#define portLONG		long
+#define portSHORT		short
+#define portSTACK_TYPE	unsigned portLONG
+#define portBASE_TYPE	long
+
+#if( configUSE_16_BIT_TICKS == 1 )
+	typedef unsigned portSHORT portTickType;
+#define portMAX_DELAY ( portTickType ) 0xffff
+#else
+	typedef unsigned portLONG portTickType;
+#define portMAX_DELAY ( portTickType ) 0xffffffff
+#endif
+	/*-----------------------------------------------------------*/
+
+	/* Architecture specifics. */
+#define portSTACK_GROWTH			( -1 )
+#define portTICK_RATE_MS			( ( portTickType ) 1000 / configTICK_RATE_HZ )
+#define portBYTE_ALIGNMENT			8
+	/*-----------------------------------------------------------*/
+
+
+	/* Scheduler utilities. */
+	extern void vPortYieldFromISR(void);
+
+#define portYIELD()					vPortYieldFromISR()
+
+#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR()
+	/*-----------------------------------------------------------*/
+
+
+	/* Critical section management. */
+
+	/*
+	 * Set basepri to portMAX_SYSCALL_INTERRUPT_PRIORITY without effecting other
+	 * registers.  r0 is clobbered.
+	 */
+#define portSET_INTERRUPT_MASK()						\
+	__asm volatile										\
+	(													\
+		"	mov r0, %0								\n"	\
+		"	msr basepri, r0							\n" \
+		::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY):"r0"	\
+	)
+
+	/*
+	 * Set basepri back to 0 without effective other registers.
+	 * r0 is clobbered.
+	 */
+#define portCLEAR_INTERRUPT_MASK()			\
+	__asm volatile							\
+	(										\
+		"	mov r0, #0					\n"	\
+		"	msr basepri, r0				\n"	\
+		:::"r0"								\
+	)
+
+#define portSET_INTERRUPT_MASK_FROM_ISR()		0;portSET_INTERRUPT_MASK()
+#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x)	portCLEAR_INTERRUPT_MASK();(void)x
+
+
+	extern void vPortEnterCritical(void);
+	extern void vPortExitCritical(void);
+
+#define portDISABLE_INTERRUPTS()	portSET_INTERRUPT_MASK()
+#define portENABLE_INTERRUPTS()		portCLEAR_INTERRUPT_MASK()
+#define portENTER_CRITICAL()		vPortEnterCritical()
+#define portEXIT_CRITICAL()			vPortExitCritical()
+	/*-----------------------------------------------------------*/
+
+	/* Task function macros as described on the FreeRTOS.org WEB site. */
+#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
+#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
+
+#define portNOP()
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PORTMACRO_H */
+
diff --git a/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_1.c b/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_1.c
new file mode 100644
index 0000000..5ccda33
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_1.c
@@ -0,0 +1,152 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public 
+    License and the FreeRTOS license exception along with FreeRTOS; if not it 
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained 
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+/*
+ * The simplest possible implementation of pvPortMalloc().  Note that this
+ * implementation does NOT allow allocated memory to be freed again.
+ *
+ * See heap_2.c and heap_3.c for alternative implementations, and the memory
+ * management pages of http://www.FreeRTOS.org for more information.
+ */
+#include <stdlib.h>
+
+/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
+all the API functions to use the MPU wrappers.  That should only be done when
+task.h is included from an application file. */
+#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+/* Allocate the memory for the heap.  The struct is used to force byte
+alignment without using any non-portable code. */
+static union xRTOS_HEAP
+{
+	#if portBYTE_ALIGNMENT == 8
+		volatile portDOUBLE dDummy;
+	#else
+		volatile unsigned long ulDummy;
+	#endif	
+	unsigned char ucHeap[ configTOTAL_HEAP_SIZE ];
+} xHeap;
+
+static size_t xNextFreeByte = ( size_t ) 0;
+/*-----------------------------------------------------------*/
+
+void *pvPortMalloc( size_t xWantedSize )
+{
+void *pvReturn = NULL; 
+
+	/* Ensure that blocks are always aligned to the required number of bytes. */
+	#if portBYTE_ALIGNMENT != 1
+		if( xWantedSize & portBYTE_ALIGNMENT_MASK )
+		{
+			/* Byte alignment required. */
+			xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) );
+		}
+	#endif
+
+	vTaskSuspendAll();
+	{
+		/* Check there is enough room left for the allocation. */
+		if( ( ( xNextFreeByte + xWantedSize ) < configTOTAL_HEAP_SIZE ) &&
+			( ( xNextFreeByte + xWantedSize ) > xNextFreeByte )	)/* Check for overflow. */
+		{
+			/* Return the next free byte then increment the index past this
+			block. */
+			pvReturn = &( xHeap.ucHeap[ xNextFreeByte ] );
+			xNextFreeByte += xWantedSize;			
+		}	
+	}
+	xTaskResumeAll();
+	
+	#if( configUSE_MALLOC_FAILED_HOOK == 1 )
+	{
+		if( pvReturn == NULL )
+		{
+			extern void vApplicationMallocFailedHook( void );
+			vApplicationMallocFailedHook();
+		}
+	}
+	#endif	
+
+	return pvReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vPortFree( void *pv )
+{
+	/* Memory cannot be freed using this scheme.  See heap_2.c and heap_3.c 
+	for alternative implementations, and the memory management pages of 
+	http://www.FreeRTOS.org for more information. */
+	( void ) pv;
+}
+/*-----------------------------------------------------------*/
+
+void vPortInitialiseBlocks( void )
+{
+	/* Only required when static memory is not cleared. */
+	xNextFreeByte = ( size_t ) 0;
+}
+/*-----------------------------------------------------------*/
+
+size_t xPortGetFreeHeapSize( void )
+{
+	return ( configTOTAL_HEAP_SIZE - xNextFreeByte );
+}
+
+
+
diff --git a/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_2.c b/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_2.c
new file mode 100644
index 0000000..77e13b8
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_2.c
@@ -0,0 +1,278 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public 
+    License and the FreeRTOS license exception along with FreeRTOS; if not it 
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained 
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/*
+ * A sample implementation of pvPortMalloc() and vPortFree() that permits
+ * allocated blocks to be freed, but does not combine adjacent free blocks
+ * into a single larger block.
+ *
+ * See heap_1.c and heap_3.c for alternative implementations, and the memory
+ * management pages of http://www.FreeRTOS.org for more information.
+ */
+#include <stdlib.h>
+
+/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
+all the API functions to use the MPU wrappers.  That should only be done when
+task.h is included from an application file. */
+#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+/* Allocate the memory for the heap.  The struct is used to force byte
+alignment without using any non-portable code. */
+static union xRTOS_HEAP
+{
+	#if portBYTE_ALIGNMENT == 8
+		volatile portDOUBLE dDummy;
+	#else
+		volatile unsigned long ulDummy;
+	#endif
+	unsigned char ucHeap[ configTOTAL_HEAP_SIZE ];
+} xHeap;
+
+/* Define the linked list structure.  This is used to link free blocks in order
+of their size. */
+typedef struct A_BLOCK_LINK
+{
+	struct A_BLOCK_LINK *pxNextFreeBlock;	/*<< The next free block in the list. */
+	size_t xBlockSize;						/*<< The size of the free block. */
+} xBlockLink;
+
+
+static const unsigned short  heapSTRUCT_SIZE	= ( sizeof( xBlockLink ) + portBYTE_ALIGNMENT - ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) );
+#define heapMINIMUM_BLOCK_SIZE	( ( size_t ) ( heapSTRUCT_SIZE * 2 ) )
+
+/* Create a couple of list links to mark the start and end of the list. */
+static xBlockLink xStart, xEnd;
+
+/* Keeps track of the number of free bytes remaining, but says nothing about
+fragmentation. */
+static size_t xFreeBytesRemaining = configTOTAL_HEAP_SIZE;
+
+/* STATIC FUNCTIONS ARE DEFINED AS MACROS TO MINIMIZE THE FUNCTION CALL DEPTH. */
+
+/*
+ * Insert a block into the list of free blocks - which is ordered by size of
+ * the block.  Small blocks at the start of the list and large blocks at the end
+ * of the list.
+ */
+#define prvInsertBlockIntoFreeList( pxBlockToInsert )								\
+{																					\
+xBlockLink *pxIterator;																\
+size_t xBlockSize;																	\
+																					\
+	xBlockSize = pxBlockToInsert->xBlockSize;										\
+																					\
+	/* Iterate through the list until a block is found that has a larger size */	\
+	/* than the block we are inserting. */											\
+	for( pxIterator = &xStart; pxIterator->pxNextFreeBlock->xBlockSize < xBlockSize; pxIterator = pxIterator->pxNextFreeBlock )	\
+	{																				\
+		/* There is nothing to do here - just iterate to the correct position. */	\
+	}																				\
+																					\
+	/* Update the list to include the block being inserted in the correct */		\
+	/* position. */																	\
+	pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock;					\
+	pxIterator->pxNextFreeBlock = pxBlockToInsert;									\
+}
+/*-----------------------------------------------------------*/
+
+#define prvHeapInit()																\
+{																					\
+xBlockLink *pxFirstFreeBlock;														\
+																					\
+	/* xStart is used to hold a pointer to the first item in the list of free */	\
+	/* blocks.  The void cast is used to prevent compiler warnings. */				\
+	xStart.pxNextFreeBlock = ( void * ) xHeap.ucHeap;								\
+	xStart.xBlockSize = ( size_t ) 0;												\
+																					\
+	/* xEnd is used to mark the end of the list of free blocks. */					\
+	xEnd.xBlockSize = configTOTAL_HEAP_SIZE;										\
+	xEnd.pxNextFreeBlock = NULL;													\
+																					\
+	/* To start with there is a single free block that is sized to take up the		\
+	entire heap space. */															\
+	pxFirstFreeBlock = ( void * ) xHeap.ucHeap;										\
+	pxFirstFreeBlock->xBlockSize = configTOTAL_HEAP_SIZE;							\
+	pxFirstFreeBlock->pxNextFreeBlock = &xEnd;										\
+}
+/*-----------------------------------------------------------*/
+
+void *pvPortMalloc( size_t xWantedSize )
+{
+xBlockLink *pxBlock, *pxPreviousBlock, *pxNewBlockLink;
+static portBASE_TYPE xHeapHasBeenInitialised = pdFALSE;
+void *pvReturn = NULL;
+
+	vTaskSuspendAll();
+	{
+		/* If this is the first call to malloc then the heap will require
+		initialisation to setup the list of free blocks. */
+		if( xHeapHasBeenInitialised == pdFALSE )
+		{
+			prvHeapInit();
+			xHeapHasBeenInitialised = pdTRUE;
+		}
+
+		/* The wanted size is increased so it can contain a xBlockLink
+		structure in addition to the requested amount of bytes. */
+		if( xWantedSize > 0 )
+		{
+			xWantedSize += heapSTRUCT_SIZE;
+
+			/* Ensure that blocks are always aligned to the required number of bytes. */
+			if( xWantedSize & portBYTE_ALIGNMENT_MASK )
+			{
+				/* Byte alignment required. */
+				xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) );
+			}
+		}
+
+		if( ( xWantedSize > 0 ) && ( xWantedSize < configTOTAL_HEAP_SIZE ) )
+		{
+			/* Blocks are stored in byte order - traverse the list from the start
+			(smallest) block until one of adequate size is found. */
+			pxPreviousBlock = &xStart;
+			pxBlock = xStart.pxNextFreeBlock;
+			while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock ) )
+			{
+				pxPreviousBlock = pxBlock;
+				pxBlock = pxBlock->pxNextFreeBlock;
+			}
+
+			/* If we found the end marker then a block of adequate size was not found. */
+			if( pxBlock != &xEnd )
+			{
+				/* Return the memory space - jumping over the xBlockLink structure
+				at its start. */
+				pvReturn = ( void * ) ( ( ( unsigned char * ) pxPreviousBlock->pxNextFreeBlock ) + heapSTRUCT_SIZE );
+
+				/* This block is being returned for use so must be taken our of the
+				list of free blocks. */
+				pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock;
+
+				/* If the block is larger than required it can be split into two. */
+				if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE )
+				{
+					/* This block is to be split into two.  Create a new block
+					following the number of bytes requested. The void cast is
+					used to prevent byte alignment warnings from the compiler. */
+					pxNewBlockLink = ( void * ) ( ( ( unsigned char * ) pxBlock ) + xWantedSize );
+
+					/* Calculate the sizes of two blocks split from the single
+					block. */
+					pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize;
+					pxBlock->xBlockSize = xWantedSize;
+
+					/* Insert the new block into the list of free blocks. */
+					prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );
+				}
+				
+				xFreeBytesRemaining -= xWantedSize;
+			}
+		}
+	}
+	xTaskResumeAll();
+
+	#if( configUSE_MALLOC_FAILED_HOOK == 1 )
+	{
+		if( pvReturn == NULL )
+		{
+			extern void vApplicationMallocFailedHook( void );
+			vApplicationMallocFailedHook();
+		}
+	}
+	#endif
+
+	return pvReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vPortFree( void *pv )
+{
+unsigned char *puc = ( unsigned char * ) pv;
+xBlockLink *pxLink;
+
+	if( pv )
+	{
+		/* The memory being freed will have an xBlockLink structure immediately
+		before it. */
+		puc -= heapSTRUCT_SIZE;
+
+		/* This casting is to keep the compiler from issuing warnings. */
+		pxLink = ( void * ) puc;
+
+		vTaskSuspendAll();
+		{
+			/* Add this block to the list of free blocks. */
+			prvInsertBlockIntoFreeList( ( ( xBlockLink * ) pxLink ) );
+			xFreeBytesRemaining += pxLink->xBlockSize;
+		}
+		xTaskResumeAll();
+	}
+}
+/*-----------------------------------------------------------*/
+
+size_t xPortGetFreeHeapSize( void )
+{
+	return xFreeBytesRemaining;
+}
+/*-----------------------------------------------------------*/
+
+void vPortInitialiseBlocks( void )
+{
+	/* This just exists to keep the linker quiet. */
+}
diff --git a/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_3.c b/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_3.c
new file mode 100644
index 0000000..643f750
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/portable/MemMang/heap_3.c
@@ -0,0 +1,117 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public 
+    License and the FreeRTOS license exception along with FreeRTOS; if not it 
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained 
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+/*
+ * Implementation of pvPortMalloc() and vPortFree() that relies on the
+ * compilers own malloc() and free() implementations.
+ *
+ * This file can only be used if the linker is configured to to generate
+ * a heap memory area.
+ *
+ * See heap_2.c and heap_1.c for alternative implementations, and the memory
+ * management pages of http://www.FreeRTOS.org for more information.
+ */
+
+#include <stdlib.h>
+
+/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
+all the API functions to use the MPU wrappers.  That should only be done when
+task.h is included from an application file. */
+#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+/*-----------------------------------------------------------*/
+
+void *pvPortMalloc( size_t xWantedSize )
+{
+void *pvReturn;
+
+	vTaskSuspendAll();
+	{
+		pvReturn = malloc( xWantedSize );
+	}
+	xTaskResumeAll();
+
+	#if( configUSE_MALLOC_FAILED_HOOK == 1 )
+	{
+		if( pvReturn == NULL )
+		{
+			extern void vApplicationMallocFailedHook( void );
+			vApplicationMallocFailedHook();
+		}
+	}
+	#endif
+	
+	return pvReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vPortFree( void *pv )
+{
+	if( pv )
+	{
+		vTaskSuspendAll();
+		{
+			free( pv );
+		}
+		xTaskResumeAll();
+	}
+}
+
+
+
diff --git a/gyro_board/src/usb/FreeRTOS/queue.c b/gyro_board/src/usb/FreeRTOS/queue.c
new file mode 100644
index 0000000..acd6119
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/queue.c
@@ -0,0 +1,1302 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#include <stdlib.h>
+#include <string.h>
+
+/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
+all the API functions to use the MPU wrappers.  That should only be done when
+task.h is included from an application file. */
+#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "croutine.h"
+
+#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+/*-----------------------------------------------------------
+ * PUBLIC LIST API documented in list.h
+ *----------------------------------------------------------*/
+
+/* Constants used with the cRxLock and cTxLock structure members. */
+#define queueUNLOCKED					( ( signed portBASE_TYPE ) -1 )
+#define queueLOCKED_UNMODIFIED			( ( signed portBASE_TYPE ) 0 )
+
+#define queueERRONEOUS_UNBLOCK			( -1 )
+
+/* For internal use only. */
+#define	queueSEND_TO_BACK				( 0 )
+#define	queueSEND_TO_FRONT				( 1 )
+
+/* Effectively make a union out of the xQUEUE structure. */
+#define pxMutexHolder					pcTail
+#define uxQueueType						pcHead
+#define uxRecursiveCallCount			pcReadFrom
+#define queueQUEUE_IS_MUTEX				NULL
+
+/* Semaphores do not actually store or copy data, so have an items size of
+zero. */
+#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( 0 )
+#define queueDONT_BLOCK					 ( ( portTickType ) 0 )
+#define queueMUTEX_GIVE_BLOCK_TIME		 ( ( portTickType ) 0 )
+
+/*
+ * Definition of the queue used by the scheduler.
+ * Items are queued by copy, not reference.
+ */
+typedef struct QueueDefinition {
+	signed char *pcHead;				/*< Points to the beginning of the queue storage area. */
+	signed char *pcTail;				/*< Points to the byte at the end of the queue storage area.  Once more byte is allocated than necessary to store the queue items, this is used as a marker. */
+
+	signed char *pcWriteTo;				/*< Points to the free next place in the storage area. */
+	signed char *pcReadFrom;			/*< Points to the last place that a queued item was read from. */
+
+	xList xTasksWaitingToSend;				/*< List of tasks that are blocked waiting to post onto this queue.  Stored in priority order. */
+	xList xTasksWaitingToReceive;			/*< List of tasks that are blocked waiting to read from this queue.  Stored in priority order. */
+
+	volatile unsigned portBASE_TYPE uxMessagesWaiting;/*< The number of items currently in the queue. */
+	unsigned portBASE_TYPE uxLength;		/*< The length of the queue defined as the number of items it will hold, not the number of bytes. */
+	unsigned portBASE_TYPE uxItemSize;		/*< The size of each items that the queue will hold. */
+
+	signed portBASE_TYPE xRxLock;			/*< Stores the number of items received from the queue (removed from the queue) while the queue was locked.  Set to queueUNLOCKED when the queue is not locked. */
+	signed portBASE_TYPE xTxLock;			/*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked.  Set to queueUNLOCKED when the queue is not locked. */
+
+} xQUEUE;
+/*-----------------------------------------------------------*/
+
+/*
+ * Inside this file xQueueHandle is a pointer to a xQUEUE structure.
+ * To keep the definition private the API header file defines it as a
+ * pointer to void.
+ */
+typedef xQUEUE * xQueueHandle;
+
+/*
+ * Prototypes for public functions are included here so we don't have to
+ * include the API header file (as it defines xQueueHandle differently).  These
+ * functions are documented in the API header file.
+ */
+xQueueHandle xQueueCreate(unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueGenericSend(xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition) PRIVILEGED_FUNCTION;
+unsigned portBASE_TYPE uxQueueMessagesWaiting(const xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+void vQueueDelete(xQueueHandle xQueue) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueGenericSendFromISR(xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueGenericReceive(xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueReceiveFromISR(xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken) PRIVILEGED_FUNCTION;
+xQueueHandle xQueueCreateMutex(void) PRIVILEGED_FUNCTION;
+xQueueHandle xQueueCreateCountingSemaphore(unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount) PRIVILEGED_FUNCTION;
+portBASE_TYPE xQueueTakeMutexRecursive(xQueueHandle xMutex, portTickType xBlockTime) PRIVILEGED_FUNCTION;
+portBASE_TYPE xQueueGiveMutexRecursive(xQueueHandle xMutex) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueAltGenericSend(xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueAltGenericReceive(xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueIsQueueEmptyFromISR(const xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueIsQueueFullFromISR(const xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR(const xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+
+/*
+ * Co-routine queue functions differ from task queue functions.  Co-routines are
+ * an optional component.
+ */
+#if configUSE_CO_ROUTINES == 1
+signed portBASE_TYPE xQueueCRSendFromISR(xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueCRReceiveFromISR(xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueCRSend(xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait) PRIVILEGED_FUNCTION;
+signed portBASE_TYPE xQueueCRReceive(xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait) PRIVILEGED_FUNCTION;
+#endif
+
+/*
+ * The queue registry is just a means for kernel aware debuggers to locate
+ * queue structures.  It has no other purpose so is an optional component.
+ */
+#if configQUEUE_REGISTRY_SIZE > 0
+
+/* The type stored within the queue registry array.  This allows a name
+to be assigned to each queue making kernel aware debugging a little
+more user friendly. */
+typedef struct QUEUE_REGISTRY_ITEM {
+	signed char *pcQueueName;
+	xQueueHandle xHandle;
+} xQueueRegistryItem;
+
+/* The queue registry is simply an array of xQueueRegistryItem structures.
+The pcQueueName member of a structure being NULL is indicative of the
+array position being vacant. */
+xQueueRegistryItem xQueueRegistry[ configQUEUE_REGISTRY_SIZE ];
+
+/* Removes a queue from the registry by simply setting the pcQueueName
+member to NULL. */
+static void vQueueUnregisterQueue(xQueueHandle xQueue) PRIVILEGED_FUNCTION;
+void vQueueAddToRegistry(xQueueHandle xQueue, signed char *pcQueueName) PRIVILEGED_FUNCTION;
+#endif
+
+/*
+ * Unlocks a queue locked by a call to prvLockQueue.  Locking a queue does not
+ * prevent an ISR from adding or removing items to the queue, but does prevent
+ * an ISR from removing tasks from the queue event lists.  If an ISR finds a
+ * queue is locked it will instead increment the appropriate queue lock count
+ * to indicate that a task may require unblocking.  When the queue in unlocked
+ * these lock counts are inspected, and the appropriate action taken.
+ */
+static void prvUnlockQueue(xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+
+/*
+ * Uses a critical section to determine if there is any data in a queue.
+ *
+ * @return pdTRUE if the queue contains no items, otherwise pdFALSE.
+ */
+static signed portBASE_TYPE prvIsQueueEmpty(const xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+
+/*
+ * Uses a critical section to determine if there is any space in a queue.
+ *
+ * @return pdTRUE if there is no space, otherwise pdFALSE;
+ */
+static signed portBASE_TYPE prvIsQueueFull(const xQueueHandle pxQueue) PRIVILEGED_FUNCTION;
+
+/*
+ * Copies an item into the queue, either at the front of the queue or the
+ * back of the queue.
+ */
+static void prvCopyDataToQueue(xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition) PRIVILEGED_FUNCTION;
+
+/*
+ * Copies an item out of a queue.
+ */
+static void prvCopyDataFromQueue(xQUEUE * const pxQueue, const void *pvBuffer) PRIVILEGED_FUNCTION;
+/*-----------------------------------------------------------*/
+
+/*
+ * Macro to mark a queue as locked.  Locking a queue prevents an ISR from
+ * accessing the queue event lists.
+ */
+#define prvLockQueue( pxQueue )							\
+{														\
+	taskENTER_CRITICAL();								\
+	{													\
+		if( pxQueue->xRxLock == queueUNLOCKED )			\
+		{												\
+			pxQueue->xRxLock = queueLOCKED_UNMODIFIED;	\
+		}												\
+		if( pxQueue->xTxLock == queueUNLOCKED )			\
+		{												\
+			pxQueue->xTxLock = queueLOCKED_UNMODIFIED;	\
+		}												\
+	}													\
+	taskEXIT_CRITICAL();								\
+}
+/*-----------------------------------------------------------*/
+
+
+/*-----------------------------------------------------------
+ * PUBLIC QUEUE MANAGEMENT API documented in queue.h
+ *----------------------------------------------------------*/
+
+xQueueHandle xQueueCreate(unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize)
+{
+	xQUEUE *pxNewQueue;
+	size_t xQueueSizeInBytes;
+
+	/* Allocate the new queue structure. */
+	if (uxQueueLength > (unsigned portBASE_TYPE) 0) {
+		pxNewQueue = (xQUEUE *) pvPortMalloc(sizeof(xQUEUE));
+		if (pxNewQueue != NULL) {
+			/* Create the list of pointers to queue items.  The queue is one byte
+			longer than asked for to make wrap checking easier/faster. */
+			xQueueSizeInBytes = (size_t)(uxQueueLength * uxItemSize) + (size_t) 1;
+
+			pxNewQueue->pcHead = (signed char *) pvPortMalloc(xQueueSizeInBytes);
+			if (pxNewQueue->pcHead != NULL) {
+				/* Initialise the queue members as described above where the
+				queue type is defined. */
+				pxNewQueue->pcTail = pxNewQueue->pcHead + (uxQueueLength * uxItemSize);
+				pxNewQueue->uxMessagesWaiting = 0;
+				pxNewQueue->pcWriteTo = pxNewQueue->pcHead;
+				pxNewQueue->pcReadFrom = pxNewQueue->pcHead + ((uxQueueLength - 1) * uxItemSize);
+				pxNewQueue->uxLength = uxQueueLength;
+				pxNewQueue->uxItemSize = uxItemSize;
+				pxNewQueue->xRxLock = queueUNLOCKED;
+				pxNewQueue->xTxLock = queueUNLOCKED;
+
+				/* Likewise ensure the event queues start with the correct state. */
+				vListInitialise(&(pxNewQueue->xTasksWaitingToSend));
+				vListInitialise(&(pxNewQueue->xTasksWaitingToReceive));
+
+				traceQUEUE_CREATE(pxNewQueue);
+				return  pxNewQueue;
+			} else {
+				traceQUEUE_CREATE_FAILED();
+				vPortFree(pxNewQueue);
+			}
+		}
+	}
+
+	/* Will only reach here if we could not allocate enough memory or no memory
+	was required. */
+	return NULL;
+}
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_MUTEXES == 1 )
+
+xQueueHandle xQueueCreateMutex(void)
+{
+	xQUEUE *pxNewQueue;
+
+	/* Allocate the new queue structure. */
+	pxNewQueue = (xQUEUE *) pvPortMalloc(sizeof(xQUEUE));
+	if (pxNewQueue != NULL) {
+		/* Information required for priority inheritance. */
+		pxNewQueue->pxMutexHolder = NULL;
+		pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX;
+
+		/* Queues used as a mutex no data is actually copied into or out
+		of the queue. */
+		pxNewQueue->pcWriteTo = NULL;
+		pxNewQueue->pcReadFrom = NULL;
+
+		/* Each mutex has a length of 1 (like a binary semaphore) and
+		an item size of 0 as nothing is actually copied into or out
+		of the mutex. */
+		pxNewQueue->uxMessagesWaiting = 0;
+		pxNewQueue->uxLength = 1;
+		pxNewQueue->uxItemSize = 0;
+		pxNewQueue->xRxLock = queueUNLOCKED;
+		pxNewQueue->xTxLock = queueUNLOCKED;
+
+		/* Ensure the event queues start with the correct state. */
+		vListInitialise(&(pxNewQueue->xTasksWaitingToSend));
+		vListInitialise(&(pxNewQueue->xTasksWaitingToReceive));
+
+		/* Start with the semaphore in the expected state. */
+		xQueueGenericSend(pxNewQueue, NULL, 0, queueSEND_TO_BACK);
+
+		traceCREATE_MUTEX(pxNewQueue);
+	} else {
+		traceCREATE_MUTEX_FAILED();
+	}
+
+	return pxNewQueue;
+}
+
+#endif /* configUSE_MUTEXES */
+/*-----------------------------------------------------------*/
+
+#if configUSE_RECURSIVE_MUTEXES == 1
+
+portBASE_TYPE xQueueGiveMutexRecursive(xQueueHandle pxMutex)
+{
+	portBASE_TYPE xReturn;
+
+	/* If this is the task that holds the mutex then pxMutexHolder will not
+	change outside of this task.  If this task does not hold the mutex then
+	pxMutexHolder can never coincidentally equal the tasks handle, and as
+	this is the only condition we are interested in it does not matter if
+	pxMutexHolder is accessed simultaneously by another task.  Therefore no
+	mutual exclusion is required to test the pxMutexHolder variable. */
+	if (pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle()) {
+		traceGIVE_MUTEX_RECURSIVE(pxMutex);
+
+		/* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to
+		the task handle, therefore no underflow check is required.  Also,
+		uxRecursiveCallCount is only modified by the mutex holder, and as
+		there can only be one, no mutual exclusion is required to modify the
+		uxRecursiveCallCount member. */
+		(pxMutex->uxRecursiveCallCount)--;
+
+		/* Have we unwound the call count? */
+		if (pxMutex->uxRecursiveCallCount == 0) {
+			/* Return the mutex.  This will automatically unblock any other
+			task that might be waiting to access the mutex. */
+			xQueueGenericSend(pxMutex, NULL, queueMUTEX_GIVE_BLOCK_TIME, queueSEND_TO_BACK);
+		}
+
+		xReturn = pdPASS;
+	} else {
+		/* We cannot give the mutex because we are not the holder. */
+		xReturn = pdFAIL;
+
+		traceGIVE_MUTEX_RECURSIVE_FAILED(pxMutex);
+	}
+
+	return xReturn;
+}
+
+#endif /* configUSE_RECURSIVE_MUTEXES */
+/*-----------------------------------------------------------*/
+
+#if configUSE_RECURSIVE_MUTEXES == 1
+
+portBASE_TYPE xQueueTakeMutexRecursive(xQueueHandle pxMutex, portTickType xBlockTime)
+{
+	portBASE_TYPE xReturn;
+
+	/* Comments regarding mutual exclusion as per those within
+	xQueueGiveMutexRecursive(). */
+
+	traceTAKE_MUTEX_RECURSIVE(pxMutex);
+
+	if (pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle()) {
+		(pxMutex->uxRecursiveCallCount)++;
+		xReturn = pdPASS;
+	} else {
+		xReturn = xQueueGenericReceive(pxMutex, NULL, xBlockTime, pdFALSE);
+
+		/* pdPASS will only be returned if we successfully obtained the mutex,
+		we may have blocked to reach here. */
+		if (xReturn == pdPASS) {
+			(pxMutex->uxRecursiveCallCount)++;
+		}
+	}
+
+	return xReturn;
+}
+
+#endif /* configUSE_RECURSIVE_MUTEXES */
+/*-----------------------------------------------------------*/
+
+#if configUSE_COUNTING_SEMAPHORES == 1
+
+xQueueHandle xQueueCreateCountingSemaphore(unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount)
+{
+	xQueueHandle pxHandle;
+
+	pxHandle = xQueueCreate((unsigned portBASE_TYPE) uxCountValue, queueSEMAPHORE_QUEUE_ITEM_LENGTH);
+
+	if (pxHandle != NULL) {
+		pxHandle->uxMessagesWaiting = uxInitialCount;
+
+		traceCREATE_COUNTING_SEMAPHORE();
+	} else {
+		traceCREATE_COUNTING_SEMAPHORE_FAILED();
+	}
+
+	return pxHandle;
+}
+
+#endif /* configUSE_COUNTING_SEMAPHORES */
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xQueueGenericSend(xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition)
+{
+	signed portBASE_TYPE xEntryTimeSet = pdFALSE;
+	xTimeOutType xTimeOut;
+
+	/* This function relaxes the coding standard somewhat to allow return
+	statements within the function itself.  This is done in the interest
+	of execution time efficiency. */
+	for (;;) {
+		taskENTER_CRITICAL();
+		{
+			/* Is there room on the queue now?  To be running we must be
+			the highest priority task wanting to access the queue. */
+			if (pxQueue->uxMessagesWaiting < pxQueue->uxLength) {
+				traceQUEUE_SEND(pxQueue);
+				prvCopyDataToQueue(pxQueue, pvItemToQueue, xCopyPosition);
+
+				/* If there was a task waiting for data to arrive on the
+				queue then unblock it now. */
+				if (listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive)) == pdFALSE) {
+					if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) == pdTRUE) {
+						/* The unblocked task has a priority higher than
+						our own so yield immediately.  Yes it is ok to do
+						this from within the critical section - the kernel
+						takes care of that. */
+						portYIELD_WITHIN_API();
+					}
+				}
+
+				taskEXIT_CRITICAL();
+
+				/* Return to the original privilege level before exiting the
+				function. */
+				return pdPASS;
+			} else {
+				if (xTicksToWait == (portTickType) 0) {
+					/* The queue was full and no block time is specified (or
+					the block time has expired) so leave now. */
+					taskEXIT_CRITICAL();
+
+					/* Return to the original privilege level before exiting
+					the function. */
+					traceQUEUE_SEND_FAILED(pxQueue);
+					return errQUEUE_FULL;
+				} else if (xEntryTimeSet == pdFALSE) {
+					/* The queue was full and a block time was specified so
+					configure the timeout structure. */
+					vTaskSetTimeOutState(&xTimeOut);
+					xEntryTimeSet = pdTRUE;
+				}
+			}
+		}
+		taskEXIT_CRITICAL();
+
+		/* Interrupts and other tasks can send to and receive from the queue
+		now the critical section has been exited. */
+
+		vTaskSuspendAll();
+		prvLockQueue(pxQueue);
+
+		/* Update the timeout state to see if it has expired yet. */
+		if (xTaskCheckForTimeOut(&xTimeOut, &xTicksToWait) == pdFALSE) {
+			if (prvIsQueueFull(pxQueue)) {
+				traceBLOCKING_ON_QUEUE_SEND(pxQueue);
+				vTaskPlaceOnEventList(&(pxQueue->xTasksWaitingToSend), xTicksToWait);
+
+				/* Unlocking the queue means queue events can effect the
+				event list.  It is possible	that interrupts occurring now
+				remove this task from the event	list again - but as the
+				scheduler is suspended the task will go onto the pending
+				ready last instead of the actual ready list. */
+				prvUnlockQueue(pxQueue);
+
+				/* Resuming the scheduler will move tasks from the pending
+				ready list into the ready list - so it is feasible that this
+				task is already in a ready list before it yields - in which
+				case the yield will not cause a context switch unless there
+				is also a higher priority task in the pending ready list. */
+				if (!xTaskResumeAll()) {
+					portYIELD_WITHIN_API();
+				}
+			} else {
+				/* Try again. */
+				prvUnlockQueue(pxQueue);
+				(void) xTaskResumeAll();
+			}
+		} else {
+			/* The timeout has expired. */
+			prvUnlockQueue(pxQueue);
+			(void) xTaskResumeAll();
+
+			/* Return to the original privilege level before exiting the
+			function. */
+			traceQUEUE_SEND_FAILED(pxQueue);
+			return errQUEUE_FULL;
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+#if configUSE_ALTERNATIVE_API == 1
+
+signed portBASE_TYPE xQueueAltGenericSend(xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition)
+{
+	signed portBASE_TYPE xEntryTimeSet = pdFALSE;
+	xTimeOutType xTimeOut;
+
+	for (;;) {
+		taskENTER_CRITICAL();
+		{
+			/* Is there room on the queue now?  To be running we must be
+			the highest priority task wanting to access the queue. */
+			if (pxQueue->uxMessagesWaiting < pxQueue->uxLength) {
+				traceQUEUE_SEND(pxQueue);
+				prvCopyDataToQueue(pxQueue, pvItemToQueue, xCopyPosition);
+
+				/* If there was a task waiting for data to arrive on the
+				queue then unblock it now. */
+				if (listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive)) == pdFALSE) {
+					if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) == pdTRUE) {
+						/* The unblocked task has a priority higher than
+						our own so yield immediately. */
+						portYIELD_WITHIN_API();
+					}
+				}
+
+				taskEXIT_CRITICAL();
+				return pdPASS;
+			} else {
+				if (xTicksToWait == (portTickType) 0) {
+					taskEXIT_CRITICAL();
+					return errQUEUE_FULL;
+				} else if (xEntryTimeSet == pdFALSE) {
+					vTaskSetTimeOutState(&xTimeOut);
+					xEntryTimeSet = pdTRUE;
+				}
+			}
+		}
+		taskEXIT_CRITICAL();
+
+		taskENTER_CRITICAL();
+		{
+			if (xTaskCheckForTimeOut(&xTimeOut, &xTicksToWait) == pdFALSE) {
+				if (prvIsQueueFull(pxQueue)) {
+					traceBLOCKING_ON_QUEUE_SEND(pxQueue);
+					vTaskPlaceOnEventList(&(pxQueue->xTasksWaitingToSend), xTicksToWait);
+					portYIELD_WITHIN_API();
+				}
+			} else {
+				taskEXIT_CRITICAL();
+				traceQUEUE_SEND_FAILED(pxQueue);
+				return errQUEUE_FULL;
+			}
+		}
+		taskEXIT_CRITICAL();
+	}
+}
+
+#endif /* configUSE_ALTERNATIVE_API */
+/*-----------------------------------------------------------*/
+
+#if configUSE_ALTERNATIVE_API == 1
+
+signed portBASE_TYPE xQueueAltGenericReceive(xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking)
+{
+	signed portBASE_TYPE xEntryTimeSet = pdFALSE;
+	xTimeOutType xTimeOut;
+	signed char *pcOriginalReadPosition;
+
+	for (;;) {
+		taskENTER_CRITICAL();
+		{
+			if (pxQueue->uxMessagesWaiting > (unsigned portBASE_TYPE) 0) {
+				/* Remember our read position in case we are just peeking. */
+				pcOriginalReadPosition = pxQueue->pcReadFrom;
+
+				prvCopyDataFromQueue(pxQueue, pvBuffer);
+
+				if (xJustPeeking == pdFALSE) {
+					traceQUEUE_RECEIVE(pxQueue);
+
+					/* We are actually removing data. */
+					--(pxQueue->uxMessagesWaiting);
+
+#if ( configUSE_MUTEXES == 1 )
+					{
+						if (pxQueue->uxQueueType == queueQUEUE_IS_MUTEX) {
+							/* Record the information required to implement
+							priority inheritance should it become necessary. */
+							pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle();
+						}
+					}
+#endif
+
+					if (listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToSend)) == pdFALSE) {
+						if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToSend)) == pdTRUE) {
+							portYIELD_WITHIN_API();
+						}
+					}
+				} else {
+					traceQUEUE_PEEK(pxQueue);
+
+					/* We are not removing the data, so reset our read
+					pointer. */
+					pxQueue->pcReadFrom = pcOriginalReadPosition;
+
+					/* The data is being left in the queue, so see if there are
+					any other tasks waiting for the data. */
+					if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive))) {
+						/* Tasks that are removed from the event list will get added to
+						the pending ready list as the scheduler is still suspended. */
+						if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) != pdFALSE) {
+							/* The task waiting has a higher priority than this task. */
+							portYIELD_WITHIN_API();
+						}
+					}
+
+				}
+
+				taskEXIT_CRITICAL();
+				return pdPASS;
+			} else {
+				if (xTicksToWait == (portTickType) 0) {
+					taskEXIT_CRITICAL();
+					traceQUEUE_RECEIVE_FAILED(pxQueue);
+					return errQUEUE_EMPTY;
+				} else if (xEntryTimeSet == pdFALSE) {
+					vTaskSetTimeOutState(&xTimeOut);
+					xEntryTimeSet = pdTRUE;
+				}
+			}
+		}
+		taskEXIT_CRITICAL();
+
+		taskENTER_CRITICAL();
+		{
+			if (xTaskCheckForTimeOut(&xTimeOut, &xTicksToWait) == pdFALSE) {
+				if (prvIsQueueEmpty(pxQueue)) {
+					traceBLOCKING_ON_QUEUE_RECEIVE(pxQueue);
+
+#if ( configUSE_MUTEXES == 1 )
+					{
+						if (pxQueue->uxQueueType == queueQUEUE_IS_MUTEX) {
+							portENTER_CRITICAL();
+							vTaskPriorityInherit((void *) pxQueue->pxMutexHolder);
+							portEXIT_CRITICAL();
+						}
+					}
+#endif
+
+					vTaskPlaceOnEventList(&(pxQueue->xTasksWaitingToReceive), xTicksToWait);
+					portYIELD_WITHIN_API();
+				}
+			} else {
+				taskEXIT_CRITICAL();
+				traceQUEUE_RECEIVE_FAILED(pxQueue);
+				return errQUEUE_EMPTY;
+			}
+		}
+		taskEXIT_CRITICAL();
+	}
+}
+
+
+#endif /* configUSE_ALTERNATIVE_API */
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xQueueGenericSendFromISR(xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition)
+{
+	signed portBASE_TYPE xReturn;
+	unsigned portBASE_TYPE uxSavedInterruptStatus;
+
+	/* Similar to xQueueGenericSend, except we don't block if there is no room
+	in the queue.  Also we don't directly wake a task that was blocked on a
+	queue read, instead we return a flag to say whether a context switch is
+	required or not (i.e. has a task with a higher priority than us been woken
+	by this	post). */
+	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
+	{
+		if (pxQueue->uxMessagesWaiting < pxQueue->uxLength) {
+			traceQUEUE_SEND_FROM_ISR(pxQueue);
+
+			prvCopyDataToQueue(pxQueue, pvItemToQueue, xCopyPosition);
+
+			/* If the queue is locked we do not alter the event list.  This will
+			be done when the queue is unlocked later. */
+			if (pxQueue->xTxLock == queueUNLOCKED) {
+				if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive))) {
+					if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) != pdFALSE) {
+						/* The task waiting has a higher priority so record that a
+						context	switch is required. */
+						*pxHigherPriorityTaskWoken = pdTRUE;
+					}
+				}
+			} else {
+				/* Increment the lock count so the task that unlocks the queue
+				knows that data was posted while it was locked. */
+				++(pxQueue->xTxLock);
+			}
+
+			xReturn = pdPASS;
+		} else {
+			traceQUEUE_SEND_FROM_ISR_FAILED(pxQueue);
+			xReturn = errQUEUE_FULL;
+		}
+	}
+	portCLEAR_INTERRUPT_MASK_FROM_ISR(uxSavedInterruptStatus);
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xQueueGenericReceive(xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking)
+{
+	signed portBASE_TYPE xEntryTimeSet = pdFALSE;
+	xTimeOutType xTimeOut;
+	signed char *pcOriginalReadPosition;
+
+	/* This function relaxes the coding standard somewhat to allow return
+	statements within the function itself.  This is done in the interest
+	of execution time efficiency. */
+
+	for (;;) {
+		taskENTER_CRITICAL();
+		{
+			/* Is there data in the queue now?  To be running we must be
+			the highest priority task wanting to access the queue. */
+			if (pxQueue->uxMessagesWaiting > (unsigned portBASE_TYPE) 0) {
+				/* Remember our read position in case we are just peeking. */
+				pcOriginalReadPosition = pxQueue->pcReadFrom;
+
+				prvCopyDataFromQueue(pxQueue, pvBuffer);
+
+				if (xJustPeeking == pdFALSE) {
+					traceQUEUE_RECEIVE(pxQueue);
+
+					/* We are actually removing data. */
+					--(pxQueue->uxMessagesWaiting);
+
+#if ( configUSE_MUTEXES == 1 )
+					{
+						if (pxQueue->uxQueueType == queueQUEUE_IS_MUTEX) {
+							/* Record the information required to implement
+							priority inheritance should it become necessary. */
+							pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle();
+						}
+					}
+#endif
+
+					if (listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToSend)) == pdFALSE) {
+						if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToSend)) == pdTRUE) {
+							portYIELD_WITHIN_API();
+						}
+					}
+				} else {
+					traceQUEUE_PEEK(pxQueue);
+
+					/* We are not removing the data, so reset our read
+					pointer. */
+					pxQueue->pcReadFrom = pcOriginalReadPosition;
+
+					/* The data is being left in the queue, so see if there are
+					any other tasks waiting for the data. */
+					if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive))) {
+						/* Tasks that are removed from the event list will get added to
+						the pending ready list as the scheduler is still suspended. */
+						if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) != pdFALSE) {
+							/* The task waiting has a higher priority than this task. */
+							portYIELD_WITHIN_API();
+						}
+					}
+
+				}
+
+				taskEXIT_CRITICAL();
+				return pdPASS;
+			} else {
+				if (xTicksToWait == (portTickType) 0) {
+					/* The queue was empty and no block time is specified (or
+					the block time has expired) so leave now. */
+					taskEXIT_CRITICAL();
+					traceQUEUE_RECEIVE_FAILED(pxQueue);
+					return errQUEUE_EMPTY;
+				} else if (xEntryTimeSet == pdFALSE) {
+					/* The queue was empty and a block time was specified so
+					configure the timeout structure. */
+					vTaskSetTimeOutState(&xTimeOut);
+					xEntryTimeSet = pdTRUE;
+				}
+			}
+		}
+		taskEXIT_CRITICAL();
+
+		/* Interrupts and other tasks can send to and receive from the queue
+		now the critical section has been exited. */
+
+		vTaskSuspendAll();
+		prvLockQueue(pxQueue);
+
+		/* Update the timeout state to see if it has expired yet. */
+		if (xTaskCheckForTimeOut(&xTimeOut, &xTicksToWait) == pdFALSE) {
+			if (prvIsQueueEmpty(pxQueue)) {
+				traceBLOCKING_ON_QUEUE_RECEIVE(pxQueue);
+
+#if ( configUSE_MUTEXES == 1 )
+				{
+					if (pxQueue->uxQueueType == queueQUEUE_IS_MUTEX) {
+						portENTER_CRITICAL();
+						{
+							vTaskPriorityInherit((void *) pxQueue->pxMutexHolder);
+						}
+						portEXIT_CRITICAL();
+					}
+				}
+#endif
+
+				vTaskPlaceOnEventList(&(pxQueue->xTasksWaitingToReceive), xTicksToWait);
+				prvUnlockQueue(pxQueue);
+				if (!xTaskResumeAll()) {
+					portYIELD_WITHIN_API();
+				}
+			} else {
+				/* Try again. */
+				prvUnlockQueue(pxQueue);
+				(void) xTaskResumeAll();
+			}
+		} else {
+			prvUnlockQueue(pxQueue);
+			(void) xTaskResumeAll();
+			traceQUEUE_RECEIVE_FAILED(pxQueue);
+			return errQUEUE_EMPTY;
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xQueueReceiveFromISR(xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken)
+{
+	signed portBASE_TYPE xReturn;
+	unsigned portBASE_TYPE uxSavedInterruptStatus;
+
+	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
+	{
+		/* We cannot block from an ISR, so check there is data available. */
+		if (pxQueue->uxMessagesWaiting > (unsigned portBASE_TYPE) 0) {
+			traceQUEUE_RECEIVE_FROM_ISR(pxQueue);
+
+			prvCopyDataFromQueue(pxQueue, pvBuffer);
+			--(pxQueue->uxMessagesWaiting);
+
+			/* If the queue is locked we will not modify the event list.  Instead
+			we update the lock count so the task that unlocks the queue will know
+			that an ISR has removed data while the queue was locked. */
+			if (pxQueue->xRxLock == queueUNLOCKED) {
+				if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToSend))) {
+					if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToSend)) != pdFALSE) {
+						/* The task waiting has a higher priority than us so
+						force a context switch. */
+						*pxTaskWoken = pdTRUE;
+					}
+				}
+			} else {
+				/* Increment the lock count so the task that unlocks the queue
+				knows that data was removed while it was locked. */
+				++(pxQueue->xRxLock);
+			}
+
+			xReturn = pdPASS;
+		} else {
+			xReturn = pdFAIL;
+			traceQUEUE_RECEIVE_FROM_ISR_FAILED(pxQueue);
+		}
+	}
+	portCLEAR_INTERRUPT_MASK_FROM_ISR(uxSavedInterruptStatus);
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+unsigned portBASE_TYPE uxQueueMessagesWaiting(const xQueueHandle pxQueue)
+{
+	unsigned portBASE_TYPE uxReturn;
+
+	taskENTER_CRITICAL();
+	uxReturn = pxQueue->uxMessagesWaiting;
+	taskEXIT_CRITICAL();
+
+	return uxReturn;
+}
+/*-----------------------------------------------------------*/
+
+unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR(const xQueueHandle pxQueue)
+{
+	unsigned portBASE_TYPE uxReturn;
+
+	uxReturn = pxQueue->uxMessagesWaiting;
+
+	return uxReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vQueueDelete(xQueueHandle pxQueue)
+{
+	traceQUEUE_DELETE(pxQueue);
+	vQueueUnregisterQueue(pxQueue);
+	vPortFree(pxQueue->pcHead);
+	vPortFree(pxQueue);
+}
+/*-----------------------------------------------------------*/
+
+static void prvCopyDataToQueue(xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition)
+{
+	if (pxQueue->uxItemSize == (unsigned portBASE_TYPE) 0) {
+#if ( configUSE_MUTEXES == 1 )
+		{
+			if (pxQueue->uxQueueType == queueQUEUE_IS_MUTEX) {
+				/* The mutex is no longer being held. */
+				vTaskPriorityDisinherit((void *) pxQueue->pxMutexHolder);
+				pxQueue->pxMutexHolder = NULL;
+			}
+		}
+#endif
+	} else if (xPosition == queueSEND_TO_BACK) {
+		memcpy((void *) pxQueue->pcWriteTo, pvItemToQueue, (unsigned) pxQueue->uxItemSize);
+		pxQueue->pcWriteTo += pxQueue->uxItemSize;
+		if (pxQueue->pcWriteTo >= pxQueue->pcTail) {
+			pxQueue->pcWriteTo = pxQueue->pcHead;
+		}
+	} else {
+		memcpy((void *) pxQueue->pcReadFrom, pvItemToQueue, (unsigned) pxQueue->uxItemSize);
+		pxQueue->pcReadFrom -= pxQueue->uxItemSize;
+		if (pxQueue->pcReadFrom < pxQueue->pcHead) {
+			pxQueue->pcReadFrom = (pxQueue->pcTail - pxQueue->uxItemSize);
+		}
+	}
+
+	++(pxQueue->uxMessagesWaiting);
+}
+/*-----------------------------------------------------------*/
+
+static void prvCopyDataFromQueue(xQUEUE * const pxQueue, const void *pvBuffer)
+{
+	if (pxQueue->uxQueueType != queueQUEUE_IS_MUTEX) {
+		pxQueue->pcReadFrom += pxQueue->uxItemSize;
+		if (pxQueue->pcReadFrom >= pxQueue->pcTail) {
+			pxQueue->pcReadFrom = pxQueue->pcHead;
+		}
+		memcpy((void *) pvBuffer, (void *) pxQueue->pcReadFrom, (unsigned) pxQueue->uxItemSize);
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvUnlockQueue(xQueueHandle pxQueue)
+{
+	/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */
+
+	/* The lock counts contains the number of extra data items placed or
+	removed from the queue while the queue was locked.  When a queue is
+	locked items can be added or removed, but the event lists cannot be
+	updated. */
+	taskENTER_CRITICAL();
+	{
+		/* See if data was added to the queue while it was locked. */
+		while (pxQueue->xTxLock > queueLOCKED_UNMODIFIED) {
+			/* Data was posted while the queue was locked.  Are any tasks
+			blocked waiting for data to become available? */
+			if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive))) {
+				/* Tasks that are removed from the event list will get added to
+				the pending ready list as the scheduler is still suspended. */
+				if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) != pdFALSE) {
+					/* The task waiting has a higher priority so record that a
+					context	switch is required. */
+					vTaskMissedYield();
+				}
+
+				--(pxQueue->xTxLock);
+			} else {
+				break;
+			}
+		}
+
+		pxQueue->xTxLock = queueUNLOCKED;
+	}
+	taskEXIT_CRITICAL();
+
+	/* Do the same for the Rx lock. */
+	taskENTER_CRITICAL();
+	{
+		while (pxQueue->xRxLock > queueLOCKED_UNMODIFIED) {
+			if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToSend))) {
+				if (xTaskRemoveFromEventList(&(pxQueue->xTasksWaitingToSend)) != pdFALSE) {
+					vTaskMissedYield();
+				}
+
+				--(pxQueue->xRxLock);
+			} else {
+				break;
+			}
+		}
+
+		pxQueue->xRxLock = queueUNLOCKED;
+	}
+	taskEXIT_CRITICAL();
+}
+/*-----------------------------------------------------------*/
+
+static signed portBASE_TYPE prvIsQueueEmpty(const xQueueHandle pxQueue)
+{
+	signed portBASE_TYPE xReturn;
+
+	taskENTER_CRITICAL();
+	xReturn = (pxQueue->uxMessagesWaiting == (unsigned portBASE_TYPE) 0);
+	taskEXIT_CRITICAL();
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xQueueIsQueueEmptyFromISR(const xQueueHandle pxQueue)
+{
+	signed portBASE_TYPE xReturn;
+
+	xReturn = (pxQueue->uxMessagesWaiting == (unsigned portBASE_TYPE) 0);
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+static signed portBASE_TYPE prvIsQueueFull(const xQueueHandle pxQueue)
+{
+	signed portBASE_TYPE xReturn;
+
+	taskENTER_CRITICAL();
+	xReturn = (pxQueue->uxMessagesWaiting == pxQueue->uxLength);
+	taskEXIT_CRITICAL();
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xQueueIsQueueFullFromISR(const xQueueHandle pxQueue)
+{
+	signed portBASE_TYPE xReturn;
+
+	xReturn = (pxQueue->uxMessagesWaiting == pxQueue->uxLength);
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+#if configUSE_CO_ROUTINES == 1
+signed portBASE_TYPE xQueueCRSend(xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait)
+{
+	signed portBASE_TYPE xReturn;
+
+	/* If the queue is already full we may have to block.  A critical section
+	is required to prevent an interrupt removing something from the queue
+	between the check to see if the queue is full and blocking on the queue. */
+	portDISABLE_INTERRUPTS();
+	{
+		if (prvIsQueueFull(pxQueue)) {
+			/* The queue is full - do we want to block or just leave without
+			posting? */
+			if (xTicksToWait > (portTickType) 0) {
+				/* As this is called from a coroutine we cannot block directly, but
+				return indicating that we need to block. */
+				vCoRoutineAddToDelayedList(xTicksToWait, &(pxQueue->xTasksWaitingToSend));
+				portENABLE_INTERRUPTS();
+				return errQUEUE_BLOCKED;
+			} else {
+				portENABLE_INTERRUPTS();
+				return errQUEUE_FULL;
+			}
+		}
+	}
+	portENABLE_INTERRUPTS();
+
+	portNOP();
+
+	portDISABLE_INTERRUPTS();
+	{
+		if (pxQueue->uxMessagesWaiting < pxQueue->uxLength) {
+			/* There is room in the queue, copy the data into the queue. */
+			prvCopyDataToQueue(pxQueue, pvItemToQueue, queueSEND_TO_BACK);
+			xReturn = pdPASS;
+
+			/* Were any co-routines waiting for data to become available? */
+			if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive))) {
+				/* In this instance the co-routine could be placed directly
+				into the ready list as we are within a critical section.
+				Instead the same pending ready list mechanism is used as if
+				the event were caused from within an interrupt. */
+				if (xCoRoutineRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) != pdFALSE) {
+					/* The co-routine waiting has a higher priority so record
+					that a yield might be appropriate. */
+					xReturn = errQUEUE_YIELD;
+				}
+			}
+		} else {
+			xReturn = errQUEUE_FULL;
+		}
+	}
+	portENABLE_INTERRUPTS();
+
+	return xReturn;
+}
+#endif
+/*-----------------------------------------------------------*/
+
+#if configUSE_CO_ROUTINES == 1
+signed portBASE_TYPE xQueueCRReceive(xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait)
+{
+	signed portBASE_TYPE xReturn;
+
+	/* If the queue is already empty we may have to block.  A critical section
+	is required to prevent an interrupt adding something to the queue
+	between the check to see if the queue is empty and blocking on the queue. */
+	portDISABLE_INTERRUPTS();
+	{
+		if (pxQueue->uxMessagesWaiting == (unsigned portBASE_TYPE) 0) {
+			/* There are no messages in the queue, do we want to block or just
+			leave with nothing? */
+			if (xTicksToWait > (portTickType) 0) {
+				/* As this is a co-routine we cannot block directly, but return
+				indicating that we need to block. */
+				vCoRoutineAddToDelayedList(xTicksToWait, &(pxQueue->xTasksWaitingToReceive));
+				portENABLE_INTERRUPTS();
+				return errQUEUE_BLOCKED;
+			} else {
+				portENABLE_INTERRUPTS();
+				return errQUEUE_FULL;
+			}
+		}
+	}
+	portENABLE_INTERRUPTS();
+
+	portNOP();
+
+	portDISABLE_INTERRUPTS();
+	{
+		if (pxQueue->uxMessagesWaiting > (unsigned portBASE_TYPE) 0) {
+			/* Data is available from the queue. */
+			pxQueue->pcReadFrom += pxQueue->uxItemSize;
+			if (pxQueue->pcReadFrom >= pxQueue->pcTail) {
+				pxQueue->pcReadFrom = pxQueue->pcHead;
+			}
+			--(pxQueue->uxMessagesWaiting);
+			memcpy((void *) pvBuffer, (void *) pxQueue->pcReadFrom, (unsigned) pxQueue->uxItemSize);
+
+			xReturn = pdPASS;
+
+			/* Were any co-routines waiting for space to become available? */
+			if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToSend))) {
+				/* In this instance the co-routine could be placed directly
+				into the ready list as we are within a critical section.
+				Instead the same pending ready list mechanism is used as if
+				the event were caused from within an interrupt. */
+				if (xCoRoutineRemoveFromEventList(&(pxQueue->xTasksWaitingToSend)) != pdFALSE) {
+					xReturn = errQUEUE_YIELD;
+				}
+			}
+		} else {
+			xReturn = pdFAIL;
+		}
+	}
+	portENABLE_INTERRUPTS();
+
+	return xReturn;
+}
+#endif
+/*-----------------------------------------------------------*/
+
+
+
+#if configUSE_CO_ROUTINES == 1
+signed portBASE_TYPE xQueueCRSendFromISR(xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken)
+{
+	/* Cannot block within an ISR so if there is no space on the queue then
+	exit without doing anything. */
+	if (pxQueue->uxMessagesWaiting < pxQueue->uxLength) {
+		prvCopyDataToQueue(pxQueue, pvItemToQueue, queueSEND_TO_BACK);
+
+		/* We only want to wake one co-routine per ISR, so check that a
+		co-routine has not already been woken. */
+		if (!xCoRoutinePreviouslyWoken) {
+			if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToReceive))) {
+				if (xCoRoutineRemoveFromEventList(&(pxQueue->xTasksWaitingToReceive)) != pdFALSE) {
+					return pdTRUE;
+				}
+			}
+		}
+	}
+
+	return xCoRoutinePreviouslyWoken;
+}
+#endif
+/*-----------------------------------------------------------*/
+
+#if configUSE_CO_ROUTINES == 1
+signed portBASE_TYPE xQueueCRReceiveFromISR(xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken)
+{
+	signed portBASE_TYPE xReturn;
+
+	/* We cannot block from an ISR, so check there is data available. If
+	not then just leave without doing anything. */
+	if (pxQueue->uxMessagesWaiting > (unsigned portBASE_TYPE) 0) {
+		/* Copy the data from the queue. */
+		pxQueue->pcReadFrom += pxQueue->uxItemSize;
+		if (pxQueue->pcReadFrom >= pxQueue->pcTail) {
+			pxQueue->pcReadFrom = pxQueue->pcHead;
+		}
+		--(pxQueue->uxMessagesWaiting);
+		memcpy((void *) pvBuffer, (void *) pxQueue->pcReadFrom, (unsigned) pxQueue->uxItemSize);
+
+		if (!(*pxCoRoutineWoken)) {
+			if (!listLIST_IS_EMPTY(&(pxQueue->xTasksWaitingToSend))) {
+				if (xCoRoutineRemoveFromEventList(&(pxQueue->xTasksWaitingToSend)) != pdFALSE) {
+					*pxCoRoutineWoken = pdTRUE;
+				}
+			}
+		}
+
+		xReturn = pdPASS;
+	} else {
+		xReturn = pdFAIL;
+	}
+
+	return xReturn;
+}
+#endif
+/*-----------------------------------------------------------*/
+
+#if configQUEUE_REGISTRY_SIZE > 0
+
+void vQueueAddToRegistry(xQueueHandle xQueue, signed char *pcQueueName)
+{
+	unsigned portBASE_TYPE ux;
+
+	/* See if there is an empty space in the registry.  A NULL name denotes
+	a free slot. */
+	for (ux = 0; ux < configQUEUE_REGISTRY_SIZE; ux++) {
+		if (xQueueRegistry[ ux ].pcQueueName == NULL) {
+			/* Store the information on this queue. */
+			xQueueRegistry[ ux ].pcQueueName = pcQueueName;
+			xQueueRegistry[ ux ].xHandle = xQueue;
+			break;
+		}
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if configQUEUE_REGISTRY_SIZE > 0
+
+static void vQueueUnregisterQueue(xQueueHandle xQueue)
+{
+	unsigned portBASE_TYPE ux;
+
+	/* See if the handle of the queue being unregistered in actually in the
+	registry. */
+	for (ux = 0; ux < configQUEUE_REGISTRY_SIZE; ux++) {
+		if (xQueueRegistry[ ux ].xHandle == xQueue) {
+			/* Set the name to NULL to show that this slot if free again. */
+			xQueueRegistry[ ux ].pcQueueName = NULL;
+			break;
+		}
+	}
+
+}
+
+#endif
+
diff --git a/gyro_board/src/usb/FreeRTOS/tasks.c b/gyro_board/src/usb/FreeRTOS/tasks.c
new file mode 100644
index 0000000..22587a4
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOS/tasks.c
@@ -0,0 +1,2150 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
+all the API functions to use the MPU wrappers.  That should only be done when
+task.h is included from an application file. */
+#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "StackMacros.h"
+
+#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
+
+/*
+ * Macro to define the amount of stack available to the idle task.
+ */
+#define tskIDLE_STACK_SIZE	configMINIMAL_STACK_SIZE
+
+/*
+ * Task control block.  A task control block (TCB) is allocated to each task,
+ * and stores the context of the task.
+ */
+typedef struct tskTaskControlBlock {
+	volatile portSTACK_TYPE	*pxTopOfStack;		/*< Points to the location of the last item placed on the tasks stack.  THIS MUST BE THE FIRST MEMBER OF THE STRUCT. */
+
+#if ( portUSING_MPU_WRAPPERS == 1 )
+	xMPU_SETTINGS xMPUSettings;				/*< The MPU settings are defined as part of the port layer.  THIS MUST BE THE SECOND MEMBER OF THE STRUCT. */
+#endif
+
+	xListItem				xGenericListItem;	/*< List item used to place the TCB in ready and blocked queues. */
+	xListItem				xEventListItem;		/*< List item used to place the TCB in event lists. */
+	unsigned portBASE_TYPE	uxPriority;			/*< The priority of the task where 0 is the lowest priority. */
+	portSTACK_TYPE			*pxStack;			/*< Points to the start of the stack. */
+	signed char				pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created.  Facilitates debugging only. */
+
+#if ( portSTACK_GROWTH > 0 )
+	portSTACK_TYPE *pxEndOfStack;			/*< Used for stack overflow checking on architectures where the stack grows up from low memory. */
+#endif
+
+#if ( portCRITICAL_NESTING_IN_TCB == 1 )
+	unsigned portBASE_TYPE uxCriticalNesting;
+#endif
+
+#if ( configUSE_TRACE_FACILITY == 1 )
+	unsigned portBASE_TYPE	uxTCBNumber;	/*< This is used for tracing the scheduler and making debugging easier only. */
+#endif
+
+#if ( configUSE_MUTEXES == 1 )
+	unsigned portBASE_TYPE uxBasePriority;	/*< The priority last assigned to the task - used by the priority inheritance mechanism. */
+#endif
+
+#if ( configUSE_APPLICATION_TASK_TAG == 1 )
+	pdTASK_HOOK_CODE pxTaskTag;
+#endif
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+	unsigned long ulRunTimeCounter;		/*< Used for calculating how much CPU time each task is utilising. */
+#endif
+
+} tskTCB;
+
+
+/*
+ * Some kernel aware debuggers require data to be viewed to be global, rather
+ * than file scope.
+ */
+#ifdef portREMOVE_STATIC_QUALIFIER
+#define static
+#endif
+
+/*lint -e956 */
+PRIVILEGED_DATA tskTCB * volatile pxCurrentTCB = NULL;
+
+/* Lists for ready and blocked tasks. --------------------*/
+
+PRIVILEGED_DATA static xList pxReadyTasksLists[ configMAX_PRIORITIES ];	/*< Prioritised ready tasks. */
+PRIVILEGED_DATA static xList xDelayedTaskList1;							/*< Delayed tasks. */
+PRIVILEGED_DATA static xList xDelayedTaskList2;							/*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */
+PRIVILEGED_DATA static xList * volatile pxDelayedTaskList ;				/*< Points to the delayed task list currently being used. */
+PRIVILEGED_DATA static xList * volatile pxOverflowDelayedTaskList;		/*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */
+PRIVILEGED_DATA static xList xPendingReadyList;							/*< Tasks that have been readied while the scheduler was suspended.  They will be moved to the ready queue when the scheduler is resumed. */
+
+#if ( INCLUDE_vTaskDelete == 1 )
+
+PRIVILEGED_DATA static volatile xList xTasksWaitingTermination;		/*< Tasks that have been deleted - but the their memory not yet freed. */
+PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTasksDeleted = (unsigned portBASE_TYPE) 0;
+
+#endif
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+
+PRIVILEGED_DATA static xList xSuspendedTaskList;					/*< Tasks that are currently suspended. */
+
+#endif
+
+/* File private variables. --------------------------------*/
+PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxCurrentNumberOfTasks 	= (unsigned portBASE_TYPE) 0;
+PRIVILEGED_DATA static volatile portTickType xTickCount 						= (portTickType) 0;
+PRIVILEGED_DATA static unsigned portBASE_TYPE uxTopUsedPriority	 				= tskIDLE_PRIORITY;
+PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTopReadyPriority 		= tskIDLE_PRIORITY;
+PRIVILEGED_DATA static volatile signed portBASE_TYPE xSchedulerRunning 			= pdFALSE;
+PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxSchedulerSuspended	 	= (unsigned portBASE_TYPE) pdFALSE;
+PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxMissedTicks 			= (unsigned portBASE_TYPE) 0;
+PRIVILEGED_DATA static volatile portBASE_TYPE xMissedYield 						= (portBASE_TYPE) pdFALSE;
+PRIVILEGED_DATA static volatile portBASE_TYPE xNumOfOverflows 					= (portBASE_TYPE) 0;
+PRIVILEGED_DATA static unsigned portBASE_TYPE uxTaskNumber 						= (unsigned portBASE_TYPE) 0;
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+
+PRIVILEGED_DATA static char pcStatsString[ 50 ] ;
+PRIVILEGED_DATA static unsigned long ulTaskSwitchedInTime = 0UL;	/*< Holds the value of a timer/counter the last time a task was switched in. */
+static void prvGenerateRunTimeStatsForTasksInList(const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTime) PRIVILEGED_FUNCTION;
+
+#endif
+
+/* Debugging and trace facilities private variables and macros. ------------*/
+
+/*
+ * The value used to fill the stack of a task when the task is created.  This
+ * is used purely for checking the high water mark for tasks.
+ */
+#define tskSTACK_FILL_BYTE	( 0xa5 )
+
+/*
+ * Macros used by vListTask to indicate which state a task is in.
+ */
+#define tskBLOCKED_CHAR		( ( signed char ) 'B' )
+#define tskREADY_CHAR		( ( signed char ) 'R' )
+#define tskDELETED_CHAR		( ( signed char ) 'D' )
+#define tskSUSPENDED_CHAR	( ( signed char ) 'S' )
+
+/*
+ * Macros and private variables used by the trace facility.
+ */
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+#define tskSIZE_OF_EACH_TRACE_LINE			( ( unsigned long ) ( sizeof( unsigned long ) + sizeof( unsigned long ) ) )
+PRIVILEGED_DATA static volatile signed char * volatile pcTraceBuffer;
+PRIVILEGED_DATA static signed char *pcTraceBufferStart;
+PRIVILEGED_DATA static signed char *pcTraceBufferEnd;
+PRIVILEGED_DATA static signed portBASE_TYPE xTracing = pdFALSE;
+static unsigned portBASE_TYPE uxPreviousTask = 255;
+PRIVILEGED_DATA static char pcStatusString[ 50 ];
+
+#endif
+
+/*-----------------------------------------------------------*/
+
+/*
+ * Macro that writes a trace of scheduler activity to a buffer.  This trace
+ * shows which task is running when and is very useful as a debugging tool.
+ * As this macro is called each context switch it is a good idea to undefine
+ * it if not using the facility.
+ */
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+#define vWriteTraceToBuffer()																	\
+	{																								\
+		if( xTracing )																				\
+		{																							\
+			if( uxPreviousTask != pxCurrentTCB->uxTCBNumber )										\
+			{																						\
+				if( ( pcTraceBuffer + tskSIZE_OF_EACH_TRACE_LINE ) < pcTraceBufferEnd )				\
+				{																					\
+					uxPreviousTask = pxCurrentTCB->uxTCBNumber;										\
+					*( unsigned long * ) pcTraceBuffer = ( unsigned long ) xTickCount;		\
+					pcTraceBuffer += sizeof( unsigned long );									\
+					*( unsigned long * ) pcTraceBuffer = ( unsigned long ) uxPreviousTask;	\
+					pcTraceBuffer += sizeof( unsigned long );									\
+				}																					\
+				else																				\
+				{																					\
+					xTracing = pdFALSE;																\
+				}																					\
+			}																						\
+		}																							\
+	}
+
+#else
+
+#define vWriteTraceToBuffer()
+
+#endif
+/*-----------------------------------------------------------*/
+
+/*
+ * Place the task represented by pxTCB into the appropriate ready queue for
+ * the task.  It is inserted at the end of the list.  One quirk of this is
+ * that if the task being inserted is at the same priority as the currently
+ * executing task, then it will only be rescheduled after the currently
+ * executing task has been rescheduled.
+ */
+#define prvAddTaskToReadyQueue( pxTCB )																			\
+{																												\
+	if( pxTCB->uxPriority > uxTopReadyPriority )																\
+	{																											\
+		uxTopReadyPriority = pxTCB->uxPriority;																	\
+	}																											\
+	vListInsertEnd( ( xList * ) &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) );	\
+}
+/*-----------------------------------------------------------*/
+
+/*
+ * Macro that looks at the list of tasks that are currently delayed to see if
+ * any require waking.
+ *
+ * Tasks are stored in the queue in the order of their wake time - meaning
+ * once one tasks has been found whose timer has not expired we need not look
+ * any further down the list.
+ */
+#define prvCheckDelayedTasks()																						\
+{																													\
+register tskTCB *pxTCB;																								\
+																													\
+	while( ( pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ) ) != NULL )						\
+	{																												\
+		if( xTickCount < listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ) )									\
+		{																											\
+			break;																									\
+		}																											\
+		vListRemove( &( pxTCB->xGenericListItem ) );																\
+		/* Is the task waiting on an event also? */																	\
+		if( pxTCB->xEventListItem.pvContainer )																		\
+		{																											\
+			vListRemove( &( pxTCB->xEventListItem ) );																\
+		}																											\
+		prvAddTaskToReadyQueue( pxTCB );																			\
+	}																												\
+}
+/*-----------------------------------------------------------*/
+
+/*
+ * Several functions take an xTaskHandle parameter that can optionally be NULL,
+ * where NULL is used to indicate that the handle of the currently executing
+ * task should be used in place of the parameter.  This macro simply checks to
+ * see if the parameter is NULL and returns a pointer to the appropriate TCB.
+ */
+#define prvGetTCBFromHandle( pxHandle ) ( ( pxHandle == NULL ) ? ( tskTCB * ) pxCurrentTCB : ( tskTCB * ) pxHandle )
+
+
+/* File private functions. --------------------------------*/
+
+/*
+ * Utility to ready a TCB for a given task.  Mainly just copies the parameters
+ * into the TCB structure.
+ */
+static void prvInitialiseTCBVariables(tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth) PRIVILEGED_FUNCTION;
+
+/*
+ * Utility to ready all the lists used by the scheduler.  This is called
+ * automatically upon the creation of the first task.
+ */
+static void prvInitialiseTaskLists(void) PRIVILEGED_FUNCTION;
+
+/*
+ * The idle task, which as all tasks is implemented as a never ending loop.
+ * The idle task is automatically created and added to the ready lists upon
+ * creation of the first user task.
+ *
+ * The portTASK_FUNCTION_PROTO() macro is used to allow port/compiler specific
+ * language extensions.  The equivalent prototype for this function is:
+ *
+ * void prvIdleTask( void *pvParameters );
+ *
+ */
+static portTASK_FUNCTION_PROTO(prvIdleTask, pvParameters);
+
+/*
+ * Utility to free all memory allocated by the scheduler to hold a TCB,
+ * including the stack pointed to by the TCB.
+ *
+ * This does not free memory allocated by the task itself (i.e. memory
+ * allocated by calls to pvPortMalloc from within the tasks application code).
+ */
+#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) )
+
+static void prvDeleteTCB(tskTCB *pxTCB) PRIVILEGED_FUNCTION;
+
+#endif
+
+/*
+ * Used only by the idle task.  This checks to see if anything has been placed
+ * in the list of tasks waiting to be deleted.  If so the task is cleaned up
+ * and its TCB deleted.
+ */
+static void prvCheckTasksWaitingTermination(void) PRIVILEGED_FUNCTION;
+
+/*
+ * Allocates memory from the heap for a TCB and associated stack.  Checks the
+ * allocation was successful.
+ */
+static tskTCB *prvAllocateTCBAndStack(unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer) PRIVILEGED_FUNCTION;
+
+/*
+ * Called from vTaskList.  vListTasks details all the tasks currently under
+ * control of the scheduler.  The tasks may be in one of a number of lists.
+ * prvListTaskWithinSingleList accepts a list and details the tasks from
+ * within just that list.
+ *
+ * THIS FUNCTION IS INTENDED FOR DEBUGGING ONLY, AND SHOULD NOT BE CALLED FROM
+ * NORMAL APPLICATION CODE.
+ */
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+static void prvListTaskWithinSingleList(const signed char *pcWriteBuffer, xList *pxList, signed char cStatus) PRIVILEGED_FUNCTION;
+
+#endif
+
+/*
+ * When a task is created, the stack of the task is filled with a known value.
+ * This function determines the 'high water mark' of the task stack by
+ * determining how much of the stack remains at the original preset value.
+ */
+#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
+
+static unsigned short usTaskCheckFreeStackSpace(const unsigned char * pucStackByte) PRIVILEGED_FUNCTION;
+
+#endif
+
+
+/*lint +e956 */
+
+
+
+/*-----------------------------------------------------------
+ * TASK CREATION API documented in task.h
+ *----------------------------------------------------------*/
+
+signed portBASE_TYPE xTaskGenericCreate(pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions)
+{
+	signed portBASE_TYPE xReturn;
+	tskTCB * pxNewTCB;
+
+	/* Allocate the memory required by the TCB and stack for the new task,
+	checking that the allocation was successful. */
+	pxNewTCB = prvAllocateTCBAndStack(usStackDepth, puxStackBuffer);
+
+	if (pxNewTCB != NULL) {
+		portSTACK_TYPE *pxTopOfStack;
+
+#if( portUSING_MPU_WRAPPERS == 1 )
+		/* Should the task be created in privileged mode? */
+		portBASE_TYPE xRunPrivileged;
+		if ((uxPriority & portPRIVILEGE_BIT) != 0x00) {
+			xRunPrivileged = pdTRUE;
+		} else {
+			xRunPrivileged = pdFALSE;
+		}
+		uxPriority &= ~portPRIVILEGE_BIT;
+#endif /* portUSING_MPU_WRAPPERS == 1 */
+
+		/* Calculate the top of stack address.  This depends on whether the
+		stack grows from high memory to low (as per the 80x86) or visa versa.
+		portSTACK_GROWTH is used to make the result positive or negative as
+		required by the port. */
+#if( portSTACK_GROWTH < 0 )
+		{
+			pxTopOfStack = pxNewTCB->pxStack + (usStackDepth - 1);
+			pxTopOfStack = (portSTACK_TYPE *)(((unsigned long) pxTopOfStack) & ((unsigned long) ~portBYTE_ALIGNMENT_MASK));
+		}
+#else
+		{
+			pxTopOfStack = pxNewTCB->pxStack;
+
+			/* If we want to use stack checking on architectures that use
+			a positive stack growth direction then we also need to store the
+			other extreme of the stack space. */
+			pxNewTCB->pxEndOfStack = pxNewTCB->pxStack + (usStackDepth - 1);
+		}
+#endif
+
+		/* Setup the newly allocated TCB with the initial state of the task. */
+		prvInitialiseTCBVariables(pxNewTCB, pcName, uxPriority, xRegions, usStackDepth);
+
+		/* Initialize the TCB stack to look as if the task was already running,
+		but had been interrupted by the scheduler.  The return address is set
+		to the start of the task function. Once the stack has been initialised
+		the	top of stack variable is updated. */
+#if( portUSING_MPU_WRAPPERS == 1 )
+		{
+			pxNewTCB->pxTopOfStack = pxPortInitialiseStack(pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged);
+		}
+#else
+		{
+			pxNewTCB->pxTopOfStack = pxPortInitialiseStack(pxTopOfStack, pxTaskCode, pvParameters);
+		}
+#endif
+
+		/* We are going to manipulate the task queues to add this task to a
+		ready list, so must make sure no interrupts occur. */
+		portENTER_CRITICAL();
+		{
+			uxCurrentNumberOfTasks++;
+			if (uxCurrentNumberOfTasks == (unsigned portBASE_TYPE) 1) {
+				/* As this is the first task it must also be the current task. */
+				pxCurrentTCB =  pxNewTCB;
+
+				/* This is the first task to be created so do the preliminary
+				initialisation required.  We will not recover if this call
+				fails, but we will report the failure. */
+				prvInitialiseTaskLists();
+			} else {
+				/* If the scheduler is not already running, make this task the
+				current task if it is the highest priority task to be created
+				so far. */
+				if (xSchedulerRunning == pdFALSE) {
+					if (pxCurrentTCB->uxPriority <= uxPriority) {
+						pxCurrentTCB = pxNewTCB;
+					}
+				}
+			}
+
+			/* Remember the top priority to make context switching faster.  Use
+			the priority in pxNewTCB as this has been capped to a valid value. */
+			if (pxNewTCB->uxPriority > uxTopUsedPriority) {
+				uxTopUsedPriority = pxNewTCB->uxPriority;
+			}
+
+#if ( configUSE_TRACE_FACILITY == 1 )
+			{
+				/* Add a counter into the TCB for tracing only. */
+				pxNewTCB->uxTCBNumber = uxTaskNumber;
+			}
+#endif
+			uxTaskNumber++;
+
+			prvAddTaskToReadyQueue(pxNewTCB);
+
+			xReturn = pdPASS;
+			traceTASK_CREATE(pxNewTCB);
+		}
+		portEXIT_CRITICAL();
+	} else {
+		xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY;
+		traceTASK_CREATE_FAILED(pxNewTCB);
+	}
+
+	if (xReturn == pdPASS) {
+		if ((void *) pxCreatedTask != NULL) {
+			/* Pass the TCB out - in an anonymous way.  The calling function/
+			task can use this as a handle to delete the task later if
+			required.*/
+			*pxCreatedTask = (xTaskHandle) pxNewTCB;
+		}
+
+		if (xSchedulerRunning != pdFALSE) {
+			/* If the created task is of a higher priority than the current task
+			then it should run now. */
+			if (pxCurrentTCB->uxPriority < uxPriority) {
+				portYIELD_WITHIN_API();
+			}
+		}
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskDelete == 1 )
+
+void vTaskDelete(xTaskHandle pxTaskToDelete)
+{
+	tskTCB *pxTCB;
+
+	portENTER_CRITICAL();
+	{
+		/* Ensure a yield is performed if the current task is being
+		deleted. */
+		if (pxTaskToDelete == pxCurrentTCB) {
+			pxTaskToDelete = NULL;
+		}
+
+		/* If null is passed in here then we are deleting ourselves. */
+		pxTCB = prvGetTCBFromHandle(pxTaskToDelete);
+
+		/* Remove task from the ready list and place in the	termination list.
+		This will stop the task from be scheduled.  The idle task will check
+		the termination list and free up any memory allocated by the
+		scheduler for the TCB and stack. */
+		vListRemove(&(pxTCB->xGenericListItem));
+
+		/* Is the task waiting on an event also? */
+		if (pxTCB->xEventListItem.pvContainer) {
+			vListRemove(&(pxTCB->xEventListItem));
+		}
+
+		vListInsertEnd((xList *) &xTasksWaitingTermination, &(pxTCB->xGenericListItem));
+
+		/* Increment the ucTasksDeleted variable so the idle task knows
+		there is a task that has been deleted and that it should therefore
+		check the xTasksWaitingTermination list. */
+		++uxTasksDeleted;
+
+		/* Increment the uxTaskNumberVariable also so kernel aware debuggers
+		can detect that the task lists need re-generating. */
+		uxTaskNumber++;
+
+		traceTASK_DELETE(pxTCB);
+	}
+	portEXIT_CRITICAL();
+
+	/* Force a reschedule if we have just deleted the current task. */
+	if (xSchedulerRunning != pdFALSE) {
+		if ((void *) pxTaskToDelete == NULL) {
+			portYIELD_WITHIN_API();
+		}
+	}
+}
+
+#endif
+
+
+
+
+
+
+/*-----------------------------------------------------------
+ * TASK CONTROL API documented in task.h
+ *----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskDelayUntil == 1 )
+
+void vTaskDelayUntil(portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement)
+{
+	portTickType xTimeToWake;
+	portBASE_TYPE xAlreadyYielded, xShouldDelay = pdFALSE;
+
+	vTaskSuspendAll();
+	{
+		/* Generate the tick time at which the task wants to wake. */
+		xTimeToWake = *pxPreviousWakeTime + xTimeIncrement;
+
+		if (xTickCount < *pxPreviousWakeTime) {
+			/* The tick count has overflowed since this function was
+			lasted called.  In this case the only time we should ever
+			actually delay is if the wake time has also	overflowed,
+			and the wake time is greater than the tick time.  When this
+			is the case it is as if neither time had overflowed. */
+			if ((xTimeToWake < *pxPreviousWakeTime) && (xTimeToWake > xTickCount)) {
+				xShouldDelay = pdTRUE;
+			}
+		} else {
+			/* The tick time has not overflowed.  In this case we will
+			delay if either the wake time has overflowed, and/or the
+			tick time is less than the wake time. */
+			if ((xTimeToWake < *pxPreviousWakeTime) || (xTimeToWake > xTickCount)) {
+				xShouldDelay = pdTRUE;
+			}
+		}
+
+		/* Update the wake time ready for the next call. */
+		*pxPreviousWakeTime = xTimeToWake;
+
+		if (xShouldDelay) {
+			traceTASK_DELAY_UNTIL();
+
+			/* We must remove ourselves from the ready list before adding
+			ourselves to the blocked list as the same list item is used for
+			both lists. */
+			vListRemove((xListItem *) &(pxCurrentTCB->xGenericListItem));
+
+			/* The list item will be inserted in wake time order. */
+			listSET_LIST_ITEM_VALUE(&(pxCurrentTCB->xGenericListItem), xTimeToWake);
+
+			if (xTimeToWake < xTickCount) {
+				/* Wake time has overflowed.  Place this item in the
+				overflow list. */
+				vListInsert((xList *) pxOverflowDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+			} else {
+				/* The wake time has not overflowed, so we can use the
+				current block list. */
+				vListInsert((xList *) pxDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+			}
+		}
+	}
+	xAlreadyYielded = xTaskResumeAll();
+
+	/* Force a reschedule if xTaskResumeAll has not already done so, we may
+	have put ourselves to sleep. */
+	if (!xAlreadyYielded) {
+		portYIELD_WITHIN_API();
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskDelay == 1 )
+
+void vTaskDelay(portTickType xTicksToDelay)
+{
+	portTickType xTimeToWake;
+	signed portBASE_TYPE xAlreadyYielded = pdFALSE;
+
+	/* A delay time of zero just forces a reschedule. */
+	if (xTicksToDelay > (portTickType) 0) {
+		vTaskSuspendAll();
+		{
+			traceTASK_DELAY();
+
+			/* A task that is removed from the event list while the
+			scheduler is suspended will not get placed in the ready
+			list or removed from the blocked list until the scheduler
+			is resumed.
+
+			This task cannot be in an event list as it is the currently
+			executing task. */
+
+			/* Calculate the time to wake - this may overflow but this is
+			not a problem. */
+			xTimeToWake = xTickCount + xTicksToDelay;
+
+			/* We must remove ourselves from the ready list before adding
+			ourselves to the blocked list as the same list item is used for
+			both lists. */
+			vListRemove((xListItem *) &(pxCurrentTCB->xGenericListItem));
+
+			/* The list item will be inserted in wake time order. */
+			listSET_LIST_ITEM_VALUE(&(pxCurrentTCB->xGenericListItem), xTimeToWake);
+
+			if (xTimeToWake < xTickCount) {
+				/* Wake time has overflowed.  Place this item in the
+				overflow list. */
+				vListInsert((xList *) pxOverflowDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+			} else {
+				/* The wake time has not overflowed, so we can use the
+				current block list. */
+				vListInsert((xList *) pxDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+			}
+		}
+		xAlreadyYielded = xTaskResumeAll();
+	}
+
+	/* Force a reschedule if xTaskResumeAll has not already done so, we may
+	have put ourselves to sleep. */
+	if (!xAlreadyYielded) {
+		portYIELD_WITHIN_API();
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_uxTaskPriorityGet == 1 )
+
+unsigned portBASE_TYPE uxTaskPriorityGet(xTaskHandle pxTask)
+{
+	tskTCB *pxTCB;
+	unsigned portBASE_TYPE uxReturn;
+
+	portENTER_CRITICAL();
+	{
+		/* If null is passed in here then we are changing the
+		priority of the calling function. */
+		pxTCB = prvGetTCBFromHandle(pxTask);
+		uxReturn = pxTCB->uxPriority;
+	}
+	portEXIT_CRITICAL();
+
+	return uxReturn;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskPrioritySet == 1 )
+
+void vTaskPrioritySet(xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority)
+{
+	tskTCB *pxTCB;
+	unsigned portBASE_TYPE uxCurrentPriority, xYieldRequired = pdFALSE;
+
+	/* Ensure the new priority is valid. */
+	if (uxNewPriority >= configMAX_PRIORITIES) {
+		uxNewPriority = configMAX_PRIORITIES - 1;
+	}
+
+	portENTER_CRITICAL();
+	{
+		if (pxTask == pxCurrentTCB) {
+			pxTask = NULL;
+		}
+
+		/* If null is passed in here then we are changing the
+		priority of the calling function. */
+		pxTCB = prvGetTCBFromHandle(pxTask);
+
+		traceTASK_PRIORITY_SET(pxTask, uxNewPriority);
+
+#if ( configUSE_MUTEXES == 1 )
+		{
+			uxCurrentPriority = pxTCB->uxBasePriority;
+		}
+#else
+		{
+			uxCurrentPriority = pxTCB->uxPriority;
+		}
+#endif
+
+		if (uxCurrentPriority != uxNewPriority) {
+			/* The priority change may have readied a task of higher
+			priority than the calling task. */
+			if (uxNewPriority > uxCurrentPriority) {
+				if (pxTask != NULL) {
+					/* The priority of another task is being raised.  If we
+					were raising the priority of the currently running task
+					there would be no need to switch as it must have already
+					been the highest priority task. */
+					xYieldRequired = pdTRUE;
+				}
+			} else if (pxTask == NULL) {
+				/* Setting our own priority down means there may now be another
+				task of higher priority that is ready to execute. */
+				xYieldRequired = pdTRUE;
+			}
+
+
+
+#if ( configUSE_MUTEXES == 1 )
+			{
+				/* Only change the priority being used if the task is not
+				currently using an inherited priority. */
+				if (pxTCB->uxBasePriority == pxTCB->uxPriority) {
+					pxTCB->uxPriority = uxNewPriority;
+				}
+
+				/* The base priority gets set whatever. */
+				pxTCB->uxBasePriority = uxNewPriority;
+			}
+#else
+			{
+				pxTCB->uxPriority = uxNewPriority;
+			}
+#endif
+
+			listSET_LIST_ITEM_VALUE(&(pxTCB->xEventListItem), (configMAX_PRIORITIES - (portTickType) uxNewPriority));
+
+			/* If the task is in the blocked or suspended list we need do
+			nothing more than change it's priority variable. However, if
+			the task is in a ready list it needs to be removed and placed
+			in the queue appropriate to its new priority. */
+			if (listIS_CONTAINED_WITHIN(&(pxReadyTasksLists[ uxCurrentPriority ]), &(pxTCB->xGenericListItem))) {
+				/* The task is currently in its ready list - remove before adding
+				it to it's new ready list.  As we are in a critical section we
+				can do this even if the scheduler is suspended. */
+				vListRemove(&(pxTCB->xGenericListItem));
+				prvAddTaskToReadyQueue(pxTCB);
+			}
+
+			if (xYieldRequired == pdTRUE) {
+				portYIELD_WITHIN_API();
+			}
+		}
+	}
+	portEXIT_CRITICAL();
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+
+void vTaskSuspend(xTaskHandle pxTaskToSuspend)
+{
+	tskTCB *pxTCB;
+
+	portENTER_CRITICAL();
+	{
+		/* Ensure a yield is performed if the current task is being
+		suspended. */
+		if (pxTaskToSuspend == pxCurrentTCB) {
+			pxTaskToSuspend = NULL;
+		}
+
+		/* If null is passed in here then we are suspending ourselves. */
+		pxTCB = prvGetTCBFromHandle(pxTaskToSuspend);
+
+		traceTASK_SUSPEND(pxTCB);
+
+		/* Remove task from the ready/delayed list and place in the	suspended list. */
+		vListRemove(&(pxTCB->xGenericListItem));
+
+		/* Is the task waiting on an event also? */
+		if (pxTCB->xEventListItem.pvContainer) {
+			vListRemove(&(pxTCB->xEventListItem));
+		}
+
+		vListInsertEnd((xList *) &xSuspendedTaskList, &(pxTCB->xGenericListItem));
+	}
+	portEXIT_CRITICAL();
+
+	/* We may have just suspended the current task. */
+	if ((void *) pxTaskToSuspend == NULL) {
+		portYIELD_WITHIN_API();
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+
+signed portBASE_TYPE xTaskIsTaskSuspended(xTaskHandle xTask)
+{
+	portBASE_TYPE xReturn = pdFALSE;
+	const tskTCB * const pxTCB = (tskTCB *) xTask;
+
+	/* Is the task we are attempting to resume actually in the
+	suspended list? */
+	if (listIS_CONTAINED_WITHIN(&xSuspendedTaskList, &(pxTCB->xGenericListItem)) != pdFALSE) {
+		/* Has the task already been resumed from within an ISR? */
+		if (listIS_CONTAINED_WITHIN(&xPendingReadyList, &(pxTCB->xEventListItem)) != pdTRUE) {
+			/* Is it in the suspended list because it is in the
+			Suspended state?  It is possible to be in the suspended
+			list because it is blocked on a task with no timeout
+			specified. */
+			if (listIS_CONTAINED_WITHIN(NULL, &(pxTCB->xEventListItem)) == pdTRUE) {
+				xReturn = pdTRUE;
+			}
+		}
+	}
+
+	return xReturn;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+
+void vTaskResume(xTaskHandle pxTaskToResume)
+{
+	tskTCB *pxTCB;
+
+	/* Remove the task from whichever list it is currently in, and place
+	it in the ready list. */
+	pxTCB = (tskTCB *) pxTaskToResume;
+
+	/* The parameter cannot be NULL as it is impossible to resume the
+	currently executing task. */
+	if ((pxTCB != NULL) && (pxTCB != pxCurrentTCB)) {
+		portENTER_CRITICAL();
+		{
+			if (xTaskIsTaskSuspended(pxTCB) == pdTRUE) {
+				traceTASK_RESUME(pxTCB);
+
+				/* As we are in a critical section we can access the ready
+				lists even if the scheduler is suspended. */
+				vListRemove(&(pxTCB->xGenericListItem));
+				prvAddTaskToReadyQueue(pxTCB);
+
+				/* We may have just resumed a higher priority task. */
+				if (pxTCB->uxPriority >= pxCurrentTCB->uxPriority) {
+					/* This yield may not cause the task just resumed to run, but
+					will leave the lists in the correct state for the next yield. */
+					portYIELD_WITHIN_API();
+				}
+			}
+		}
+		portEXIT_CRITICAL();
+	}
+}
+
+#endif
+
+/*-----------------------------------------------------------*/
+
+#if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) )
+
+portBASE_TYPE xTaskResumeFromISR(xTaskHandle pxTaskToResume)
+{
+	portBASE_TYPE xYieldRequired = pdFALSE;
+	tskTCB *pxTCB;
+
+	pxTCB = (tskTCB *) pxTaskToResume;
+
+	if (xTaskIsTaskSuspended(pxTCB) == pdTRUE) {
+		traceTASK_RESUME_FROM_ISR(pxTCB);
+
+		if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) {
+			xYieldRequired = (pxTCB->uxPriority >= pxCurrentTCB->uxPriority);
+			vListRemove(&(pxTCB->xGenericListItem));
+			prvAddTaskToReadyQueue(pxTCB);
+		} else {
+			/* We cannot access the delayed or ready lists, so will hold this
+			task pending until the scheduler is resumed, at which point a
+			yield will be performed if necessary. */
+			vListInsertEnd((xList *) &(xPendingReadyList), &(pxTCB->xEventListItem));
+		}
+	}
+
+	return xYieldRequired;
+}
+
+#endif
+
+
+
+
+/*-----------------------------------------------------------
+ * PUBLIC SCHEDULER CONTROL documented in task.h
+ *----------------------------------------------------------*/
+
+
+void vTaskStartScheduler(void)
+{
+	portBASE_TYPE xReturn;
+
+	/* Add the idle task at the lowest priority. */
+	xReturn = xTaskCreate(prvIdleTask, (signed char *) "IDLE", tskIDLE_STACK_SIZE, (void *) NULL, (tskIDLE_PRIORITY | portPRIVILEGE_BIT), (xTaskHandle *) NULL);
+
+	if (xReturn == pdPASS) {
+		/* Interrupts are turned off here, to ensure a tick does not occur
+		before or during the call to xPortStartScheduler().  The stacks of
+		the created tasks contain a status word with interrupts switched on
+		so interrupts will automatically get re-enabled when the first task
+		starts to run.
+
+		STEPPING THROUGH HERE USING A DEBUGGER CAN CAUSE BIG PROBLEMS IF THE
+		DEBUGGER ALLOWS INTERRUPTS TO BE PROCESSED. */
+		portDISABLE_INTERRUPTS();
+
+		xSchedulerRunning = pdTRUE;
+		xTickCount = (portTickType) 0;
+
+		/* If configGENERATE_RUN_TIME_STATS is defined then the following
+		macro must be defined to configure the timer/counter used to generate
+		the run time counter time base. */
+		portCONFIGURE_TIMER_FOR_RUN_TIME_STATS();
+
+		/* Setting up the timer tick is hardware specific and thus in the
+		portable interface. */
+		if (xPortStartScheduler()) {
+			/* Should not reach here as if the scheduler is running the
+			function will not return. */
+		} else {
+			/* Should only reach here if a task calls xTaskEndScheduler(). */
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+void vTaskEndScheduler(void)
+{
+	/* Stop the scheduler interrupts and call the portable scheduler end
+	routine so the original ISRs can be restored if necessary.  The port
+	layer must ensure interrupts enable	bit is left in the correct state. */
+	portDISABLE_INTERRUPTS();
+	xSchedulerRunning = pdFALSE;
+	vPortEndScheduler();
+}
+/*----------------------------------------------------------*/
+
+void vTaskSuspendAll(void)
+{
+	/* A critical section is not required as the variable is of type
+	portBASE_TYPE. */
+	++uxSchedulerSuspended;
+}
+/*----------------------------------------------------------*/
+
+signed portBASE_TYPE xTaskResumeAll(void)
+{
+	register tskTCB *pxTCB;
+	signed portBASE_TYPE xAlreadyYielded = pdFALSE;
+
+	/* It is possible that an ISR caused a task to be removed from an event
+	list while the scheduler was suspended.  If this was the case then the
+	removed task will have been added to the xPendingReadyList.  Once the
+	scheduler has been resumed it is safe to move all the pending ready
+	tasks from this list into their appropriate ready list. */
+	portENTER_CRITICAL();
+	{
+		--uxSchedulerSuspended;
+
+		if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) {
+			if (uxCurrentNumberOfTasks > (unsigned portBASE_TYPE) 0) {
+				portBASE_TYPE xYieldRequired = pdFALSE;
+
+				/* Move any readied tasks from the pending list into the
+				appropriate ready list. */
+				while ((pxTCB = (tskTCB *) listGET_OWNER_OF_HEAD_ENTRY(((xList *) & xPendingReadyList))) != NULL) {
+					vListRemove(&(pxTCB->xEventListItem));
+					vListRemove(&(pxTCB->xGenericListItem));
+					prvAddTaskToReadyQueue(pxTCB);
+
+					/* If we have moved a task that has a priority higher than
+					the current task then we should yield. */
+					if (pxTCB->uxPriority >= pxCurrentTCB->uxPriority) {
+						xYieldRequired = pdTRUE;
+					}
+				}
+
+				/* If any ticks occurred while the scheduler was suspended then
+				they should be processed now.  This ensures the tick count does not
+				slip, and that any delayed tasks are resumed at the correct time. */
+				if (uxMissedTicks > (unsigned portBASE_TYPE) 0) {
+					while (uxMissedTicks > (unsigned portBASE_TYPE) 0) {
+						vTaskIncrementTick();
+						--uxMissedTicks;
+					}
+
+					/* As we have processed some ticks it is appropriate to yield
+					to ensure the highest priority task that is ready to run is
+					the task actually running. */
+#if configUSE_PREEMPTION == 1
+					{
+						xYieldRequired = pdTRUE;
+					}
+#endif
+				}
+
+				if ((xYieldRequired == pdTRUE) || (xMissedYield == pdTRUE)) {
+					xAlreadyYielded = pdTRUE;
+					xMissedYield = pdFALSE;
+					portYIELD_WITHIN_API();
+				}
+			}
+		}
+	}
+	portEXIT_CRITICAL();
+
+	return xAlreadyYielded;
+}
+
+
+
+
+
+
+/*-----------------------------------------------------------
+ * PUBLIC TASK UTILITIES documented in task.h
+ *----------------------------------------------------------*/
+
+
+
+portTickType xTaskGetTickCount(void)
+{
+	portTickType xTicks;
+
+	/* Critical section required if running on a 16 bit processor. */
+	portENTER_CRITICAL();
+	{
+		xTicks = xTickCount;
+	}
+	portEXIT_CRITICAL();
+
+	return xTicks;
+}
+/*-----------------------------------------------------------*/
+
+unsigned portBASE_TYPE uxTaskGetNumberOfTasks(void)
+{
+	/* A critical section is not required because the variables are of type
+	portBASE_TYPE. */
+	return uxCurrentNumberOfTasks;
+}
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+void vTaskList(signed char *pcWriteBuffer)
+{
+	unsigned portBASE_TYPE uxQueue;
+
+	/* This is a VERY costly function that should be used for debug only.
+	It leaves interrupts disabled for a LONG time. */
+
+	vTaskSuspendAll();
+	{
+		/* Run through all the lists that could potentially contain a TCB and
+		report the task name, state and stack high water mark. */
+
+		pcWriteBuffer[ 0 ] = (signed char) 0x00;
+		strcat((char *) pcWriteBuffer, (const char *) "\r\n");
+
+		uxQueue = uxTopUsedPriority + 1;
+
+		do {
+			uxQueue--;
+
+			if (!listLIST_IS_EMPTY(&(pxReadyTasksLists[ uxQueue ]))) {
+				prvListTaskWithinSingleList(pcWriteBuffer, (xList *) &(pxReadyTasksLists[ uxQueue ]), tskREADY_CHAR);
+			}
+		} while (uxQueue > (unsigned short) tskIDLE_PRIORITY);
+
+		if (!listLIST_IS_EMPTY(pxDelayedTaskList)) {
+			prvListTaskWithinSingleList(pcWriteBuffer, (xList *) pxDelayedTaskList, tskBLOCKED_CHAR);
+		}
+
+		if (!listLIST_IS_EMPTY(pxOverflowDelayedTaskList)) {
+			prvListTaskWithinSingleList(pcWriteBuffer, (xList *) pxOverflowDelayedTaskList, tskBLOCKED_CHAR);
+		}
+
+#if( INCLUDE_vTaskDelete == 1 )
+		{
+			if (!listLIST_IS_EMPTY(&xTasksWaitingTermination)) {
+				prvListTaskWithinSingleList(pcWriteBuffer, (xList *) &xTasksWaitingTermination, tskDELETED_CHAR);
+			}
+		}
+#endif
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+		{
+			if (!listLIST_IS_EMPTY(&xSuspendedTaskList)) {
+				prvListTaskWithinSingleList(pcWriteBuffer, (xList *) &xSuspendedTaskList, tskSUSPENDED_CHAR);
+			}
+		}
+#endif
+	}
+	xTaskResumeAll();
+}
+
+#endif
+/*----------------------------------------------------------*/
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+
+void vTaskGetRunTimeStats(signed char *pcWriteBuffer)
+{
+	unsigned portBASE_TYPE uxQueue;
+	unsigned long ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE();
+
+	/* This is a VERY costly function that should be used for debug only.
+	It leaves interrupts disabled for a LONG time. */
+
+	vTaskSuspendAll();
+	{
+		/* Run through all the lists that could potentially contain a TCB,
+		generating a table of run timer percentages in the provided
+		buffer. */
+
+		pcWriteBuffer[ 0 ] = (signed char) 0x00;
+		strcat((char *) pcWriteBuffer, (const char *) "\r\n");
+
+		uxQueue = uxTopUsedPriority + 1;
+
+		do {
+			uxQueue--;
+
+			if (!listLIST_IS_EMPTY(&(pxReadyTasksLists[ uxQueue ]))) {
+				prvGenerateRunTimeStatsForTasksInList(pcWriteBuffer, (xList *) &(pxReadyTasksLists[ uxQueue ]), ulTotalRunTime);
+			}
+		} while (uxQueue > (unsigned short) tskIDLE_PRIORITY);
+
+		if (!listLIST_IS_EMPTY(pxDelayedTaskList)) {
+			prvGenerateRunTimeStatsForTasksInList(pcWriteBuffer, (xList *) pxDelayedTaskList, ulTotalRunTime);
+		}
+
+		if (!listLIST_IS_EMPTY(pxOverflowDelayedTaskList)) {
+			prvGenerateRunTimeStatsForTasksInList(pcWriteBuffer, (xList *) pxOverflowDelayedTaskList, ulTotalRunTime);
+		}
+
+#if ( INCLUDE_vTaskDelete == 1 )
+		{
+			if (!listLIST_IS_EMPTY(&xTasksWaitingTermination)) {
+				prvGenerateRunTimeStatsForTasksInList(pcWriteBuffer, (xList *) &xTasksWaitingTermination, ulTotalRunTime);
+			}
+		}
+#endif
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+		{
+			if (!listLIST_IS_EMPTY(&xSuspendedTaskList)) {
+				prvGenerateRunTimeStatsForTasksInList(pcWriteBuffer, (xList *) &xSuspendedTaskList, ulTotalRunTime);
+			}
+		}
+#endif
+	}
+	xTaskResumeAll();
+}
+
+#endif
+/*----------------------------------------------------------*/
+
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+void vTaskStartTrace(signed char * pcBuffer, unsigned long ulBufferSize)
+{
+	portENTER_CRITICAL();
+	{
+		pcTraceBuffer = (signed char *)pcBuffer;
+		pcTraceBufferStart = pcBuffer;
+		pcTraceBufferEnd = pcBuffer + (ulBufferSize - tskSIZE_OF_EACH_TRACE_LINE);
+		xTracing = pdTRUE;
+	}
+	portEXIT_CRITICAL();
+}
+
+#endif
+/*----------------------------------------------------------*/
+
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+unsigned long ulTaskEndTrace(void)
+{
+	unsigned long ulBufferLength;
+
+	portENTER_CRITICAL();
+	xTracing = pdFALSE;
+	portEXIT_CRITICAL();
+
+	ulBufferLength = (unsigned long)(pcTraceBuffer - pcTraceBufferStart);
+
+	return ulBufferLength;
+}
+
+#endif
+
+
+
+/*-----------------------------------------------------------
+ * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES
+ * documented in task.h
+ *----------------------------------------------------------*/
+
+
+void vTaskIncrementTick(void)
+{
+	/* Called by the portable layer each time a tick interrupt occurs.
+	Increments the tick then checks to see if the new tick value will cause any
+	tasks to be unblocked. */
+	if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) {
+		++xTickCount;
+		if (xTickCount == (portTickType) 0) {
+			xList *pxTemp;
+
+			/* Tick count has overflowed so we need to swap the delay lists.
+			If there are any items in pxDelayedTaskList here then there is
+			an error! */
+			pxTemp = pxDelayedTaskList;
+			pxDelayedTaskList = pxOverflowDelayedTaskList;
+			pxOverflowDelayedTaskList = pxTemp;
+			xNumOfOverflows++;
+		}
+
+		/* See if this tick has made a timeout expire. */
+		prvCheckDelayedTasks();
+	} else {
+		++uxMissedTicks;
+
+		/* The tick hook gets called at regular intervals, even if the
+		scheduler is locked. */
+#if ( configUSE_TICK_HOOK == 1 )
+		{
+			extern void vApplicationTickHook(void);
+
+			vApplicationTickHook();
+		}
+#endif
+	}
+
+#if ( configUSE_TICK_HOOK == 1 )
+	{
+		extern void vApplicationTickHook(void);
+
+		/* Guard against the tick hook being called when the missed tick
+		count is being unwound (when the scheduler is being unlocked. */
+		if (uxMissedTicks == 0) {
+			vApplicationTickHook();
+		}
+	}
+#endif
+
+	traceTASK_INCREMENT_TICK(xTickCount);
+}
+/*-----------------------------------------------------------*/
+
+#if ( ( INCLUDE_vTaskCleanUpResources == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) )
+
+void vTaskCleanUpResources(void)
+{
+	unsigned short usQueue;
+	volatile tskTCB *pxTCB;
+
+	usQueue = (unsigned short) uxTopUsedPriority + (unsigned short) 1;
+
+	/* Remove any TCB's from the ready queues. */
+	do {
+		usQueue--;
+
+		while (!listLIST_IS_EMPTY(&(pxReadyTasksLists[ usQueue ]))) {
+			listGET_OWNER_OF_NEXT_ENTRY(pxTCB, &(pxReadyTasksLists[ usQueue ]));
+			vListRemove((xListItem *) &(pxTCB->xGenericListItem));
+
+			prvDeleteTCB((tskTCB *) pxTCB);
+		}
+	} while (usQueue > (unsigned short) tskIDLE_PRIORITY);
+
+	/* Remove any TCB's from the delayed queue. */
+	while (!listLIST_IS_EMPTY(&xDelayedTaskList1)) {
+		listGET_OWNER_OF_NEXT_ENTRY(pxTCB, &xDelayedTaskList1);
+		vListRemove((xListItem *) &(pxTCB->xGenericListItem));
+
+		prvDeleteTCB((tskTCB *) pxTCB);
+	}
+
+	/* Remove any TCB's from the overflow delayed queue. */
+	while (!listLIST_IS_EMPTY(&xDelayedTaskList2)) {
+		listGET_OWNER_OF_NEXT_ENTRY(pxTCB, &xDelayedTaskList2);
+		vListRemove((xListItem *) &(pxTCB->xGenericListItem));
+
+		prvDeleteTCB((tskTCB *) pxTCB);
+	}
+
+	while (!listLIST_IS_EMPTY(&xSuspendedTaskList)) {
+		listGET_OWNER_OF_NEXT_ENTRY(pxTCB, &xSuspendedTaskList);
+		vListRemove((xListItem *) &(pxTCB->xGenericListItem));
+
+		prvDeleteTCB((tskTCB *) pxTCB);
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_APPLICATION_TASK_TAG == 1 )
+
+void vTaskSetApplicationTaskTag(xTaskHandle xTask, pdTASK_HOOK_CODE pxTagValue)
+{
+	tskTCB *xTCB;
+
+	/* If xTask is NULL then we are setting our own task hook. */
+	if (xTask == NULL) {
+		xTCB = (tskTCB *) pxCurrentTCB;
+	} else {
+		xTCB = (tskTCB *) xTask;
+	}
+
+	/* Save the hook function in the TCB.  A critical section is required as
+	the value can be accessed from an interrupt. */
+	portENTER_CRITICAL();
+	xTCB->pxTaskTag = pxTagValue;
+	portEXIT_CRITICAL();
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_APPLICATION_TASK_TAG == 1 )
+
+pdTASK_HOOK_CODE xTaskGetApplicationTaskTag(xTaskHandle xTask)
+{
+	tskTCB *xTCB;
+	pdTASK_HOOK_CODE xReturn;
+
+	/* If xTask is NULL then we are setting our own task hook. */
+	if (xTask == NULL) {
+		xTCB = (tskTCB *) pxCurrentTCB;
+	} else {
+		xTCB = (tskTCB *) xTask;
+	}
+
+	/* Save the hook function in the TCB.  A critical section is required as
+	the value can be accessed from an interrupt. */
+	portENTER_CRITICAL();
+	xReturn = xTCB->pxTaskTag;
+	portEXIT_CRITICAL();
+
+	return xReturn;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_APPLICATION_TASK_TAG == 1 )
+
+portBASE_TYPE xTaskCallApplicationTaskHook(xTaskHandle xTask, void *pvParameter)
+{
+	tskTCB *xTCB;
+	portBASE_TYPE xReturn;
+
+	/* If xTask is NULL then we are calling our own task hook. */
+	if (xTask == NULL) {
+		xTCB = (tskTCB *) pxCurrentTCB;
+	} else {
+		xTCB = (tskTCB *) xTask;
+	}
+
+	if (xTCB->pxTaskTag != NULL) {
+		xReturn = xTCB->pxTaskTag(pvParameter);
+	} else {
+		xReturn = pdFAIL;
+	}
+
+	return xReturn;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+void vTaskSwitchContext(void)
+{
+	if (uxSchedulerSuspended != (unsigned portBASE_TYPE) pdFALSE) {
+		/* The scheduler is currently suspended - do not allow a context
+		switch. */
+		xMissedYield = pdTRUE;
+		return;
+	}
+
+	traceTASK_SWITCHED_OUT();
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+	{
+		unsigned long ulTempCounter = portGET_RUN_TIME_COUNTER_VALUE();
+
+		/* Add the amount of time the task has been running to the accumulated
+		time so far.  The time the task started running was stored in
+		ulTaskSwitchedInTime.  Note that there is no overflow protection here
+		so count values are only valid until the timer overflows.  Generally
+		this will be about 1 hour assuming a 1uS timer increment. */
+		pxCurrentTCB->ulRunTimeCounter += (ulTempCounter - ulTaskSwitchedInTime);
+		ulTaskSwitchedInTime = ulTempCounter;
+	}
+#endif
+
+	taskFIRST_CHECK_FOR_STACK_OVERFLOW();
+	taskSECOND_CHECK_FOR_STACK_OVERFLOW();
+
+	/* Find the highest priority queue that contains ready tasks. */
+	while (listLIST_IS_EMPTY(&(pxReadyTasksLists[ uxTopReadyPriority ]))) {
+		--uxTopReadyPriority;
+	}
+
+	/* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the tasks of the
+	same priority get an equal share of the processor time. */
+	listGET_OWNER_OF_NEXT_ENTRY(pxCurrentTCB, &(pxReadyTasksLists[ uxTopReadyPriority ]));
+
+	traceTASK_SWITCHED_IN();
+	vWriteTraceToBuffer();
+}
+/*-----------------------------------------------------------*/
+
+void vTaskPlaceOnEventList(const xList * const pxEventList, portTickType xTicksToWait)
+{
+	portTickType xTimeToWake;
+
+	/* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE
+	SCHEDULER SUSPENDED. */
+
+	/* Place the event list item of the TCB in the appropriate event list.
+	This is placed in the list in priority order so the highest priority task
+	is the first to be woken by the event. */
+	vListInsert((xList *) pxEventList, (xListItem *) &(pxCurrentTCB->xEventListItem));
+
+	/* We must remove ourselves from the ready list before adding ourselves
+	to the blocked list as the same list item is used for both lists.  We have
+	exclusive access to the ready lists as the scheduler is locked. */
+	vListRemove((xListItem *) &(pxCurrentTCB->xGenericListItem));
+
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+	{
+		if (xTicksToWait == portMAX_DELAY) {
+			/* Add ourselves to the suspended task list instead of a delayed task
+			list to ensure we are not woken by a timing event.  We will block
+			indefinitely. */
+			vListInsertEnd((xList *) &xSuspendedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+		} else {
+			/* Calculate the time at which the task should be woken if the event does
+			not occur.  This may overflow but this doesn't matter. */
+			xTimeToWake = xTickCount + xTicksToWait;
+
+			listSET_LIST_ITEM_VALUE(&(pxCurrentTCB->xGenericListItem), xTimeToWake);
+
+			if (xTimeToWake < xTickCount) {
+				/* Wake time has overflowed.  Place this item in the overflow list. */
+				vListInsert((xList *) pxOverflowDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+			} else {
+				/* The wake time has not overflowed, so we can use the current block list. */
+				vListInsert((xList *) pxDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+			}
+		}
+	}
+#else
+	{
+		/* Calculate the time at which the task should be woken if the event does
+		not occur.  This may overflow but this doesn't matter. */
+		xTimeToWake = xTickCount + xTicksToWait;
+
+		listSET_LIST_ITEM_VALUE(&(pxCurrentTCB->xGenericListItem), xTimeToWake);
+
+		if (xTimeToWake < xTickCount) {
+			/* Wake time has overflowed.  Place this item in the overflow list. */
+			vListInsert((xList *) pxOverflowDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+		} else {
+			/* The wake time has not overflowed, so we can use the current block list. */
+			vListInsert((xList *) pxDelayedTaskList, (xListItem *) &(pxCurrentTCB->xGenericListItem));
+		}
+	}
+#endif
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xTaskRemoveFromEventList(const xList * const pxEventList)
+{
+	tskTCB *pxUnblockedTCB;
+	portBASE_TYPE xReturn;
+
+	/* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE
+	SCHEDULER SUSPENDED.  It can also be called from within an ISR. */
+
+	/* The event list is sorted in priority order, so we can remove the
+	first in the list, remove the TCB from the delayed list, and add
+	it to the ready list.
+
+	If an event is for a queue that is locked then this function will never
+	get called - the lock count on the queue will get modified instead.  This
+	means we can always expect exclusive access to the event list here. */
+	pxUnblockedTCB = (tskTCB *) listGET_OWNER_OF_HEAD_ENTRY(pxEventList);
+	vListRemove(&(pxUnblockedTCB->xEventListItem));
+
+	if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) {
+		vListRemove(&(pxUnblockedTCB->xGenericListItem));
+		prvAddTaskToReadyQueue(pxUnblockedTCB);
+	} else {
+		/* We cannot access the delayed or ready lists, so will hold this
+		task pending until the scheduler is resumed. */
+		vListInsertEnd((xList *) &(xPendingReadyList), &(pxUnblockedTCB->xEventListItem));
+	}
+
+	if (pxUnblockedTCB->uxPriority >= pxCurrentTCB->uxPriority) {
+		/* Return true if the task removed from the event list has
+		a higher priority than the calling task.  This allows
+		the calling task to know if it should force a context
+		switch now. */
+		xReturn = pdTRUE;
+	} else {
+		xReturn = pdFALSE;
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vTaskSetTimeOutState(xTimeOutType * const pxTimeOut)
+{
+	pxTimeOut->xOverflowCount = xNumOfOverflows;
+	pxTimeOut->xTimeOnEntering = xTickCount;
+}
+/*-----------------------------------------------------------*/
+
+portBASE_TYPE xTaskCheckForTimeOut(xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait)
+{
+	portBASE_TYPE xReturn;
+
+	portENTER_CRITICAL();
+	{
+#if ( INCLUDE_vTaskSuspend == 1 )
+		/* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is
+		the maximum block time then the task should block indefinitely, and
+		therefore never time out. */
+		if (*pxTicksToWait == portMAX_DELAY) {
+			xReturn = pdFALSE;
+		} else /* We are not blocking indefinitely, perform the checks below. */
+#endif
+
+			if ((xNumOfOverflows != pxTimeOut->xOverflowCount) && ((portTickType) xTickCount >= (portTickType) pxTimeOut->xTimeOnEntering)) {
+				/* The tick count is greater than the time at which vTaskSetTimeout()
+				was called, but has also overflowed since vTaskSetTimeOut() was called.
+				It must have wrapped all the way around and gone past us again. This
+				passed since vTaskSetTimeout() was called. */
+				xReturn = pdTRUE;
+			} else if (((portTickType)((portTickType) xTickCount - (portTickType) pxTimeOut->xTimeOnEntering)) < (portTickType) *pxTicksToWait) {
+				/* Not a genuine timeout. Adjust parameters for time remaining. */
+				*pxTicksToWait -= ((portTickType) xTickCount - (portTickType) pxTimeOut->xTimeOnEntering);
+				vTaskSetTimeOutState(pxTimeOut);
+				xReturn = pdFALSE;
+			} else {
+				xReturn = pdTRUE;
+			}
+	}
+	portEXIT_CRITICAL();
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vTaskMissedYield(void)
+{
+	xMissedYield = pdTRUE;
+}
+
+/*
+ * -----------------------------------------------------------
+ * The Idle task.
+ * ----------------------------------------------------------
+ *
+ * The portTASK_FUNCTION() macro is used to allow port/compiler specific
+ * language extensions.  The equivalent prototype for this function is:
+ *
+ * void prvIdleTask( void *pvParameters );
+ *
+ */
+static portTASK_FUNCTION(prvIdleTask, pvParameters)
+{
+	/* Stop warnings. */
+	(void) pvParameters;
+
+	for (;;) {
+		/* See if any tasks have been deleted. */
+		prvCheckTasksWaitingTermination();
+
+#if ( configUSE_PREEMPTION == 0 )
+		{
+			/* If we are not using preemption we keep forcing a task switch to
+			see if any other task has become available.  If we are using
+			preemption we don't need to do this as any task becoming available
+			will automatically get the processor anyway. */
+			taskYIELD();
+		}
+#endif
+
+#if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) )
+		{
+			/* When using preemption tasks of equal priority will be
+			timesliced.  If a task that is sharing the idle priority is ready
+			to run then the idle task should yield before the end of the
+			timeslice.
+
+			A critical region is not required here as we are just reading from
+			the list, and an occasional incorrect value will not matter.  If
+			the ready list at the idle priority contains more than one task
+			then a task other than the idle task is ready to execute. */
+			if (listCURRENT_LIST_LENGTH(&(pxReadyTasksLists[ tskIDLE_PRIORITY ])) > (unsigned portBASE_TYPE) 1) {
+				taskYIELD();
+			}
+		}
+#endif
+
+#if ( configUSE_IDLE_HOOK == 1 )
+		{
+			extern void vApplicationIdleHook(void);
+
+			/* Call the user defined function from within the idle task.  This
+			allows the application designer to add background functionality
+			without the overhead of a separate task.
+			NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES,
+			CALL A FUNCTION THAT MIGHT BLOCK. */
+			vApplicationIdleHook();
+		}
+#endif
+	}
+} /*lint !e715 pvParameters is not accessed but all task functions require the same prototype. */
+
+
+
+
+
+
+
+/*-----------------------------------------------------------
+ * File private functions documented at the top of the file.
+ *----------------------------------------------------------*/
+
+
+
+static void prvInitialiseTCBVariables(tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth)
+{
+	/* Store the function name in the TCB. */
+#if configMAX_TASK_NAME_LEN > 1
+	{
+		/* Don't bring strncpy into the build unnecessarily. */
+		strncpy((char *) pxTCB->pcTaskName, (const char *) pcName, (unsigned short) configMAX_TASK_NAME_LEN);
+	}
+#endif
+	pxTCB->pcTaskName[(unsigned short) configMAX_TASK_NAME_LEN - (unsigned short) 1 ] = '\0';
+
+	/* This is used as an array index so must ensure it's not too large.  First
+	remove the privilege bit if one is present. */
+	if (uxPriority >= configMAX_PRIORITIES) {
+		uxPriority = configMAX_PRIORITIES - 1;
+	}
+
+	pxTCB->uxPriority = uxPriority;
+#if ( configUSE_MUTEXES == 1 )
+	{
+		pxTCB->uxBasePriority = uxPriority;
+	}
+#endif
+
+	vListInitialiseItem(&(pxTCB->xGenericListItem));
+	vListInitialiseItem(&(pxTCB->xEventListItem));
+
+	/* Set the pxTCB as a link back from the xListItem.  This is so we can get
+	back to	the containing TCB from a generic item in a list. */
+	listSET_LIST_ITEM_OWNER(&(pxTCB->xGenericListItem), pxTCB);
+
+	/* Event lists are always in priority order. */
+	listSET_LIST_ITEM_VALUE(&(pxTCB->xEventListItem), configMAX_PRIORITIES - (portTickType) uxPriority);
+	listSET_LIST_ITEM_OWNER(&(pxTCB->xEventListItem), pxTCB);
+
+#if ( portCRITICAL_NESTING_IN_TCB == 1 )
+	{
+		pxTCB->uxCriticalNesting = (unsigned portBASE_TYPE) 0;
+	}
+#endif
+
+#if ( configUSE_APPLICATION_TASK_TAG == 1 )
+	{
+		pxTCB->pxTaskTag = NULL;
+	}
+#endif
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+	{
+		pxTCB->ulRunTimeCounter = 0UL;
+	}
+#endif
+
+#if ( portUSING_MPU_WRAPPERS == 1 )
+	{
+		vPortStoreTaskMPUSettings(&(pxTCB->xMPUSettings), xRegions, pxTCB->pxStack, usStackDepth);
+	}
+#else
+	{
+		(void) xRegions;
+		(void) usStackDepth;
+	}
+#endif
+}
+/*-----------------------------------------------------------*/
+
+#if ( portUSING_MPU_WRAPPERS == 1 )
+
+void vTaskAllocateMPURegions(xTaskHandle xTaskToModify, const xMemoryRegion * const xRegions)
+{
+	tskTCB *pxTCB;
+
+	if (xTaskToModify == pxCurrentTCB) {
+		xTaskToModify = NULL;
+	}
+
+	/* If null is passed in here then we are deleting ourselves. */
+	pxTCB = prvGetTCBFromHandle(xTaskToModify);
+
+	vPortStoreTaskMPUSettings(&(pxTCB->xMPUSettings), xRegions, NULL, 0);
+}
+/*-----------------------------------------------------------*/
+#endif
+
+static void prvInitialiseTaskLists(void)
+{
+	unsigned portBASE_TYPE uxPriority;
+
+	for (uxPriority = 0; uxPriority < configMAX_PRIORITIES; uxPriority++) {
+		vListInitialise((xList *) &(pxReadyTasksLists[ uxPriority ]));
+	}
+
+	vListInitialise((xList *) &xDelayedTaskList1);
+	vListInitialise((xList *) &xDelayedTaskList2);
+	vListInitialise((xList *) &xPendingReadyList);
+
+#if ( INCLUDE_vTaskDelete == 1 )
+	{
+		vListInitialise((xList *) &xTasksWaitingTermination);
+	}
+#endif
+
+#if ( INCLUDE_vTaskSuspend == 1 )
+	{
+		vListInitialise((xList *) &xSuspendedTaskList);
+	}
+#endif
+
+	/* Start with pxDelayedTaskList using list1 and the pxOverflowDelayedTaskList
+	using list2. */
+	pxDelayedTaskList = &xDelayedTaskList1;
+	pxOverflowDelayedTaskList = &xDelayedTaskList2;
+}
+/*-----------------------------------------------------------*/
+
+static void prvCheckTasksWaitingTermination(void)
+{
+#if ( INCLUDE_vTaskDelete == 1 )
+	{
+		portBASE_TYPE xListIsEmpty;
+
+		/* ucTasksDeleted is used to prevent vTaskSuspendAll() being called
+		too often in the idle task. */
+		if (uxTasksDeleted > (unsigned portBASE_TYPE) 0) {
+			vTaskSuspendAll();
+			xListIsEmpty = listLIST_IS_EMPTY(&xTasksWaitingTermination);
+			xTaskResumeAll();
+
+			if (!xListIsEmpty) {
+				tskTCB *pxTCB;
+
+				portENTER_CRITICAL();
+				{
+					pxTCB = (tskTCB *) listGET_OWNER_OF_HEAD_ENTRY(((xList *) & xTasksWaitingTermination));
+					vListRemove(&(pxTCB->xGenericListItem));
+					--uxCurrentNumberOfTasks;
+					--uxTasksDeleted;
+				}
+				portEXIT_CRITICAL();
+
+				prvDeleteTCB(pxTCB);
+			}
+		}
+	}
+#endif
+}
+/*-----------------------------------------------------------*/
+
+static tskTCB *prvAllocateTCBAndStack(unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer)
+{
+	tskTCB *pxNewTCB;
+
+	/* Allocate space for the TCB.  Where the memory comes from depends on
+	the implementation of the port malloc function. */
+	pxNewTCB = (tskTCB *) pvPortMalloc(sizeof(tskTCB));
+
+	if (pxNewTCB != NULL) {
+		/* Allocate space for the stack used by the task being created.
+		The base of the stack memory stored in the TCB so the task can
+		be deleted later if required. */
+		pxNewTCB->pxStack = (portSTACK_TYPE *) pvPortMallocAligned((((size_t)usStackDepth) * sizeof(portSTACK_TYPE)), puxStackBuffer);
+
+		if (pxNewTCB->pxStack == NULL) {
+			/* Could not allocate the stack.  Delete the allocated TCB. */
+			vPortFree(pxNewTCB);
+			pxNewTCB = NULL;
+		} else {
+			/* Just to help debugging. */
+			memset(pxNewTCB->pxStack, tskSTACK_FILL_BYTE, usStackDepth * sizeof(portSTACK_TYPE));
+		}
+	}
+
+	return pxNewTCB;
+}
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_TRACE_FACILITY == 1 )
+
+static void prvListTaskWithinSingleList(const signed char *pcWriteBuffer, xList *pxList, signed char cStatus)
+{
+	volatile tskTCB *pxNextTCB, *pxFirstTCB;
+	unsigned short usStackRemaining;
+
+	/* Write the details of all the TCB's in pxList into the buffer. */
+	listGET_OWNER_OF_NEXT_ENTRY(pxFirstTCB, pxList);
+	do {
+		listGET_OWNER_OF_NEXT_ENTRY(pxNextTCB, pxList);
+#if ( portSTACK_GROWTH > 0 )
+		{
+			usStackRemaining = usTaskCheckFreeStackSpace((unsigned char *) pxNextTCB->pxEndOfStack);
+		}
+#else
+		{
+			usStackRemaining = usTaskCheckFreeStackSpace((unsigned char *) pxNextTCB->pxStack);
+		}
+#endif
+
+		sprintf(pcStatusString, (char *) "%s\t\t%c\t%u\t%u\t%u\r\n", pxNextTCB->pcTaskName, cStatus, (unsigned int) pxNextTCB->uxPriority, usStackRemaining, (unsigned int) pxNextTCB->uxTCBNumber);
+		strcat((char *) pcWriteBuffer, (char *) pcStatusString);
+
+	} while (pxNextTCB != pxFirstTCB);
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( configGENERATE_RUN_TIME_STATS == 1 )
+
+static void prvGenerateRunTimeStatsForTasksInList(const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTime)
+{
+	volatile tskTCB *pxNextTCB, *pxFirstTCB;
+	unsigned long ulStatsAsPercentage;
+
+	/* Write the run time stats of all the TCB's in pxList into the buffer. */
+	listGET_OWNER_OF_NEXT_ENTRY(pxFirstTCB, pxList);
+	do {
+		/* Get next TCB in from the list. */
+		listGET_OWNER_OF_NEXT_ENTRY(pxNextTCB, pxList);
+
+		/* Divide by zero check. */
+		if (ulTotalRunTime > 0UL) {
+			/* Has the task run at all? */
+			if (pxNextTCB->ulRunTimeCounter == 0) {
+				/* The task has used no CPU time at all. */
+				sprintf(pcStatsString, (char *) "%s\t\t0\t\t0%%\r\n", pxNextTCB->pcTaskName);
+			} else {
+				/* What percentage of the total run time as the task used?
+				This will always be rounded down to the nearest integer. */
+				ulStatsAsPercentage = (100UL * pxNextTCB->ulRunTimeCounter) / ulTotalRunTime;
+
+				if (ulStatsAsPercentage > 0UL) {
+					sprintf(pcStatsString, (char *) "%s\t\t%u\t\t%u%%\r\n", pxNextTCB->pcTaskName, (unsigned int) pxNextTCB->ulRunTimeCounter, (unsigned int) ulStatsAsPercentage);
+				} else {
+					/* If the percentage is zero here then the task has
+					consumed less than 1% of the total run time. */
+					sprintf(pcStatsString, (char *) "%s\t\t%u\t\t<1%%\r\n", pxNextTCB->pcTaskName, (unsigned int) pxNextTCB->ulRunTimeCounter);
+				}
+			}
+
+			strcat((char *) pcWriteBuffer, (char *) pcStatsString);
+		}
+
+	} while (pxNextTCB != pxFirstTCB);
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
+
+static unsigned short usTaskCheckFreeStackSpace(const unsigned char * pucStackByte)
+{
+	register unsigned short usCount = 0;
+
+	while (*pucStackByte == tskSTACK_FILL_BYTE) {
+		pucStackByte -= portSTACK_GROWTH;
+		usCount++;
+	}
+
+	usCount /= sizeof(portSTACK_TYPE);
+
+	return usCount;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
+
+unsigned portBASE_TYPE uxTaskGetStackHighWaterMark(xTaskHandle xTask)
+{
+	tskTCB *pxTCB;
+	unsigned char *pcEndOfStack;
+	unsigned portBASE_TYPE uxReturn;
+
+	pxTCB = prvGetTCBFromHandle(xTask);
+
+#if portSTACK_GROWTH < 0
+	{
+		pcEndOfStack = (unsigned char *) pxTCB->pxStack;
+	}
+#else
+	{
+		pcEndOfStack = (unsigned char *) pxTCB->pxEndOfStack;
+	}
+#endif
+
+	uxReturn = (unsigned portBASE_TYPE) usTaskCheckFreeStackSpace(pcEndOfStack);
+
+	return uxReturn;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) )
+
+static void prvDeleteTCB(tskTCB *pxTCB)
+{
+	/* Free up the memory allocated by the scheduler for the task.  It is up to
+	the task to free any memory allocated at the application level. */
+	vPortFreeAligned(pxTCB->pxStack);
+	vPortFree(pxTCB);
+}
+
+#endif
+
+
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_xTaskGetCurrentTaskHandle == 1 )
+
+xTaskHandle xTaskGetCurrentTaskHandle(void)
+{
+	xTaskHandle xReturn;
+
+	/* A critical section is not required as this is not called from
+	an interrupt and the current TCB will always be the same for any
+	individual execution thread. */
+	xReturn = pxCurrentTCB;
+
+	return xReturn;
+}
+
+#endif
+
+/*-----------------------------------------------------------*/
+
+#if ( INCLUDE_xTaskGetSchedulerState == 1 )
+
+portBASE_TYPE xTaskGetSchedulerState(void)
+{
+	portBASE_TYPE xReturn;
+
+	if (xSchedulerRunning == pdFALSE) {
+		xReturn = taskSCHEDULER_NOT_STARTED;
+	} else {
+		if (uxSchedulerSuspended == (unsigned portBASE_TYPE) pdFALSE) {
+			xReturn = taskSCHEDULER_RUNNING;
+		} else {
+			xReturn = taskSCHEDULER_SUSPENDED;
+		}
+	}
+
+	return xReturn;
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_MUTEXES == 1 )
+
+void vTaskPriorityInherit(xTaskHandle * const pxMutexHolder)
+{
+	tskTCB * const pxTCB = (tskTCB *) pxMutexHolder;
+
+	if (pxTCB->uxPriority < pxCurrentTCB->uxPriority) {
+		/* Adjust the mutex holder state to account for its new priority. */
+		listSET_LIST_ITEM_VALUE(&(pxTCB->xEventListItem), configMAX_PRIORITIES - (portTickType) pxCurrentTCB->uxPriority);
+
+		/* If the task being modified is in the ready state it will need to
+		be moved in to a new list. */
+		if (listIS_CONTAINED_WITHIN(&(pxReadyTasksLists[ pxTCB->uxPriority ]), &(pxTCB->xGenericListItem))) {
+			vListRemove(&(pxTCB->xGenericListItem));
+
+			/* Inherit the priority before being moved into the new list. */
+			pxTCB->uxPriority = pxCurrentTCB->uxPriority;
+			prvAddTaskToReadyQueue(pxTCB);
+		} else {
+			/* Just inherit the priority. */
+			pxTCB->uxPriority = pxCurrentTCB->uxPriority;
+		}
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( configUSE_MUTEXES == 1 )
+
+void vTaskPriorityDisinherit(xTaskHandle * const pxMutexHolder)
+{
+	tskTCB * const pxTCB = (tskTCB *) pxMutexHolder;
+
+	if (pxMutexHolder != NULL) {
+		if (pxTCB->uxPriority != pxTCB->uxBasePriority) {
+			/* We must be the running task to be able to give the mutex back.
+			Remove ourselves from the ready list we currently appear in. */
+			vListRemove(&(pxTCB->xGenericListItem));
+
+			/* Disinherit the priority before adding ourselves into the new
+			ready list. */
+			pxTCB->uxPriority = pxTCB->uxBasePriority;
+			listSET_LIST_ITEM_VALUE(&(pxTCB->xEventListItem), configMAX_PRIORITIES - (portTickType) pxTCB->uxPriority);
+			prvAddTaskToReadyQueue(pxTCB);
+		}
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( portCRITICAL_NESTING_IN_TCB == 1 )
+
+void vTaskEnterCritical(void)
+{
+	portDISABLE_INTERRUPTS();
+
+	if (xSchedulerRunning != pdFALSE) {
+		pxCurrentTCB->uxCriticalNesting++;
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+#if ( portCRITICAL_NESTING_IN_TCB == 1 )
+
+void vTaskExitCritical(void)
+{
+	if (xSchedulerRunning != pdFALSE) {
+		if (pxCurrentTCB->uxCriticalNesting > 0) {
+			pxCurrentTCB->uxCriticalNesting--;
+
+			if (pxCurrentTCB->uxCriticalNesting == 0) {
+				portENABLE_INTERRUPTS();
+			}
+		}
+	}
+}
+
+#endif
+/*-----------------------------------------------------------*/
+
+
+
+
diff --git a/gyro_board/src/usb/FreeRTOSConfig.h b/gyro_board/src/usb/FreeRTOSConfig.h
new file mode 100644
index 0000000..5a46dad
--- /dev/null
+++ b/gyro_board/src/usb/FreeRTOSConfig.h
@@ -0,0 +1,159 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
+
+#include "LPC17xx.h"
+
+/*-----------------------------------------------------------
+ * Application specific definitions.
+ *
+ * These definitions should be adjusted for your particular hardware and
+ * application requirements.
+ *
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
+ *----------------------------------------------------------*/
+
+#define configUSE_PREEMPTION		1
+#define configUSE_IDLE_HOOK		0
+#define configMAX_PRIORITIES		((unsigned portBASE_TYPE) 5)
+#define configUSE_TICK_HOOK		1
+#define configCPU_CLOCK_HZ		((unsigned long) 100000000)
+#define configTICK_RATE_HZ		((portTickType ) 1000)
+#define configMINIMAL_STACK_SIZE	((unsigned short) 80)
+#define configTOTAL_HEAP_SIZE		((size_t) (19 * 1024))
+#define configMAX_TASK_NAME_LEN		(12)
+#define configUSE_TRACE_FACILITY	1
+#define configUSE_16_BIT_TICKS		0
+#define configIDLE_SHOULD_YIELD		0
+#define configUSE_CO_ROUTINES 		0
+#define configUSE_MUTEXES		1
+
+#define configMAX_CO_ROUTINE_PRIORITIES (2)
+
+#define configUSE_COUNTING_SEMAPHORES 	0
+#define configUSE_ALTERNATIVE_API 	0
+#define configCHECK_FOR_STACK_OVERFLOW	2
+#define configUSE_RECURSIVE_MUTEXES	1
+#define configQUEUE_REGISTRY_SIZE	10
+#define configGENERATE_RUN_TIME_STATS	1
+
+/* Set the following definitions to 1 to include the API function, or zero
+to exclude the API function. */
+
+#define INCLUDE_vTaskPrioritySet		1
+#define INCLUDE_uxTaskPriorityGet		1
+#define INCLUDE_vTaskDelete			1
+#define INCLUDE_vTaskCleanUpResources		0
+#define INCLUDE_vTaskSuspend			1
+#define INCLUDE_vTaskDelayUntil			1
+#define INCLUDE_vTaskDelay			1
+#define INCLUDE_uxTaskGetStackHighWaterMark	1
+
+/*-----------------------------------------------------------
+ * Ethernet configuration.
+ *-----------------------------------------------------------*/
+
+/* MAC address configuration. */
+#define configMAC_ADDR0	0x00
+#define configMAC_ADDR1	0x12
+#define configMAC_ADDR2	0x13
+#define configMAC_ADDR3	0x10
+#define configMAC_ADDR4	0x15
+#define configMAC_ADDR5	0x11
+
+/* IP address configuration. */
+#define configIP_ADDR0		192
+#define configIP_ADDR1		168
+#define configIP_ADDR2		0
+#define configIP_ADDR3		201
+
+/* Netmask configuration. */
+#define configNET_MASK0		255
+#define configNET_MASK1		255
+#define configNET_MASK2		255
+#define configNET_MASK3		0
+
+/* Use the system definition, if there is one */
+#ifdef __NVIC_PRIO_BITS
+#define configPRIO_BITS       __NVIC_PRIO_BITS
+#else
+#define configPRIO_BITS       5        /* 32 priority levels */
+#endif
+
+/* The lowest priority. */
+#define configKERNEL_INTERRUPT_PRIORITY 	(31 << (8 - configPRIO_BITS))
+/* Priority 5, or 160 as only the top three bits are implemented. */
+#define configMAX_SYSCALL_INTERRUPT_PRIORITY 	(5 << (8 - configPRIO_BITS))
+
+/* Priorities passed to NVIC_SetPriority() do not require shifting as the
+function does the shifting itself.  Note these priorities need to be equal to
+or lower than configMAX_SYSCALL_INTERRUPT_PRIORITY - therefore the numeric
+value needs to be equal to or greater than 5 (on the Cortex M3 the lower the
+numeric value the higher the interrupt priority). */
+#define configEMAC_INTERRUPT_PRIORITY		5
+#define configCAN_INTERRUPT_PRIORITY		5
+#define configUSB_INTERRUPT_PRIORITY		6
+
+
+
+/*-----------------------------------------------------------
+ * Macros required to setup the timer for the run time stats.
+ *-----------------------------------------------------------*/
+extern void vConfigureTimerForRunTimeStats(void);
+#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()
+#define portGET_RUN_TIME_COUNTER_VALUE() TIM0->TC
+
+#endif /* FREERTOS_CONFIG_H */
diff --git a/gyro_board/src/usb/LPC17xx.h b/gyro_board/src/usb/LPC17xx.h
new file mode 100644
index 0000000..1743027
--- /dev/null
+++ b/gyro_board/src/usb/LPC17xx.h
@@ -0,0 +1,1052 @@
+#ifndef __LPC17xx_H
+#define __LPC17xx_H
+
+/* System Control Block (SCB) includes:
+   Flash Accelerator Module, Clocking and Power Control, External Interrupts,
+   Reset, System Control and Status
+*/
+#define SCB_BASE_ADDR   0x400FC000
+
+#define PCONP_PCTIM0    0x00000002
+#define PCONP_PCTIM1    0x00000004
+#define PCONP_PCUART0   0x00000008
+#define PCONP_PCUART1   0x00000010
+#define PCONP_PCPWM1    0x00000040
+#define PCONP_PCI2C0    0x00000080
+#define PCONP_PCSPI     0x00000100
+#define PCONP_PCRTC     0x00000200
+#define PCONP_PCSSP1    0x00000400
+#define PCONP_PCAD      0x00001000
+#define PCONP_PCCAN1    0x00002000
+#define PCONP_PCCAN2    0x00004000
+#define PCONP_PCGPIO    0x00008000
+#define PCONP_PCRIT     0x00010000
+#define PCONP_PCMCPWM   0x00020000
+#define PCONP_PCQEI     0x00040000
+#define PCONP_PCI2C1    0x00080000
+#define PCONP_PCSSP0    0x00200000
+#define PCONP_PCTIM2    0x00400000
+#define PCONP_PCTIM3    0x00800000
+#define PCONP_PCUART2   0x01000000
+#define PCONP_PCUART3   0x02000000
+#define PCONP_PCI2C2    0x04000000
+#define PCONP_PCI2S     0x08000000
+#define PCONP_PCGPDMA   0x20000000
+#define PCONP_PCENET    0x40000000
+#define PCONP_PCUSB     0x80000000
+
+#define PLLCON_PLLE     0x00000001
+#define PLLCON_PLLC     0x00000002
+#define PLLCON_MASK     0x00000003
+
+#define PLLCFG_MUL1     0x00000000
+#define PLLCFG_MUL2     0x00000001
+#define PLLCFG_MUL3     0x00000002
+#define PLLCFG_MUL4     0x00000003
+#define PLLCFG_MUL5     0x00000004
+#define PLLCFG_MUL6     0x00000005
+#define PLLCFG_MUL7     0x00000006
+#define PLLCFG_MUL8     0x00000007
+#define PLLCFG_MUL9     0x00000008
+#define PLLCFG_MUL10    0x00000009
+#define PLLCFG_MUL11    0x0000000A
+#define PLLCFG_MUL12    0x0000000B
+#define PLLCFG_MUL13    0x0000000C
+#define PLLCFG_MUL14    0x0000000D
+#define PLLCFG_MUL15    0x0000000E
+#define PLLCFG_MUL16    0x0000000F
+#define PLLCFG_MUL17    0x00000010
+#define PLLCFG_MUL18    0x00000011
+#define PLLCFG_MUL19    0x00000012
+#define PLLCFG_MUL20    0x00000013
+#define PLLCFG_MUL21    0x00000014
+#define PLLCFG_MUL22    0x00000015
+#define PLLCFG_MUL23    0x00000016
+#define PLLCFG_MUL24    0x00000017
+#define PLLCFG_MUL25    0x00000018
+#define PLLCFG_MUL26    0x00000019
+#define PLLCFG_MUL27    0x0000001A
+#define PLLCFG_MUL28    0x0000001B
+#define PLLCFG_MUL29    0x0000001C
+#define PLLCFG_MUL30    0x0000001D
+#define PLLCFG_MUL31    0x0000001E
+#define PLLCFG_MUL32    0x0000001F
+#define PLLCFG_MUL33    0x00000020
+#define PLLCFG_MUL34    0x00000021
+#define PLLCFG_MUL35    0x00000022
+#define PLLCFG_MUL36    0x00000023
+
+#define PLLCFG_DIV1     0x00000000
+#define PLLCFG_DIV2     0x00010000
+#define PLLCFG_DIV3     0x00020000
+#define PLLCFG_DIV4     0x00030000
+#define PLLCFG_DIV5     0x00040000
+#define PLLCFG_DIV6     0x00050000
+#define PLLCFG_DIV7     0x00060000
+#define PLLCFG_DIV8     0x00070000
+#define PLLCFG_DIV9     0x00080000
+#define PLLCFG_DIV10    0x00090000
+#define PLLCFG_MASK		0x00FF7FFF
+
+#define PLLSTAT_MSEL_MASK	0x00007FFF
+#define PLLSTAT_NSEL_MASK	0x00FF0000
+
+#define PLLSTAT_PLLE	(1 << 24)
+#define PLLSTAT_PLLC	(1 << 25)
+#define PLLSTAT_PLOCK	(1 << 26)
+
+#define PLLFEED_FEED1   0x000000AA
+#define PLLFEED_FEED2   0x00000055
+
+#define NVIC_IRQ_WDT         0u         // IRQ0,  exception number 16
+#define NVIC_IRQ_TIMER0      1u         // IRQ1,  exception number 17
+#define NVIC_IRQ_TIMER1      2u         // IRQ2,  exception number 18
+#define NVIC_IRQ_TIMER2      3u         // IRQ3,  exception number 19
+#define NVIC_IRQ_TIMER3      4u         // IRQ4,  exception number 20
+#define NVIC_IRQ_UART0       5u         // IRQ5,  exception number 21
+#define NVIC_IRQ_UART1       6u         // IRQ6,  exception number 22
+#define NVIC_IRQ_UART2       7u         // IRQ7,  exception number 23
+#define NVIC_IRQ_UART3       8u         // IRQ8,  exception number 24
+#define NVIC_IRQ_PWM1        9u         // IRQ9,  exception number 25
+#define NVIC_IRQ_I2C0        10u        // IRQ10, exception number 26
+#define NVIC_IRQ_I2C1        11u        // IRQ11, exception number 27
+#define NVIC_IRQ_I2C2        12u        // IRQ12, exception number 28
+#define NVIC_IRQ_SPI         13u        // IRQ13, exception number 29
+#define NVIC_IRQ_SSP0        14u        // IRQ14, exception number 30
+#define NVIC_IRQ_SSP1        15u        // IRQ15, exception number 31
+#define NVIC_IRQ_PLL0        16u        // IRQ16, exception number 32
+#define NVIC_IRQ_RTC         17u        // IRQ17, exception number 33
+#define NVIC_IRQ_EINT0       18u        // IRQ18, exception number 34
+#define NVIC_IRQ_EINT1       19u        // IRQ19, exception number 35
+#define NVIC_IRQ_EINT2       20u        // IRQ20, exception number 36
+#define NVIC_IRQ_EINT3       21u        // IRQ21, exception number 37
+#define NVIC_IRQ_ADC         22u        // IRQ22, exception number 38
+#define NVIC_IRQ_BOD         23u        // IRQ23, exception number 39
+#define NVIC_IRQ_USB         24u        // IRQ24, exception number 40
+#define NVIC_IRQ_CAN         25u        // IRQ25, exception number 41
+#define NVIC_IRQ_GPDMA       26u        // IRQ26, exception number 42
+#define NVIC_IRQ_I2S         27u        // IRQ27, exception number 43
+#define NVIC_IRQ_ETHERNET    28u        // IRQ28, exception number 44
+#define NVIC_IRQ_RIT         29u        // IRQ29, exception number 45
+#define NVIC_IRQ_MCPWM       30u        // IRQ30, exception number 46
+#define NVIC_IRQ_QE          31u        // IRQ31, exception number 47
+#define NVIC_IRQ_PLL1        32u        // IRQ32, exception number 48
+#define NVIC_IRQ_USB_ACT     33u        // IRQ33, exception number 49
+#define NVIC_IRQ_CAN_ACT     34u        // IRQ34, exception number 50
+
+
+#endif  // __LPC17xx_H
+
+
+#ifndef CMSIS_17xx_H
+#define CMSIS_17xx_H
+
+/******************************************************************************
+ * @file:    LPC17xx.h
+ * @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File for
+ *           NXP LPC17xx Device Series
+ * @version: V1.1
+ * @date:    14th May 2009
+ *----------------------------------------------------------------------------
+ *
+ * Copyright (C) 2008 ARM Limited. All rights reserved.
+ *
+ * ARM Limited (ARM) is supplying this software for use with Cortex-M3
+ * processor based microcontrollers.  This file can be freely distributed
+ * within development tools that are supporting such ARM based processors.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ ******************************************************************************/
+
+
+#ifndef __LPC17xx_H__
+#define __LPC17xx_H__
+
+/*
+ * ==========================================================================
+ * ---------- Interrupt Number Definition -----------------------------------
+ * ==========================================================================
+ */
+
+typedef enum IRQn {
+        /******  Cortex-M3 Processor Exceptions Numbers ***************************************************/
+        NonMaskableInt_IRQn           = -14,      /*!< 2 Non Maskable Interrupt                         */
+        MemoryManagement_IRQn         = -12,      /*!< 4 Cortex-M3 Memory Management Interrupt          */
+        BusFault_IRQn                 = -11,      /*!< 5 Cortex-M3 Bus Fault Interrupt                  */
+        UsageFault_IRQn               = -10,      /*!< 6 Cortex-M3 Usage Fault Interrupt                */
+        SVCall_IRQn                   = -5,       /*!< 11 Cortex-M3 SV Call Interrupt                   */
+        DebugMonitor_IRQn             = -4,       /*!< 12 Cortex-M3 Debug Monitor Interrupt             */
+        PendSV_IRQn                   = -2,       /*!< 14 Cortex-M3 Pend SV Interrupt                   */
+        SysTick_IRQn                  = -1,       /*!< 15 Cortex-M3 System Tick Interrupt               */
+
+        /******  LPC17xx Specific Interrupt Numbers *******************************************************/
+        WDT_IRQn                      = 0,        /*!< Watchdog Timer Interrupt                         */
+        TIMER0_IRQn                   = 1,        /*!< Timer0 Interrupt                                 */
+        TIMER1_IRQn                   = 2,        /*!< Timer1 Interrupt                                 */
+        TIMER2_IRQn                   = 3,        /*!< Timer2 Interrupt                                 */
+        TIMER3_IRQn                   = 4,        /*!< Timer3 Interrupt                                 */
+        UART0_IRQn                    = 5,        /*!< UART0 Interrupt                                  */
+        UART1_IRQn                    = 6,        /*!< UART1 Interrupt                                  */
+        UART2_IRQn                    = 7,        /*!< UART2 Interrupt                                  */
+        UART3_IRQn                    = 8,        /*!< UART3 Interrupt                                  */
+        PWM1_IRQn                     = 9,        /*!< PWM1 Interrupt                                   */
+        I2C0_IRQn                     = 10,       /*!< I2C0 Interrupt                                   */
+        I2C1_IRQn                     = 11,       /*!< I2C1 Interrupt                                   */
+        I2C2_IRQn                     = 12,       /*!< I2C2 Interrupt                                   */
+        SPI_IRQn                      = 13,       /*!< SPI Interrupt                                    */
+        SSP0_IRQn                     = 14,       /*!< SSP0 Interrupt                                   */
+        SSP1_IRQn                     = 15,       /*!< SSP1 Interrupt                                   */
+        PLL0_IRQn                     = 16,       /*!< PLL0 Lock (Main PLL) Interrupt                   */
+        RTC_IRQn                      = 17,       /*!< Real Time Clock Interrupt                        */
+        EINT0_IRQn                    = 18,       /*!< External Interrupt 0 Interrupt                   */
+        EINT1_IRQn                    = 19,       /*!< External Interrupt 1 Interrupt                   */
+        EINT2_IRQn                    = 20,       /*!< External Interrupt 2 Interrupt                   */
+        EINT3_IRQn                    = 21,       /*!< External Interrupt 3 Interrupt                   */
+        ADC_IRQn                      = 22,       /*!< A/D Converter Interrupt                          */
+        BOD_IRQn                      = 23,       /*!< Brown-Out Detect Interrupt                       */
+        USB_IRQn                      = 24,       /*!< USB Interrupt                                    */
+        CAN_IRQn                      = 25,       /*!< CAN Interrupt                                    */
+        DMA_IRQn                      = 26,       /*!< General Purpose DMA Interrupt                    */
+        I2S_IRQn                      = 27,       /*!< I2S Interrupt                                    */
+        ENET_IRQn                     = 28,       /*!< Ethernet Interrupt                               */
+        RIT_IRQn                      = 29,       /*!< Repetitive Interrupt Timer Interrupt             */
+        MCPWM_IRQn                    = 30,       /*!< Motor Control PWM Interrupt                      */
+        QEI_IRQn                      = 31,       /*!< Quadrature Encoder Interface Interrupt           */
+        PLL1_IRQn                     = 32,       /*!< PLL1 Lock (USB PLL) Interrupt                    */
+} IRQn_Type;
+
+
+/*
+ * ==========================================================================
+ * ----------- Processor and Core Peripheral Section ------------------------
+ * ==========================================================================
+ */
+
+/* Configuration of the Cortex-M3 Processor and Core Peripherals */
+#define __MPU_PRESENT             1         /*!< MPU present or not                               */
+#define __NVIC_PRIO_BITS          5         /*!< Number of Bits used for Priority Levels          */
+#define __Vendor_SysTickConfig    0         /*!< Set to 1 if different SysTick Config is used     */
+
+
+//#include "..\core_cm3.h"                    /* Cortex-M3 processor and core peripherals           */
+#include "core_cm3.h"
+#include "system_LPC17xx.h"                 /* System Header                                      */
+
+
+
+/**
+ * Initialize the system clock
+ *
+ * @param  none
+ * @return none
+ *
+ * @brief  Setup the microcontroller system.
+ *         Initialize the System and update the SystemFrequency variable.
+ */
+extern void SystemInit(void);
+
+
+/******************************************************************************/
+/*                Device Specific Peripheral registers structures             */
+/******************************************************************************/
+
+/*------------- System Control (SC) ------------------------------------------*/
+typedef struct {
+        __IO uint32_t FLASHCFG;               /* Flash Accelerator Module           */
+        uint32_t RESERVED0[31];
+        __IO uint32_t PLL0CON;                /* Clocking and Power Control         */
+        __IO uint32_t PLL0CFG;
+        __I  uint32_t PLL0STAT;
+        __O  uint32_t PLL0FEED;
+        uint32_t RESERVED1[4];
+        __IO uint32_t PLL1CON;
+        __IO uint32_t PLL1CFG;
+        __I  uint32_t PLL1STAT;
+        __O  uint32_t PLL1FEED;
+        uint32_t RESERVED2[4];
+        __IO uint32_t PCON;
+        __IO uint32_t PCONP;
+        uint32_t RESERVED3[15];
+        __IO uint32_t CCLKCFG;
+        __IO uint32_t USBCLKCFG;
+        __IO uint32_t CLKSRCSEL;
+        uint32_t RESERVED4[12];
+        __IO uint32_t EXTINT;                 /* External Interrupts                */
+        uint32_t RESERVED5;
+        __IO uint32_t EXTMODE;
+        __IO uint32_t EXTPOLAR;
+        uint32_t RESERVED6[12];
+        __IO uint32_t RSID;                   /* Reset                              */
+        uint32_t RESERVED7[7];
+        __IO uint32_t SCS;                    /* Syscon Miscellaneous Registers     */
+        __IO uint32_t IRCTRIM;                /* Clock Dividers                     */
+        __IO uint32_t PCLKSEL0;
+        __IO uint32_t PCLKSEL1;
+        uint32_t RESERVED8[4];
+        __IO uint32_t USBIntSt;               /* USB Device/OTG Interrupt Register  */
+        uint32_t RESERVED9;
+        __IO uint32_t CLKOUTCFG;              /* Clock Output Configuration         */
+} SC_TypeDef;
+
+/*------------- Pin Connect Block (PINCON) -----------------------------------*/
+typedef struct {
+        __IO uint32_t PINSEL0;
+        __IO uint32_t PINSEL1;
+        __IO uint32_t PINSEL2;
+        __IO uint32_t PINSEL3;
+        __IO uint32_t PINSEL4;
+        __IO uint32_t PINSEL5;
+        __IO uint32_t PINSEL6;
+        __IO uint32_t PINSEL7;
+        __IO uint32_t PINSEL8;
+        __IO uint32_t PINSEL9;
+        __IO uint32_t PINSEL10;
+        uint32_t RESERVED0[5];
+        __IO uint32_t PINMODE0;
+        __IO uint32_t PINMODE1;
+        __IO uint32_t PINMODE2;
+        __IO uint32_t PINMODE3;
+        __IO uint32_t PINMODE4;
+        __IO uint32_t PINMODE5;
+        __IO uint32_t PINMODE6;
+        __IO uint32_t PINMODE7;
+        __IO uint32_t PINMODE8;
+        __IO uint32_t PINMODE9;
+        __IO uint32_t PINMODE_OD0;
+        __IO uint32_t PINMODE_OD1;
+        __IO uint32_t PINMODE_OD2;
+        __IO uint32_t PINMODE_OD3;
+        __IO uint32_t PINMODE_OD4;
+} PINCON_TypeDef;
+
+/*------------- General Purpose Input/Output (GPIO) --------------------------*/
+typedef struct {
+        __IO uint32_t FIODIR;
+        uint32_t RESERVED0[3];
+        __IO uint32_t FIOMASK;
+        __IO uint32_t FIOPIN;
+        __IO uint32_t FIOSET;
+        __O  uint32_t FIOCLR;
+} GPIO_TypeDef;
+
+typedef struct {
+        __I  uint32_t IntStatus;
+        __I  uint32_t IO0IntStatR;
+        __I  uint32_t IO0IntStatF;
+        __O  uint32_t IO0IntClr;
+        __IO uint32_t IO0IntEnR;
+        __IO uint32_t IO0IntEnF;
+        uint32_t RESERVED0[3];
+        __I  uint32_t IO2IntStatR;
+        __I  uint32_t IO2IntStatF;
+        __O  uint32_t IO2IntClr;
+        __IO uint32_t IO2IntEnR;
+        __IO uint32_t IO2IntEnF;
+} GPIOINT_TypeDef;
+
+/*------------- Timer (TIM) --------------------------------------------------*/
+typedef struct {
+        __IO uint32_t IR;
+        __IO uint32_t TCR;
+        __IO uint32_t TC;
+        __IO uint32_t PR;
+        __IO uint32_t PC;
+        __IO uint32_t MCR;
+        __IO uint32_t MR0;
+        __IO uint32_t MR1;
+        __IO uint32_t MR2;
+        __IO uint32_t MR3;
+        __IO uint32_t CCR;
+        __I  uint32_t CR0;
+        __I  uint32_t CR1;
+        uint32_t RESERVED0[2];
+        __IO uint32_t EMR;
+        uint32_t RESERVED1[24];
+        __IO uint32_t CTCR;
+} TIM_TypeDef;
+
+/*------------- Pulse-Width Modulation (PWM) ---------------------------------*/
+typedef struct {
+        __IO uint32_t IR;
+        __IO uint32_t TCR;
+        __IO uint32_t TC;
+        __IO uint32_t PR;
+        __IO uint32_t PC;
+        __IO uint32_t MCR;
+        __IO uint32_t MR0;
+        __IO uint32_t MR1;
+        __IO uint32_t MR2;
+        __IO uint32_t MR3;
+        __IO uint32_t CCR;
+        __I  uint32_t CR0;
+        __I  uint32_t CR1;
+        __I  uint32_t CR2;
+        __I  uint32_t CR3;
+        __IO uint32_t MR4;
+        __IO uint32_t MR5;
+        __IO uint32_t MR6;
+        __IO uint32_t PCR;
+        __IO uint32_t LER;
+        uint32_t RESERVED0[7];
+        __IO uint32_t CTCR;
+} PWM_TypeDef;
+
+/*------------- Universal Asynchronous Receiver Transmitter (UART) -----------*/
+typedef struct {
+        union {
+                __I  uint8_t  RBR;
+                __O  uint8_t  THR;
+                __IO uint8_t  DLL;
+                uint32_t RESERVED0;
+        };
+        union {
+                __IO uint8_t  DLM;
+                __IO uint32_t IER;
+        };
+        union {
+                __I  uint32_t IIR;
+                __O  uint8_t  FCR;
+        };
+        __IO uint8_t  LCR;
+        uint8_t  RESERVED1[7];
+        __IO uint8_t  LSR;
+        uint8_t  RESERVED2[7];
+        __IO uint8_t  SCR;
+        uint8_t  RESERVED3[3];
+        __IO uint32_t ACR;
+        __IO uint8_t  ICR;
+        uint8_t  RESERVED4[3];
+        __IO uint8_t  FDR;
+        uint8_t  RESERVED5[7];
+        __IO uint8_t  TER;
+        uint8_t  RESERVED6[27];
+        __IO uint8_t  RS485CTRL;
+        uint8_t  RESERVED7[3];
+        __IO uint8_t  ADRMATCH;
+} UART_TypeDef;
+
+typedef struct {
+        union {
+                __I  uint8_t  RBR;
+                __O  uint8_t  THR;
+                __IO uint8_t  DLL;
+                uint32_t RESERVED0;
+        };
+        union {
+                __IO uint8_t  DLM;
+                __IO uint32_t IER;
+        };
+        union {
+                __I  uint32_t IIR;
+                __O  uint8_t  FCR;
+        };
+        __IO uint8_t  LCR;
+        uint8_t  RESERVED1[3];
+        __IO uint8_t  MCR;
+        uint8_t  RESERVED2[3];
+        __IO uint8_t  LSR;
+        uint8_t  RESERVED3[3];
+        __IO uint8_t  MSR;
+        uint8_t  RESERVED4[3];
+        __IO uint8_t  SCR;
+        uint8_t  RESERVED5[3];
+        __IO uint32_t ACR;
+        uint32_t RESERVED6;
+        __IO uint32_t FDR;
+        uint32_t RESERVED7;
+        __IO uint8_t  TER;
+        uint8_t  RESERVED8[27];
+        __IO uint8_t  RS485CTRL;
+        uint8_t  RESERVED9[3];
+        __IO uint8_t  ADRMATCH;
+        uint8_t  RESERVED10[3];
+        __IO uint8_t  RS485DLY;
+} UART1_TypeDef;
+
+/*------------- Serial Peripheral Interface (SPI) ----------------------------*/
+typedef struct {
+        __IO uint32_t SPCR;
+        __I  uint32_t SPSR;
+        __IO uint32_t SPDR;
+        __IO uint32_t SPCCR;
+        uint32_t RESERVED0[3];
+        __IO uint32_t SPINT;
+} SPI_TypeDef;
+
+/*------------- Synchronous Serial Communication (SSP) -----------------------*/
+typedef struct {
+        __IO uint32_t CR0;
+        __IO uint32_t CR1;
+        __IO uint32_t DR;
+        __I  uint32_t SR;
+        __IO uint32_t CPSR;
+        __IO uint32_t IMSC;
+        __IO uint32_t RIS;
+        __IO uint32_t MIS;
+        __IO uint32_t ICR;
+        __IO uint32_t DMACR;
+} SSP_TypeDef;
+
+/*------------- Inter-Integrated Circuit (I2C) -------------------------------*/
+typedef struct {
+        __IO uint32_t I2CONSET;
+        __I  uint32_t I2STAT;
+        __IO uint32_t I2DAT;
+        __IO uint32_t I2ADR0;
+        __IO uint32_t I2SCLH;
+        __IO uint32_t I2SCLL;
+        __O  uint32_t I2CONCLR;
+        __IO uint32_t MMCTRL;
+        __IO uint32_t I2ADR1;
+        __IO uint32_t I2ADR2;
+        __IO uint32_t I2ADR3;
+        __I  uint32_t I2DATA_BUFFER;
+        __IO uint32_t I2MASK0;
+        __IO uint32_t I2MASK1;
+        __IO uint32_t I2MASK2;
+        __IO uint32_t I2MASK3;
+} I2C_TypeDef;
+
+/*------------- Inter IC Sound (I2S) -----------------------------------------*/
+typedef struct {
+        __IO uint32_t I2SDAO;
+        __IO  uint32_t I2SDAI;
+        __O  uint32_t I2STXFIFO;
+        __I  uint32_t I2SRXFIFO;
+        __I  uint32_t I2SSTATE;
+        __IO uint32_t I2SDMA1;
+        __IO uint32_t I2SDMA2;
+        __IO uint32_t I2SIRQ;
+        __IO uint32_t I2STXRATE;
+        __IO uint32_t I2SRXRATE;
+        __IO uint32_t I2STXBITRATE;
+        __IO uint32_t I2SRXBITRATE;
+        __IO uint32_t I2STXMODE;
+        __IO uint32_t I2SRXMODE;
+} I2S_TypeDef;
+
+/*------------- Repetitive Interrupt Timer (RIT) -----------------------------*/
+typedef struct {
+        __IO uint32_t RICOMPVAL;
+        __IO uint32_t RIMASK;
+        __IO uint8_t  RICTRL;
+        uint8_t  RESERVED0[3];
+        __IO uint32_t RICOUNTER;
+} RIT_TypeDef;
+
+/*------------- Real-Time Clock (RTC) ----------------------------------------*/
+typedef struct {
+        __IO uint8_t  ILR;
+        uint8_t  RESERVED0[3];
+        __IO uint8_t  CCR;
+        uint8_t  RESERVED1[3];
+        __IO uint8_t  CIIR;
+        uint8_t  RESERVED2[3];
+        __IO uint8_t  AMR;
+        uint8_t  RESERVED3[3];
+        __I  uint32_t CTIME0;
+        __I  uint32_t CTIME1;
+        __I  uint32_t CTIME2;
+        __IO uint8_t  SEC;
+        uint8_t  RESERVED4[3];
+        __IO uint8_t  MIN;
+        uint8_t  RESERVED5[3];
+        __IO uint8_t  HOUR;
+        uint8_t  RESERVED6[3];
+        __IO uint8_t  DOM;
+        uint8_t  RESERVED7[3];
+        __IO uint8_t  DOW;
+        uint8_t  RESERVED8[3];
+        __IO uint16_t DOY;
+        uint16_t RESERVED9;
+        __IO uint8_t  MONTH;
+        uint8_t  RESERVED10[3];
+        __IO uint16_t YEAR;
+        uint16_t RESERVED11;
+        __IO uint32_t CALIBRATION;
+        __IO uint32_t GPREG0;
+        __IO uint32_t GPREG1;
+        __IO uint32_t GPREG2;
+        __IO uint32_t GPREG3;
+        __IO uint32_t GPREG4;
+        __IO uint8_t  WAKEUPDIS;
+        uint8_t  RESERVED12[3];
+        __IO uint8_t  PWRCTRL;
+        uint8_t  RESERVED13[3];
+        __IO uint8_t  ALSEC;
+        uint8_t  RESERVED14[3];
+        __IO uint8_t  ALMIN;
+        uint8_t  RESERVED15[3];
+        __IO uint8_t  ALHOUR;
+        uint8_t  RESERVED16[3];
+        __IO uint8_t  ALDOM;
+        uint8_t  RESERVED17[3];
+        __IO uint8_t  ALDOW;
+        uint8_t  RESERVED18[3];
+        __IO uint16_t ALDOY;
+        uint16_t RESERVED19;
+        __IO uint8_t  ALMON;
+        uint8_t  RESERVED20[3];
+        __IO uint16_t ALYEAR;
+        uint16_t RESERVED21;
+} RTC_TypeDef;
+
+/*------------- Watchdog Timer (WDT) -----------------------------------------*/
+typedef struct {
+        __IO uint8_t  WDMOD;
+        uint8_t  RESERVED0[3];
+        __IO uint32_t WDTC;
+        __O  uint8_t  WDFEED;
+        uint8_t  RESERVED1[3];
+        __I  uint32_t WDTV;
+        __IO uint32_t WDCLKSEL;
+} WDT_TypeDef;
+
+/*------------- Analog-to-Digital Converter (ADC) ----------------------------*/
+typedef struct {
+        __IO uint32_t ADCR;
+        __IO uint32_t ADGDR;
+        uint32_t RESERVED0;
+        __IO uint32_t ADINTEN;
+        __I  uint32_t ADDR0;
+        __I  uint32_t ADDR1;
+        __I  uint32_t ADDR2;
+        __I  uint32_t ADDR3;
+        __I  uint32_t ADDR4;
+        __I  uint32_t ADDR5;
+        __I  uint32_t ADDR6;
+        __I  uint32_t ADDR7;
+        __I  uint32_t ADSTAT;
+        __IO uint32_t ADTRM;
+} ADC_TypeDef;
+
+/*------------- Digital-to-Analog Converter (DAC) ----------------------------*/
+typedef struct {
+        __IO uint32_t DACR;
+        __IO uint32_t DACCTRL;
+        __IO uint16_t DACCNTVAL;
+} DAC_TypeDef;
+
+/*------------- Motor Control Pulse-Width Modulation (MCPWM) -----------------*/
+typedef struct {
+        __I  uint32_t MCCON;
+        __O  uint32_t MCCON_SET;
+        __O  uint32_t MCCON_CLR;
+        __I  uint32_t MCCAPCON;
+        __O  uint32_t MCCAPCON_SET;
+        __O  uint32_t MCCAPCON_CLR;
+        __IO uint32_t MCTC0;
+        __IO uint32_t MCTC1;
+        __IO uint32_t MCTC2;
+        __IO uint32_t MCLIM0;
+        __IO uint32_t MCLIM1;
+        __IO uint32_t MCLIM2;
+        __IO uint32_t MCMAT0;
+        __IO uint32_t MCMAT1;
+        __IO uint32_t MCMAT2;
+        __IO uint32_t MCDEADTIME;
+        __IO uint32_t MCCP;
+        __IO uint32_t MCCR0;
+        __IO uint32_t MCCR1;
+        __IO uint32_t MCCR2;
+        __I  uint32_t MCINTEN;
+        __O  uint32_t MCINTEN_SET;
+        __O  uint32_t MCINTEN_CLR;
+        __I  uint32_t MCCNTCON;
+        __O  uint32_t MCCNTCON_SET;
+        __O  uint32_t MCCNTCON_CLR;
+        __I  uint32_t MCINTFLAG;
+        __O  uint32_t MCINTFLAG_SET;
+        __O  uint32_t MCINTFLAG_CLR;
+        __O  uint32_t MCCAP_CLR;
+} MCPWM_TypeDef;
+
+/*------------- Quadrature Encoder Interface (QEI) ---------------------------*/
+typedef struct {
+        __O  uint32_t QEICON;
+        __I  uint32_t QEISTAT;
+        __IO uint32_t QEICONF;
+        __I  uint32_t QEIPOS;
+        __IO uint32_t QEIMAXPOS;
+        __IO uint32_t CMPOS0;
+        __IO uint32_t CMPOS1;
+        __IO uint32_t CMPOS2;
+        __I  uint32_t INXCNT;
+        __IO uint32_t INXCMP;
+        __IO uint32_t QEILOAD;
+        __I  uint32_t QEITIME;
+        __I  uint32_t QEIVEL;
+        __I  uint32_t QEICAP;
+        __IO uint32_t VELCOMP;
+        __IO uint32_t FILTER;
+        uint32_t RESERVED0[998];
+        __O  uint32_t QEIIEC;
+        __O  uint32_t QEIIES;
+        __I  uint32_t QEIINTSTAT;
+        __I  uint32_t QEIIE;
+        __O  uint32_t QEICLR;
+        __O  uint32_t QEISET;
+} QEI_TypeDef;
+
+/*------------- Controller Area Network (CAN) --------------------------------*/
+typedef struct {
+        __IO uint32_t mask[512];              /* ID Masks                           */
+} CANAF_RAM_TypeDef;
+
+typedef struct {                        /* Acceptance Filter Registers        */
+        __IO uint32_t AFMR;
+        __IO uint32_t SFF_sa;
+        __IO uint32_t SFF_GRP_sa;
+        __IO uint32_t EFF_sa;
+        __IO uint32_t EFF_GRP_sa;
+        __IO uint32_t ENDofTable;
+        __I  uint32_t LUTerrAd;
+        __I  uint32_t LUTerr;
+} CANAF_TypeDef;
+
+typedef struct {                        /* Central Registers                  */
+        __I  uint32_t CANTxSR;
+        __I  uint32_t CANRxSR;
+        __I  uint32_t CANMSR;
+} CANCR_TypeDef;
+
+typedef struct {                        /* Controller Registers               */
+        __IO uint32_t MOD;
+        __O  uint32_t CMR;
+        __IO uint32_t GSR;
+        __I  uint32_t ICR;
+        __IO uint32_t IER;
+        __IO uint32_t BTR;
+        __IO uint32_t EWL;
+        __I  uint32_t SR;
+        __IO uint32_t RFS;
+        __IO uint32_t RID;
+        __IO uint32_t RDA;
+        __IO uint32_t RDB;
+        __IO uint32_t TFI1;
+        __IO uint32_t TID1;
+        __IO uint32_t TDA1;
+        __IO uint32_t TDB1;
+        __IO uint32_t TFI2;
+        __IO uint32_t TID2;
+        __IO uint32_t TDA2;
+        __IO uint32_t TDB2;
+        __IO uint32_t TFI3;
+        __IO uint32_t TID3;
+        __IO uint32_t TDA3;
+        __IO uint32_t TDB3;
+} CAN_TypeDef;
+
+/*------------- General Purpose Direct Memory Access (GPDMA) -----------------*/
+typedef struct {                        /* Common Registers                   */
+        __I  uint32_t DMACIntStat;
+        __I  uint32_t DMACIntTCStat;
+        __O  uint32_t DMACIntTCClear;
+        __I  uint32_t DMACIntErrStat;
+        __O  uint32_t DMACIntErrClr;
+        __I  uint32_t DMACRawIntTCStat;
+        __I  uint32_t DMACRawIntErrStat;
+        __I  uint32_t DMACEnbldChns;
+        __IO uint32_t DMACSoftBReq;
+        __IO uint32_t DMACSoftSReq;
+        __IO uint32_t DMACSoftLBReq;
+        __IO uint32_t DMACSoftLSReq;
+        __IO uint32_t DMACConfig;
+        __IO uint32_t DMACSync;
+} GPDMA_TypeDef;
+
+typedef struct {                        /* Channel Registers                  */
+        __IO uint32_t DMACCSrcAddr;
+        __IO uint32_t DMACCDestAddr;
+        __IO uint32_t DMACCLLI;
+        __IO uint32_t DMACCControl;
+        __IO uint32_t DMACCConfig;
+} GPDMACH_TypeDef;
+
+/*------------- Universal Serial Bus (USB) -----------------------------------*/
+typedef struct {
+        __I  uint32_t HcRevision;             /* USB Host Registers                 */
+        __IO uint32_t HcControl;
+        __IO uint32_t HcCommandStatus;
+        __IO uint32_t HcInterruptStatus;
+        __IO uint32_t HcInterruptEnable;
+        __IO uint32_t HcInterruptDisable;
+        __IO uint32_t HcHCCA;
+        __I  uint32_t HcPeriodCurrentED;
+        __IO uint32_t HcControlHeadED;
+        __IO uint32_t HcControlCurrentED;
+        __IO uint32_t HcBulkHeadED;
+        __IO uint32_t HcBulkCurrentED;
+        __I  uint32_t HcDoneHead;
+        __IO uint32_t HcFmInterval;
+        __I  uint32_t HcFmRemaining;
+        __I  uint32_t HcFmNumber;
+        __IO uint32_t HcPeriodicStart;
+        __IO uint32_t HcLSTreshold;
+        __IO uint32_t HcRhDescriptorA;
+        __IO uint32_t HcRhDescriptorB;
+        __IO uint32_t HcRhStatus;
+        __IO uint32_t HcRhPortStatus1;
+        __IO uint32_t HcRhPortStatus2;
+        uint32_t RESERVED0[40];
+        __I  uint32_t Module_ID;
+
+        __I  uint32_t OTGIntSt;               /* USB On-The-Go Registers            */
+        __IO uint32_t OTGIntEn;
+        __O  uint32_t OTGIntSet;
+        __O  uint32_t OTGIntClr;
+        __IO uint32_t OTGStCtrl;
+        __IO uint32_t OTGTmr;
+        uint32_t RESERVED1[58];
+
+        __I  uint32_t USBDevIntSt;            /* USB Device Interrupt Registers     */
+        __IO uint32_t USBDevIntEn;
+        __O  uint32_t USBDevIntClr;
+        __O  uint32_t USBDevIntSet;
+
+        __O  uint32_t USBCmdCode;             /* USB Device SIE Command Registers   */
+        __I  uint32_t USBCmdData;
+
+        __I  uint32_t USBRxData;              /* USB Device Transfer Registers      */
+        __O  uint32_t USBTxData;
+        __I  uint32_t USBRxPLen;
+        __O  uint32_t USBTxPLen;
+        __IO uint32_t USBCtrl;
+        __O  uint32_t USBDevIntPri;
+
+        __I  uint32_t USBEpIntSt;             /* USB Device Endpoint Interrupt Regs */
+        __IO uint32_t USBEpIntEn;
+        __O  uint32_t USBEpIntClr;
+        __O  uint32_t USBEpIntSet;
+        __O  uint32_t USBEpIntPri;
+
+        __IO uint32_t USBReEp;                /* USB Device Endpoint Realization Reg*/
+        __O  uint32_t USBEpInd;
+        __IO uint32_t USBMaxPSize;
+
+        __I  uint32_t USBDMARSt;              /* USB Device DMA Registers           */
+        __O  uint32_t USBDMARClr;
+        __O  uint32_t USBDMARSet;
+        uint32_t RESERVED2[9];
+        __IO uint32_t USBUDCAH;
+        __I  uint32_t USBEpDMASt;
+        __O  uint32_t USBEpDMAEn;
+        __O  uint32_t USBEpDMADis;
+        __I  uint32_t USBDMAIntSt;
+        __IO uint32_t USBDMAIntEn;
+        uint32_t RESERVED3[2];
+        __I  uint32_t USBEoTIntSt;
+        __O  uint32_t USBEoTIntClr;
+        __O  uint32_t USBEoTIntSet;
+        __I  uint32_t USBNDDRIntSt;
+        __O  uint32_t USBNDDRIntClr;
+        __O  uint32_t USBNDDRIntSet;
+        __I  uint32_t USBSysErrIntSt;
+        __O  uint32_t USBSysErrIntClr;
+        __O  uint32_t USBSysErrIntSet;
+        uint32_t RESERVED4[15];
+
+        __I  uint32_t I2C_RX;                 /* USB OTG I2C Registers              */
+        __O  uint32_t I2C_WO;
+        __I  uint32_t I2C_STS;
+        __IO uint32_t I2C_CTL;
+        __IO uint32_t I2C_CLKHI;
+        __O  uint32_t I2C_CLKLO;
+        uint32_t RESERVED5[823];
+
+        union {
+                __IO uint32_t USBClkCtrl;             /* USB Clock Control Registers        */
+                __IO uint32_t OTGClkCtrl;
+        } ;
+        union {
+                __I  uint32_t USBClkSt;
+                __I  uint32_t OTGClkSt;
+        };
+} USB_TypeDef;
+
+/*------------- Ethernet Media Access Controller (EMAC) ----------------------*/
+typedef struct {
+        __IO uint32_t MAC1;                   /* MAC Registers                      */
+        __IO uint32_t MAC2;
+        __IO uint32_t IPGT;
+        __IO uint32_t IPGR;
+        __IO uint32_t CLRT;
+        __IO uint32_t MAXF;
+        __IO uint32_t SUPP;
+        __IO uint32_t TEST;
+        __IO uint32_t MCFG;
+        __IO uint32_t MCMD;
+        __IO uint32_t MADR;
+        __O  uint32_t MWTD;
+        __I  uint32_t MRDD;
+        __I  uint32_t MIND;
+        uint32_t RESERVED0[2];
+        __IO uint32_t SA0;
+        __IO uint32_t SA1;
+        __IO uint32_t SA2;
+        uint32_t RESERVED1[45];
+        __IO uint32_t Command;                /* Control Registers                  */
+        __I  uint32_t Status;
+        __IO uint32_t RxDescriptor;
+        __IO uint32_t RxStatus;
+        __IO uint32_t RxDescriptorNumber;
+        __I  uint32_t RxProduceIndex;
+        __IO uint32_t RxConsumeIndex;
+        __IO uint32_t TxDescriptor;
+        __IO uint32_t TxStatus;
+        __IO uint32_t TxDescriptorNumber;
+        __IO uint32_t TxProduceIndex;
+        __I  uint32_t TxConsumeIndex;
+        uint32_t RESERVED2[10];
+        __I  uint32_t TSV0;
+        __I  uint32_t TSV1;
+        __I  uint32_t RSV;
+        uint32_t RESERVED3[3];
+        __IO uint32_t FlowControlCounter;
+        __I  uint32_t FlowControlStatus;
+        uint32_t RESERVED4[34];
+        __IO uint32_t RxFilterCtrl;           /* Rx Filter Registers                */
+        __IO uint32_t RxFilterWoLStatus;
+        __IO uint32_t RxFilterWoLClear;
+        uint32_t RESERVED5;
+        __IO uint32_t HashFilterL;
+        __IO uint32_t HashFilterH;
+        uint32_t RESERVED6[882];
+        __I  uint32_t IntStatus;              /* Module Control Registers           */
+        __IO uint32_t IntEnable;
+        __O  uint32_t IntClear;
+        __O  uint32_t IntSet;
+        uint32_t RESERVED7;
+        __IO uint32_t PowerDown;
+        uint32_t RESERVED8;
+        __IO uint32_t Module_ID;
+} EMAC_TypeDef;
+
+/******************************************************************************/
+/*                         Peripheral memory map                              */
+/******************************************************************************/
+/* Base addresses                                                             */
+#define FLASH_BASE            (0x00000000UL)
+#define RAM_BASE              (0x10000000UL)
+#define GPIO_BASE             (0x2009C000UL)
+#define APB0_BASE             (0x40000000UL)
+#define APB1_BASE             (0x40080000UL)
+#define AHB_BASE              (0x50000000UL)
+#define CM3_BASE              (0xE0000000UL)
+
+/* APB0 peripherals                                                           */
+#define WDT_BASE              (APB0_BASE + 0x00000)
+#define TIM0_BASE             (APB0_BASE + 0x04000)
+#define TIM1_BASE             (APB0_BASE + 0x08000)
+#define UART0_BASE            (APB0_BASE + 0x0C000)
+#define UART1_BASE            (APB0_BASE + 0x10000)
+#define PWM1_BASE             (APB0_BASE + 0x18000)
+#define I2C0_BASE             (APB0_BASE + 0x1C000)
+#define SPI_BASE              (APB0_BASE + 0x20000)
+#define RTC_BASE              (APB0_BASE + 0x24000)
+#define GPIOINT_BASE          (APB0_BASE + 0x28080)
+#define PINCON_BASE           (APB0_BASE + 0x2C000)
+#define SSP1_BASE             (APB0_BASE + 0x30000)
+#define ADC_BASE              (APB0_BASE + 0x34000)
+#define CANAF_RAM_BASE        (APB0_BASE + 0x38000)
+#define CANAF_BASE            (APB0_BASE + 0x3C000)
+#define CANCR_BASE            (APB0_BASE + 0x40000)
+#define CAN1_BASE             (APB0_BASE + 0x44000)
+#define CAN2_BASE             (APB0_BASE + 0x48000)
+#define I2C1_BASE             (APB0_BASE + 0x5C000)
+
+/* APB1 peripherals                                                           */
+#define SSP0_BASE             (APB1_BASE + 0x08000)
+#define DAC_BASE              (APB1_BASE + 0x0C000)
+#define TIM2_BASE             (APB1_BASE + 0x10000)
+#define TIM3_BASE             (APB1_BASE + 0x14000)
+#define UART2_BASE            (APB1_BASE + 0x18000)
+#define UART3_BASE            (APB1_BASE + 0x1C000)
+#define I2C2_BASE             (APB1_BASE + 0x20000)
+#define I2S_BASE              (APB1_BASE + 0x28000)
+#define RIT_BASE              (APB1_BASE + 0x30000)
+#define MCPWM_BASE            (APB1_BASE + 0x38000)
+#define QEI_BASE              (APB1_BASE + 0x3C000)
+#define SC_BASE               (APB1_BASE + 0x7C000)
+
+/* AHB peripherals                                                            */
+#define EMAC_BASE             (AHB_BASE  + 0x00000)
+#define GPDMA_BASE            (AHB_BASE  + 0x04000)
+#define GPDMACH0_BASE         (AHB_BASE  + 0x04100)
+#define GPDMACH1_BASE         (AHB_BASE  + 0x04120)
+#define GPDMACH2_BASE         (AHB_BASE  + 0x04140)
+#define GPDMACH3_BASE         (AHB_BASE  + 0x04160)
+#define GPDMACH4_BASE         (AHB_BASE  + 0x04180)
+#define GPDMACH5_BASE         (AHB_BASE  + 0x041A0)
+#define GPDMACH6_BASE         (AHB_BASE  + 0x041C0)
+#define GPDMACH7_BASE         (AHB_BASE  + 0x041E0)
+#define USB_BASE              (AHB_BASE  + 0x0C000)
+
+/* GPIOs                                                                      */
+#define GPIO0_BASE            (GPIO_BASE + 0x00000)
+#define GPIO1_BASE            (GPIO_BASE + 0x00020)
+#define GPIO2_BASE            (GPIO_BASE + 0x00040)
+#define GPIO3_BASE            (GPIO_BASE + 0x00060)
+#define GPIO4_BASE            (GPIO_BASE + 0x00080)
+
+
+/******************************************************************************/
+/*                         Peripheral declaration                             */
+/******************************************************************************/
+#define SC                    ((       SC_TypeDef *)        SC_BASE)
+#define GPIO0                 ((     GPIO_TypeDef *)     GPIO0_BASE)
+#define GPIO1                 ((     GPIO_TypeDef *)     GPIO1_BASE)
+#define GPIO2                 ((     GPIO_TypeDef *)     GPIO2_BASE)
+#define GPIO3                 ((     GPIO_TypeDef *)     GPIO3_BASE)
+#define GPIO4                 ((     GPIO_TypeDef *)     GPIO4_BASE)
+#define WDT                   ((      WDT_TypeDef *)       WDT_BASE)
+#define TIM0                  ((      TIM_TypeDef *)      TIM0_BASE)
+#define TIM1                  ((      TIM_TypeDef *)      TIM1_BASE)
+#define TIM2                  ((      TIM_TypeDef *)      TIM2_BASE)
+#define TIM3                  ((      TIM_TypeDef *)      TIM3_BASE)
+#define RIT                   ((      RIT_TypeDef *)       RIT_BASE)
+#define UART0                 ((     UART_TypeDef *)     UART0_BASE)
+#define UART1                 ((    UART1_TypeDef *)     UART1_BASE)
+#define UART2                 ((     UART_TypeDef *)     UART2_BASE)
+#define UART3                 ((     UART_TypeDef *)     UART3_BASE)
+#define PWM1                  ((      PWM_TypeDef *)      PWM1_BASE)
+#define I2C0                  ((      I2C_TypeDef *)      I2C0_BASE)
+#define I2C1                  ((      I2C_TypeDef *)      I2C1_BASE)
+#define I2C2                  ((      I2C_TypeDef *)      I2C2_BASE)
+#define I2S                   ((      I2S_TypeDef *)       I2S_BASE)
+#define SPI                   ((      SPI_TypeDef *)       SPI_BASE)
+#define RTC                   ((      RTC_TypeDef *)       RTC_BASE)
+#define GPIOINT               ((  GPIOINT_TypeDef *)   GPIOINT_BASE)
+#define PINCON                ((   PINCON_TypeDef *)    PINCON_BASE)
+#define SSP0                  ((      SSP_TypeDef *)      SSP0_BASE)
+#define SSP1                  ((      SSP_TypeDef *)      SSP1_BASE)
+#define ADC                   ((      ADC_TypeDef *)       ADC_BASE)
+#define DAC                   ((      DAC_TypeDef *)       DAC_BASE)
+#define CANAF_RAM             ((CANAF_RAM_TypeDef *) CANAF_RAM_BASE)
+#define CANAF                 ((    CANAF_TypeDef *)     CANAF_BASE)
+#define CANCR                 ((    CANCR_TypeDef *)     CANCR_BASE)
+#define CAN1                  ((      CAN_TypeDef *)      CAN1_BASE)
+#define CAN2                  ((      CAN_TypeDef *)      CAN2_BASE)
+#define MCPWM                 ((    MCPWM_TypeDef *)     MCPWM_BASE)
+#define QEI                   ((      QEI_TypeDef *)       QEI_BASE)
+#define EMAC                  ((     EMAC_TypeDef *)      EMAC_BASE)
+#define GPDMA                 ((    GPDMA_TypeDef *)     GPDMA_BASE)
+#define GPDMACH0              ((  GPDMACH_TypeDef *)  GPDMACH0_BASE)
+#define GPDMACH1              ((  GPDMACH_TypeDef *)  GPDMACH1_BASE)
+#define GPDMACH2              ((  GPDMACH_TypeDef *)  GPDMACH2_BASE)
+#define GPDMACH3              ((  GPDMACH_TypeDef *)  GPDMACH3_BASE)
+#define GPDMACH4              ((  GPDMACH_TypeDef *)  GPDMACH4_BASE)
+#define GPDMACH5              ((  GPDMACH_TypeDef *)  GPDMACH5_BASE)
+#define GPDMACH6              ((  GPDMACH_TypeDef *)  GPDMACH6_BASE)
+#define GPDMACH7              ((  GPDMACH_TypeDef *)  GPDMACH7_BASE)
+#define USB                   ((      USB_TypeDef *)       USB_BASE)
+
+#endif  // __LPC17xx_H__
+
+
+#endif
diff --git a/gyro_board/src/usb/LPCUSB/USB_CDC.c b/gyro_board/src/usb/LPCUSB/USB_CDC.c
new file mode 100644
index 0000000..47d28db
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/USB_CDC.c
@@ -0,0 +1,454 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+	Minimal implementation of a USB serial port, using the CDC class.
+	This example application simply echoes everything it receives right back
+	to the host.
+
+	Windows:
+	Extract the usbser.sys file from .cab file in C:\WINDOWS\Driver Cache\i386
+	and store it somewhere (C:\temp is a good place) along with the usbser.inf
+	file. Then plug in the LPC176x and direct windows to the usbser driver.
+	Windows then creates an extra COMx port that you can open in a terminal
+	program, like hyperterminal. [Note for FreeRTOS users - the required .inf
+	file is included in the project directory.]
+
+	Linux:
+	The device should be recognised automatically by the cdc_acm driver,
+	which creates a /dev/ttyACMx device file that acts just like a regular
+	serial port.
+
+*/
+
+#include "FreeRTOS.h"
+#include "queue.h"
+#include "task.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include "usbapi.h"
+#include "usbdebug.h"
+#include "usbstruct.h"
+
+#include "LPC17xx.h"
+
+#define usbMAX_SEND_BLOCK		( 20 / portTICK_RATE_MS )
+#define usbRXBUFFER_LEN			( 80 )
+#define usbTXBUFFER_LEN			( 600 )
+
+#define INCREMENT_ECHO_BY 0
+#define BAUD_RATE	115200
+
+#define INT_IN_EP		0x81
+#define BULK_OUT_EP		0x05
+#define BULK_IN_EP		0x82
+
+#define MAX_PACKET_SIZE	64
+
+#define LE_WORD(x)		((x)&0xFF),((x)>>8)
+
+// CDC definitions
+#define CS_INTERFACE			0x24
+#define CS_ENDPOINT				0x25
+
+#define	SET_LINE_CODING			0x20
+#define	GET_LINE_CODING			0x21
+#define	SET_CONTROL_LINE_STATE	0x22
+
+// data structure for GET_LINE_CODING / SET_LINE_CODING class requests
+typedef struct {
+	unsigned long		dwDTERate;
+	unsigned char		bCharFormat;
+	unsigned char		bParityType;
+	unsigned char		bDataBits;
+} TLineCoding;
+
+static TLineCoding LineCoding = {115200, 0, 0, 8};
+static unsigned char abBulkBuf[64];
+static unsigned char abClassReqData[8];
+
+static xQueueHandle xRxedChars = NULL, xCharsForTx = NULL;
+
+// forward declaration of interrupt handler
+void USBIntHandler(void);
+
+static const unsigned char abDescriptors[] = {
+
+// device descriptor
+	0x12,
+	DESC_DEVICE,
+	LE_WORD(0x0101),		// bcdUSB
+	0x02,				// bDeviceClass
+	0x00,				// bDeviceSubClass
+	0x00,				// bDeviceProtocol
+	MAX_PACKET_SIZE0,		// bMaxPacketSize
+	LE_WORD(0xFFFF),		// idVendor
+	LE_WORD(0x0005),		// idProduct
+	LE_WORD(0x0100),		// bcdDevice
+	0x01,				// iManufacturer
+	0x02,				// iProduct
+	0x03,				// iSerialNumber
+	0x01,				// bNumConfigurations
+
+// configuration descriptor
+	0x09,
+	DESC_CONFIGURATION,
+	LE_WORD(67),			// wTotalLength
+	0x02,				// bNumInterfaces
+	0x01,				// bConfigurationValue
+	0x00,				// iConfiguration
+	0xC0,				// bmAttributes
+	0x32,				// bMaxPower
+// control class interface
+	0x09,
+	DESC_INTERFACE,
+	0x00,				// bInterfaceNumber
+	0x00,				// bAlternateSetting
+	0x01,				// bNumEndPoints
+	0x02,				// bInterfaceClass
+	0x02,				// bInterfaceSubClass
+	0x01,				// bInterfaceProtocol, linux requires value of 1 for the cdc_acm module
+	0x00,				// iInterface
+// header functional descriptor
+	0x05,
+	CS_INTERFACE,
+	0x00,
+	LE_WORD(0x0110),
+// call management functional descriptor
+	0x05,
+	CS_INTERFACE,
+	0x01,
+	0x01,				// bmCapabilities = device handles call management
+	0x01,				// bDataInterface
+// ACM functional descriptor
+	0x04,
+	CS_INTERFACE,
+	0x02,
+	0x02,				// bmCapabilities
+// union functional descriptor
+	0x05,
+	CS_INTERFACE,
+	0x06,
+	0x00,				// bMasterInterface
+	0x01,				// bSlaveInterface0
+// notification EP
+	0x07,
+	DESC_ENDPOINT,
+	INT_IN_EP,			// bEndpointAddress
+	0x03,				// bmAttributes = intr
+	LE_WORD(8),			// wMaxPacketSize
+	0x0A,				// bInterval
+// data class interface descriptor
+	0x09,
+	DESC_INTERFACE,
+	0x01,				// bInterfaceNumber
+	0x00,				// bAlternateSetting
+	0x02,				// bNumEndPoints
+	0x0A,				// bInterfaceClass = data
+	0x00,				// bInterfaceSubClass
+	0x00,				// bInterfaceProtocol
+	0x00,				// iInterface
+// data EP OUT
+	0x07,
+	DESC_ENDPOINT,
+	BULK_OUT_EP,			// bEndpointAddress
+	0x02,				// bmAttributes = bulk
+	LE_WORD(MAX_PACKET_SIZE),	// wMaxPacketSize
+	0x00,				// bInterval
+// data EP in
+	0x07,
+	DESC_ENDPOINT,
+	BULK_IN_EP,			// bEndpointAddress
+	0x02,				// bmAttributes = bulk
+	LE_WORD(MAX_PACKET_SIZE),	// wMaxPacketSize
+	0x00,				// bInterval
+
+	// string descriptors
+	0x04,
+	DESC_STRING,
+	LE_WORD(0x0409),
+
+	0x0E,
+	DESC_STRING,
+	'L', 0, 'P', 0, 'C', 0, 'U', 0, 'S', 0, 'B', 0,
+
+	0x14,
+	DESC_STRING,
+	'U', 0, 'S', 0, 'B', 0, 'S', 0, 'e', 0, 'r', 0, 'i', 0, 'a', 0, 'l', 0,
+
+	0x12,
+	DESC_STRING,
+	'A', 0, 'B', 0, 'S', 0, 'M', 0, 'o', 0, 't', 0, 'o', 0, 'r', 0,
+
+// terminating zero
+	0
+};
+
+
+/**
+	Local function to handle incoming bulk data
+
+	@param [in] bEP
+	@param [in] bEPStatus
+ */
+static void BulkOut(unsigned char bEP, unsigned char bEPStatus)
+{
+	int i, iLen;
+	long lHigherPriorityTaskWoken = pdFALSE;
+
+	(void) bEPStatus;
+
+	// get data from USB into intermediate buffer
+	iLen = USBHwEPRead(bEP, abBulkBuf, sizeof(abBulkBuf));
+	for (i = 0; i < iLen; i++) {
+		// put into queue
+		xQueueSendFromISR(xRxedChars, &(abBulkBuf[ i ]), &lHigherPriorityTaskWoken);
+	}
+
+	portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+
+
+/**
+	Local function to handle outgoing bulk data
+
+	@param [in] bEP
+	@param [in] bEPStatus
+ */
+static void BulkIn(unsigned char bEP, unsigned char bEPStatus)
+{
+	int i, iLen;
+	long lHigherPriorityTaskWoken = pdFALSE;
+
+	(void) bEPStatus;
+
+	if (uxQueueMessagesWaitingFromISR(xCharsForTx) == 0) {
+		// no more data, disable further NAK interrupts until next USB frame
+		USBHwNakIntEnable(0);
+		return;
+	}
+
+	// get bytes from transmit FIFO into intermediate buffer
+	for (i = 0; i < MAX_PACKET_SIZE; i++) {
+		if (xQueueReceiveFromISR(xCharsForTx, (&abBulkBuf[i]), &lHigherPriorityTaskWoken) != pdPASS) {
+			break;
+		}
+	}
+	iLen = i;
+
+	// send over USB
+	if (iLen > 0) {
+		USBHwEPWrite(bEP, abBulkBuf, iLen);
+	}
+
+	portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+
+
+/**
+	Local function to handle the USB-CDC class requests
+
+	@param [in] pSetup
+	@param [out] piLen
+	@param [out] ppbData
+ */
+static BOOL HandleClassRequest(TSetupPacket *pSetup, int *piLen, unsigned char **ppbData)
+{
+	switch (pSetup->bRequest) {
+
+		// set line coding
+	case SET_LINE_CODING:
+		DBG("SET_LINE_CODING\n");
+		memcpy((unsigned char *)&LineCoding, *ppbData, 7);
+		*piLen = 7;
+		DBG("dwDTERate=%u, bCharFormat=%u, bParityType=%u, bDataBits=%u\n",
+		    LineCoding.dwDTERate,
+		    LineCoding.bCharFormat,
+		    LineCoding.bParityType,
+		    LineCoding.bDataBits);
+		break;
+
+		// get line coding
+	case GET_LINE_CODING:
+		DBG("GET_LINE_CODING\n");
+		*ppbData = (unsigned char *) & LineCoding;
+		*piLen = 7;
+		break;
+
+		// set control line state
+	case SET_CONTROL_LINE_STATE:
+		// bit0 = DTR, bit = RTS
+		DBG("SET_CONTROL_LINE_STATE %X\n", pSetup->wValue);
+		break;
+
+	default:
+		return FALSE;
+	}
+	return TRUE;
+}
+
+
+/**
+	Writes one character to VCOM port
+
+	@param [in] c character to write
+	@returns character written, or EOF if character could not be written
+ */
+int VCOM_putchar(int c)
+{
+	char cc = (char) c;
+
+	if (xQueueSend(xCharsForTx, &cc, usbMAX_SEND_BLOCK) == pdPASS) {
+		return c;
+	} else {
+		return EOF;
+	}
+}
+
+
+/**
+	Reads one character from VCOM port
+
+	@returns character read, or EOF if character could not be read
+ */
+int VCOM_getchar(void)
+{
+	unsigned char c;
+
+	/* Block the task until a character is available. */
+	xQueueReceive(xRxedChars, &c, portMAX_DELAY);
+	return c;
+}
+
+
+/**
+	Interrupt handler
+
+	Simply calls the USB ISR
+ */
+void USB_IRQHandler(void)
+{
+	USBHwISR();
+}
+
+
+static void USBFrameHandler(unsigned short wFrame)
+{
+	(void) wFrame;
+
+	if (uxQueueMessagesWaitingFromISR(xCharsForTx) > 0) {
+		// data available, enable NAK interrupt on bulk in
+		USBHwNakIntEnable(INACK_BI);
+	}
+}
+
+unsigned long CPUcpsie(void)
+{
+	unsigned long ulRet;
+
+	//
+	// Read PRIMASK and enable interrupts.
+	//
+	__asm("    mrs     %0, PRIMASK\n"
+	      "    cpsie   i\n"
+	      "    bx      lr\n"
+      : "=r"(ulRet));
+
+	//
+	// The return is handled in the inline assembly, but the compiler will
+	// still complain if there is not an explicit return here (despite the fact
+	// that this does not result in any code being produced because of the
+	// naked attribute).
+	//
+	return(ulRet);
+}
+
+void vUSBTask(void *pvParameters)
+{
+	//int c;
+	portTickType xLastFlashTime;
+
+	/* Just to prevent compiler warnings about the unused parameter. */
+	(void) pvParameters;
+	DBG("Initialising USB stack\n");
+
+	xRxedChars = xQueueCreate(usbRXBUFFER_LEN, sizeof(char));
+	xCharsForTx = xQueueCreate(usbTXBUFFER_LEN, sizeof(char));
+
+	if ((xRxedChars == NULL) || (xCharsForTx == NULL)) {
+		/* Not enough heap available to create the buffer queues, can't do
+		anything so just delete ourselves. */
+		vTaskDelete(NULL);
+	}
+
+
+	// initialise stack
+	USBInit();
+
+	// register descriptors
+	USBRegisterDescriptors(abDescriptors);
+
+	// register class request handler
+	USBRegisterRequestHandler(REQTYPE_TYPE_CLASS, HandleClassRequest, abClassReqData);
+
+	// register endpoint handlers
+	USBHwRegisterEPIntHandler(INT_IN_EP, NULL);
+	USBHwRegisterEPIntHandler(BULK_IN_EP, BulkIn);
+	USBHwRegisterEPIntHandler(BULK_OUT_EP, BulkOut);
+
+	// register frame handler
+	USBHwRegisterFrameHandler(USBFrameHandler);
+
+	// enable bulk-in interrupts on NAKs
+	USBHwNakIntEnable(INACK_BI);
+
+	DBG("Starting USB communication\n");
+
+	NVIC_SetPriority(USB_IRQn, configUSB_INTERRUPT_PRIORITY);
+	NVIC_EnableIRQ(USB_IRQn);
+
+	// connect to bus
+
+	DBG("Connecting to USB bus\n");
+	USBHwConnect(TRUE);
+	
+	xLastFlashTime = xTaskGetTickCount();
+	
+	// echo any character received (do USB stuff in interrupt)
+	for (;;) {
+	//	c = VCOM_getchar();
+	//	if (c != EOF) {
+	//		// Echo character back with INCREMENT_ECHO_BY offset, so for example if
+	//		// INCREMENT_ECHO_BY is 1 and 'A' is received, 'B' will be echoed back.
+	//		VCOM_putchar(c + INCREMENT_ECHO_BY);
+	//	}
+		vTaskDelayUntil(&xLastFlashTime, 1000 / portTICK_RATE_MS);
+	}
+}
+
diff --git a/gyro_board/src/usb/LPCUSB/USB_SENSOR_STREAM.c b/gyro_board/src/usb/LPCUSB/USB_SENSOR_STREAM.c
new file mode 100644
index 0000000..af1eede
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/USB_SENSOR_STREAM.c
@@ -0,0 +1,355 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "FreeRTOS.h"
+#include "queue.h"
+#include "task.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include "usbapi.h"
+#include "usbdebug.h"
+#include "usbstruct.h"
+
+#include "LPC17xx.h"
+
+#define usbMAX_SEND_BLOCK		( 20 / portTICK_RATE_MS )
+#define usbRXBUFFER_LEN			( 80 )
+#define usbTXBUFFER_LEN			( 600 )
+
+#define INT_IN_EP		0x81 //read manual for picking these...
+#define INT_OUT_EP		0x04
+#define BULK_IN_EP		0x82
+#define BULK_OUT_EP		0x05
+
+#define MAX_PACKET_SIZE	64
+
+#define LE_WORD(x)		((x)&0xFF),((x)>>8)
+
+static xQueueHandle xRxedChars = NULL, xCharsForTx = NULL;
+
+static const unsigned char abDescriptors[] = {
+
+// device descriptor
+	0x12,
+	DESC_DEVICE,
+	LE_WORD(0x0101),		// bcdUSB
+	0xFF,				// bDeviceClass
+	0x00,				// bDeviceSubClass
+	0x00,				// bDeviceProtocol
+	MAX_PACKET_SIZE0,		// bMaxPacketSize
+	LE_WORD(0x1424),		// idVendor
+	LE_WORD(0xd243),		// idProduct
+	LE_WORD(0x0153),		// bcdDevice
+	0x03,				// iManufacturer
+	0x36,				// iProduct
+	0x33,				// iSerialNumber
+	0x01,				// bNumConfigurations
+
+// configuration descriptor
+	0x09,
+	DESC_CONFIGURATION,
+	LE_WORD(67),			// wTotalLength
+	0x01,				// bNumInterfaces
+	0x01,				// bConfigurationValue
+	0x00,				// iConfiguration
+	0xC0,				// bmAttributes
+	0x32,				// bMaxPower
+// data class interface descriptor
+	0x09,
+	DESC_INTERFACE,
+	0x00,				// bInterfaceNumber
+	0x00,				// bAlternateSetting
+	0x04,				// bNumEndPoints
+	0x0A,				// bInterfaceClass = data
+	0x00,				// bInterfaceSubClass
+	0x00,				// bInterfaceProtocol
+	0x00,				// iInterface
+// debug EP OUT
+	0x07,
+	DESC_ENDPOINT,
+	BULK_OUT_EP,			// bEndpointAddress
+	0x02,				// bmAttributes = bulk
+	LE_WORD(MAX_PACKET_SIZE),	// wMaxPacketSize
+	0x00,				// bInterval
+// debug EP in
+	0x07,
+	DESC_ENDPOINT,
+	BULK_IN_EP,			// bEndpointAddress
+	0x02,				// bmAttributes = bulk
+	LE_WORD(MAX_PACKET_SIZE),	// wMaxPacketSize
+	0x00,				// bInterval
+// data EP OUT
+	0x07,
+	DESC_ENDPOINT,
+	INT_OUT_EP,			// bEndpointAddress
+	0x03,				// bmAttributes = intr
+	LE_WORD(MAX_PACKET_SIZE),	// wMaxPacketSize
+	0x01,				// bInterval
+// data EP in
+	0x07,
+	DESC_ENDPOINT,
+	INT_IN_EP,			// bEndpointAddress
+	0x03,				// bmAttributes = intr
+	LE_WORD(MAX_PACKET_SIZE),	// wMaxPacketSize
+	0x01,				// bInterval
+
+	// string descriptors
+	0x04,
+	DESC_STRING,
+	LE_WORD(0x0409),
+
+	0x0E,
+	DESC_STRING,
+	'L', 0, 'P', 0, 'C', 0, 'U', 0, 'S', 0, 'B', 0,
+
+	0x14,
+	DESC_STRING,
+	'U', 0, 'S', 0, 'B', 0, 'S', 0, 'e', 0, 'r', 0, 'i', 0, 'a', 0, 'l', 0,
+
+	0x12,
+	DESC_STRING,
+	'A', 0, 'B', 0, 'S', 0, 'M', 0, 'o', 0, 't', 0, 'o', 0, 'r', 0,
+
+// terminating zero
+	0
+};
+
+
+/**
+ * Local function to handle incoming bulk data
+ *
+ * @param [in] bEP
+ * @param [in] bEPStatus
+ */
+static void DebugOut(unsigned char bEP, unsigned char bEPStatus) {
+  int i, iLen;
+  long lHigherPriorityTaskWoken = pdFALSE;
+  unsigned char abBulkBuf[64];
+
+  (void) bEPStatus;
+
+  // get data from USB into intermediate buffer
+  iLen = USBHwEPRead(bEP, abBulkBuf, sizeof(abBulkBuf));
+  for (i = 0; i < iLen; i++) {
+    // put into queue
+    xQueueSendFromISR(xRxedChars, &(abBulkBuf[ i ]), &lHigherPriorityTaskWoken);
+  }
+
+  portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+
+
+/**
+ * Local function to handle outgoing bulk data
+ *
+ * @param [in] bEP
+ * @param [in] bEPStatus
+ */
+static void DebugIn(unsigned char bEP, unsigned char bEPStatus) {
+  int i, iLen;
+  long lHigherPriorityTaskWoken = pdFALSE;
+  unsigned char abBulkBuf[64];
+
+  (void) bEPStatus;
+
+  if (uxQueueMessagesWaitingFromISR(xCharsForTx) == 0) {
+    // no more data, disable further NAK interrupts until next USB frame
+    USBHwNakIntEnable(INACK_II);
+    return;
+  }
+
+  // get bytes from transmit FIFO into intermediate buffer
+  for (i = 0; i < MAX_PACKET_SIZE; i++) {
+    if (xQueueReceiveFromISR(xCharsForTx, (&abBulkBuf[i]),
+                             &lHigherPriorityTaskWoken) != pdPASS) {
+      break;
+    }
+  }
+  iLen = i;
+
+  // send over USB
+  if (iLen > 0) {
+    USBHwEPWrite(bEP, abBulkBuf, iLen);
+  }
+
+  portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+
+extern int64_t gyro_angle;
+static unsigned char abDataBuf[64];
+int VCOM_putcharFromISR(int c, long *woken);
+static void DataOut(unsigned char bEP, unsigned char bEPStatus) {
+  int iLen;
+  long lHigherPriorityTaskWoken = pdFALSE;
+  char *a = "hello\n";
+  while(*a){
+    VCOM_putcharFromISR(*a,&lHigherPriorityTaskWoken);
+    a ++;
+  }
+  iLen = USBHwEPRead(bEP, abDataBuf, sizeof(abDataBuf));
+  portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+static void DataIn(unsigned char bEP, unsigned char bEPStatus) {
+  long lHigherPriorityTaskWoken = pdFALSE;
+  unsigned char buff[16];
+  memcpy(buff, &gyro_angle, sizeof(gyro_angle));
+  USBHwEPWrite(bEP, buff, sizeof(gyro_angle));
+  portEND_SWITCHING_ISR(lHigherPriorityTaskWoken);
+}
+
+/**
+ * Writes one character to VCOM port
+ *
+ * @param [in] c character to write
+ * @returns character written, or EOF if character could not be written
+ */
+int VCOM_putcharFromISR(int c, long *lHigherPriorityTaskWoken) {
+  char cc = (char) c;
+
+  if (xQueueSendFromISR(xCharsForTx, &cc,
+                        lHigherPriorityTaskWoken) == pdPASS) {
+    return c;
+  } else {
+    return EOF;
+  }
+}
+
+int VCOM_putchar(int c) {
+  char cc = (char) c;
+
+  // Don't block if not connected to USB.
+  if (xQueueSend(xCharsForTx, &cc,
+                 USBIsConnected() ? usbMAX_SEND_BLOCK : 0) == pdPASS) {
+    return c;
+  } else {
+    return EOF;
+  }
+}
+
+
+/**
+ * Reads one character from VCOM port
+ *
+ * @returns character read, or EOF if character could not be read
+ */
+int VCOM_getchar(void) {
+  unsigned char c;
+
+  /* Block the task until a character is available. */
+  if(xQueueReceive(xRxedChars, &c, 0) == pdTRUE){  //portMAX_DELAY);
+    return c;
+  }
+  return -1;
+}
+
+
+/**
+ * Interrupt handler
+ *
+ * Simply calls the USB ISR
+ */
+void USB_IRQHandler(void) {
+	USBHwISR();
+}
+
+
+static void USBFrameHandler(unsigned short wFrame) {
+  (void) wFrame;
+
+	if (uxQueueMessagesWaitingFromISR(xCharsForTx) > 0) {
+		// data available, enable NAK interrupt on bulk in
+		USBHwNakIntEnable(INACK_BI);
+	}
+}
+
+void vUSBTask(void *pvParameters) {
+  portTickType xLastFlashTime;
+
+  /* Just to prevent compiler warnings about the unused parameter. */
+  (void) pvParameters;
+  DBG("Initialising USB stack\n");
+
+  xRxedChars = xQueueCreate(usbRXBUFFER_LEN, sizeof(char));
+  xCharsForTx = xQueueCreate(usbTXBUFFER_LEN, sizeof(char));
+
+  if ((xRxedChars == NULL) || (xCharsForTx == NULL)) {
+    /* Not enough heap available to create the buffer queues, can't do
+       anything so just delete ourselves. */
+    vTaskDelete(NULL);
+  }
+
+  // initialise stack
+  USBInit();
+
+  // register descriptors
+  USBRegisterDescriptors(abDescriptors);
+
+  // register class request handler
+  //USBRegisterRequestHandler(REQTYPE_TYPE_CLASS,
+  //                          HandleClassRequest, abClassReqData);
+
+  // register endpoint handlers
+  USBHwRegisterEPIntHandler(INT_IN_EP, DataIn);
+  USBHwRegisterEPIntHandler(INT_OUT_EP, DataOut);
+  USBHwRegisterEPIntHandler(BULK_IN_EP, DebugIn);
+  USBHwRegisterEPIntHandler(BULK_OUT_EP, DebugOut);
+
+  // register frame handler
+  USBHwRegisterFrameHandler(USBFrameHandler);
+
+  // enable bulk-in interrupts on NAKs
+  USBHwNakIntEnable(INACK_BI);
+
+  DBG("Starting USB communication\n");
+
+  NVIC_SetPriority(USB_IRQn, configUSB_INTERRUPT_PRIORITY);
+  NVIC_EnableIRQ(USB_IRQn);
+
+  // connect to bus
+
+  DBG("Connecting to USB bus\n");
+  USBHwConnect(TRUE);
+
+  xLastFlashTime = xTaskGetTickCount();
+
+  vTaskDelayUntil(&xLastFlashTime, 1000 / portTICK_RATE_MS * 100);
+
+  //USBHwAllowConnect();
+  // echo any character received (do USB stuff in interrupt)
+  for (;;) {
+    //	c = VCOM_getchar();
+    //	if (c != EOF) {
+    //		// Echo character back with INCREMENT_ECHO_BY offset, so for example if
+    //		// INCREMENT_ECHO_BY is 1 and 'A' is received, 'B' will be echoed back.
+    //		VCOM_putchar(c + INCREMENT_ECHO_BY);
+    //	}
+    vTaskDelayUntil(&xLastFlashTime, 1000 / portTICK_RATE_MS);
+  }
+}
+
diff --git a/gyro_board/src/usb/LPCUSB/type.h b/gyro_board/src/usb/LPCUSB/type.h
new file mode 100644
index 0000000..0727519
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/type.h
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ *   type.h:  Type definition Header file for NXP LPC17xx Family
+ *   Microprocessors
+ *
+ *   Copyright(C) 2008, NXP Semiconductor
+ *   All rights reserved.
+ *
+ *   History
+ *   2008.08.21  ver 1.00    Prelimnary version, first Release
+ *
+******************************************************************************/
+#ifndef __TYPE_H__
+#define __TYPE_H__
+
+#ifndef NULL
+#define NULL    ((void *)0)
+#endif
+
+#ifndef FALSE
+#define FALSE   (0)
+#endif
+
+#ifndef TRUE
+#define TRUE    (1)
+#endif
+
+typedef unsigned char  BYTE;
+typedef unsigned short WORD;
+typedef unsigned long  DWORD;
+typedef unsigned int   BOOL;
+
+typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;
+typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
+
+/* Pointer to Function returning Void (any number of parameters) */
+typedef void (*PFV)();
+
+#endif  /* __TYPE_H__ */
diff --git a/gyro_board/src/usb/LPCUSB/usbapi.h b/gyro_board/src/usb/LPCUSB/usbapi.h
new file mode 100644
index 0000000..e1fade8
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbapi.h
@@ -0,0 +1,125 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/**
+	@file
+*/
+
+#include "usbstruct.h"		// for TSetupPacket
+
+/*************************************************************************
+	USB configuration
+**************************************************************************/
+
+#define MAX_PACKET_SIZE0	64		/**< maximum packet size for EP 0 */
+
+/*************************************************************************
+	USB hardware interface
+**************************************************************************/
+
+// endpoint status sent through callback
+#define EP_STATUS_DATA		(1<<0)		/**< EP has data */
+#define EP_STATUS_STALLED	(1<<1)		/**< EP is stalled */
+#define EP_STATUS_SETUP		(1<<2)		/**< EP received setup packet */
+#define EP_STATUS_ERROR		(1<<3)		/**< EP data was overwritten by setup packet */
+#define EP_STATUS_NACKED	(1<<4)		/**< EP sent NAK */
+
+// device status sent through callback
+#define DEV_STATUS_CONNECT		(1<<0)	/**< device just got connected */
+#define DEV_STATUS_SUSPEND		(1<<2)	/**< device entered suspend state */
+#define DEV_STATUS_RESET		(1<<4)	/**< device just got reset */
+
+// interrupt bits for NACK events in USBHwNakIntEnable
+// (these bits conveniently coincide with the LPC176x USB controller bit)
+#define INACK_CI		(1<<1)			/**< interrupt on NACK for control in */
+#define INACK_CO		(1<<2)			/**< interrupt on NACK for control out */
+#define INACK_II		(1<<3)			/**< interrupt on NACK for interrupt in */
+#define INACK_IO		(1<<4)			/**< interrupt on NACK for interrupt out */
+#define INACK_BI		(1<<5)			/**< interrupt on NACK for bulk in */
+#define INACK_BO		(1<<6)			/**< interrupt on NACK for bulk out */
+
+BOOL USBHwInit(void);
+void USBHwISR(void);
+
+void USBHwNakIntEnable(unsigned char bIntBits);
+
+void USBHwConnect(BOOL fConnect);
+int USBIsConnected(void);
+
+void USBHwSetAddress(unsigned char bAddr);
+void USBHwConfigDevice(BOOL fConfigured);
+
+// endpoint operations
+void USBHwEPConfig(unsigned char bEP, unsigned short wMaxPacketSize);
+int  USBHwEPRead(unsigned char bEP, unsigned char *pbBuf, int iMaxLen);
+int	 USBHwEPWrite(unsigned char bEP, unsigned char *pbBuf, int iLen);
+void USBHwEPStall(unsigned char bEP, BOOL fStall);
+unsigned char   USBHwEPGetStatus(unsigned char bEP);
+
+/** Endpoint interrupt handler callback */
+typedef void (TFnEPIntHandler)(unsigned char bEP, unsigned char bEPStatus);
+void USBHwRegisterEPIntHandler(unsigned char bEP, TFnEPIntHandler *pfnHandler);
+
+/** Device status handler callback */
+typedef void (TFnDevIntHandler)(unsigned char bDevStatus);
+void USBHwRegisterDevIntHandler(TFnDevIntHandler *pfnHandler);
+
+/** Frame event handler callback */
+typedef void (TFnFrameHandler)(unsigned short wFrame);
+void USBHwRegisterFrameHandler(TFnFrameHandler *pfnHandler);
+
+/** Configuration event handler callback */
+typedef void (SetConfigHandler)(void);
+void USBHwRegisterSetConfigHandler(SetConfigHandler *handler);
+
+
+/*************************************************************************
+	USB application interface
+**************************************************************************/
+
+// initialise the complete stack, including HW
+BOOL USBInit(void);
+
+/** Request handler callback (standard, vendor, class) */
+typedef BOOL (TFnHandleRequest)(TSetupPacket *pSetup, int *piLen, unsigned char **ppbData);
+void USBRegisterRequestHandler(int iType, TFnHandleRequest *pfnHandler, unsigned char *pbDataStore);
+void USBRegisterCustomReqHandler(TFnHandleRequest *pfnHandler);
+
+/** Descriptor handler callback */
+typedef BOOL (TFnGetDescriptor)(unsigned short wTypeIndex, unsigned short wLangID, int *piLen, unsigned char **ppbData);
+
+/** Default standard request handler */
+BOOL USBHandleStandardRequest(TSetupPacket *pSetup, int *piLen, unsigned char **ppbData);
+
+/** Default EP0 handler */
+void USBHandleControlTransfer(unsigned char bEP, unsigned char bEPStat);
+
+/** Descriptor handling */
+void USBRegisterDescriptors(const unsigned char *pabDescriptors);
+BOOL USBGetDescriptor(unsigned short wTypeIndex, unsigned short wLangID, int *piLen, unsigned char **ppbData);
+
+void USBHwAllowConnect(void);
diff --git a/gyro_board/src/usb/LPCUSB/usbcontrol.c b/gyro_board/src/usb/LPCUSB/usbcontrol.c
new file mode 100644
index 0000000..e02f492
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbcontrol.c
@@ -0,0 +1,236 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/** @file
+	Control transfer handler.
+
+	This module handles control transfers and is normally installed on the
+	endpoint 0 callback.
+
+	Control transfers can be of the following type:
+	0 Standard;
+	1 Class;
+	2 Vendor;
+	3 Reserved.
+
+	A callback can be installed for each of these control transfers using
+	USBRegisterRequestHandler.
+	When an OUT request arrives, data is collected in the data store provided
+	with the USBRegisterRequestHandler call. When the transfer is done, the
+	callback is called.
+	When an IN request arrives, the callback is called immediately to either
+	put the control transfer data in the data store, or to get a pointer to
+	control transfer data. The data is then packetised and sent to the host.
+*/
+
+#include "usbdebug.h"
+
+#include "usbstruct.h"
+#include "usbapi.h"
+
+
+
+#define	MAX_CONTROL_SIZE	128	/**< maximum total size of control transfer data */
+#define	MAX_REQ_HANDLERS	4	/**< standard, class, vendor, reserved */
+
+static TSetupPacket		Setup;	/**< setup packet */
+
+static unsigned char				*pbData;	/**< pointer to data buffer */
+static int				iResidue;	/**< remaining bytes in buffer */
+static int				iLen;		/**< total length of control transfer */
+
+/** Array of installed request handler callbacks */
+static TFnHandleRequest *apfnReqHandlers[4] = {NULL, NULL, NULL, NULL};
+/** Array of installed request data pointers */
+static unsigned char				*apbDataStore[4] = {NULL, NULL, NULL, NULL};
+
+/**
+	Local function to handle a request by calling one of the installed
+	request handlers.
+
+	In case of data going from host to device, the data is at *ppbData.
+	In case of data going from device to host, the handler can either
+	choose to write its data at *ppbData or update the data pointer.
+
+	@param [in]		pSetup		The setup packet
+	@param [in,out]	*piLen		Pointer to data length
+	@param [in,out]	ppbData		Data buffer.
+
+	@return TRUE if the request was handles successfully
+ */
+static BOOL _HandleRequest(TSetupPacket *pSetup, int *piLen, unsigned char **ppbData)
+{
+	TFnHandleRequest *pfnHandler;
+	int iType;
+
+	iType = REQTYPE_GET_TYPE(pSetup->bmRequestType);
+	pfnHandler = apfnReqHandlers[iType];
+	if (pfnHandler == NULL) {
+		DBG("No handler for reqtype %d\n", iType);
+		return FALSE;
+	}
+
+	return pfnHandler(pSetup, piLen, ppbData);
+}
+
+
+/**
+	Local function to stall the control endpoint
+
+	@param [in]	bEPStat	Endpoint status
+ */
+static void StallControlPipe(unsigned char bEPStat)
+{
+	unsigned char	*pb;
+	int	i;
+
+	USBHwEPStall(0x80, TRUE);
+
+// dump setup packet
+	DBG("STALL on [");
+	pb = (unsigned char *) & Setup;
+	for (i = 0; i < 8; i++) {
+		DBG(" %02x", *pb++);
+	}
+	DBG("] stat=%x\n", bEPStat);
+}
+
+
+/**
+	Sends next chunk of data (possibly 0 bytes) to host
+ */
+static void DataIn(void)
+{
+	int iChunk;
+
+	if (MAX_PACKET_SIZE0 < iResidue) {
+		iChunk = MAX_PACKET_SIZE0;
+	} else {
+		iChunk = iResidue;
+	}
+
+	USBHwEPWrite(0x80, pbData, iChunk);
+	pbData += iChunk;
+	iResidue -= iChunk;
+}
+
+
+/**
+ *	Handles IN/OUT transfers on EP0
+ *
+ *	@param [in]	bEP		Endpoint address
+ *	@param [in]	bEPStat	Endpoint status
+ */
+void USBHandleControlTransfer(unsigned char bEP, unsigned char bEPStat)
+{
+	int iChunk, iType;
+
+	if (bEP == 0x00) {
+		// OUT transfer
+		if (bEPStat & EP_STATUS_SETUP) {
+			// setup packet, reset request message state machine
+			USBHwEPRead(0x00, (unsigned char *)&Setup, sizeof(Setup));
+			DBG("S%x", Setup.bRequest);
+
+			// defaults for data pointer and residue
+			iType = REQTYPE_GET_TYPE(Setup.bmRequestType);
+			pbData = apbDataStore[iType];
+			iResidue = Setup.wLength;
+			iLen = Setup.wLength;
+
+			if ((Setup.wLength == 0) ||
+			                (REQTYPE_GET_DIR(Setup.bmRequestType) == REQTYPE_DIR_TO_HOST)) {
+				// ask installed handler to process request
+				if (!_HandleRequest(&Setup, &iLen, &pbData)) {
+					DBG("_HandleRequest1 failed\n");
+					StallControlPipe(bEPStat);
+					return;
+				}
+				// send smallest of requested and offered length
+				if (iLen < Setup.wLength) {
+					iResidue = iLen;
+				} else {
+					iResidue = Setup.wLength;
+				}
+
+				// send first part (possibly a zero-length status message)
+				DataIn();
+			}
+		} else {
+			if (iResidue > 0) {
+				// store data
+				iChunk = USBHwEPRead(0x00, pbData, iResidue);
+				if (iChunk < 0) {
+					StallControlPipe(bEPStat);
+					return;
+				}
+				pbData += iChunk;
+				iResidue -= iChunk;
+				if (iResidue == 0) {
+					// received all, send data to handler
+					iType = REQTYPE_GET_TYPE(Setup.bmRequestType);
+					pbData = apbDataStore[iType];
+					if (!_HandleRequest(&Setup, &iLen, &pbData)) {
+						DBG("_HandleRequest2 failed\n");
+						StallControlPipe(bEPStat);
+						return;
+					}
+					// send status to host
+					DataIn();
+				}
+			} else {
+				// absorb zero-length status message
+				iChunk = USBHwEPRead(0x00, NULL, 0);
+				DBG(iChunk > 0 ? "?" : "");
+			}
+		}
+	} else if (bEP == 0x80) {
+		// IN transfer
+		// send more data if available (possibly a 0-length packet)
+		DataIn();
+	} else {
+		ASSERT(FALSE);
+	}
+}
+
+
+/**
+	Registers a callback for handling requests
+
+	@param [in]	iType			Type of request, e.g. REQTYPE_TYPE_STANDARD
+	@param [in]	*pfnHandler		Callback function pointer
+	@param [in]	*pbDataStore	Data storage area for this type of request
+ */
+void USBRegisterRequestHandler(int iType, TFnHandleRequest *pfnHandler, unsigned char *pbDataStore)
+{
+	ASSERT(iType >= 0);
+	ASSERT(iType < 4);
+	apfnReqHandlers[iType] = pfnHandler;
+	apbDataStore[iType] = pbDataStore;
+}
+
diff --git a/gyro_board/src/usb/LPCUSB/usbdebug.h b/gyro_board/src/usb/LPCUSB/usbdebug.h
new file mode 100644
index 0000000..4b3d16b
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbdebug.h
@@ -0,0 +1,41 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+// CodeRed - comment out this printf, as will use real one from stdio.h
+// to implement output via semihosting
+
+//int printf(const char *format, ...);
+# include <stdio.h>
+
+#ifdef _DEBUG
+#define DBG	printf
+#define ASSERT(x)	if(!(x)){DBG("\nAssertion '%s' failed in %s:%s#%d!\n",#x,__FILE__,__FUNCTION__,__LINE__);while(1);}
+#else
+#define DBG(x ...)
+#define ASSERT(x)
+#endif
+
diff --git a/gyro_board/src/usb/LPCUSB/usbhw_lpc.c b/gyro_board/src/usb/LPCUSB/usbhw_lpc.c
new file mode 100644
index 0000000..8229371
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbhw_lpc.c
@@ -0,0 +1,538 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/** @file
+	USB hardware layer
+ */
+
+
+#include "usbdebug.h"
+#include "usbhw_lpc.h"
+#include "usbapi.h"
+
+#ifdef DEBUG
+// comment out the following line if you don't want to use debug LEDs
+//#define DEBUG_LED
+#endif
+
+/** Installed device interrupt handler */
+static TFnDevIntHandler *_pfnDevIntHandler = NULL;
+/** Installed endpoint interrupt handlers */
+static TFnEPIntHandler	*_apfnEPIntHandlers[16];
+/** Installed frame interrupt handlers */
+static TFnFrameHandler	*_pfnFrameHandler = NULL;
+
+/** convert from endpoint address to endpoint index */
+#define EP2IDX(bEP)	((((bEP)&0xF)<<1)|(((bEP)&0x80)>>7))
+/** convert from endpoint index to endpoint address */
+#define IDX2EP(idx)	((((idx)<<7)&0x80)|(((idx)>>1)&0xF))
+
+
+
+/**
+	Local function to wait for a device interrupt (and clear it)
+
+	@param [in]	dwIntr		Bitmask of interrupts to wait for
+ */
+static void Wait4DevInt(unsigned long dwIntr)
+{
+	// wait for specific interrupt
+	while ((USB->USBDevIntSt & dwIntr) != dwIntr);
+	// clear the interrupt bits
+	USB->USBDevIntClr = dwIntr;
+}
+
+
+/**
+	Local function to send a command to the USB protocol engine
+
+	@param [in]	bCmd		Command to send
+ */
+static void USBHwCmd(unsigned char bCmd)
+{
+	// clear CDFULL/CCEMTY
+	USB->USBDevIntClr = CDFULL | CCEMTY;
+	// write command code
+	USB->USBCmdCode = 0x00000500 | (bCmd << 16);
+	Wait4DevInt(CCEMTY);
+}
+
+
+/**
+	Local function to send a command + data to the USB protocol engine
+
+	@param [in]	bCmd		Command to send
+	@param [in]	bData		Data to send
+ */
+static void USBHwCmdWrite(unsigned char bCmd, unsigned short bData)
+{
+	// write command code
+	USBHwCmd(bCmd);
+
+	// write command data
+	USB->USBCmdCode = 0x00000100 | (bData << 16);
+	Wait4DevInt(CCEMTY);
+}
+
+
+/**
+	Local function to send a command to the USB protocol engine and read data
+
+	@param [in]	bCmd		Command to send
+
+	@return the data
+ */
+static unsigned char USBHwCmdRead(unsigned char bCmd)
+{
+	// write command code
+	USBHwCmd(bCmd);
+
+	// get data
+	USB->USBCmdCode = 0x00000200 | (bCmd << 16);
+	Wait4DevInt(CDFULL);
+	return USB->USBCmdData;
+}
+
+
+/**
+	'Realizes' an endpoint, meaning that buffer space is reserved for
+	it. An endpoint needs to be realised before it can be used.
+
+	From experiments, it appears that a USB reset causes USBReEP to
+	re-initialise to 3 (= just the control endpoints).
+	However, a USB bus reset does not disturb the USBMaxPSize settings.
+
+	@param [in]	idx			Endpoint index
+	@param [in] wMaxPSize	Maximum packet size for this endpoint
+ */
+static void USBHwEPRealize(int idx, unsigned short wMaxPSize)
+{
+	USB->USBReEP |= (1 << idx);
+	USB->USBEpInd = idx;
+	USB->USBMaxPSize = wMaxPSize;
+	Wait4DevInt(EP_RLZED);
+}
+
+
+/**
+	Enables or disables an endpoint
+
+	@param [in]	idx		Endpoint index
+	@param [in]	fEnable	TRUE to enable, FALSE to disable
+ */
+static void USBHwEPEnable(int idx, BOOL fEnable)
+{
+	USBHwCmdWrite(CMD_EP_SET_STATUS | idx, fEnable ? 0 : EP_DA);
+}
+
+
+/**
+	Configures an endpoint and enables it
+
+	@param [in]	bEP				Endpoint number
+	@param [in]	wMaxPacketSize	Maximum packet size for this EP
+ */
+void USBHwEPConfig(unsigned char bEP, unsigned short wMaxPacketSize)
+{
+	int idx;
+
+	idx = EP2IDX(bEP);
+
+	// realise EP
+	USBHwEPRealize(idx, wMaxPacketSize);
+
+	// enable EP
+	USBHwEPEnable(idx, TRUE);
+}
+
+
+/**
+	Registers an endpoint event callback
+
+	@param [in]	bEP				Endpoint number
+	@param [in]	pfnHandler		Callback function
+ */
+void USBHwRegisterEPIntHandler(unsigned char bEP, TFnEPIntHandler *pfnHandler)
+{
+	int idx;
+
+	idx = EP2IDX(bEP);
+
+	ASSERT(idx < 32);
+
+	/* add handler to list of EP handlers */
+	_apfnEPIntHandlers[idx / 2] = pfnHandler;
+
+	/* enable EP interrupt */
+	USB->USBEpIntEn |= (1 << idx);
+	USB->USBDevIntEn |= EP_SLOW;
+
+	DBG("Registered handler for EP 0x%x\n", bEP);
+}
+
+
+/**
+	Registers an device status callback
+
+	@param [in]	pfnHandler	Callback function
+ */
+void USBHwRegisterDevIntHandler(TFnDevIntHandler *pfnHandler)
+{
+	_pfnDevIntHandler = pfnHandler;
+
+	// enable device interrupt
+	USB->USBDevIntEn |= DEV_STAT;
+
+	DBG("Registered handler for device status\n");
+}
+
+
+/**
+	Registers the frame callback
+
+	@param [in]	pfnHandler	Callback function
+ */
+void USBHwRegisterFrameHandler(TFnFrameHandler *pfnHandler)
+{
+	_pfnFrameHandler = pfnHandler;
+
+	// enable device interrupt
+	USB->USBDevIntEn |= FRAME;
+
+	DBG("Registered handler for frame\n");
+}
+
+
+/**
+	Sets the USB address.
+
+	@param [in]	bAddr		Device address to set
+ */
+void USBHwSetAddress(unsigned char bAddr)
+{
+	USBHwCmdWrite(CMD_DEV_SET_ADDRESS, DEV_EN | bAddr);
+}
+
+
+/**
+	Connects or disconnects from the USB bus
+
+	@param [in]	fConnect	If TRUE, connect, otherwise disconnect
+ */
+void USBHwConnect(BOOL fConnect)
+{
+	USBHwCmdWrite(CMD_DEV_STATUS, fConnect ? CON : 0);
+}
+
+int USBIsConnected(void) {
+  return (GPIO1->FIOPIN >> 18) & 0x1;
+}
+
+
+/**
+	Enables interrupt on NAK condition
+
+	For IN endpoints a NAK is generated when the host wants to read data
+	from the device, but none is available in the endpoint buffer.
+	For OUT endpoints a NAK is generated when the host wants to write data
+	to the device, but the endpoint buffer is still full.
+
+	The endpoint interrupt handlers can distinguish regular (ACK) interrupts
+	from NAK interrupt by checking the bits in their bEPStatus argument.
+
+	@param [in]	bIntBits	Bitmap indicating which NAK interrupts to enable
+ */
+void USBHwNakIntEnable(unsigned char bIntBits)
+{
+	USBHwCmdWrite(CMD_DEV_SET_MODE, bIntBits);
+}
+
+
+/**
+	Gets the status from a specific endpoint.
+
+	@param [in]	bEP		Endpoint number
+	@return Endpoint status byte (containing EP_STATUS_xxx bits)
+ */
+unsigned char	USBHwEPGetStatus(unsigned char bEP)
+{
+	int idx = EP2IDX(bEP);
+
+	return USBHwCmdRead(CMD_EP_SELECT | idx);
+}
+
+
+/**
+	Sets the stalled property of an endpoint
+
+	@param [in]	bEP		Endpoint number
+	@param [in]	fStall	TRUE to stall, FALSE to unstall
+ */
+void USBHwEPStall(unsigned char bEP, BOOL fStall)
+{
+	int idx = EP2IDX(bEP);
+
+	USBHwCmdWrite(CMD_EP_SET_STATUS | idx, fStall ? EP_ST : 0);
+}
+
+
+/**
+	Writes data to an endpoint buffer
+
+	@param [in]	bEP		Endpoint number
+	@param [in]	pbBuf	Endpoint data
+	@param [in]	iLen	Number of bytes to write
+
+	@return TRUE if the data was successfully written or <0 in case of error.
+*/
+int USBHwEPWrite(unsigned char bEP, unsigned char *pbBuf, int iLen)
+{
+	int idx;
+
+	idx = EP2IDX(bEP);
+
+	// set write enable for specific endpoint
+	USB->USBCtrl = WR_EN | ((bEP & 0xF) << 2);
+
+	// set packet length
+	USB->USBTxPLen = iLen;
+
+	// write data
+	while (USB->USBCtrl & WR_EN) {
+		USB->USBTxData = (pbBuf[3] << 24) | (pbBuf[2] << 16) | (pbBuf[1] << 8) | pbBuf[0];
+		pbBuf += 4;
+	}
+
+	// select endpoint and validate buffer
+	USBHwCmd(CMD_EP_SELECT | idx);
+	USBHwCmd(CMD_EP_VALIDATE_BUFFER);
+
+	return iLen;
+}
+
+
+/**
+	Reads data from an endpoint buffer
+
+	@param [in]	bEP		Endpoint number
+	@param [in]	pbBuf	Endpoint data
+	@param [in]	iMaxLen	Maximum number of bytes to read
+
+	@return the number of bytes available in the EP (possibly more than iMaxLen),
+	or <0 in case of error.
+ */
+int USBHwEPRead(unsigned char bEP, unsigned char *pbBuf, int iMaxLen)
+{
+	int i, idx;
+	unsigned long	dwData, dwLen;
+
+	idx = EP2IDX(bEP);
+
+	// set read enable bit for specific endpoint
+	USB->USBCtrl = RD_EN | ((bEP & 0xF) << 2);
+
+	// wait for PKT_RDY
+	do {
+		dwLen = USB->USBRxPLen;
+	} while ((dwLen & PKT_RDY) == 0);
+
+	// packet valid?
+	if ((dwLen & DV) == 0) {
+		return -1;
+	}
+
+	// get length
+	dwLen &= PKT_LNGTH_MASK;
+
+	// get data
+	dwData = 0;
+	for (i = 0; i < dwLen; i++) {
+		if ((i % 4) == 0) {
+			dwData = USB->USBRxData;
+		}
+		if ((pbBuf != NULL) && (i < iMaxLen)) {
+			pbBuf[i] = dwData & 0xFF;
+		}
+		dwData >>= 8;
+	}
+
+	// make sure RD_EN is clear
+	USB->USBCtrl = 0;
+
+	// select endpoint and clear buffer
+	USBHwCmd(CMD_EP_SELECT | idx);
+	USBHwCmd(CMD_EP_CLEAR_BUFFER);
+
+	return dwLen;
+}
+
+
+/**
+	Sets the 'configured' state.
+
+	All registered endpoints are 'realised' and enabled, and the
+	'configured' bit is set in the device status register.
+
+	@param [in]	fConfigured	If TRUE, configure device, else unconfigure
+ */
+void USBHwConfigDevice(BOOL fConfigured)
+{
+	// set configured bit
+	USBHwCmdWrite(CMD_DEV_CONFIG, fConfigured ? CONF_DEVICE : 0);
+}
+
+
+/**
+ * USB interrupt handler
+ *
+ * @todo Get all 11 bits of frame number instead of just 8
+ *
+ * Endpoint interrupts are mapped to the slow interrupt
+ */
+void USBHwISR(void) {
+	unsigned long dwStatus;
+	unsigned long dwIntBit;
+	unsigned char bEPStat, bDevStat, bStat;
+	int i;
+	unsigned short wFrame;
+
+	// handle device interrupts
+	dwStatus = USB->USBDevIntSt;
+
+	// frame interrupt
+	if (dwStatus & FRAME) {
+		// clear int
+		USB->USBDevIntClr = FRAME;
+		// call handler
+		if (_pfnFrameHandler != NULL) {
+			wFrame = USBHwCmdRead(CMD_DEV_READ_CUR_FRAME_NR);
+			_pfnFrameHandler(wFrame);
+		}
+	}
+
+	// device status interrupt
+	if (dwStatus & DEV_STAT) {
+		/*	Clear DEV_STAT interrupt before reading DEV_STAT register.
+			This prevents corrupted device status reads, see
+			LPC2148 User manual revision 2, 25 july 2006.
+		*/
+		USB->USBDevIntClr = DEV_STAT;
+		bDevStat = USBHwCmdRead(CMD_DEV_STATUS);
+		if (bDevStat & (CON_CH | SUS_CH | RST)) {
+			// convert device status into something HW independent
+			bStat = ((bDevStat & CON) ? DEV_STATUS_CONNECT : 0) |
+			        ((bDevStat & SUS) ? DEV_STATUS_SUSPEND : 0) |
+			        ((bDevStat & RST) ? DEV_STATUS_RESET : 0);
+			// call handler
+			if (_pfnDevIntHandler != NULL) {
+				_pfnDevIntHandler(bStat);
+			}
+		}
+	}
+
+	// endpoint interrupt
+	if (dwStatus & EP_SLOW) {
+		// clear EP_SLOW
+		USB->USBDevIntClr = EP_SLOW;
+		// check all endpoints
+		for (i = 0; i < 32; i++) {
+			dwIntBit = (1 << i);
+			if (USB->USBEpIntSt & dwIntBit) {
+				// clear int (and retrieve status)
+				USB->USBEpIntClr = dwIntBit;
+				Wait4DevInt(CDFULL);
+				bEPStat = USB->USBCmdData;
+				// convert EP pipe stat into something HW independent
+				bStat = ((bEPStat & EPSTAT_FE) ? EP_STATUS_DATA : 0) |
+				        ((bEPStat & EPSTAT_ST) ? EP_STATUS_STALLED : 0) |
+				        ((bEPStat & EPSTAT_STP) ? EP_STATUS_SETUP : 0) |
+				        ((bEPStat & EPSTAT_EPN) ? EP_STATUS_NACKED : 0) |
+				        ((bEPStat & EPSTAT_PO) ? EP_STATUS_ERROR : 0);
+				// call handler
+				if (_apfnEPIntHandlers[i / 2] != NULL) {
+					_apfnEPIntHandlers[i / 2](IDX2EP(i), bStat);
+				}
+			}
+		}
+	}
+}
+
+
+
+/**
+	Initialises the USB hardware
+
+
+	@return TRUE if the hardware was successfully initialised
+ */
+BOOL USBHwInit(void)
+{
+  // P2.9 -> USB_CONNECT
+  //PINCON->PINSEL4 &= ~0x000C0000;
+  //PINCON->PINSEL4 |= 0x00040000;
+  // Leave it disconnected.
+  // Before the device can be used, it needs to be connected.
+  GPIO2->FIODIR |= (1UL << 9UL);
+  GPIO2->FIOCLR = (1UL << 9UL);
+
+  // P1.18 -> USB_UP_LED
+  // P1.30 -> VBUS
+  PINCON->PINSEL3 &= ~0x30000030;
+  PINCON->PINSEL3 |= 0x00000010;
+
+  // P0.29 -> USB_D+
+  // P0.30 -> USB_D-
+  PINCON->PINSEL1 &= ~0x3C000000;
+  PINCON->PINSEL1 |= 0x14000000;
+
+  // enable PUSB
+  SC->PCONP |= (1 << 31);
+
+  USB->OTGClkCtrl = 0x12;	                  /* Dev clock, AHB clock enable  */
+  while ((USB->OTGClkSt & 0x12) != 0x12);
+
+  // disable/clear all interrupts for now
+  USB->USBDevIntEn = 0;
+  USB->USBDevIntClr = 0xFFFFFFFF;
+  USB->USBDevIntPri = 0;
+
+  USB->USBEpIntEn = 0;
+  USB->USBEpIntClr = 0xFFFFFFFF;
+  USB->USBEpIntPri = 0;
+
+  // by default, only ACKs generate interrupts
+  USBHwNakIntEnable(0);
+
+  return TRUE;
+}
+
+void USBHwAllowConnect(void)
+{
+	// Enable USB.
+        GPIO2->FIOSET = (1UL << 9UL);
+}
diff --git a/gyro_board/src/usb/LPCUSB/usbhw_lpc.h b/gyro_board/src/usb/LPCUSB/usbhw_lpc.h
new file mode 100644
index 0000000..d6b60af
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbhw_lpc.h
@@ -0,0 +1,149 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/**
+	Hardware definitions for the LPC176x USB controller
+
+	These are private to the usbhw module
+*/
+
+// CodeRed - pull in defines from NXP header file
+//#include "NXP\LPC17xx\LPC17xx.h"
+#include "LPC17xx.h"
+
+
+// CodeRed - these registers have been renamed on LPC176x
+#define USBReEP USBReEp
+#define OTG_CLK_CTRL USBClkCtrl
+#define OTG_CLK_STAT USBClkSt
+
+/* USBIntSt bits */
+#define USB_INT_REQ_LP				(1<<0)
+#define USB_INT_REQ_HP				(1<<1)
+#define USB_INT_REQ_DMA				(1<<2)
+#define USB_need_clock				(1<<8)
+#define EN_USB_BITS					(1<<31)
+
+/* USBDevInt... bits */
+#define FRAME						(1<<0)
+#define EP_FAST						(1<<1)
+#define EP_SLOW						(1<<2)
+#define DEV_STAT					(1<<3)
+#define CCEMTY						(1<<4)
+#define CDFULL						(1<<5)
+#define RxENDPKT					(1<<6)
+#define TxENDPKT					(1<<7)
+#define EP_RLZED					(1<<8)
+#define ERR_INT						(1<<9)
+
+/* USBRxPLen bits */
+#define PKT_LNGTH					(1<<0)
+#define PKT_LNGTH_MASK				0x3FF
+#define DV							(1<<10)
+#define PKT_RDY						(1<<11)
+
+/* USBCtrl bits */
+#define RD_EN						(1<<0)
+#define WR_EN						(1<<1)
+#define LOG_ENDPOINT				(1<<2)
+
+/* protocol engine command codes */
+/* device commands */
+#define CMD_DEV_SET_ADDRESS			0xD0
+#define CMD_DEV_CONFIG				0xD8
+#define CMD_DEV_SET_MODE			0xF3
+#define CMD_DEV_READ_CUR_FRAME_NR	0xF5
+#define CMD_DEV_READ_TEST_REG		0xFD
+#define CMD_DEV_STATUS				0xFE		/* read/write */
+#define CMD_DEV_GET_ERROR_CODE		0xFF
+#define CMD_DEV_READ_ERROR_STATUS	0xFB
+/* endpoint commands */
+#define CMD_EP_SELECT				0x00
+#define CMD_EP_SELECT_CLEAR			0x40
+#define CMD_EP_SET_STATUS			0x40
+#define CMD_EP_CLEAR_BUFFER			0xF2
+#define CMD_EP_VALIDATE_BUFFER		0xFA
+
+/* set address command */
+#define DEV_ADDR					(1<<0)
+#define DEV_EN						(1<<7)
+
+/* configure device command */
+#define CONF_DEVICE					(1<<0)
+
+/* set mode command */
+#define AP_CLK						(1<<0)
+#define INAK_CI						(1<<1)
+#define INAK_CO						(1<<2)
+#define INAK_II						(1<<3)
+#define INAK_IO						(1<<4)
+#define INAK_BI						(1<<5)
+#define INAK_BO						(1<<6)
+
+/* set get device status command */
+#define CON							(1<<0)
+#define CON_CH						(1<<1)
+#define SUS							(1<<2)
+#define SUS_CH						(1<<3)
+#define RST							(1<<4)
+
+/* get error code command */
+// ...
+
+/* Select Endpoint command read bits */
+#define EPSTAT_FE					(1<<0)
+#define EPSTAT_ST					(1<<1)
+#define EPSTAT_STP					(1<<2)
+#define EPSTAT_PO					(1<<3)
+#define EPSTAT_EPN					(1<<4)
+#define EPSTAT_B1FULL				(1<<5)
+#define EPSTAT_B2FULL				(1<<6)
+
+/* CMD_EP_SET_STATUS command */
+#define EP_ST						(1<<0)
+#define EP_DA						(1<<5)
+#define EP_RF_MO					(1<<6)
+#define EP_CND_ST					(1<<7)
+
+/* read error status command */
+#define PID_ERR						(1<<0)
+#define UEPKT						(1<<1)
+#define DCRC						(1<<2)
+#define TIMEOUT						(1<<3)
+#define EOP							(1<<4)
+#define B_OVRN						(1<<5)
+#define BTSTF						(1<<6)
+#define TGL_ERR						(1<<7)
+
+
+
+
+
+
+
+
diff --git a/gyro_board/src/usb/LPCUSB/usbinit.c b/gyro_board/src/usb/LPCUSB/usbinit.c
new file mode 100644
index 0000000..49b31a0
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbinit.c
@@ -0,0 +1,82 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/** @file
+	USB stack initialisation
+ */
+
+
+#include "usbdebug.h"
+#include "usbapi.h"
+
+
+/** data storage area for standard requests */
+static unsigned char	abStdReqData[8];
+
+
+/**
+	USB reset handler
+
+	@param [in] bDevStatus	Device status
+ */
+static void HandleUsbReset(unsigned char bDevStatus)
+{
+	if (bDevStatus & DEV_STATUS_RESET) {
+		DBG("\n!");
+	}
+}
+
+
+/**
+	Initialises the USB hardware and sets up the USB stack by
+	installing default callbacks.
+
+	@return TRUE if initialisation was successful
+ */
+BOOL USBInit(void)
+{
+	// init hardware
+	USBHwInit();
+
+	// register bus reset handler
+	USBHwRegisterDevIntHandler(HandleUsbReset);
+
+	// register control transfer handler on EP0
+	USBHwRegisterEPIntHandler(0x00, USBHandleControlTransfer);
+	USBHwRegisterEPIntHandler(0x80, USBHandleControlTransfer);
+
+	// setup control endpoints
+	USBHwEPConfig(0x00, MAX_PACKET_SIZE0);
+	USBHwEPConfig(0x80, MAX_PACKET_SIZE0);
+
+	// register standard request handler
+	USBRegisterRequestHandler(REQTYPE_TYPE_STANDARD, USBHandleStandardRequest, abStdReqData);
+
+	return TRUE;
+}
+
diff --git a/gyro_board/src/usb/LPCUSB/usbstdreq.c b/gyro_board/src/usb/LPCUSB/usbstdreq.c
new file mode 100644
index 0000000..6a3fde5
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbstdreq.c
@@ -0,0 +1,438 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/** @file
+	Standard request handler.
+
+	This modules handles the 'chapter 9' processing, specifically the
+	standard device requests in table 9-3 from the universal serial bus
+	specification revision 2.0
+
+	Specific types of devices may specify additional requests (for example
+	HID devices add a GET_DESCRIPTOR request for interfaces), but they
+	will not be part of this module.
+
+	@todo some requests have to return a request error if device not configured:
+	@todo GET_INTERFACE, GET_STATUS, SET_INTERFACE, SYNCH_FRAME
+	@todo this applies to the following if endpoint != 0:
+	@todo SET_FEATURE, GET_FEATURE
+*/
+
+#include "usbdebug.h"
+#include "usbstruct.h"
+#include "usbapi.h"
+
+#define MAX_DESC_HANDLERS	4		/**< device, interface, endpoint, other */
+
+
+/* general descriptor field offsets */
+#define DESC_bLength					0	/**< length offset */
+#define DESC_bDescriptorType			1	/**< descriptor type offset */
+
+/* config descriptor field offsets */
+#define CONF_DESC_wTotalLength			2	/**< total length offset */
+#define CONF_DESC_bConfigurationValue	5	/**< configuration value offset */
+#define CONF_DESC_bmAttributes			7	/**< configuration characteristics */
+
+/* interface descriptor field offsets */
+#define INTF_DESC_bAlternateSetting		3	/**< alternate setting offset */
+
+/* endpoint descriptor field offsets */
+#define ENDP_DESC_bEndpointAddress		2	/**< endpoint address offset */
+#define ENDP_DESC_wMaxPacketSize		4	/**< maximum packet size offset */
+
+
+/** Currently selected configuration */
+static unsigned char				bConfiguration = 0;
+/** Installed custom request handler */
+static TFnHandleRequest	*pfnHandleCustomReq = NULL;
+/** Pointer to registered descriptors */
+static const unsigned char			*pabDescrip = NULL;
+
+
+/**
+	Registers a pointer to a descriptor block containing all descriptors
+	for the device.
+
+	@param [in]	pabDescriptors	The descriptor byte array
+ */
+void USBRegisterDescriptors(const unsigned char *pabDescriptors)
+{
+	pabDescrip = pabDescriptors;
+}
+
+
+/**
+	Parses the list of installed USB descriptors and attempts to find
+	the specified USB descriptor.
+
+	@param [in]		wTypeIndex	Type and index of the descriptor
+	@param [in]		wLangID		Language ID of the descriptor (currently unused)
+	@param [out]	*piLen		Descriptor length
+	@param [out]	*ppbData	Descriptor data
+
+	@return TRUE if the descriptor was found, FALSE otherwise
+ */
+BOOL USBGetDescriptor(unsigned short wTypeIndex, unsigned short wLangID, int *piLen, unsigned char **ppbData)
+{
+	unsigned char	bType, bIndex;
+	unsigned char	*pab;
+	int iCurIndex;
+
+	ASSERT(pabDescrip != NULL);
+
+	bType = GET_DESC_TYPE(wTypeIndex);
+	bIndex = GET_DESC_INDEX(wTypeIndex);
+
+	pab = (unsigned char *)pabDescrip;
+	iCurIndex = 0;
+
+	while (pab[DESC_bLength] != 0) {
+		if (pab[DESC_bDescriptorType] == bType) {
+			if (iCurIndex == bIndex) {
+				// set data pointer
+				*ppbData = pab;
+				// get length from structure
+				if (bType == DESC_CONFIGURATION) {
+					// configuration descriptor is an exception, length is at offset 2 and 3
+					*piLen =	(pab[CONF_DESC_wTotalLength]) |
+					         (pab[CONF_DESC_wTotalLength + 1] << 8);
+				} else {
+					// normally length is at offset 0
+					*piLen = pab[DESC_bLength];
+				}
+				return TRUE;
+			}
+			iCurIndex++;
+		}
+		// skip to next descriptor
+		pab += pab[DESC_bLength];
+	}
+	// nothing found
+	DBG("Desc %x not found!\n", wTypeIndex);
+	return FALSE;
+}
+
+
+/**
+	Configures the device according to the specified configuration index and
+	alternate setting by parsing the installed USB descriptor list.
+	A configuration index of 0 unconfigures the device.
+
+	@param [in]		bConfigIndex	Configuration index
+	@param [in]		bAltSetting		Alternate setting number
+
+	@todo function always returns TRUE, add stricter checking?
+
+	@return TRUE if successfully configured, FALSE otherwise
+ */
+static BOOL USBSetConfiguration(unsigned char bConfigIndex, unsigned char bAltSetting)
+{
+	unsigned char	*pab;
+	unsigned char	bCurConfig, bCurAltSetting;
+	unsigned char	bEP;
+	unsigned short	wMaxPktSize;
+
+	ASSERT(pabDescrip != NULL);
+
+	if (bConfigIndex == 0) {
+		// unconfigure device
+		USBHwConfigDevice(FALSE);
+	} else {
+		// configure endpoints for this configuration/altsetting
+		pab = (unsigned char *)pabDescrip;
+		bCurConfig = 0xFF;
+		bCurAltSetting = 0xFF;
+
+		while (pab[DESC_bLength] != 0) {
+
+			switch (pab[DESC_bDescriptorType]) {
+
+			case DESC_CONFIGURATION:
+				// remember current configuration index
+				bCurConfig = pab[CONF_DESC_bConfigurationValue];
+				break;
+
+			case DESC_INTERFACE:
+				// remember current alternate setting
+				bCurAltSetting = pab[INTF_DESC_bAlternateSetting];
+				break;
+
+			case DESC_ENDPOINT:
+				if ((bCurConfig == bConfigIndex) &&
+				                (bCurAltSetting == bAltSetting)) {
+					// endpoint found for desired config and alternate setting
+					bEP = pab[ENDP_DESC_bEndpointAddress];
+					wMaxPktSize =	(pab[ENDP_DESC_wMaxPacketSize]) |
+					              (pab[ENDP_DESC_wMaxPacketSize + 1] << 8);
+					// configure endpoint
+					USBHwEPConfig(bEP, wMaxPktSize);
+				}
+				break;
+
+			default:
+				break;
+			}
+			// skip to next descriptor
+			pab += pab[DESC_bLength];
+		}
+
+		// configure device
+		USBHwConfigDevice(TRUE);
+	}
+
+	return TRUE;
+}
+SetConfigHandler *SetConfig_CallBack = NULL;
+void USBHwRegisterSetConfigHandler(SetConfigHandler *handler){
+	SetConfig_CallBack = handler;
+}
+
+
+/**
+	Local function to handle a standard device request
+
+	@param [in]		pSetup		The setup packet
+	@param [in,out]	*piLen		Pointer to data length
+	@param [in,out]	ppbData		Data buffer.
+
+	@return TRUE if the request was handled successfully
+ */
+static BOOL HandleStdDeviceReq(TSetupPacket *pSetup, int *piLen, unsigned char **ppbData)
+{
+	unsigned char	*pbData = *ppbData;
+
+	switch (pSetup->bRequest) {
+
+	case REQ_GET_STATUS:
+		// bit 0: self-powered
+		// bit 1: remote wakeup = not supported
+		pbData[0] = 0;
+		pbData[1] = 0;
+		*piLen = 2;
+		break;
+
+	case REQ_SET_ADDRESS:
+		USBHwSetAddress(pSetup->wValue);
+		break;
+
+	case REQ_GET_DESCRIPTOR:
+		DBG("D%x", pSetup->wValue);
+		return USBGetDescriptor(pSetup->wValue, pSetup->wIndex, piLen, ppbData);
+
+	case REQ_GET_CONFIGURATION:
+		// indicate if we are configured
+		pbData[0] = bConfiguration;
+		*piLen = 1;
+		break;
+
+	case REQ_SET_CONFIGURATION:
+		if (!USBSetConfiguration(pSetup->wValue & 0xFF, 0)) {
+			DBG("USBSetConfiguration failed!\n");
+			return FALSE;
+		}
+		// configuration successful, update current configuration
+		bConfiguration = pSetup->wValue & 0xFF;
+		if(SetConfig_CallBack != NULL)
+			SetConfig_CallBack();
+		break;
+
+	case REQ_CLEAR_FEATURE:
+	case REQ_SET_FEATURE:
+		if (pSetup->wValue == FEA_REMOTE_WAKEUP) {
+			// put DEVICE_REMOTE_WAKEUP code here
+		}
+		if (pSetup->wValue == FEA_TEST_MODE) {
+			// put TEST_MODE code here
+		}
+		return FALSE;
+
+	case REQ_SET_DESCRIPTOR:
+		DBG("Device req %d not implemented\n", pSetup->bRequest);
+		return FALSE;
+
+	default:
+		DBG("Illegal device req %d\n", pSetup->bRequest);
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+
+/**
+	Local function to handle a standard interface request
+
+	@param [in]		pSetup		The setup packet
+	@param [in,out]	*piLen		Pointer to data length
+	@param [in]		ppbData		Data buffer.
+
+	@return TRUE if the request was handled successfully
+ */
+static BOOL HandleStdInterfaceReq(TSetupPacket	*pSetup, int *piLen, unsigned char **ppbData)
+{
+	unsigned char	*pbData = *ppbData;
+
+	switch (pSetup->bRequest) {
+
+	case REQ_GET_STATUS:
+		// no bits specified
+		pbData[0] = 0;
+		pbData[1] = 0;
+		*piLen = 2;
+		break;
+
+	case REQ_CLEAR_FEATURE:
+	case REQ_SET_FEATURE:
+		// not defined for interface
+		return FALSE;
+
+	case REQ_GET_INTERFACE:	// TODO use bNumInterfaces
+		// there is only one interface, return n-1 (= 0)
+		pbData[0] = 0;
+		*piLen = 1;
+		break;
+
+	case REQ_SET_INTERFACE:	// TODO use bNumInterfaces
+		// there is only one interface (= 0)
+		if (pSetup->wValue != 0) {
+			return FALSE;
+		}
+		*piLen = 0;
+		break;
+
+	default:
+		DBG("Illegal interface req %d\n", pSetup->bRequest);
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+
+/**
+	Local function to handle a standard endpoint request
+
+	@param [in]		pSetup		The setup packet
+	@param [in,out]	*piLen		Pointer to data length
+	@param [in]		ppbData		Data buffer.
+
+	@return TRUE if the request was handled successfully
+ */
+static BOOL HandleStdEndPointReq(TSetupPacket	*pSetup, int *piLen, unsigned char **ppbData)
+{
+	unsigned char	*pbData = *ppbData;
+
+	switch (pSetup->bRequest) {
+	case REQ_GET_STATUS:
+		// bit 0 = endpointed halted or not
+		pbData[0] = (USBHwEPGetStatus(pSetup->wIndex) & EP_STATUS_STALLED) ? 1 : 0;
+		pbData[1] = 0;
+		*piLen = 2;
+		break;
+
+	case REQ_CLEAR_FEATURE:
+		if (pSetup->wValue == FEA_ENDPOINT_HALT) {
+			// clear HALT by unstalling
+			USBHwEPStall(pSetup->wIndex, FALSE);
+			break;
+		}
+		// only ENDPOINT_HALT defined for endpoints
+		return FALSE;
+
+	case REQ_SET_FEATURE:
+		if (pSetup->wValue == FEA_ENDPOINT_HALT) {
+			// set HALT by stalling
+			USBHwEPStall(pSetup->wIndex, TRUE);
+			break;
+		}
+		// only ENDPOINT_HALT defined for endpoints
+		return FALSE;
+
+	case REQ_SYNCH_FRAME:
+		DBG("EP req %d not implemented\n", pSetup->bRequest);
+		return FALSE;
+
+	default:
+		DBG("Illegal EP req %d\n", pSetup->bRequest);
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+
+/**
+	Default handler for standard ('chapter 9') requests
+
+	If a custom request handler was installed, this handler is called first.
+
+	@param [in]		pSetup		The setup packet
+	@param [in,out]	*piLen		Pointer to data length
+	@param [in]		ppbData		Data buffer.
+
+	@return TRUE if the request was handled successfully
+ */
+BOOL USBHandleStandardRequest(TSetupPacket	*pSetup, int *piLen, unsigned char **ppbData)
+{
+	// try the custom request handler first
+	if ((pfnHandleCustomReq != NULL) && pfnHandleCustomReq(pSetup, piLen, ppbData)) {
+		return TRUE;
+	}
+
+	switch (REQTYPE_GET_RECIP(pSetup->bmRequestType)) {
+	case REQTYPE_RECIP_DEVICE:
+		return HandleStdDeviceReq(pSetup, piLen, ppbData);
+	case REQTYPE_RECIP_INTERFACE:
+		return HandleStdInterfaceReq(pSetup, piLen, ppbData);
+	case REQTYPE_RECIP_ENDPOINT:
+		return HandleStdEndPointReq(pSetup, piLen, ppbData);
+	default:
+		return FALSE;
+	}
+}
+
+
+/**
+	Registers a callback for custom device requests
+
+	In USBHandleStandardRequest, the custom request handler gets a first
+	chance at handling the request before it is handed over to the 'chapter 9'
+	request handler.
+
+	This can be used for example in HID devices, where a REQ_GET_DESCRIPTOR
+	request is sent to an interface, which is not covered by the 'chapter 9'
+	specification.
+
+	@param [in]	pfnHandler	Callback function pointer
+ */
+void USBRegisterCustomReqHandler(TFnHandleRequest *pfnHandler)
+{
+	pfnHandleCustomReq = pfnHandler;
+}
+
diff --git a/gyro_board/src/usb/LPCUSB/usbstruct.h b/gyro_board/src/usb/LPCUSB/usbstruct.h
new file mode 100644
index 0000000..d6bd725
--- /dev/null
+++ b/gyro_board/src/usb/LPCUSB/usbstruct.h
@@ -0,0 +1,119 @@
+/*
+	LPCUSB, an USB device driver for LPC microcontrollers
+	Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)
+
+	Redistribution and use in source and binary forms, with or without
+	modification, are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright
+	   notice, this list of conditions and the following disclaimer.
+	2. Redistributions in binary form must reproduce the above copyright
+	   notice, this list of conditions and the following disclaimer in the
+	   documentation and/or other materials provided with the distribution.
+	3. The name of the author may not be used to endorse or promote products
+	   derived from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/**
+	Definitions of structures of standard USB packets
+*/
+
+#ifndef _USBSTRUCT_H_
+#define _USBSTRUCT_H_
+
+// CodeRed - include the LPCUSB type.h file rather than NXP one directly
+#include "type.h"
+
+/** setup packet definitions */
+typedef struct {
+	unsigned char	bmRequestType;			/**< characteristics of the specific request */
+	unsigned char	bRequest;				/**< specific request */
+	unsigned short	wValue;					/**< request specific parameter */
+	unsigned short	wIndex;					/**< request specific parameter */
+	unsigned short	wLength;				/**< length of data transfered in data phase */
+} TSetupPacket;
+
+
+#define REQTYPE_GET_DIR(x)		(((x)>>7)&0x01)
+#define REQTYPE_GET_TYPE(x)		(((x)>>5)&0x03)
+#define REQTYPE_GET_RECIP(x)	((x)&0x1F)
+
+#define REQTYPE_DIR_TO_DEVICE	0
+#define REQTYPE_DIR_TO_HOST		1
+
+#define REQTYPE_TYPE_STANDARD	0
+#define REQTYPE_TYPE_CLASS		1
+#define REQTYPE_TYPE_VENDOR		2
+#define REQTYPE_TYPE_RESERVED	3
+
+#define REQTYPE_RECIP_DEVICE	0
+#define REQTYPE_RECIP_INTERFACE	1
+#define REQTYPE_RECIP_ENDPOINT	2
+#define REQTYPE_RECIP_OTHER		3
+
+/* standard requests */
+#define	REQ_GET_STATUS			0x00
+#define REQ_CLEAR_FEATURE		0x01
+#define REQ_SET_FEATURE			0x03
+#define REQ_SET_ADDRESS			0x05
+#define REQ_GET_DESCRIPTOR		0x06
+#define REQ_SET_DESCRIPTOR		0x07
+#define REQ_GET_CONFIGURATION	0x08
+#define REQ_SET_CONFIGURATION	0x09
+#define REQ_GET_INTERFACE		0x0A
+#define REQ_SET_INTERFACE		0x0B
+#define REQ_SYNCH_FRAME			0x0C
+
+/* class requests HID */
+#define HID_GET_REPORT			0x01
+#define HID_GET_IDLE			0x02
+#define HID_GET_PROTOCOL	 	0x03
+#define HID_SET_REPORT			0x09
+#define HID_SET_IDLE			0x0A
+#define HID_SET_PROTOCOL		0x0B
+
+/* feature selectors */
+#define FEA_ENDPOINT_HALT		0x00
+#define FEA_REMOTE_WAKEUP		0x01
+#define FEA_TEST_MODE			0x02
+
+/*
+	USB descriptors
+*/
+
+/** USB descriptor header */
+typedef struct {
+	unsigned char	bLength;			/**< descriptor length */
+	unsigned char	bDescriptorType;	/**< descriptor type */
+} TUSBDescHeader;
+
+#define DESC_DEVICE				1
+#define DESC_CONFIGURATION		2
+#define DESC_STRING				3
+#define DESC_INTERFACE			4
+#define DESC_ENDPOINT			5
+#define DESC_DEVICE_QUALIFIER	6
+#define DESC_OTHER_SPEED		7
+#define DESC_INTERFACE_POWER	8
+
+#define DESC_HID_HID			0x21
+#define DESC_HID_REPORT			0x22
+#define DESC_HID_PHYSICAL		0x23
+
+#define GET_DESC_TYPE(x)		(((x)>>8)&0xFF)
+#define GET_DESC_INDEX(x)		((x)&0xFF)
+
+#endif /* _USBSTRUCT_H_ */
+
diff --git a/gyro_board/src/usb/Makefile b/gyro_board/src/usb/Makefile
new file mode 100644
index 0000000..a87936e
--- /dev/null
+++ b/gyro_board/src/usb/Makefile
@@ -0,0 +1,63 @@
+NAME=main
+
+LDSCRIPT=lpc1758_Debug.ld
+
+CSRC=main.c
+
+GCC_PATH=/usr/local/cortex-m3/bin
+
+PORT=/dev/ttyUSB0
+
+CC=$(GCC_PATH)/arm-eabi-gcc
+LD=$(GCC_PATH)/arm-eabi-ld
+OBJCOPY=$(GCC_PATH)/arm-eabi-objcopy
+AS=$(GCC_PATH)/arm-eabi-as
+FLASHER=lpc21isp
+
+CFLAGS=-I. -I./FreeRTOS/include -I./FreeRTOS/portable/GCC/ARM_CM3/ -I./CommonDemoTasks/include -Os -mcpu=cortex-m3 -mthumb -Wl,--gc-sections -ffunction-sections -Wl,-static -Werror
+
+SPEED=38400
+OSC=12000
+
+SOURCES=main.c \
+	ParTest.c \
+	printf-stdarg.c \
+	cr_startup_lpc17.c \
+	CommonDemoTasks/flash.c \
+	FreeRTOS/portable/MemMang/heap_2.c \
+	alloc.c \
+	analog.c \
+	FreeRTOS/portable/GCC/ARM_CM3/port.c \
+	FreeRTOS/tasks.c \
+	FreeRTOS/list.c \
+	FreeRTOS/queue.c \
+	CAN.c \
+	LPCUSB/usbinit.c \
+	LPCUSB/usbcontrol.c \
+	LPCUSB/USB_SENSOR_STREAM.c \
+	LPCUSB/usbhw_lpc.c \
+	spi.c \
+	LPCUSB/usbstdreq.c
+
+all: $(NAME).hex
+
+$(NAME).elf: Makefile $(SOURCES:.c=.o) $(LDSCRIPT)
+	$(CC) $(CFLAGS) -nostartfiles -nostdlib -T $(LDSCRIPT) -o $@ -L/usr/local/cortex-m3/lib/gcc/arm-eabi/4.5.1/ $(SOURCES:.c=.o) -Wa,-Map -Wa,main.map -lgcc
+
+%.o: %.c Makefile
+	$(CC) $(CFLAGS) -nostartfiles -nostdlib -c -o $@ $< -Wall -std=gnu99
+
+run: deploy
+	$(FLASHER) -termonly $(NAME).hex $(PORT) $(SPEED) $(OSC)
+
+deploy: all $(NAME).hex
+	$(FLASHER) -hex -verify $(NAME).hex $(PORT) $(SPEED) $(OSC)
+
+cat:
+	@cd ../../bin; python serial_looper.py
+
+%.hex: %.elf Makefile
+	$(OBJCOPY) -O ihex $< $@
+
+clean:
+	rm -rf $(SOURCES:.c=.o) $(NAME).hex $(NAME).elf
diff --git a/gyro_board/src/usb/ParTest.c b/gyro_board/src/usb/ParTest.c
new file mode 100644
index 0000000..67f3a45
--- /dev/null
+++ b/gyro_board/src/usb/ParTest.c
@@ -0,0 +1,119 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    ***************************************************************************
+    *                                                                         *
+    * If you are:                                                             *
+    *                                                                         *
+    *    + New to FreeRTOS,                                                   *
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
+    *    + Looking for basic training,                                        *
+    *    + Wanting to improve your FreeRTOS skills and productivity           *
+    *                                                                         *
+    * then take a look at the FreeRTOS eBook                                  *
+    *                                                                         *
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
+    *                  http://www.FreeRTOS.org/Documentation                  *
+    *                                                                         *
+    * A pdf reference manual is also available.  Both are usually delivered   *
+    * to your inbox within 20 minutes to two hours when purchased between 8am *
+    * and 8pm GMT (although please allow up to 24 hours in case of            *
+    * exceptional circumstances).  Thank you for your support!                *
+    *                                                                         *
+    ***************************************************************************
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+
+    http://www.FreeRTOS.org - Documentation, latest information, license and
+    contact details.
+
+    http://www.SafeRTOS.com - A version that is certified for use in safety
+    critical systems.
+
+    http://www.OpenRTOS.com - Commercial support, development, porting,
+    licensing and training services.
+*/
+
+/* FreeRTOS.org includes. */
+#include "FreeRTOS.h"
+
+/* Demo application includes. */
+#include "partest.h"
+
+#define LED_1 ( 1UL << 8UL )
+#define LED_2 ( 1UL << 7UL )
+#define LED_3 ( 1UL << 6UL )
+
+#define partstFIO1_BITS			( LED_2 | LED_3 | LED_1)
+#define partstNUM_LEDS			( 3 )
+
+static unsigned long ulLEDs[] = {LED_1, LED_2, LED_3};
+
+/*-----------------------------------------------------------
+ * Simple parallel port IO routines.
+ *-----------------------------------------------------------*/
+
+void vParTestInitialise(void)
+{
+        /* LEDs on port 2. */
+        GPIO2->FIODIR |= partstFIO1_BITS;
+        //GPIO0->FIODIR = LED_4;
+
+        /* Start will all LEDs off. */
+        GPIO2->FIOCLR = partstFIO1_BITS;
+        //GPIO0->FIOSET = LED_4;
+	//PINCON->PINMODE0 = (PINCON->PINMODE0 & 0xfffffff0) | 0x00000001;
+}
+/*-----------------------------------------------------------*/
+
+void vParTestSetLED(unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue)
+{
+        if (uxLED < partstNUM_LEDS) {
+                if (xValue) {
+                       	GPIO2->FIOCLR = ulLEDs[uxLED];
+                } else {
+                       	GPIO2->FIOSET = ulLEDs[uxLED];
+                }
+        }
+}
+/*-----------------------------------------------------------*/
+
+void vParTestToggleLED(unsigned portBASE_TYPE uxLED)
+{
+        if (uxLED < partstNUM_LEDS) {
+               	if (GPIO2->FIOPIN & ulLEDs[uxLED]) {
+                       	GPIO2->FIOCLR = ulLEDs[uxLED];
+               	} else {
+                       	GPIO2->FIOSET = ulLEDs[uxLED];
+               	}
+        }
+}
+/*-----------------------------------------------------------*/
+
+unsigned portBASE_TYPE uxParTextGetLED(unsigned portBASE_TYPE uxLED)
+{
+        if (uxLED < partstNUM_LEDS) {
+                return (GPIO2->FIOPIN & ulLEDs[uxLED]);
+        } else {
+                return 0;
+        }
+}
+/*-----------------------------------------------------------*/
+
diff --git a/gyro_board/src/usb/alloc.c b/gyro_board/src/usb/alloc.c
new file mode 100644
index 0000000..1684551
--- /dev/null
+++ b/gyro_board/src/usb/alloc.c
@@ -0,0 +1,62 @@
+/* 
+ * This is a glue between newlib and FreeRTOS heap2 allocator !
+ * You need to understand how heap2 works and its limitations,
+ * otherwise you will run out of memory.
+ *
+ * Michal Demin - 2010
+ *
+ * TODO: reent is there for a reason !
+ *
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* definition of block structure, copied from heap2 allocator */
+typedef struct A_BLOCK_LINK
+{
+	struct A_BLOCK_LINK *pxNextFreeBlock;	/*<< The next free block in the list. */
+	size_t xBlockSize;						/*<< The size of the free block. */
+} xBlockLink;
+
+static const unsigned short  heapSTRUCT_SIZE	= ( sizeof( xBlockLink ) + portBYTE_ALIGNMENT - ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) );
+
+_PTR _realloc_r(struct _reent *re, _PTR oldAddr, size_t newSize) {
+	xBlockLink *block;
+	size_t toCopy;
+	void *newAddr;
+
+	newAddr = pvPortMalloc(newSize);
+
+	if (newAddr == NULL)
+		return NULL;
+
+	/* We need the block struct pointer to get the current size */
+	block = oldAddr;
+	block -= heapSTRUCT_SIZE;
+
+	/* determine the size to be copied */
+	toCopy = (newSize<block->xBlockSize)?(newSize):(block->xBlockSize);
+
+	/* copy old block into new one */
+	memcpy((void *)newAddr, (void *)oldAddr, (size_t)toCopy);
+
+	vPortFree(oldAddr);
+	
+	return newAddr;
+}
+
+_PTR _calloc_r(struct _reent *re, size_t num, size_t size) {
+	return pvPortMalloc(num*size);
+}
+
+_PTR _malloc_r(struct _reent *re, size_t size) {
+	return pvPortMalloc(size);
+}
+
+_VOID _free_r(struct _reent *re, _PTR ptr) {
+	vPortFree(ptr);
+}
+
diff --git a/gyro_board/src/usb/analog.c b/gyro_board/src/usb/analog.c
new file mode 100644
index 0000000..9e67dd5
--- /dev/null
+++ b/gyro_board/src/usb/analog.c
@@ -0,0 +1,220 @@
+// ****************************************************************************
+// CopyLeft qwerk Robotics unINC. 2010 All Rights Reserved.
+// ****************************************************************************
+
+// ****************************************************************************
+// **************** IO Pin Setup
+// ****************************************************************************
+
+#include "FreeRTOS.h"
+
+void analog_init (void)
+{
+	// b[1:0] CAN RD1 p0.0
+	// b[3:2] CAN TD1 p0.1
+	//PINCON->PINSEL0 = 0x00000005;
+
+	// b[29:28] USB_DMIN 	p0.30
+	// b[27:26] USB_DPLUS	p0.29
+	// b[21:20] AD0.3	p0.26
+	// b[19:18] AD0.2	p0.25
+	// PINCON->PINSEL1 = 0x14140000;
+
+	// PINCON->PINSEL2 = 0x0;
+
+	// b[31:30] AD0.5	p1.31
+	// b[29:28] V_BUS	p1.30
+	// b[21:20] MCOB1	p1.26
+	// b[19:18] MCOA1	p1.25
+	// b[15:14] MCI1	p1.23
+	// b[13:12] MCOB0	p1.22
+	// b[09:08] MCI0	p1.20
+	// b[07:06] MCOA0	p1.19
+	// b[05:04] USB_UP_LED	p1.18
+	//PINCON->PINSEL3 = 0xE0145150;
+	SC->PCONP |= PCONP_PCAD;
+
+	// Enable AD0.0, AD0.1, AD0.2, AD0.3
+	PINCON->PINSEL1 &= 0xFFC03FFF;
+	PINCON->PINSEL1 |= 0x00D54000;
+	ADC->ADCR = 0x00200500;
+}
+
+// ****************************************************************************
+// **************** ADC Functions
+// ****************************************************************************
+
+
+// **************** macros
+// starts convertion [26:24] = 001
+
+// **************** functions
+int analog(int channel)
+{
+	ADC->ADCR = ((ADC->ADCR & 0xF8FFFF00) | (0x01000000 | (1 << channel)));
+
+	// Poll until it is done.
+	while(!(ADC->ADGDR & 0x80000000));
+
+	return ((ADC->ADGDR & 0x0000FFF0) >> 4);
+}
+// GPIO1 P0.4
+// GPIO2 P0.5
+// GPIO3 P0.6
+// GPIO4 P0.7
+// GPIO5 P0.8
+// GPIO6 P0.9
+// GPIO7 P2.0
+// GPIO8 P2.1
+// GPIO9 P2.2
+// GPIO10 P2.3
+// GPIO11 P2.4
+// GPIO12 P2.5
+
+// DIP0 P1.29
+// DIP1 P2.13
+// DIP2 P0.11
+// DIP3 P0.10
+#define readGPIO(gpio,chan) ((((gpio)->FIOPIN) >> (chan)) & 1)
+inline int readGPIO_inline(int major,int minor){
+	switch(major){
+		case 0:
+			return readGPIO(GPIO0,minor);
+		case 1:
+			return readGPIO(GPIO1,minor);
+		case 2:
+			return readGPIO(GPIO2,minor);
+		default:
+			return -1;
+	}
+}
+int digital(int channel)
+{
+	if(channel < 1){
+		return -1;
+	}else if(channel < 7){
+		int chan = channel + 3;
+		return readGPIO(GPIO0,chan);
+	}else if(channel < 13){
+		int chan = channel - 7;
+		return readGPIO(GPIO2,chan);
+	}
+	return -1;
+}
+int dip(int channel)
+{
+	switch(channel){
+		case 0:
+			return readGPIO(GPIO1,29);
+		case 1:
+			return readGPIO(GPIO2,13);
+		case 2:
+			return readGPIO(GPIO0,11);
+		case 3:
+			return readGPIO(GPIO0,10);
+		default:
+			return -1;
+
+	}
+}
+//ENC0A 1.20
+//ENC0B 1.23
+//ENC1A 2.11
+//ENC1B 2.12
+//ENC2A 0.21
+//ENC2B 0.22
+//ENC3A 0.19
+//ENC3B 0.20
+
+#define ENC(gpio,a,b) readGPIO(gpio,a) * 2 + readGPIO(gpio,b)
+int encoder_bits(int channel)
+{
+	switch(channel){
+		case 0:
+			return ENC(GPIO1,20,23);
+		case 1:
+			return ENC(GPIO2,11,12);
+		case 2:	
+			return ENC(GPIO0,21,22);
+		case 3:	
+			return ENC(GPIO0,19,20);
+		default:
+			return -1;
+	}
+	return -1;
+}
+
+volatile int32_t encoder1_val;
+void encoder_init(void)
+{
+// port 0
+	// Setup the encoder interface.
+	SC->PCONP |= PCONP_PCQEI;
+	PINCON->PINSEL3 = ((PINCON->PINSEL3 & 0xffff3dff) | 0x00004100);
+
+	// Reset the count and velocity
+	QEI->QEICON = 0x00000005;
+
+	QEI->QEICONF = 0x00000004;
+	// Wrap back to 0 when we wrap the int...
+	QEI->QEIMAXPOS = 0xffffffff;
+// port 1
+	NVIC_EnableIRQ(EINT1_IRQn);
+	NVIC_EnableIRQ(EINT2_IRQn);
+	//NVIC_EnableIRQ(EINT3_IRQn);
+	//PINSEL4 23/22 0 1
+	//PINSEL4 25 24 0 1
+	PINCON->PINSEL4 = (PINCON->PINSEL4 & ~(0x3 << 22)) | (0x1 << 22);
+	PINCON->PINSEL4 = (PINCON->PINSEL4 & ~(0x3 << 24)) | (0x1 << 24);
+
+	//EXTMODE 1 2 1 1 // all others off
+	SC->EXTMODE = 0x6;
+	SC->EXTINT = 0x6;
+	encoder1_val = 0;
+//ports 2 and 3
+	
+
+}
+void EINT1_IRQHandler(void){
+	//ENC1A 2.11
+	int stored_val = encoder1_val;
+	int fiopin = GPIO2->FIOPIN;
+	if(((fiopin >> 1) ^ fiopin) & 0x800){
+		stored_val ++;
+	}else{
+		stored_val --;
+	}
+	encoder1_val = stored_val;
+	SC->EXTPOLAR ^= 0x2;   
+	SC->EXTINT = 0x2;
+}
+void EINT2_IRQHandler(void){
+	//ENC1B 2.12
+	int stored_val = encoder1_val;
+	int fiopin = GPIO2->FIOPIN;
+	if(((fiopin >> 1) ^ fiopin) & 0x800){
+		stored_val --;
+	}else{
+		stored_val ++;
+	}
+	encoder1_val = stored_val;
+	SC->EXTPOLAR ^= 0x4;   
+	SC->EXTINT = 0x4;
+}
+void EINT3_IRQHandler(void){
+	
+}
+int32_t encoder_val(int chan)
+{
+	switch(chan){
+		case 0:
+			return (int32_t)QEI->QEIPOS;
+		case 1:
+			return encoder1_val;
+		case 2:
+		case 3:
+		default:
+			return -1;
+	}
+}
+
diff --git a/gyro_board/src/usb/analog.h b/gyro_board/src/usb/analog.h
new file mode 100644
index 0000000..e9704f6
--- /dev/null
+++ b/gyro_board/src/usb/analog.h
@@ -0,0 +1,11 @@
+#ifndef __ANALOG_H__
+#define __ANALOG_H__
+
+void analog_init (void);
+int analog(int chan);
+int digital(int chan);
+int encoder_bits(int chan);
+void encoder_init(void);
+int32_t encoder_val(int chan);
+int dip(int chan);
+#endif // __ANALOG_H__
diff --git a/gyro_board/src/usb/core_cm3.h b/gyro_board/src/usb/core_cm3.h
new file mode 100644
index 0000000..a6e8707
--- /dev/null
+++ b/gyro_board/src/usb/core_cm3.h
@@ -0,0 +1,1376 @@
+/******************************************************************************
+ * @file:    core_cm3.h
+ * @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File
+ * @version: V1.20
+ * @date:    22. May 2009
+ *----------------------------------------------------------------------------
+ *
+ * Copyright (C) 2009 ARM Limited. All rights reserved.
+ *
+ * ARM Limited (ARM) is supplying this software for use with Cortex-Mx
+ * processor based microcontrollers.  This file can be freely distributed
+ * within development tools that are supporting such ARM based processors.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ ******************************************************************************/
+
+#ifndef __CM3_CORE_H__
+#define __CM3_CORE_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define __CM3_CMSIS_VERSION_MAIN  (0x01)                                                       /*!< [31:16] CMSIS HAL main version */
+#define __CM3_CMSIS_VERSION_SUB   (0x20)                                                       /*!< [15:0]  CMSIS HAL sub version  */
+#define __CM3_CMSIS_VERSION       ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number       */
+
+#define __CORTEX_M                (0x03)                                                       /*!< Cortex core                    */
+
+        /**
+         *  Lint configuration \n
+         *  ----------------------- \n
+         *
+         *  The following Lint messages will be suppressed and not shown: \n
+         *  \n
+         *    --- Error 10: --- \n
+         *    register uint32_t __regBasePri         __asm("basepri"); \n
+         *    Error 10: Expecting ';' \n
+         *     \n
+         *    --- Error 530: --- \n
+         *    return(__regBasePri); \n
+         *    Warning 530: Symbol '__regBasePri' (line 264) not initialized \n
+         *     \n
+         *    --- Error 550: --- \n
+         *      __regBasePri = (basePri & 0x1ff); \n
+         *    } \n
+         *    Warning 550: Symbol '__regBasePri' (line 271) not accessed \n
+         *     \n
+         *    --- Error 754: --- \n
+         *    uint32_t RESERVED0[24]; \n
+         *    Info 754: local structure member '<some, not used in the HAL>' (line 109, file ./cm3_core.h) not referenced \n
+         *     \n
+         *    --- Error 750: --- \n
+         *    #define __CM3_CORE_H__ \n
+         *    Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced \n
+         *     \n
+         *    --- Error 528: --- \n
+         *    static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n
+         *    Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced \n
+         *     \n
+         *    --- Error 751: --- \n
+         *    } InterruptType_Type; \n
+         *    Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced \n
+         * \n
+         * \n
+         *    Note:  To re-enable a Message, insert a space before 'lint' * \n
+         *
+         */
+
+        /*lint -save */
+        /*lint -e10  */
+        /*lint -e530 */
+        /*lint -e550 */
+        /*lint -e754 */
+        /*lint -e750 */
+        /*lint -e528 */
+        /*lint -e751 */
+
+
+#include <stdint.h>                           /* Include standard types */
+
+#if defined (__ICCARM__)
+#include <intrinsics.h>                     /* IAR Intrinsics   */
+#endif
+
+
+#ifndef __NVIC_PRIO_BITS
+#define __NVIC_PRIO_BITS    4               /*!< standard definition for NVIC Priority Bits */
+#endif
+
+
+
+
+        /**
+         * IO definitions
+         *
+         * define access restrictions to peripheral registers
+         */
+
+#ifdef __cplusplus
+#define     __I     volatile                  /*!< defines 'read only' permissions      */
+#else
+#define     __I     volatile const            /*!< defines 'read only' permissions      */
+#endif
+#define     __O     volatile                  /*!< defines 'write only' permissions     */
+#define     __IO    volatile                  /*!< defines 'read / write' permissions   */
+
+
+
+        /*******************************************************************************
+         *                 Register Abstraction
+         ******************************************************************************/
+
+
+        /* System Reset */
+#define NVIC_VECTRESET              0         /*!< Vector Reset Bit             */
+#define NVIC_SYSRESETREQ            2         /*!< System Reset Request         */
+#define NVIC_AIRCR_VECTKEY    (0x5FA << 16)   /*!< AIRCR Key for write access   */
+#define NVIC_AIRCR_ENDIANESS        15        /*!< Endianess                    */
+
+        /* Core Debug */
+#define CoreDebug_DEMCR_TRCENA (1 << 24)      /*!< DEMCR TRCENA enable          */
+#define ITM_TCR_ITMENA              1         /*!< ITM enable                   */
+
+
+
+
+        /* memory mapping struct for Nested Vectored Interrupt Controller (NVIC) */
+        typedef struct {
+                __IO uint32_t ISER[8];                      /*!< Interrupt Set Enable Register            */
+                uint32_t RESERVED0[24];
+                __IO uint32_t ICER[8];                      /*!< Interrupt Clear Enable Register          */
+                uint32_t RSERVED1[24];
+                __IO uint32_t ISPR[8];                      /*!< Interrupt Set Pending Register           */
+                uint32_t RESERVED2[24];
+                __IO uint32_t ICPR[8];                      /*!< Interrupt Clear Pending Register         */
+                uint32_t RESERVED3[24];
+                __IO uint32_t IABR[8];                      /*!< Interrupt Active bit Register            */
+                uint32_t RESERVED4[56];
+                __IO uint8_t  IP[240];                      /*!< Interrupt Priority Register, 8Bit wide   */
+                uint32_t RESERVED5[644];
+                __O  uint32_t STIR;                         /*!< Software Trigger Interrupt Register      */
+        }  NVIC_Type;
+
+
+        /* memory mapping struct for System Control Block */
+        typedef struct {
+                __I  uint32_t CPUID;                        /*!< CPU ID Base Register                                     */
+                __IO uint32_t ICSR;                         /*!< Interrupt Control State Register                         */
+                __IO uint32_t VTOR;                         /*!< Vector Table Offset Register                             */
+                __IO uint32_t AIRCR;                        /*!< Application Interrupt / Reset Control Register           */
+                __IO uint32_t SCR;                          /*!< System Control Register                                  */
+                __IO uint32_t CCR;                          /*!< Configuration Control Register                           */
+                __IO uint8_t  SHP[12];                      /*!< System Handlers Priority Registers (4-7, 8-11, 12-15)    */
+                __IO uint32_t SHCSR;                        /*!< System Handler Control and State Register                */
+                __IO uint32_t CFSR;                         /*!< Configurable Fault Status Register                       */
+                __IO uint32_t HFSR;                         /*!< Hard Fault Status Register                               */
+                __IO uint32_t DFSR;                         /*!< Debug Fault Status Register                              */
+                __IO uint32_t MMFAR;                        /*!< Mem Manage Address Register                              */
+                __IO uint32_t BFAR;                         /*!< Bus Fault Address Register                               */
+                __IO uint32_t AFSR;                         /*!< Auxiliary Fault Status Register                          */
+                __I  uint32_t PFR[2];                       /*!< Processor Feature Register                               */
+                __I  uint32_t DFR;                          /*!< Debug Feature Register                                   */
+                __I  uint32_t ADR;                          /*!< Auxiliary Feature Register                               */
+                __I  uint32_t MMFR[4];                      /*!< Memory Model Feature Register                            */
+                __I  uint32_t ISAR[5];                      /*!< ISA Feature Register                                     */
+        } SCB_Type;
+
+
+        /* memory mapping struct for SysTick */
+        typedef struct {
+                __IO uint32_t CTRL;                         /*!< SysTick Control and Status Register */
+                __IO uint32_t LOAD;                         /*!< SysTick Reload Value Register       */
+                __IO uint32_t VAL;                          /*!< SysTick Current Value Register      */
+                __I  uint32_t CALIB;                        /*!< SysTick Calibration Register        */
+        } SysTick_Type;
+
+
+        /* memory mapping structur for ITM */
+        typedef struct {
+                __O  union {
+                        __O  uint8_t    u8;                       /*!< ITM Stimulus Port 8-bit               */
+                        __O  uint16_t   u16;                      /*!< ITM Stimulus Port 16-bit              */
+                        __O  uint32_t   u32;                      /*!< ITM Stimulus Port 32-bit              */
+                }  PORT [32];                               /*!< ITM Stimulus Port Registers           */
+                uint32_t RESERVED0[864];
+                __IO uint32_t TER;                          /*!< ITM Trace Enable Register             */
+                uint32_t RESERVED1[15];
+                __IO uint32_t TPR;                          /*!< ITM Trace Privilege Register          */
+                uint32_t RESERVED2[15];
+                __IO uint32_t TCR;                          /*!< ITM Trace Control Register            */
+                uint32_t RESERVED3[29];
+                __IO uint32_t IWR;                          /*!< ITM Integration Write Register        */
+                __IO uint32_t IRR;                          /*!< ITM Integration Read Register         */
+                __IO uint32_t IMCR;                         /*!< ITM Integration Mode Control Register */
+                uint32_t RESERVED4[43];
+                __IO uint32_t LAR;                          /*!< ITM Lock Access Register              */
+                __IO uint32_t LSR;                          /*!< ITM Lock Status Register              */
+                uint32_t RESERVED5[6];
+                __I  uint32_t PID4;                         /*!< ITM Product ID Registers              */
+                __I  uint32_t PID5;
+                __I  uint32_t PID6;
+                __I  uint32_t PID7;
+                __I  uint32_t PID0;
+                __I  uint32_t PID1;
+                __I  uint32_t PID2;
+                __I  uint32_t PID3;
+                __I  uint32_t CID0;
+                __I  uint32_t CID1;
+                __I  uint32_t CID2;
+                __I  uint32_t CID3;
+        } ITM_Type;
+
+
+        /* memory mapped struct for Interrupt Type */
+        typedef struct {
+                uint32_t RESERVED0;
+                __I  uint32_t ICTR;                         /*!< Interrupt Control Type Register  */
+#if ((defined __CM3_REV) && (__CM3_REV >= 0x200))
+                __IO uint32_t ACTLR;                        /*!< Auxiliary Control Register       */
+#else
+                uint32_t RESERVED1;
+#endif
+        } InterruptType_Type;
+
+
+        /* Memory Protection Unit */
+#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
+        typedef struct {
+                __I  uint32_t TYPE;                         /*!< MPU Type Register                               */
+                __IO uint32_t CTRL;                         /*!< MPU Control Register                            */
+                __IO uint32_t RNR;                          /*!< MPU Region RNRber Register                      */
+                __IO uint32_t RBAR;                         /*!< MPU Region Base Address Register                */
+                __IO uint32_t RASR;                         /*!< MPU Region Attribute and Size Register          */
+                __IO uint32_t RBAR_A1;                      /*!< MPU Alias 1 Region Base Address Register        */
+                __IO uint32_t RASR_A1;                      /*!< MPU Alias 1 Region Attribute and Size Register  */
+                __IO uint32_t RBAR_A2;                      /*!< MPU Alias 2 Region Base Address Register        */
+                __IO uint32_t RASR_A2;                      /*!< MPU Alias 2 Region Attribute and Size Register  */
+                __IO uint32_t RBAR_A3;                      /*!< MPU Alias 3 Region Base Address Register        */
+                __IO uint32_t RASR_A3;                      /*!< MPU Alias 3 Region Attribute and Size Register  */
+        } MPU_Type;
+#endif
+
+
+        /* Core Debug Register */
+        typedef struct {
+                __IO uint32_t DHCSR;                        /*!< Debug Halting Control and Status Register       */
+                __O  uint32_t DCRSR;                        /*!< Debug Core Register Selector Register           */
+                __IO uint32_t DCRDR;                        /*!< Debug Core Register Data Register               */
+                __IO uint32_t DEMCR;                        /*!< Debug Exception and Monitor Control Register    */
+        } CoreDebug_Type;
+
+
+        /* Memory mapping of Cortex-M3 Hardware */
+#define SCS_BASE            (0xE000E000)                              /*!< System Control Space Base Address    */
+#define ITM_BASE            (0xE0000000)                              /*!< ITM Base Address                     */
+#define CoreDebug_BASE      (0xE000EDF0)                              /*!< Core Debug Base Address              */
+#define SysTick_BASE        (SCS_BASE +  0x0010)                      /*!< SysTick Base Address                 */
+#define NVIC_BASE           (SCS_BASE +  0x0100)                      /*!< NVIC Base Address                    */
+#define SCB_BASE            (SCS_BASE +  0x0D00)                      /*!< System Control Block Base Address    */
+
+#define InterruptType       ((InterruptType_Type *) SCS_BASE)         /*!< Interrupt Type Register              */
+#define SCB                 ((SCB_Type *)           SCB_BASE)         /*!< SCB configuration struct             */
+#define SysTick             ((SysTick_Type *)       SysTick_BASE)     /*!< SysTick configuration struct         */
+#define NVIC                ((NVIC_Type *)          NVIC_BASE)        /*!< NVIC configuration struct            */
+#define ITM                 ((ITM_Type *)           ITM_BASE)         /*!< ITM configuration struct             */
+#define CoreDebug           ((CoreDebug_Type *)     CoreDebug_BASE)   /*!< Core Debug configuration struct      */
+
+#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
+#define MPU_BASE          (SCS_BASE +  0x0D90)                      /*!< Memory Protection Unit               */
+#define MPU               ((MPU_Type*)            MPU_BASE)         /*!< Memory Protection Unit               */
+#endif
+
+
+
+        /*******************************************************************************
+         *                Hardware Abstraction Layer
+         ******************************************************************************/
+
+
+#if defined ( __CC_ARM   )
+#define __ASM            __asm                                      /*!< asm keyword for ARM Compiler          */
+#define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler       */
+
+#elif defined ( __ICCARM__ )
+#define __ASM           __asm                                       /*!< asm keyword for IAR Compiler           */
+#define __INLINE        inline                                      /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */
+
+#elif defined   (  __GNUC__  )
+#define __ASM            __asm                                      /*!< asm keyword for GNU Compiler          */
+#define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */
+
+#elif defined   (  __TASKING__  )
+#define __ASM            __asm                                      /*!< asm keyword for TASKING Compiler          */
+#define __INLINE         inline                                     /*!< inline keyword for TASKING Compiler       */
+
+#endif
+
+
+        /* ###################  Compiler specific Intrinsics  ########################### */
+
+#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/
+        /* ARM armcc specific functions */
+
+#define __enable_fault_irq                __enable_fiq
+#define __disable_fault_irq               __disable_fiq
+
+#define __NOP                             __nop
+#define __WFI                             __wfi
+#define __WFE                             __wfe
+#define __SEV                             __sev
+#define __ISB()                           __isb(0)
+#define __DSB()                           __dsb(0)
+#define __DMB()                           __dmb(0)
+#define __REV                             __rev
+#define __RBIT                            __rbit
+#define __LDREXB(ptr)                     ((unsigned char ) __ldrex(ptr))
+#define __LDREXH(ptr)                     ((unsigned short) __ldrex(ptr))
+#define __LDREXW(ptr)                     ((unsigned int  ) __ldrex(ptr))
+#define __STREXB(value, ptr)              __strex(value, ptr)
+#define __STREXH(value, ptr)              __strex(value, ptr)
+#define __STREXW(value, ptr)              __strex(value, ptr)
+
+
+        /* intrinsic unsigned long long __ldrexd(volatile void *ptr) */
+        /* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */
+        /* intrinsic void __enable_irq();     */
+        /* intrinsic void __disable_irq();    */
+
+
+        /**
+         * @brief  Return the Process Stack Pointer
+         *
+         * @param  none
+         * @return uint32_t ProcessStackPointer
+         *
+         * Return the actual process stack pointer
+         */
+        extern uint32_t __get_PSP(void);
+
+        /**
+         * @brief  Set the Process Stack Pointer
+         *
+         * @param  uint32_t Process Stack Pointer
+         * @return none
+         *
+         * Assign the value ProcessStackPointer to the MSP
+         * (process stack pointer) Cortex processor register
+         */
+        extern void __set_PSP(uint32_t topOfProcStack);
+
+        /**
+         * @brief  Return the Main Stack Pointer
+         *
+         * @param  none
+         * @return uint32_t Main Stack Pointer
+         *
+         * Return the current value of the MSP (main stack pointer)
+         * Cortex processor register
+         */
+        extern uint32_t __get_MSP(void);
+
+        /**
+         * @brief  Set the Main Stack Pointer
+         *
+         * @param  uint32_t Main Stack Pointer
+         * @return none
+         *
+         * Assign the value mainStackPointer to the MSP
+         * (main stack pointer) Cortex processor register
+         */
+        extern void __set_MSP(uint32_t topOfMainStack);
+
+        /**
+         * @brief  Reverse byte order in unsigned short value
+         *
+         * @param  uint16_t value to reverse
+         * @return uint32_t reversed value
+         *
+         * Reverse byte order in unsigned short value
+         */
+        extern uint32_t __REV16(uint16_t value);
+
+        /*
+         * @brief  Reverse byte order in signed short value with sign extension to integer
+         *
+         * @param  int16_t value to reverse
+         * @return int32_t reversed value
+         *
+         * Reverse byte order in signed short value with sign extension to integer
+         */
+        extern int32_t __REVSH(int16_t value);
+
+
+#if (__ARMCC_VERSION < 400000)
+
+        /**
+         * @brief  Remove the exclusive lock created by ldrex
+         *
+         * @param  none
+         * @return none
+         *
+         * Removes the exclusive lock which is created by ldrex.
+         */
+        extern void __CLREX(void);
+
+        /**
+         * @brief  Return the Base Priority value
+         *
+         * @param  none
+         * @return uint32_t BasePriority
+         *
+         * Return the content of the base priority register
+         */
+        extern uint32_t __get_BASEPRI(void);
+
+        /**
+         * @brief  Set the Base Priority value
+         *
+         * @param  uint32_t BasePriority
+         * @return none
+         *
+         * Set the base priority register
+         */
+        extern void __set_BASEPRI(uint32_t basePri);
+
+        /**
+         * @brief  Return the Priority Mask value
+         *
+         * @param  none
+         * @return uint32_t PriMask
+         *
+         * Return the state of the priority mask bit from the priority mask
+         * register
+         */
+        extern uint32_t __get_PRIMASK(void);
+
+        /**
+         * @brief  Set the Priority Mask value
+         *
+         * @param  uint32_t PriMask
+         * @return none
+         *
+         * Set the priority mask bit in the priority mask register
+         */
+        extern void __set_PRIMASK(uint32_t priMask);
+
+        /**
+         * @brief  Return the Fault Mask value
+         *
+         * @param  none
+         * @return uint32_t FaultMask
+         *
+         * Return the content of the fault mask register
+         */
+        extern uint32_t __get_FAULTMASK(void);
+
+        /**
+         * @brief  Set the Fault Mask value
+         *
+         * @param  uint32_t faultMask value
+         * @return none
+         *
+         * Set the fault mask register
+         */
+        extern void __set_FAULTMASK(uint32_t faultMask);
+
+        /**
+         * @brief  Return the Control Register value
+         *
+         * @param  none
+         * @return uint32_t Control value
+         *
+         * Return the content of the control register
+         */
+        extern uint32_t __get_CONTROL(void);
+
+        /**
+         * @brief  Set the Control Register value
+         *
+         * @param  uint32_t Control value
+         * @return none
+         *
+         * Set the control register
+         */
+        extern void __set_CONTROL(uint32_t control);
+
+#else  /* (__ARMCC_VERSION >= 400000)  */
+
+
+        /**
+         * @brief  Remove the exclusive lock created by ldrex
+         *
+         * @param  none
+         * @return none
+         *
+         * Removes the exclusive lock which is created by ldrex.
+         */
+#define __CLREX                           __clrex
+
+        /**
+         * @brief  Return the Base Priority value
+         *
+         * @param  none
+         * @return uint32_t BasePriority
+         *
+         * Return the content of the base priority register
+         */
+        static __INLINE uint32_t  __get_BASEPRI(void) {
+                register uint32_t __regBasePri         __ASM("basepri");
+                return(__regBasePri);
+        }
+
+        /**
+         * @brief  Set the Base Priority value
+         *
+         * @param  uint32_t BasePriority
+         * @return none
+         *
+         * Set the base priority register
+         */
+        static __INLINE void __set_BASEPRI(uint32_t basePri) {
+                register uint32_t __regBasePri         __ASM("basepri");
+                __regBasePri = (basePri & 0x1ff);
+        }
+
+        /**
+         * @brief  Return the Priority Mask value
+         *
+         * @param  none
+         * @return uint32_t PriMask
+         *
+         * Return the state of the priority mask bit from the priority mask
+         * register
+         */
+        static __INLINE uint32_t __get_PRIMASK(void) {
+                register uint32_t __regPriMask         __ASM("primask");
+                return(__regPriMask);
+        }
+
+        /**
+         * @brief  Set the Priority Mask value
+         *
+         * @param  uint32_t PriMask
+         * @return none
+         *
+         * Set the priority mask bit in the priority mask register
+         */
+        static __INLINE void __set_PRIMASK(uint32_t priMask) {
+                register uint32_t __regPriMask         __ASM("primask");
+                __regPriMask = (priMask);
+        }
+
+        /**
+         * @brief  Return the Fault Mask value
+         *
+         * @param  none
+         * @return uint32_t FaultMask
+         *
+         * Return the content of the fault mask register
+         */
+        static __INLINE uint32_t __get_FAULTMASK(void) {
+                register uint32_t __regFaultMask       __ASM("faultmask");
+                return(__regFaultMask);
+        }
+
+        /**
+         * @brief  Set the Fault Mask value
+         *
+         * @param  uint32_t faultMask value
+         * @return none
+         *
+         * Set the fault mask register
+         */
+        static __INLINE void __set_FAULTMASK(uint32_t faultMask) {
+                register uint32_t __regFaultMask       __ASM("faultmask");
+                __regFaultMask = (faultMask & 1);
+        }
+
+        /**
+         * @brief  Return the Control Register value
+         *
+         * @param  none
+         * @return uint32_t Control value
+         *
+         * Return the content of the control register
+         */
+        static __INLINE uint32_t __get_CONTROL(void) {
+                register uint32_t __regControl         __ASM("control");
+                return(__regControl);
+        }
+
+        /**
+         * @brief  Set the Control Register value
+         *
+         * @param  uint32_t Control value
+         * @return none
+         *
+         * Set the control register
+         */
+        static __INLINE void __set_CONTROL(uint32_t control) {
+                register uint32_t __regControl         __ASM("control");
+                __regControl = control;
+        }
+
+#endif /* __ARMCC_VERSION  */
+
+
+
+#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
+        /* IAR iccarm specific functions */
+
+#define __enable_irq                              __enable_interrupt        /*!< global Interrupt enable */
+#define __disable_irq                             __disable_interrupt       /*!< global Interrupt disable */
+
+        static __INLINE void __enable_fault_irq()         {
+                __ASM("cpsie f");
+        }
+        static __INLINE void __disable_fault_irq()        {
+                __ASM("cpsid f");
+        }
+
+#define __NOP                                     __no_operation()          /*!< no operation intrinsic in IAR Compiler */
+        static __INLINE  void __WFI()                     {
+                __ASM("wfi");
+        }
+        static __INLINE  void __WFE()                     {
+                __ASM("wfe");
+        }
+        static __INLINE  void __SEV()                     {
+                __ASM("sev");
+        }
+        static __INLINE  void __CLREX()                   {
+                __ASM("clrex");
+        }
+
+        /* intrinsic void __ISB(void)                                     */
+        /* intrinsic void __DSB(void)                                     */
+        /* intrinsic void __DMB(void)                                     */
+        /* intrinsic void __set_PRIMASK();                                */
+        /* intrinsic void __get_PRIMASK();                                */
+        /* intrinsic void __set_FAULTMASK();                              */
+        /* intrinsic void __get_FAULTMASK();                              */
+        /* intrinsic uint32_t __REV(uint32_t value);                      */
+        /* intrinsic uint32_t __REVSH(uint32_t value);                    */
+        /* intrinsic unsigned long __STREX(unsigned long, unsigned long); */
+        /* intrinsic unsigned long __LDREX(unsigned long *);              */
+
+
+        /**
+         * @brief  Return the Process Stack Pointer
+         *
+         * @param  none
+         * @return uint32_t ProcessStackPointer
+         *
+         * Return the actual process stack pointer
+         */
+        extern uint32_t __get_PSP(void);
+
+        /**
+         * @brief  Set the Process Stack Pointer
+         *
+         * @param  uint32_t Process Stack Pointer
+         * @return none
+         *
+         * Assign the value ProcessStackPointer to the MSP
+         * (process stack pointer) Cortex processor register
+         */
+        extern void __set_PSP(uint32_t topOfProcStack);
+
+        /**
+         * @brief  Return the Main Stack Pointer
+         *
+         * @param  none
+         * @return uint32_t Main Stack Pointer
+         *
+         * Return the current value of the MSP (main stack pointer)
+         * Cortex processor register
+         */
+        extern uint32_t __get_MSP(void);
+
+        /**
+         * @brief  Set the Main Stack Pointer
+         *
+         * @param  uint32_t Main Stack Pointer
+         * @return none
+         *
+         * Assign the value mainStackPointer to the MSP
+         * (main stack pointer) Cortex processor register
+         */
+        extern void __set_MSP(uint32_t topOfMainStack);
+
+        /**
+         * @brief  Reverse byte order in unsigned short value
+         *
+         * @param  uint16_t value to reverse
+         * @return uint32_t reversed value
+         *
+         * Reverse byte order in unsigned short value
+         */
+        extern uint32_t __REV16(uint16_t value);
+
+        /**
+         * @brief  Reverse bit order of value
+         *
+         * @param  uint32_t value to reverse
+         * @return uint32_t reversed value
+         *
+         * Reverse bit order of value
+         */
+        extern uint32_t __RBIT(uint32_t value);
+
+        /**
+         * @brief  LDR Exclusive
+         *
+         * @param  uint8_t* address
+         * @return uint8_t value of (*address)
+         *
+         * Exclusive LDR command
+         */
+        extern uint8_t __LDREXB(uint8_t *addr);
+
+        /**
+         * @brief  LDR Exclusive
+         *
+         * @param  uint16_t* address
+         * @return uint16_t value of (*address)
+         *
+         * Exclusive LDR command
+         */
+        extern uint16_t __LDREXH(uint16_t *addr);
+
+        /**
+         * @brief  LDR Exclusive
+         *
+         * @param  uint32_t* address
+         * @return uint32_t value of (*address)
+         *
+         * Exclusive LDR command
+         */
+        extern uint32_t __LDREXW(uint32_t *addr);
+
+        /**
+         * @brief  STR Exclusive
+         *
+         * @param  uint8_t *address
+         * @param  uint8_t value to store
+         * @return uint32_t successful / failed
+         *
+         * Exclusive STR command
+         */
+        extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
+
+        /**
+         * @brief  STR Exclusive
+         *
+         * @param  uint16_t *address
+         * @param  uint16_t value to store
+         * @return uint32_t successful / failed
+         *
+         * Exclusive STR command
+         */
+        extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
+
+        /**
+         * @brief  STR Exclusive
+         *
+         * @param  uint32_t *address
+         * @param  uint32_t value to store
+         * @return uint32_t successful / failed
+         *
+         * Exclusive STR command
+         */
+        extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
+
+
+
+#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
+        /* GNU gcc specific functions */
+
+        static __INLINE void __enable_irq()               {
+                __ASM volatile("cpsie i");
+        }
+        static __INLINE void __disable_irq()              {
+                __ASM volatile("cpsid i");
+        }
+
+        static __INLINE void __enable_fault_irq()         {
+                __ASM volatile("cpsie f");
+        }
+        static __INLINE void __disable_fault_irq()        {
+                __ASM volatile("cpsid f");
+        }
+
+        static __INLINE void __NOP()                      {
+                __ASM volatile("nop");
+        }
+        static __INLINE void __WFI()                      {
+                __ASM volatile("wfi");
+        }
+        static __INLINE void __WFE()                      {
+                __ASM volatile("wfe");
+        }
+        static __INLINE void __SEV()                      {
+                __ASM volatile("sev");
+        }
+        static __INLINE void __ISB()                      {
+                __ASM volatile("isb");
+        }
+        static __INLINE void __DSB()                      {
+                __ASM volatile("dsb");
+        }
+        static __INLINE void __DMB()                      {
+                __ASM volatile("dmb");
+        }
+        static __INLINE void __CLREX()                    {
+                __ASM volatile("clrex");
+        }
+
+
+        /**
+         * @brief  Return the Process Stack Pointer
+         *
+         * @param  none
+         * @return uint32_t ProcessStackPointer
+         *
+         * Return the actual process stack pointer
+         */
+        extern uint32_t __get_PSP(void);
+
+        /**
+         * @brief  Set the Process Stack Pointer
+         *
+         * @param  uint32_t Process Stack Pointer
+         * @return none
+         *
+         * Assign the value ProcessStackPointer to the MSP
+         * (process stack pointer) Cortex processor register
+         */
+        extern void __set_PSP(uint32_t topOfProcStack);
+
+        /**
+         * @brief  Return the Main Stack Pointer
+         *
+         * @param  none
+         * @return uint32_t Main Stack Pointer
+         *
+         * Return the current value of the MSP (main stack pointer)
+         * Cortex processor register
+         */
+        extern uint32_t __get_MSP(void);
+
+        /**
+         * @brief  Set the Main Stack Pointer
+         *
+         * @param  uint32_t Main Stack Pointer
+         * @return none
+         *
+         * Assign the value mainStackPointer to the MSP
+         * (main stack pointer) Cortex processor register
+         */
+        extern void __set_MSP(uint32_t topOfMainStack);
+
+        /**
+         * @brief  Return the Base Priority value
+         *
+         * @param  none
+         * @return uint32_t BasePriority
+         *
+         * Return the content of the base priority register
+         */
+        extern uint32_t __get_BASEPRI(void);
+
+        /**
+         * @brief  Set the Base Priority value
+         *
+         * @param  uint32_t BasePriority
+         * @return none
+         *
+         * Set the base priority register
+         */
+        extern void __set_BASEPRI(uint32_t basePri);
+
+        /**
+         * @brief  Return the Priority Mask value
+         *
+         * @param  none
+         * @return uint32_t PriMask
+         *
+         * Return the state of the priority mask bit from the priority mask
+         * register
+         */
+        extern uint32_t  __get_PRIMASK(void);
+
+        /**
+         * @brief  Set the Priority Mask value
+         *
+         * @param  uint32_t PriMask
+         * @return none
+         *
+         * Set the priority mask bit in the priority mask register
+         */
+        extern void __set_PRIMASK(uint32_t priMask);
+
+        /**
+         * @brief  Return the Fault Mask value
+         *
+         * @param  none
+         * @return uint32_t FaultMask
+         *
+         * Return the content of the fault mask register
+         */
+        extern uint32_t __get_FAULTMASK(void);
+
+        /**
+         * @brief  Set the Fault Mask value
+         *
+         * @param  uint32_t faultMask value
+         * @return none
+         *
+         * Set the fault mask register
+         */
+        extern void __set_FAULTMASK(uint32_t faultMask);
+
+        /**
+         * @brief  Return the Control Register value
+        *
+        *  @param  none
+        *  @return uint32_t Control value
+         *
+         * Return the content of the control register
+         */
+        extern uint32_t __get_CONTROL(void);
+
+        /**
+         * @brief  Set the Control Register value
+         *
+         * @param  uint32_t Control value
+         * @return none
+         *
+         * Set the control register
+         */
+        extern void __set_CONTROL(uint32_t control);
+
+        /**
+         * @brief  Reverse byte order in integer value
+         *
+         * @param  uint32_t value to reverse
+         * @return uint32_t reversed value
+         *
+         * Reverse byte order in integer value
+         */
+        extern uint32_t __REV(uint32_t value);
+
+        /**
+         * @brief  Reverse byte order in unsigned short value
+         *
+         * @param  uint16_t value to reverse
+         * @return uint32_t reversed value
+         *
+         * Reverse byte order in unsigned short value
+         */
+        extern uint32_t __REV16(uint16_t value);
+
+        /*
+         * Reverse byte order in signed short value with sign extension to integer
+         *
+         * @param  int16_t value to reverse
+         * @return int32_t reversed value
+         *
+         * @brief  Reverse byte order in signed short value with sign extension to integer
+         */
+        extern int32_t __REVSH(int16_t value);
+
+        /**
+         * @brief  Reverse bit order of value
+         *
+         * @param  uint32_t value to reverse
+         * @return uint32_t reversed value
+         *
+         * Reverse bit order of value
+         */
+        extern uint32_t __RBIT(uint32_t value);
+
+        /**
+         * @brief  LDR Exclusive
+         *
+         * @param  uint8_t* address
+         * @return uint8_t value of (*address)
+         *
+         * Exclusive LDR command
+         */
+        extern uint8_t __LDREXB(uint8_t *addr);
+
+        /**
+         * @brief  LDR Exclusive
+         *
+         * @param  uint16_t* address
+         * @return uint16_t value of (*address)
+         *
+         * Exclusive LDR command
+         */
+        extern uint16_t __LDREXH(uint16_t *addr);
+
+        /**
+         * @brief  LDR Exclusive
+         *
+         * @param  uint32_t* address
+         * @return uint32_t value of (*address)
+         *
+         * Exclusive LDR command
+         */
+        extern uint32_t __LDREXW(uint32_t *addr);
+
+        /**
+         * @brief  STR Exclusive
+         *
+         * @param  uint8_t *address
+         * @param  uint8_t value to store
+         * @return uint32_t successful / failed
+         *
+         * Exclusive STR command
+         */
+        extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
+
+        /**
+         * @brief  STR Exclusive
+         *
+         * @param  uint16_t *address
+         * @param  uint16_t value to store
+         * @return uint32_t successful / failed
+         *
+         * Exclusive STR command
+         */
+        extern uint32_t __STREXH(uint16_t value, uint16_t *addr);
+
+        /**
+         * @brief  STR Exclusive
+         *
+         * @param  uint32_t *address
+         * @param  uint32_t value to store
+         * @return uint32_t successful / failed
+         *
+         * Exclusive STR command
+         */
+        extern uint32_t __STREXW(uint32_t value, uint32_t *addr);
+
+
+#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
+        /* TASKING carm specific functions */
+
+        /*
+         * The CMSIS functions have been implemented as intrinsics in the compiler.
+         * Please use "carm -?i" to get an up to date list of all instrinsics,
+         * Including the CMSIS ones.
+         */
+
+#endif
+
+
+
+        /* ##########################   NVIC functions  #################################### */
+
+
+        /**
+         * @brief  Set the Priority Grouping in NVIC Interrupt Controller
+         *
+         * @param  uint32_t priority_grouping is priority grouping field
+         * @return none
+         *
+         * Set the priority grouping field using the required unlock sequence.
+         * The parameter priority_grouping is assigned to the field
+         * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used.
+         * In case of a conflict between priority grouping and available
+         * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
+         */
+        static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
+                uint32_t reg_value;
+                uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);                         /* only values 0..7 are used          */
+
+                reg_value  = SCB->AIRCR;                                                    /* read old register configuration    */
+                reg_value &= ~((0xFFFFU << 16) | (0x0F << 8));                              /* clear bits to change               */
+                reg_value  = ((reg_value | NVIC_AIRCR_VECTKEY | (PriorityGroupTmp << 8)));  /* Insert write key and priorty group */
+                SCB->AIRCR = reg_value;
+        }
+
+        /**
+         * @brief  Get the Priority Grouping from NVIC Interrupt Controller
+         *
+         * @param  none
+         * @return uint32_t   priority grouping field
+         *
+         * Get the priority grouping from NVIC Interrupt Controller.
+         * priority grouping is SCB->AIRCR [10:8] PRIGROUP field.
+         */
+        static __INLINE uint32_t NVIC_GetPriorityGrouping(void) {
+                return ((SCB->AIRCR >> 8) & 0x07);                                          /* read priority grouping field */
+        }
+
+        /**
+         * @brief  Enable Interrupt in NVIC Interrupt Controller
+         *
+         * @param  IRQn_Type IRQn specifies the interrupt number
+         * @return none
+         *
+         * Enable a device specific interupt in the NVIC interrupt controller.
+         * The interrupt number cannot be a negative value.
+         */
+        static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) {
+                NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
+        }
+
+        /**
+         * @brief  Disable the interrupt line for external interrupt specified
+         *
+         * @param  IRQn_Type IRQn is the positive number of the external interrupt
+         * @return none
+         *
+         * Disable a device specific interupt in the NVIC interrupt controller.
+         * The interrupt number cannot be a negative value.
+         */
+        static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) {
+                NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */
+        }
+
+        /**
+         * @brief  Read the interrupt pending bit for a device specific interrupt source
+         *
+         * @param  IRQn_Type IRQn is the number of the device specifc interrupt
+         * @return uint32_t 1 if pending interrupt else 0
+         *
+         * Read the pending register in NVIC and return 1 if its status is pending,
+         * otherwise it returns 0
+         */
+        static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) {
+                return((uint32_t)((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */
+        }
+
+        /**
+         * @brief  Set the pending bit for an external interrupt
+         *
+         * @param  IRQn_Type IRQn is the Number of the interrupt
+         * @return none
+         *
+         * Set the pending bit for the specified interrupt.
+         * The interrupt number cannot be a negative value.
+         */
+        static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) {
+                NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */
+        }
+
+        /**
+         * @brief  Clear the pending bit for an external interrupt
+         *
+         * @param  IRQn_Type IRQn is the Number of the interrupt
+         * @return none
+         *
+         * Clear the pending bit for the specified interrupt.
+         * The interrupt number cannot be a negative value.
+         */
+        static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) {
+                NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
+        }
+
+        /**
+         * @brief  Read the active bit for an external interrupt
+         *
+         * @param  IRQn_Type  IRQn is the Number of the interrupt
+         * @return uint32_t   1 if active else 0
+         *
+         * Read the active register in NVIC and returns 1 if its status is active,
+         * otherwise it returns 0.
+         */
+        static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) {
+                return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */
+        }
+
+        /**
+         * @brief  Set the priority for an interrupt
+         *
+         * @param  IRQn_Type IRQn is the Number of the interrupt
+         * @param  priority is the priority for the interrupt
+         * @return none
+         *
+         * Set the priority for the specified interrupt. The interrupt
+         * number can be positive to specify an external (device specific)
+         * interrupt, or negative to specify an internal (core) interrupt. \n
+         *
+         * Note: The priority cannot be set for every core interrupt.
+         */
+        static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
+                if (IRQn < 0) {
+                        SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);
+                } /* set Priority for Cortex-M3 System Interrupts */
+                else {
+                        NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);
+                }        /* set Priority for device specific Interrupts      */
+        }
+
+        /**
+         * @brief  Read the priority for an interrupt
+         *
+         * @param  IRQn_Type IRQn is the Number of the interrupt
+         * @return uint32_t  priority is the priority for the interrupt
+         *
+         * Read the priority for the specified interrupt. The interrupt
+         * number can be positive to specify an external (device specific)
+         * interrupt, or negative to specify an internal (core) interrupt.
+         *
+         * The returned priority value is automatically aligned to the implemented
+         * priority bits of the microcontroller.
+         *
+         * Note: The priority cannot be set for every core interrupt.
+         */
+        static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
+
+                if (IRQn < 0) {
+                        return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS)));
+                } /* get priority for Cortex-M3 system interrupts */
+                else {
+                        return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)]           >> (8 - __NVIC_PRIO_BITS)));
+                } /* get priority for device specific interrupts  */
+        }
+
+
+        /**
+         * @brief  Encode the priority for an interrupt
+         *
+         * @param  uint32_t PriorityGroup   is the used priority group
+         * @param  uint32_t PreemptPriority is the preemptive priority value (starting from 0)
+         * @param  uint32_t SubPriority     is the sub priority value (starting from 0)
+         * @return uint32_t                    the priority for the interrupt
+         *
+         * Encode the priority for an interrupt with the given priority group,
+         * preemptive priority value and sub priority value.
+         * In case of a conflict between priority grouping and available
+         * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
+         *
+         * The returned priority value can be used for NVIC_SetPriority(...) function
+         */
+        static __INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) {
+                uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);                         /* only values 0..7 are used          */
+                uint32_t PreemptPriorityBits;
+                uint32_t SubPriorityBits;
+
+                PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
+                SubPriorityBits     = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
+
+                return (
+                               ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
+                               ((SubPriority     & ((1 << (SubPriorityBits)) - 1)))
+                       );
+        }
+
+
+        /**
+         * @brief  Decode the priority of an interrupt
+         *
+         * @param  uint32_t   Priority       the priority for the interrupt
+         * @param  uint32_t   PrioGroup   is the used priority group
+         * @param  uint32_t* pPreemptPrio is the preemptive priority value (starting from 0)
+         * @param  uint32_t* pSubPrio     is the sub priority value (starting from 0)
+         * @return none
+         *
+         * Decode an interrupt priority value with the given priority group to
+         * preemptive priority value and sub priority value.
+         * In case of a conflict between priority grouping and available
+         * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
+         *
+         * The priority value can be retrieved with NVIC_GetPriority(...) function
+         */
+        static __INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) {
+                uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);                         /* only values 0..7 are used          */
+                uint32_t PreemptPriorityBits;
+                uint32_t SubPriorityBits;
+
+                PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
+                SubPriorityBits     = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
+
+                *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
+                *pSubPriority     = (Priority) & ((1 << (SubPriorityBits)) - 1);
+        }
+
+
+
+        /* ##################################    SysTick function  ############################################ */
+
+#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)
+
+        /* SysTick constants */
+#define SYSTICK_ENABLE              0                                          /* Config-Bit to start or stop the SysTick Timer                         */
+#define SYSTICK_TICKINT             1                                          /* Config-Bit to enable or disable the SysTick interrupt                 */
+#define SYSTICK_CLKSOURCE           2                                          /* Clocksource has the offset 2 in SysTick Control and Status Register   */
+#define SYSTICK_MAXCOUNT       ((1<<24) -1)                                    /* SysTick MaxCount                                                      */
+
+        /**
+         * @brief  Initialize and start the SysTick counter and its interrupt.
+         *
+         * @param  uint32_t ticks is the number of ticks between two interrupts
+         * @return  none
+         *
+         * Initialise the system tick timer and its interrupt and start the
+         * system tick timer / counter in free running mode to generate
+         * periodical interrupts.
+         */
+        static __INLINE uint32_t SysTick_Config(uint32_t ticks) {
+                if (ticks > SYSTICK_MAXCOUNT)  return (1);                                             /* Reload value impossible */
+
+                SysTick->LOAD  = (ticks & SYSTICK_MAXCOUNT) - 1;                                       /* set reload register */
+                NVIC_SetPriority(SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1);                           /* set Priority for Cortex-M0 System Interrupts */
+                SysTick->VAL   = (0x00);                                                               /* Load the SysTick Counter Value */
+                SysTick->CTRL = (1 << SYSTICK_CLKSOURCE) | (1 << SYSTICK_ENABLE) | (1 << SYSTICK_TICKINT); /* Enable SysTick IRQ and SysTick Timer */
+                return (0);                                                                            /* Function successful */
+        }
+
+#endif
+
+
+
+
+
+        /* ##################################    Reset function  ############################################ */
+
+        /**
+         * @brief  Initiate a system reset request.
+         *
+         * @param   none
+         * @return  none
+         *
+         * Initialize a system reset request to reset the MCU
+         */
+        static __INLINE void NVIC_SystemReset(void) {
+                SCB->AIRCR  = (NVIC_AIRCR_VECTKEY | (SCB->AIRCR & (0x700)) | (1 << NVIC_SYSRESETREQ)); /* Keep priority group unchanged */
+                __DSB();                                                                             /* Ensure completion of memory access */
+                while (1);                                                                           /* wait until reset */
+        }
+
+
+        /* ##################################    Debug Output  function  ############################################ */
+
+
+        /**
+         * @brief  Outputs a character via the ITM channel 0
+         *
+         * @param   uint32_t character to output
+         * @return  uint32_t input character
+         *
+         * The function outputs a character via the ITM channel 0.
+         * The function returns when no debugger is connected that has booked the output.
+         * It is blocking when a debugger is connected, but the previous character send is not transmitted.
+         */
+        static __INLINE uint32_t ITM_SendChar(uint32_t ch) {
+                if (ch == '\n') ITM_SendChar('\r');
+
+                if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA)  &&
+                                (ITM->TCR & ITM_TCR_ITMENA)                  &&
+                                (ITM->TER & (1UL << 0))) {
+                        while (ITM->PORT[0].u32 == 0);
+                        ITM->PORT[0].u8 = (uint8_t) ch;
+                }
+                return (ch);
+        }
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CM3_CORE_H__ */
+
+/*lint -restore */
diff --git a/gyro_board/src/usb/cr_startup_lpc17.c b/gyro_board/src/usb/cr_startup_lpc17.c
new file mode 100644
index 0000000..00f6187
--- /dev/null
+++ b/gyro_board/src/usb/cr_startup_lpc17.c
@@ -0,0 +1,304 @@
+//*****************************************************************************
+//   +--+
+//   | ++----+
+//   +-++    |
+//     |     |
+//   +-+--+  |
+//   | +--+--+
+//   +----+    Copyright (c) 2009 Code Red Technologies Ltd.
+//
+// Microcontroller Startup code for use with Red Suite
+//
+// Software License Agreement
+//
+// The software is owned by Code Red Technologies and/or its suppliers, and is
+// protected under applicable copyright laws.  All rights are reserved.  Any
+// use in violation of the foregoing restrictions may subject the user to criminal
+// sanctions under applicable laws, as well as to civil liability for the breach
+// of the terms and conditions of this license.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT
+// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH
+// CODE RED TECHNOLOGIES LTD.
+//
+//*****************************************************************************
+#define WEAK __attribute__ ((weak))
+#define ALIAS(f) __attribute__ ((weak, alias (#f)))
+
+//*****************************************************************************
+//
+// Forward declaration of the default handlers.
+//
+//*****************************************************************************
+void Reset_Handler(void);
+void ResetISR(void) ALIAS(Reset_Handler);
+static void NMI_Handler(void);
+static void HardFault_Handler(void);
+static void MemManage_Handler(void);
+static void BusFault_Handler(void);
+static void UsageFault_Handler(void);
+static void DebugMon_Handler(void);
+
+//*****************************************************************************
+//
+// Forward declaration of the specific IRQ handlers. These are aliased
+// to the IntDefaultHandler, which is a 'forever' loop. When the application
+// defines a handler (with the same name), this will automatically take
+// precedence over these weak definitions
+//
+//*****************************************************************************
+void WDT_IRQHandler(void) ALIAS(IntDefaultHandler);
+void TIMER0_IRQHandler(void) ALIAS(IntDefaultHandler);
+void TIMER1_IRQHandler(void) ALIAS(IntDefaultHandler);
+void TIMER2_IRQHandler(void) ALIAS(IntDefaultHandler);
+void TIMER3_IRQHandler(void) ALIAS(IntDefaultHandler);
+void UART0_IRQHandler(void) ALIAS(IntDefaultHandler);
+void UART1_IRQHandler(void) ALIAS(IntDefaultHandler);
+void UART2_IRQHandler(void) ALIAS(IntDefaultHandler);
+void UART3_IRQHandler(void) ALIAS(IntDefaultHandler);
+void PWM1_IRQHandler(void) ALIAS(IntDefaultHandler);
+void I2C0_IRQHandler(void) ALIAS(IntDefaultHandler);
+void I2C1_IRQHandler(void) ALIAS(IntDefaultHandler);
+void I2C2_IRQHandler(void) ALIAS(IntDefaultHandler);
+void SPI_IRQHandler(void) ALIAS(IntDefaultHandler);
+void SSP0_IRQHandler(void) ALIAS(IntDefaultHandler);
+void SSP1_IRQHandler(void) ALIAS(IntDefaultHandler);
+void PLL0_IRQHandler(void) ALIAS(IntDefaultHandler);
+void RTC_IRQHandler(void) ALIAS(IntDefaultHandler);
+void EINT0_IRQHandler(void) ALIAS(IntDefaultHandler);
+void EINT1_IRQHandler(void) ALIAS(IntDefaultHandler);
+void EINT2_IRQHandler(void) ALIAS(IntDefaultHandler);
+void EINT3_IRQHandler(void) ALIAS(IntDefaultHandler);
+void ADC_IRQHandler(void) ALIAS(IntDefaultHandler);
+void BOD_IRQHandler(void) ALIAS(IntDefaultHandler);
+void USB_IRQHandler(void) ALIAS(IntDefaultHandler);
+void CAN_IRQHandler(void) ALIAS(IntDefaultHandler);
+void DMA_IRQHandler(void) ALIAS(IntDefaultHandler);
+void I2S_IRQHandler(void) ALIAS(IntDefaultHandler);
+void EMAC_IRQHandler(void) ALIAS(IntDefaultHandler);
+void ENET_IRQHandler(void) ALIAS(IntDefaultHandler);
+void RIT_IRQHandler(void) ALIAS(IntDefaultHandler);
+void MCPWM_IRQHandler(void) ALIAS(IntDefaultHandler);
+void QEI_IRQHandler(void) ALIAS(IntDefaultHandler);
+void PLL1_IRQHandler(void) ALIAS(IntDefaultHandler);
+
+extern void xPortSysTickHandler(void);
+extern void xPortPendSVHandler(void);
+extern void vPortSVCHandler(void);
+
+
+//*****************************************************************************
+//
+// The entry point for the C++ library startup
+//
+//*****************************************************************************
+extern WEAK void __libc_init_array(void);
+
+//*****************************************************************************
+//
+// The entry point for the application.
+// __main() is the entry point for redlib based applications
+// main() is the entry point for newlib based applications
+//
+//*****************************************************************************
+extern WEAK void __main(void);
+extern WEAK void main(void);
+//*****************************************************************************
+//
+// External declaration for the pointer to the stack top from the Linker Script
+//
+//*****************************************************************************
+extern int _vStackTop;
+
+//*****************************************************************************
+//
+// The vector table.
+// This relies on the linker script to place at correct location in memory.
+//
+//*****************************************************************************
+typedef void (* const isr_handlers_t)(void);
+__attribute__((section(".isr_vector")))
+isr_handlers_t g_pfnVectors[] = {
+        // Core Level - CM3
+        (isr_handlers_t)&_vStackTop,					// The initial stack pointer
+        Reset_Handler,							// The reset handler
+        NMI_Handler,							// The NMI handler
+        HardFault_Handler,						// The hard fault handler
+        MemManage_Handler,						// The MPU fault handler
+        BusFault_Handler,						// The bus fault handler
+        UsageFault_Handler,						// The usage fault handler
+        0,										// Reserved
+        0,										// Reserved
+        0,										// Reserved
+        0,										// Reserved
+        vPortSVCHandler,                        // SVCall handler
+        DebugMon_Handler,						// Debug monitor handler
+        0,										// Reserved
+        xPortPendSVHandler,                     // The PendSV handler
+        xPortSysTickHandler,                    // The SysTick handler
+
+        // Chip Level - LPC17
+        WDT_IRQHandler,							// 16, 0x40 - WDT
+        TIMER0_IRQHandler,						// 17, 0x44 - TIMER0
+        TIMER1_IRQHandler,						// 18, 0x48 - TIMER1
+        TIMER2_IRQHandler,						// 19, 0x4c - TIMER2
+        TIMER3_IRQHandler,						// 20, 0x50 - TIMER3
+        UART0_IRQHandler,						// 21, 0x54 - UART0
+        UART1_IRQHandler,						// 22, 0x58 - UART1
+        UART2_IRQHandler,						// 23, 0x5c - UART2
+        UART3_IRQHandler,						// 24, 0x60 - UART3
+        PWM1_IRQHandler,						// 25, 0x64 - PWM1
+        I2C0_IRQHandler,						// 26, 0x68 - I2C0
+        I2C1_IRQHandler,						// 27, 0x6c - I2C1
+        I2C2_IRQHandler,						// 28, 0x70 - I2C2
+        SPI_IRQHandler,							// 29, 0x74 - SPI
+        SSP0_IRQHandler,						// 30, 0x78 - SSP0
+        SSP1_IRQHandler,						// 31, 0x7c - SSP1
+        PLL0_IRQHandler,						// 32, 0x80 - PLL0 (Main PLL)
+        RTC_IRQHandler,							// 33, 0x84 - RTC
+        EINT0_IRQHandler,						// 34, 0x88 - EINT0
+        EINT1_IRQHandler,						// 35, 0x8c - EINT1
+        EINT2_IRQHandler,						// 36, 0x90 - EINT2
+        EINT3_IRQHandler,						// 37, 0x94 - EINT3
+        ADC_IRQHandler,							// 38, 0x98 - ADC
+        BOD_IRQHandler,							// 39, 0x9c - BOD
+        USB_IRQHandler,							// 40, 0xA0 - USB
+        CAN_IRQHandler,							// 41, 0xa4 - CAN
+        DMA_IRQHandler,							// 42, 0xa8 - GP DMA
+        I2S_IRQHandler,							// 43, 0xac - I2S
+        EMAC_IRQHandler,						// 44, 0xb0 - Ethernet
+        RIT_IRQHandler,							// 45, 0xb4 - RITINT
+        MCPWM_IRQHandler,						// 46, 0xb8 - Motor Control PWM
+        QEI_IRQHandler,							// 47, 0xbc - Quadrature Encoder
+        PLL1_IRQHandler,						// 48, 0xc0 - PLL1 (USB PLL)
+};
+
+//*****************************************************************************
+//
+// The following are constructs created by the linker, indicating where the
+// the "data" and "bss" segments reside in memory.  The initializers for the
+// for the "data" segment resides immediately following the "text" segment.
+//
+//*****************************************************************************
+extern unsigned long _etext;
+extern unsigned long _data;
+extern unsigned long _edata;
+extern unsigned long _bss;
+extern unsigned long _ebss;
+
+//*****************************************************************************
+// Reset entry point for your code.
+// Sets up a simple runtime environment and initializes the C/C++
+// library.
+//
+//*****************************************************************************
+void Reset_Handler(void)
+{
+        unsigned long *pulSrc, *pulDest;
+
+        //
+        // Copy the data segment initializers from flash to SRAM.
+        //
+        pulSrc = &_etext;
+        for (pulDest = &_data; pulDest < &_edata;) {
+                *pulDest++ = *pulSrc++;
+        }
+
+        //
+        // Zero fill the bss segment.  This is done with inline assembly since this
+        // will clear the value of pulDest if it is not kept in a register.
+        //
+        __asm("    ldr     r0, =_bss\n"
+              "    ldr     r1, =_ebss\n"
+              "    mov     r2, #0\n"
+              "    .thumb_func\n"
+              "zero_loop:\n"
+              "        cmp     r0, r1\n"
+              "        it      lt\n"
+              "        strlt   r2, [r0], #4\n"
+              "        blt     zero_loop");
+
+        //
+        // Call C++ library initilisation, if present
+        //
+        //if (__libc_init_array)
+                //__libc_init_array() ;
+
+        //
+        // Call the application's entry point.
+        // __main() is the entry point for redlib based applications (which calls main())
+        // main() is the entry point for newlib based applications
+        //
+        //if (__main)
+                //__main() ;
+        //else
+                main() ;
+
+        //
+        // main() shouldn't return, but if it does, we'll just enter an infinite loop
+        //
+        while (1) {
+                ;
+        }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a NMI.  This
+// simply enters an infinite loop, preserving the system state for examination
+// by a debugger.
+//
+//*****************************************************************************
+static void NMI_Handler(void)
+{
+        while (1) {
+        }
+}
+
+static void HardFault_Handler(void)
+{
+        while (1) {
+        }
+}
+
+static void MemManage_Handler(void)
+{
+        while (1) {
+        }
+}
+
+static void BusFault_Handler(void)
+{
+        while (1) {
+        }
+}
+
+static void UsageFault_Handler(void)
+{
+        while (1) {
+        }
+}
+
+static void DebugMon_Handler(void)
+{
+        while (1) {
+        }
+}
+
+//*****************************************************************************
+//
+// Processor ends up here if an unexpected interrupt occurs or a handler
+// is not present in the application code.
+//
+//*****************************************************************************
+static void IntDefaultHandler(void)
+{
+        //
+        // Go into an infinite loop.
+        //
+        while (1) {
+        }
+}
diff --git a/gyro_board/src/usb/lpc1758_Debug.ld b/gyro_board/src/usb/lpc1758_Debug.ld
new file mode 100644
index 0000000..ce6d093
--- /dev/null
+++ b/gyro_board/src/usb/lpc1758_Debug.ld
@@ -0,0 +1,79 @@
+/*
+ * GENERATED FILE - DO NOT EDIT
+ * (C) Code Red Technologies Ltd, 2008-9
+ * Generated C linker script file for LPC1768
+ * (created from nxp_lpc13_c.ld (v2.0.11 (200907061347)) on Thu Jul 09 12:44:31 BST 2009)
+*/
+
+GROUP(libgcc.a libc.a)
+
+MEMORY
+{
+	FLASH(rx) : ORIGIN = 0x00000000, LENGTH = 0x80000
+	SRAM(rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000
+	AHBRAM0   : ORIGIN = 0x2007c000, LENGTH = 0x4000
+	AHBRAM1   : ORIGIN = 0x20080000, LENGTH = 0x4000
+}
+
+_vRamTop = 0x10000000 + 0x8000;
+
+ENTRY(ResetISR)
+
+SECTIONS {
+	.text : {
+		KEEP(*(.isr_vector))
+		*(.text*)
+		*(.rodata*)
+
+	} > FLASH
+
+
+	/* for exception handling/unwind - some Newlib functions (in common with C++ and STDC++) use this. */
+
+	.ARM.extab : {
+		*(.ARM.extab* .gnu.linkonce.armextab.*)
+	} > FLASH
+
+	__exidx_start = .;
+	.ARM.exidx : {
+		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
+	} > FLASH
+	__exidx_end = .;
+
+	_etext = .;
+
+	.data :
+		AT(__exidx_end) {
+			_data = .;
+			*(vtable)
+			*(.data*)
+			_edata = .;
+	} > SRAM
+
+	/* zero initialized data */
+	.bss : {
+		_bss = .;
+		*(.bss*)
+		*(COMMON)
+		_ebss = .;
+	} > SRAM
+
+	/* Where we put the heap with cr_clib */
+	.cr_heap : {
+		end = .;
+		_pvHeapStart = .;
+	} > SRAM
+
+	/*
+		Note: (ref: M0000066)
+		Moving the stack down by 16 is to work around a GDB bug.
+		This space can be reclaimed for Production Builds.
+	*/
+	_vStackTop = _vRamTop - 16;
+
+	.ETHRAM : {
+	} > AHBRAM0
+
+	.USBRAM : {
+	} > AHBRAM1
+}
diff --git a/gyro_board/src/usb/main.c b/gyro_board/src/usb/main.c
new file mode 100644
index 0000000..11191a4
--- /dev/null
+++ b/gyro_board/src/usb/main.c
@@ -0,0 +1,398 @@
+/*
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    ***NOTE*** The exception to the GPL is included to allow you to distribute
+    a combined work that includes FreeRTOS without being obliged to provide the
+    source code for proprietary components outside of the FreeRTOS kernel.
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+*/
+
+/* Standard includes. */
+#include "stdio.h"
+
+/* Scheduler includes. */
+#include "FreeRTOS.h"
+#include "queue.h"
+#include "task.h"
+
+/* Demo app includes. */
+#include "flash.h"
+#include "partest.h"
+#include "analog.h"
+#include "spi.h"
+#include "LPCUSB/usbapi.h"
+
+/*-----------------------------------------------------------*/
+
+/* The time between cycles of the 'check' functionality (defined within the
+tick hook. */
+#define mainCHECK_DELAY			((portTickType) 5000 / portTICK_RATE_MS)
+
+/* Task priorities. */
+#define mainQUEUE_POLL_PRIORITY		(tskIDLE_PRIORITY + 2)
+#define mainSEM_TEST_PRIORITY		(tskIDLE_PRIORITY + 1)
+#define mainBLOCK_Q_PRIORITY		(tskIDLE_PRIORITY + 2)
+#define mainUIP_TASK_PRIORITY		(tskIDLE_PRIORITY + 3)
+#define mainINTEGER_TASK_PRIORITY	(tskIDLE_PRIORITY)
+#define mainGEN_QUEUE_TASK_PRIORITY	(tskIDLE_PRIORITY)
+#define mainFLASH_TASK_PRIORITY		(tskIDLE_PRIORITY + 2)
+
+/* The WEB server has a larger stack as it utilises stack hungry string
+handling library calls. */
+#define mainBASIC_WEB_STACK_SIZE	(configMINIMAL_STACK_SIZE * 4)
+
+int32_t goal = 0;
+int64_t gyro_angle = 0;
+
+/*-----------------------------------------------------------*/
+
+/*
+ * Configure the hardware for the demo.
+ */
+static void prvSetupHardware(void);
+
+/*
+ * The task that handles the USB stack.
+ */
+extern void vUSBTask(void *pvParameters);
+
+extern int VCOM_getchar(void);
+
+int VCOM_putchar(int c);
+
+inline int32_t encoder()
+{
+	return (int32_t)QEI->QEIPOS;
+}
+
+static portTASK_FUNCTION(vPrintPeriodic, pvParameters)
+{
+	portTickType xLastFlashTime;
+
+	/* We need to initialise xLastFlashTime prior to the first call to
+	vTaskDelayUntil(). */
+	xLastFlashTime = xTaskGetTickCount();
+
+	analog_init();
+
+	encoder_init();
+
+	// Wait 100 ms for it to boot.
+	vTaskDelayUntil(&xLastFlashTime, 100 / portTICK_RATE_MS);
+	spi_init();
+
+	// Enable USB.  The PC has probably disconnected it now.
+	USBHwAllowConnect();
+
+	// TODO(aschuh): Write this into a gyro calibration function, and check all the outputs.
+	vTaskDelayUntil(&xLastFlashTime, 50 / portTICK_RATE_MS);
+	enable_gyro_csel();
+	printf("SPI Gyro Second Response 0x%x %x\n", transfer_spi_bytes(0x2000), transfer_spi_bytes(0x0000));
+	disable_gyro_csel();
+
+	vTaskDelayUntil(&xLastFlashTime, 50 / portTICK_RATE_MS);
+	enable_gyro_csel();
+	printf("SPI Gyro Third Response 0x%x %x\n", transfer_spi_bytes(0x2000), transfer_spi_bytes(0x0000));
+	disable_gyro_csel();
+
+	vTaskDelayUntil(&xLastFlashTime, 10 / portTICK_RATE_MS);
+	enable_gyro_csel();
+	printf("SPI Gyro Fourth Response 0x%x %x\n", transfer_spi_bytes(0x2000), transfer_spi_bytes(0x0000));
+	disable_gyro_csel();
+	const int hz = 200;
+	const int flash_hz = 10;
+	const int startup_cycles = hz * 2;
+	const int zeroing_cycles = hz * 6;
+	int32_t zero_bias = 0;
+	int32_t startup_cycles_left = startup_cycles;
+	int32_t zeroing_cycles_left = zeroing_cycles;
+	int32_t full_units_offset = 0;
+	int32_t remainder_offset = 0;
+	int32_t remainder_sum = 0;
+	int32_t led_flash = 0;
+	vParTestSetLED(0, 0);
+
+	for (;;) {
+		led_flash ++;
+		if (led_flash < hz / flash_hz / 2) {
+			vParTestSetLED(1, 0);
+		} else {
+			vParTestSetLED(1, 1);
+		}
+		if (led_flash >= hz / flash_hz) {
+			led_flash = 0;
+		}
+		/* Delay for half the flash period then turn the LED on. */
+		vTaskDelayUntil(&xLastFlashTime, 1000 / hz / portTICK_RATE_MS);
+		enable_gyro_csel();
+		uint16_t high_value = transfer_spi_bytes(0x2000);
+		uint16_t low_value = transfer_spi_bytes(0x0000);
+		disable_gyro_csel();
+		int16_t gyro_value = -((int16_t)((((uint32_t)high_value << 16) | (uint32_t)low_value) >> 10));
+
+		if (startup_cycles_left) {
+			vParTestSetLED(2, 0);
+			--startup_cycles_left;
+		} else if (zeroing_cycles_left) {
+			vParTestSetLED(2, 1);
+			//printf("Zeroing ");
+			--zeroing_cycles_left;
+			zero_bias -= gyro_value;
+			if (zeroing_cycles_left == 0) {
+				// Do all the nice math
+				full_units_offset = zero_bias / zeroing_cycles;
+				remainder_offset = zero_bias % zeroing_cycles;
+				if (remainder_offset < 0) {
+					remainder_offset += zeroing_cycles;
+					--full_units_offset;
+				}
+			}
+		} else {
+			vParTestSetLED(2, 0);
+			int64_t new_angle = gyro_angle + gyro_value + full_units_offset;
+			if (remainder_sum >= zeroing_cycles) {
+				remainder_sum -= zeroing_cycles;
+				new_angle += 1;
+			}
+			NVIC_DisableIRQ(USB_IRQn);
+			gyro_angle = new_angle;
+			NVIC_EnableIRQ(USB_IRQn);
+			remainder_sum += remainder_offset;
+		}
+		//printf("Angle %d Rate %d\n", (int)(gyro_angle / 16), (int)(gyro_value + full_units_offset));
+
+		//printf("time: %d analog %d encoder %d goal %d\n", (int)i, (int)analog(5), (int)encoder(), (int)goal);
+
+		//printf("time: %d encoder %d goal %d\n", (int)i, (int)encoder(), (int)goal);
+		/*
+		for(i = 0; i < 4; i++){
+			printf("analog(%d) => %d\n",i,analog(i));
+		}
+		for(i = 1; i < 13; i++){
+			printf("digital(%d) => %d\n",i,digital(i));
+		}
+		for(i = 0; i < 4; i++){
+			printf("dip(%d) => %d\n",i,dip(i));
+		}
+		for(i = 0; i < 4; i++){
+			printf("encoder(%d) => %d\n",i,encoder_bits(i));
+		}
+		for(i = 0; i < 4; i++){
+			printf("encoder_val(%d) => %d\n",i,(int)encoder_val(i));
+		}*/
+	}
+}
+
+#include "CAN.h"
+
+
+
+void motor(int32_t speed)
+{
+	if (speed > 2047) speed = 2047;
+	if (speed < -2047) speed = -2047;
+	return;
+	if (speed > 0) {
+		MCPWM->MCMAT1 = 2047 - speed;
+		MCPWM->MCMAT0 = 2048;
+	} else {
+		MCPWM->MCMAT1 = 2048;
+		MCPWM->MCMAT0 = speed + 2047;
+	}
+}
+
+
+
+/*-----------------------------------------------------------*/
+
+int main(void)
+{
+        // Configure the hardware
+        prvSetupHardware();
+
+        /* Start the standard demo tasks.  These are just here to exercise the
+        kernel port and provide examples of how the FreeRTOS API can be used. */
+        //vStartLEDFlashTasks(mainFLASH_TASK_PRIORITY);
+
+        /* Create the USB task. */
+        xTaskCreate(vUSBTask, (signed char *) "USB", configMINIMAL_STACK_SIZE + 1020, (void *) NULL, tskIDLE_PRIORITY + 3, NULL);
+
+	xTaskCreate(vPrintPeriodic, (signed char *) "PRINTx", configMINIMAL_STACK_SIZE + 100, NULL, tskIDLE_PRIORITY + 2, NULL);
+
+	initCAN();
+
+        // Start the scheduler.
+        vTaskStartScheduler();
+
+        /* Will only get here if there was insufficient memory to create the idle
+           task.  The idle task is created within vTaskStartScheduler(). */
+        for (;;);
+}
+/*-----------------------------------------------------------*/
+
+
+void vApplicationTickHook(void)
+{
+        static unsigned long ulTicksSinceLastDisplay = 0;
+
+        /* Called from every tick interrupt as described in the comments at the top
+        of this file.
+
+        Have enough ticks passed to make it	time to perform our health status
+        check again? */
+
+        ulTicksSinceLastDisplay++;
+
+        if (ulTicksSinceLastDisplay >= mainCHECK_DELAY) {
+                /* Reset the counter so these checks run again in mainCHECK_DELAY
+                ticks time. */
+                ulTicksSinceLastDisplay = 0;
+        }
+}
+/*-----------------------------------------------------------*/
+
+void prvSetupHardware(void)
+{
+	// Setup the peripherals.
+	// The CPU will be running at 100 MHz with a 12 MHz clock input.
+
+        // Setup GPIO power.
+        SC->PCONP = PCONP_PCGPIO;
+        // Disable TPIU.
+        PINCON->PINSEL10 = 0;
+
+	// Setup PLL0 so that the CPU runs at 100 MHz.
+        if (SC->PLL0STAT & (1 << 25)) {
+                /* Enable PLL, disconnected. */
+                SC->PLL0CON = 1;
+                SC->PLL0FEED = PLLFEED_FEED1;
+                SC->PLL0FEED = PLLFEED_FEED2;
+        }
+
+        // Disable PLL, disconnected.
+        SC->PLL0CON = 0;
+        SC->PLL0FEED = PLLFEED_FEED1;
+        SC->PLL0FEED = PLLFEED_FEED2;
+
+        // Enable main OSC and wait until it's ready.
+        SC->SCS |= 0x20;
+        while (!(SC->SCS & 0x40));
+
+        // select main OSC, 12MHz, as the PLL clock source.
+        SC->CLKSRCSEL = 0x1;
+
+        SC->PLL0CFG = 0x20031;
+        SC->PLL0FEED = PLLFEED_FEED1;
+        SC->PLL0FEED = PLLFEED_FEED2;
+
+        // Enable PLL, disconnected.
+        SC->PLL0CON = 1;
+        SC->PLL0FEED = PLLFEED_FEED1;
+        SC->PLL0FEED = PLLFEED_FEED2;
+
+        // Set clock divider.
+        SC->CCLKCFG = 0x03;
+
+        // Configure flash accelerator.
+        SC->FLASHCFG = 0x403a;
+
+        // Check lock bit status.
+        while (((SC->PLL0STAT & (1 << 26)) == 0));
+
+        // Enable and connect.
+        SC->PLL0CON = 3;
+        SC->PLL0FEED = PLLFEED_FEED1;
+        SC->PLL0FEED = PLLFEED_FEED2;
+
+        while (((SC->PLL0STAT & (1 << 25)) == 0));
+
+        // Configure the clock for the USB.
+        if (SC->PLL1STAT & (1 << 9)) {
+                // Enable PLL, disconnected.
+                SC->PLL1CON = 1;
+                SC->PLL1FEED = PLLFEED_FEED1;
+                SC->PLL1FEED = PLLFEED_FEED2;
+        }
+
+        // Disable PLL, disconnected.
+        SC->PLL1CON = 0;
+        SC->PLL1FEED = PLLFEED_FEED1;
+        SC->PLL1FEED = PLLFEED_FEED2;
+
+        SC->PLL1CFG = 0x23;
+        SC->PLL1FEED = PLLFEED_FEED1;
+        SC->PLL1FEED = PLLFEED_FEED2;
+
+        /* Enable PLL, disconnected. */
+        SC->PLL1CON = 1;
+        SC->PLL1FEED = PLLFEED_FEED1;
+        SC->PLL1FEED = PLLFEED_FEED2;
+        while (((SC->PLL1STAT & (1 << 10)) == 0));
+
+        /* Enable and connect. */
+        SC->PLL1CON = 3;
+        SC->PLL1FEED = PLLFEED_FEED1;
+        SC->PLL1FEED = PLLFEED_FEED2;
+        while (((SC->PLL1STAT & (1 << 9)) == 0));
+
+        // Setup the peripheral bus to be the same as the CCLK, 100 MHz.
+	// Set CAN to run at CCLK/6, which should have it running about 1 Mbit (1.042)
+        SC->PCLKSEL0 = 0xff555555;
+
+        /* Configure the LEDs. */
+        vParTestInitialise();
+}
+/*-----------------------------------------------------------*/
+
+void vApplicationStackOverflowHook(xTaskHandle *pxTask, signed char *pcTaskName)
+{
+        /* This function will get called if a task overflows its stack. */
+
+        (void) pxTask;
+        (void) pcTaskName;
+
+        for (;;);
+}
+/*-----------------------------------------------------------*/
+
+void vConfigureTimerForRunTimeStats(void)
+{
+        const unsigned long TCR_COUNT_RESET = 2, CTCR_CTM_TIMER = 0x00, TCR_COUNT_ENABLE = 0x01;
+
+        /* This function configures a timer that is used as the time base when
+        collecting run time statistical information - basically the percentage
+        of CPU time that each task is utilising.  It is called automatically when
+        the scheduler is started (assuming configGENERATE_RUN_TIME_STATS is set
+        to 1). */
+
+        /* Power up and feed the timer. */
+        SC->PCONP |= 0x02UL;
+        SC->PCLKSEL0 = (SC->PCLKSEL0 & (~(0x3 << 2))) | (0x01 << 2);
+
+        /* Reset Timer 0 */
+        TIM0->TCR = TCR_COUNT_RESET;
+
+        /* Just count up. */
+        TIM0->CTCR = CTCR_CTM_TIMER;
+
+        /* Prescale to a frequency that is good enough to get a decent resolution,
+        but not too fast so as to overflow all the time. */
+        TIM0->PR = (configCPU_CLOCK_HZ / 10000UL) - 1UL;
+
+        /* Start the counter. */
+        TIM0->TCR = TCR_COUNT_ENABLE;
+}
+
diff --git a/gyro_board/src/usb/printf-stdarg.c b/gyro_board/src/usb/printf-stdarg.c
new file mode 100644
index 0000000..206c3db
--- /dev/null
+++ b/gyro_board/src/usb/printf-stdarg.c
@@ -0,0 +1,314 @@
+/*
+	Copyright 2001, 2002 Georges Menie (www.menie.org)
+	stdarg version contributed by Christian Ettinger
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+/*
+	putchar is the only external dependency for this file,
+	if you have a working putchar, leave it commented out.
+	If not, uncomment the define below and
+	replace outbyte(c) by your own function call.
+
+*/
+
+#include <stdarg.h>
+
+int VCOM_putchar(int c);
+
+int putchar (int c)
+{
+	return VCOM_putchar(c);
+}
+
+static void printchar(char **str, int c)
+{
+        //extern int putchar(int c);
+
+        if (str) {
+                **str = (char)c;
+                ++(*str);
+        } else {
+                VCOM_putchar(c);
+        }
+}
+
+int puts (char * str)
+{
+	int pc = 1;
+	while (*str != 0) {
+		VCOM_putchar(*str);
+		str ++;
+		pc ++;
+	}
+	VCOM_putchar('\n');
+	return pc;
+}
+
+#define PAD_RIGHT 1
+#define PAD_ZERO 2
+
+static int prints(char **out, const char *string, int width, int pad)
+{
+        register int pc = 0, padchar = ' ';
+
+        if (width > 0) {
+                register int len = 0;
+                register const char *ptr;
+                for (ptr = string; *ptr; ++ptr) ++len;
+                if (len >= width) width = 0;
+                else width -= len;
+                if (pad & PAD_ZERO) padchar = '0';
+        }
+        if (!(pad & PAD_RIGHT)) {
+                for (; width > 0; --width) {
+                        printchar(out, padchar);
+                        ++pc;
+                }
+        }
+        for (; *string ; ++string) {
+                printchar(out, *string);
+                ++pc;
+        }
+        for (; width > 0; --width) {
+                printchar(out, padchar);
+                ++pc;
+        }
+
+        return pc;
+}
+
+/* the following should be enough for 32 bit int */
+#define PRINT_BUF_LEN 12
+
+static int printi(char **out, int i, int b, int sg, int width, int pad, int letbase)
+{
+        char print_buf[PRINT_BUF_LEN];
+        register char *s;
+        register int t, neg = 0, pc = 0;
+        register unsigned int u = (unsigned int)i;
+
+        if (i == 0) {
+                print_buf[0] = '0';
+                print_buf[1] = '\0';
+                return prints(out, print_buf, width, pad);
+        }
+
+        if (sg && b == 10 && i < 0) {
+                neg = 1;
+                u = (unsigned int) - i;
+        }
+
+        s = print_buf + PRINT_BUF_LEN - 1;
+        *s = '\0';
+
+        while (u) {
+                t = (unsigned int)u % b;
+                if (t >= 10)
+                        t += letbase - '0' - 10;
+                *--s = (char)(t + '0');
+                u /= b;
+        }
+
+        if (neg) {
+                if (width && (pad & PAD_ZERO)) {
+                        printchar(out, '-');
+                        ++pc;
+                        --width;
+                } else {
+                        *--s = '-';
+                }
+        }
+
+        return pc + prints(out, s, width, pad);
+}
+
+static int print(char **out, const char *format, va_list args)
+{
+        register int width, pad;
+        register int pc = 0;
+        char scr[2];
+
+        for (; *format != 0; ++format) {
+                if (*format == '%') {
+                        ++format;
+                        width = pad = 0;
+                        if (*format == '\0') break;
+                        if (*format == '%') goto pout;
+                        if (*format == '-') {
+                                ++format;
+                                pad = PAD_RIGHT;
+                        }
+                        while (*format == '0') {
+                                ++format;
+                                pad |= PAD_ZERO;
+                        }
+                        for (; *format >= '0' && *format <= '9'; ++format) {
+                                width *= 10;
+                                width += *format - '0';
+                        }
+                        if (*format == 's') {
+                                register char *s = (char *)va_arg(args, int);
+                                pc += prints(out, s ? s : "(null)", width, pad);
+                                continue;
+                        }
+                        if (*format == 'd') {
+                                pc += printi(out, va_arg(args, int), 10, 1, width, pad, 'a');
+                                continue;
+                        }
+                        if (*format == 'x') {
+                                pc += printi(out, va_arg(args, int), 16, 0, width, pad, 'a');
+                                continue;
+                        }
+                        if (*format == 'X') {
+                                pc += printi(out, va_arg(args, int), 16, 0, width, pad, 'A');
+                                continue;
+                        }
+                        if (*format == 'u') {
+                                pc += printi(out, va_arg(args, int), 10, 0, width, pad, 'a');
+                                continue;
+                        }
+                        if (*format == 'c') {
+                                /* char are converted to int then pushed on the stack */
+                                scr[0] = (char)va_arg(args, int);
+                                scr[1] = '\0';
+                                pc += prints(out, scr, width, pad);
+                                continue;
+                        }
+                } else {
+pout:
+                        printchar(out, *format);
+                        ++pc;
+                }
+        }
+        if (out) **out = '\0';
+        va_end(args);
+        return pc;
+}
+
+int printf(const char *format, ...)
+{
+        va_list args;
+
+        va_start(args, format);
+        return print(0, format, args);
+}
+
+int sprintf(char *out, const char *format, ...)
+{
+        va_list args;
+
+        va_start(args, format);
+        return print(&out, format, args);
+}
+
+
+int snprintf(char *buf, unsigned int count, const char *format, ...)
+{
+        va_list args;
+
+        (void) count;
+
+        va_start(args, format);
+        return print(&buf, format, args);
+}
+
+
+#ifdef TEST_PRINTF
+int main(void)
+{
+        char *ptr = "Hello world!";
+        char *np = 0;
+        int i = 5;
+        unsigned int bs = sizeof(int) * 8;
+        int mi;
+        char buf[80];
+
+        mi = (1 << (bs - 1)) + 1;
+        printf("%s\n", ptr);
+        printf("printf test\n");
+        printf("%s is null pointer\n", np);
+        printf("%d = 5\n", i);
+        printf("%d = - max int\n", mi);
+        printf("char %c = 'a'\n", 'a');
+        printf("hex %x = ff\n", 0xff);
+        printf("hex %02x = 00\n", 0);
+        printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3);
+        printf("%d %s(s)%", 0, "message");
+        printf("\n");
+        printf("%d %s(s) with %%\n", 0, "message");
+        sprintf(buf, "justif: \"%-10s\"\n", "left");
+        printf("%s", buf);
+        sprintf(buf, "justif: \"%10s\"\n", "right");
+        printf("%s", buf);
+        sprintf(buf, " 3: %04d zero padded\n", 3);
+        printf("%s", buf);
+        sprintf(buf, " 3: %-4d left justif.\n", 3);
+        printf("%s", buf);
+        sprintf(buf, " 3: %4d right justif.\n", 3);
+        printf("%s", buf);
+        sprintf(buf, "-3: %04d zero padded\n", -3);
+        printf("%s", buf);
+        sprintf(buf, "-3: %-4d left justif.\n", -3);
+        printf("%s", buf);
+        sprintf(buf, "-3: %4d right justif.\n", -3);
+        printf("%s", buf);
+
+        return 0;
+}
+
+/*
+ * if you compile this file with
+ *   gcc -Wall $(YOUR_C_OPTIONS) -DTEST_PRINTF -c printf.c
+ * you will get a normal warning:
+ *   printf.c:214: warning: spurious trailing `%' in format
+ * this line is testing an invalid % at the end of the format string.
+ *
+ * this should display (on 32bit int machine) :
+ *
+ * Hello world!
+ * printf test
+ * (null) is null pointer
+ * 5 = 5
+ * -2147483647 = - max int
+ * char a = 'a'
+ * hex ff = ff
+ * hex 00 = 00
+ * signed -3 = unsigned 4294967293 = hex fffffffd
+ * 0 message(s)
+ * 0 message(s) with %
+ * justif: "left      "
+ * justif: "     right"
+ *  3: 0003 zero padded
+ *  3: 3    left justif.
+ *  3:    3 right justif.
+ * -3: -003 zero padded
+ * -3: -3   left justif.
+ * -3:   -3 right justif.
+ */
+
+#endif
+
+
+/* To keep linker happy. */
+int	write(int i, char* c, int n)
+{
+        (void)i;
+        (void)n;
+        (void)c;
+        return 0;
+}
+
diff --git a/gyro_board/src/usb/quad encoder config.txt b/gyro_board/src/usb/quad encoder config.txt
new file mode 100644
index 0000000..4c0fe4e
--- /dev/null
+++ b/gyro_board/src/usb/quad encoder config.txt
@@ -0,0 +1,37 @@
+// Quad Encoder stuff

+

+

+// enable the quadrature encode peripheral and peripherial clock

+

+	SC->PCONP    |=0x00040000; 	// bit 18 of PCONP set to 1

+	SC->PCLKSEL1 |=0x00000001;	/* bits 1,0 	00 CCLK/4

+							01 CCLK

+							10 CCLK/2

+							11 CCLK/8  */

+

+

+// Enable pins for QEI MCI0, MCI1 (PhA PhB, signals respectively)

+

+		

+	PINCON->PINSEL3 = ((PINSEL3 &=0xFFFF3DFF) |= 0x00004100); /* 01 in bits 9:8 and 15:14*/ 

+	//PINCON->PINSEL3 = ((PINSEL3 &=0xFFFCFFFF) |= 0x00010000); /* Turns on MCI2 index input 17:16 = 01*/

+

+

+

+// Specify Quadriture phase mode

+

+	// QEI->QEICON &= 0xFFFFFFFE; 	/* Clears position counter */

+	QEI->QEICONF &= 0XFFFFFFFD;	/* Sets bit 1 to 0, Signal mode to Quad Phase */

+	// QEI->QEICON |= 0X00000002;	/* Bit 2 to 1 counts both PhA and PhB for higher resolution */

+

+

+

+	// QEI->FILTER = ****Whatever Sampling size we want*** /* Sets the number of consecutive pulses for a change in direction, etc to accepted */

+

+

+// Set Various Attributes

+

+	// QEI->QEIMAXPOS = *****insert max position*****;

+

+

+/* Note: QEI->QEIPOS is a read only section that stores the current position */
\ No newline at end of file
diff --git a/gyro_board/src/usb/spi.c b/gyro_board/src/usb/spi.c
new file mode 100644
index 0000000..de41866
--- /dev/null
+++ b/gyro_board/src/usb/spi.c
@@ -0,0 +1,60 @@
+#include "stdio.h"
+#include "FreeRTOS.h"
+#include "spi.h"
+
+void spi_init (void) {
+  SC->PCONP |= PCONP_PCSPI;
+  SC->PCLKSEL0 |= 0x00010000;
+
+  // Hook up the interrupt
+  //NVIC_EnableIRQ(SPI_IRQn);
+
+  // SCK
+  PINCON->PINSEL0 &= 0x3fffffff;
+  PINCON->PINSEL0 |= 0xc0000000;
+
+  // SSEL, MISO, MOSI
+  // SSEL is GPIO, and needs to be done manually.
+  disable_gyro_csel();
+  GPIO0->FIODIR |= 0x00010000;
+  PINCON->PINSEL1 &= 0xffffffc0;
+  PINCON->PINSEL1 |= 0x0000003c;
+
+  // Master mode, 16 bits/frame, enable interrupts
+  SPI->SPCR = 0x000000a4;
+  // 13 clocks per cycle.  This works out to a 7.7 mhz buss.
+  SPI->SPCCR = 0x0000000d;
+
+  // TODO(aschuh): Implement the gyro bring-up blocking first.
+  // Then use interrupts.
+  enable_gyro_csel();
+  printf("SPI Gyro Initial Response 0x%x %x\n", transfer_spi_bytes(0x2000), transfer_spi_bytes(0x0003));
+  disable_gyro_csel();
+}
+
+// TODO: DMA? SSP0?  SSP0 should have a buffer, which would be very nice.
+uint16_t transfer_spi_bytes(uint16_t data) {
+  SPI->SPDR = (uint32_t)data;
+  while (!(SPI->SPSR & 0x80));
+  return SPI->SPDR;
+}
+
+void disable_gyro_csel (void) {
+  // Set the CSEL pin high to deselect it.
+  GPIO0->FIOSET = 0x00010000;
+}
+
+void enable_gyro_csel (void) {
+  // Clear the CSEL pin high to select it.
+  GPIO0->FIOCLR = 0x00010000;
+}
+
+void SPI_IRQHandler(void) {
+  int status = SPI->SPSR;
+  if (status & 0x80) {
+    // Transfer completed.
+  }
+
+  // Clear the interrupt?
+  SPI->SPINT = 0x00000001;
+}
diff --git a/gyro_board/src/usb/spi.h b/gyro_board/src/usb/spi.h
new file mode 100644
index 0000000..6dbc511
--- /dev/null
+++ b/gyro_board/src/usb/spi.h
@@ -0,0 +1,9 @@
+#ifndef __SPI_H__
+#define __SPI_H__
+
+void spi_init (void);
+uint16_t transfer_spi_bytes(uint16_t data);
+void disable_gyro_csel (void);
+void enable_gyro_csel (void);
+
+#endif // __SPI_H__
diff --git a/gyro_board/src/usb/syscalls.c b/gyro_board/src/usb/syscalls.c
new file mode 100644
index 0000000..b01ad48
--- /dev/null
+++ b/gyro_board/src/usb/syscalls.c
@@ -0,0 +1,82 @@
+/* Don't need anything here. */
+
+#include <stdlib.h>
+#include <sys/stat.h>
+
+int _read_r(struct _reent *r, int file, char * ptr, int len)
+{
+        (void) r;
+        (void) file;
+        (void) ptr;
+        (void) len;
+        return -1;
+}
+
+/***************************************************************************/
+
+int _lseek_r(struct _reent *r, int file, int ptr, int dir)
+{
+        (void) r;
+        (void) file;
+        (void) ptr;
+        (void) dir;
+
+        return 0;
+}
+
+/***************************************************************************/
+
+int _write_r(struct _reent *r, int file, char * ptr, int len)
+{
+        (void) r;
+        (void) file;
+        (void) ptr;
+        (void) len;
+
+        return 0;
+}
+
+/***************************************************************************/
+
+int _close_r(struct _reent *r, int file)
+{
+        (void) r;
+        (void) file;
+
+        return 0;
+}
+
+/***************************************************************************/
+
+caddr_t _sbrk_r(struct _reent *r, int incr)
+{
+        (void) r;
+        (void) incr;
+
+        return 0;
+}
+
+/***************************************************************************/
+
+int _fstat_r(struct _reent *r, int file, struct stat * st)
+{
+        (void) r;
+        (void) file;
+        (void) st;
+
+        return 0;
+}
+
+/***************************************************************************/
+
+int _isatty_r(struct _reent *r, int fd)
+{
+        (void) r;
+        (void) fd;
+
+        return 0;
+}
+
+
+
+
diff --git a/gyro_board/src/usb/system_LPC17xx.h b/gyro_board/src/usb/system_LPC17xx.h
new file mode 100644
index 0000000..0f7d698
--- /dev/null
+++ b/gyro_board/src/usb/system_LPC17xx.h
@@ -0,0 +1,40 @@
+/******************************************************************************
+ * @file:    system_LPC17xx.h
+ * @purpose: CMSIS Cortex-M3 Device Peripheral Access Layer Header File
+ *           for the NXP LPC17xx Device Series
+ * @version: V1.0
+ * @date:    25. Nov. 2008
+ *----------------------------------------------------------------------------
+ *
+ * Copyright (C) 2008 ARM Limited. All rights reserved.
+ *
+ * ARM Limited (ARM) is supplying this software for use with Cortex-M3
+ * processor based microcontrollers.  This file can be freely distributed
+ * within development tools that are supporting such ARM based processors.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ ******************************************************************************/
+
+
+#ifndef __SYSTEM_LPC17xx_H
+#define __SYSTEM_LPC17xx_H
+
+extern uint32_t SystemFrequency;    /*!< System Clock Frequency (Core Clock)  */
+
+
+/**
+ * Initialize the system
+ *
+ * @param  none
+ * @return none
+ *
+ * @brief  Setup the microcontroller system.
+ *         Initialize the System and update the SystemFrequency variable.
+ */
+extern void SystemInit(void);
+#endif
diff --git a/gyro_board/src/usb/test.py b/gyro_board/src/usb/test.py
new file mode 100644
index 0000000..3344543
--- /dev/null
+++ b/gyro_board/src/usb/test.py
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+
+global DeviceName, AddAction, RemoveAction
+DeviceName = 'usb_device_46d_c408_noserial' # Logitech Trackball
+AddAction = 'xmodmap -e "pointer = 3 2 1 4 5 6 7 9 8"'
+RemoveAction = 'xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9"'
+
+import dbus # needed to do anything
+import dbus.decorators # needed to receive messages
+import dbus.glib # needed to receive messages
+import gobject # needed to loop & monitor
+import os # needed to 
+
+def add_device(*args, **keywords):
+    Path = args[0].split('/')
+    if Path[-1] == DeviceName: # Device found
+        os.system(AddAction)
+        
+def remove_device(*args, **keywords):
+    Path = args[0].split('/')
+    if Path[-1] == DeviceName: # Device found
+        os.system(RemoveAction)
+
+bus = dbus.SystemBus()  # connect to system bus
+hal_manager_obj = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
+hal_manager = dbus.Interface(hal_manager_obj, 'org.freedesktop.Hal.Manager')
+
+# Add listeners for all devices being added or removed
+bus.add_signal_receiver(add_device, 'DeviceAdded', 'org.freedesktop.Hal.Manager',
+                        'org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
+bus.add_signal_receiver(remove_device, 'DeviceRemoved', 'org.freedesktop.Hal.Manager',
+                        'org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
+
+# get list of all devices, determine if device is connected
+device_names = hal_manager.GetAllDevices()
+for name in device_names:
+    Path = name.split('/')
+    if Path[-1] == DeviceName: # Device found
+        os.system(AddAction)
+        break # no need to keep looking
+
+# monitor
+loop = gobject.MainLoop()
+loop.run()
diff --git a/gyro_board/src/usb/test2.py b/gyro_board/src/usb/test2.py
new file mode 100644
index 0000000..773446b
--- /dev/null
+++ b/gyro_board/src/usb/test2.py
@@ -0,0 +1,5 @@
+import pyudev
+context = pyudev.Context()
+
+devices = context.list_devices()
+print devices
diff --git a/gyro_board/src/usb_driver/90-aschuh.rules b/gyro_board/src/usb_driver/90-aschuh.rules
new file mode 100644
index 0000000..7e7699e
--- /dev/null
+++ b/gyro_board/src/usb_driver/90-aschuh.rules
@@ -0,0 +1 @@
+KERNEL=="aschuh[0-9]*",GROUP="dialout"
diff --git a/gyro_board/src/usb_driver/Makefile b/gyro_board/src/usb_driver/Makefile
new file mode 100644
index 0000000..d7f5b55
--- /dev/null
+++ b/gyro_board/src/usb_driver/Makefile
@@ -0,0 +1,8 @@
+obj-m := deploy-module.o
+deploy-module-y := usb-aschuh_can_driver.o
+
+all:
+	@make -C /lib/modules/`uname -r | tr -d '\n'`/build M=`pwd` modules
+
+clean:
+	@make -C /lib/modules/`uname -r | tr -d '\n'`/build M=`pwd` clean
diff --git a/gyro_board/src/usb_driver/README b/gyro_board/src/usb_driver/README
new file mode 100644
index 0000000..7325d87
--- /dev/null
+++ b/gyro_board/src/usb_driver/README
@@ -0,0 +1,8 @@
+To build, run 
+
+make -C /lib/modules/`uname -r | tr -d '\n'`/build M=`pwd` modules
+
+Where 2.6.38... is what you get when you run uname -r
+
+To use from a dialout user (not root)
+cp 90-aschuh.rules /etc/udev/rules.d/
diff --git a/gyro_board/src/usb_driver/aschuh_dev_cat.rb b/gyro_board/src/usb_driver/aschuh_dev_cat.rb
new file mode 100755
index 0000000..2c314d5
--- /dev/null
+++ b/gyro_board/src/usb_driver/aschuh_dev_cat.rb
@@ -0,0 +1,23 @@
+#!/usr/bin/ruby
+
+device_number = 0
+max_device_number = 1
+device = nil
+while !(device)
+	begin
+		device = File.open("/dev/aschuh#{device_number}","r+")
+	rescue
+		puts("Opening /dev/aschuh#{device_number} failed")
+		sleep(0.2)
+		device_number += 1
+		if(device_number == max_device_number)
+			device_number = 0
+		end
+	end
+end
+
+# Set the device in debug mode to view debug prints.
+device.ioctl(1,254)
+while true
+	print device.read(1)
+end
diff --git a/gyro_board/src/usb_driver/usb-aschuh_can_device.c b/gyro_board/src/usb_driver/usb-aschuh_can_device.c
new file mode 100644
index 0000000..400cc91
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_can_device.c
@@ -0,0 +1,190 @@
+#include "usb-aschuh_can_driver.h"
+#include "usb-aschuh_can_device.h"
+
+#define to_aschuh_dev(d) container_of(d, struct aschuh_dev, kref)
+static void aschuh_dev_delete(struct kref *kref)
+{
+    struct aschuh_dev *dev = to_aschuh_dev(kref);
+
+    usb_free_urb(dev->bulk.in_urb);
+	usb_free_urb(dev->intr.in_urb);
+    usb_put_dev(dev->udev);
+    kfree(dev->bulk.in_buffer);
+    kfree(dev->intr.in_buffer);
+    kfree(dev);
+}
+
+#include "usb-aschuh_fops_read.c"
+#include "usb-aschuh_fops_write.c"
+#include "usb-aschuh_fops_open.c"
+#include "usb-aschuh_fops_ioctl.c"
+#include "usb-aschuh_fops_release.c"
+
+static const struct file_operations aschuh_dev_fops = {
+	.owner =	THIS_MODULE,
+	.read  = 	aschuh_dev_read,
+	.write = 	aschuh_dev_write,
+	.open = 	aschuh_dev_open,
+	.release = 	aschuh_dev_release,
+	.flush = 	NULL,
+	.llseek = 	NULL,
+	.unlocked_ioctl = aschuh_dev_ioctl,
+};
+
+static int init_in_channel(struct aschuh_chan *chan,
+		struct usb_endpoint_descriptor *endpoint){
+    size_t buffer_size;
+    buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+    chan->in_size = buffer_size;
+    chan->in_endpointAddr = endpoint->bEndpointAddress;
+    chan->in_buffer = kmalloc(buffer_size, GFP_KERNEL);
+    if (!chan->in_buffer) {
+        err("Could not allocate bulk_in_buffer");
+		return -1;
+    }
+    chan->in_urb = usb_alloc_urb(0, GFP_KERNEL);
+    if (!chan->in_urb) {
+        err("Could not allocate bulk_in_urb");
+		return -1;
+    }
+	return 0;
+}
+int aschuh_dev_connect_endpoints(struct aschuh_dev *dev,
+	    struct usb_host_interface *iface_desc){
+    struct usb_endpoint_descriptor *endpoint;
+    int i,rv;
+    for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
+        endpoint = &iface_desc->endpoint[i].desc;
+
+        if (!dev->bulk.in_endpointAddr &&
+                usb_endpoint_is_bulk_in(endpoint)) {
+    		/* we found a bulk in endpoint */
+    		printk("ASCHUH: found_bulk_in : 0x%x \n",endpoint->bEndpointAddress);
+			if((rv = init_in_channel(&dev->bulk,endpoint)))
+				return rv;
+        }
+        if (!dev->bulk.out_endpointAddr &&
+                usb_endpoint_is_bulk_out(endpoint)) {
+            /* we found a bulk out endpoint */
+            printk("ASCHUH: found_bulk_out : 0x%x \n",endpoint->bEndpointAddress);
+            dev->bulk.out_endpointAddr = endpoint->bEndpointAddress;
+        }
+        if (!dev->intr.in_endpointAddr &&
+                usb_endpoint_is_int_in(endpoint)) {
+    		/* we found a bulk in endpoint */
+    		printk("ASCHUH: found_intr_in : 0x%x \n",endpoint->bEndpointAddress);
+			if((rv = init_in_channel(&dev->intr,endpoint)))
+				return rv;
+			dev->intr.bEndpointInterval = endpoint->bInterval;
+        }
+        if (!dev->intr.out_endpointAddr &&
+                usb_endpoint_is_int_out(endpoint)) {
+            /* we found a intr out endpoint */
+            printk("ASCHUH: found_intr_out : 0x%x \n",endpoint->bEndpointAddress);
+            dev->intr.out_endpointAddr = endpoint->bEndpointAddress;
+        }
+    }
+    if (!(dev->bulk.in_endpointAddr && dev->bulk.out_endpointAddr)) {
+        err("Could not find both bulk-in and bulk-out endpoints");
+		return -1;
+    }
+    if (!(dev->intr.in_endpointAddr && dev->intr.out_endpointAddr)) {
+        err("Could not find both intr-in and intr-out endpoints");
+		return -1;
+    }
+	return 0;
+}
+
+#define ASCHUH_DEV_MINOR_BASE 192
+//used in getting the file in /dev/
+static struct usb_class_driver aschuh_dev_class = {
+    .name =         "aschuh%d",
+    .fops =         &aschuh_dev_fops,
+    .minor_base =   ASCHUH_DEV_MINOR_BASE,
+};
+static void init_aschuh_chan(struct aschuh_chan *chan,struct aschuh_dev *dev){
+	sema_init(&chan->limit_sem, WRITES_IN_FLIGHT);
+    mutex_init(&chan->io_mutex);
+    spin_lock_init(&chan->err_lock);
+    init_completion(&chan->in_completion);
+	chan->owner = dev;
+}
+static int aschuh_can_driver_probe(struct usb_interface *interface, 
+		const struct usb_device_id *id)
+{
+	// New Drivers Show up Here!
+	struct aschuh_dev *dev;
+    int retval = -ENOMEM;
+
+    /* allocate memory for our device state and initialize it */
+    dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+    if (!dev) {
+        err("Out of memory");
+        goto error;
+    }
+    kref_init(&dev->kref);
+	
+    init_usb_anchor(&dev->submitted);
+	init_aschuh_chan(&dev->bulk,dev);
+	init_aschuh_chan(&dev->intr,dev);
+
+
+    dev->udev = usb_get_dev(interface_to_usbdev(interface));
+    dev->interface = interface;
+
+    /* set up the endpoint information */
+    /* use only the first bulk-in and bulk-out endpoints */
+	if(aschuh_dev_connect_endpoints(dev,interface->cur_altsetting))
+		goto error;
+
+    /* save our data pointer in this interface device */
+    usb_set_intfdata(interface, dev);
+
+    /* we can register the device now, as it is ready */
+    retval = usb_register_dev(interface, &aschuh_dev_class);
+    if (retval) {
+        /* something prevented us from registering this driver */
+        err("Not able to get a minor for this device.");
+        usb_set_intfdata(interface, NULL);
+        goto error;
+    }
+
+	printk("CAN driver has been probed - %d\n",interface->minor);
+    /* let the user know what node this device is now attached to */
+    dev_info(&interface->dev,
+            "USB aschuh_dev device now attached to USB_ASCHUH-%d",
+            interface->minor);
+    return 0;
+
+error:
+    if (dev)
+        /* this frees allocated memory */
+        kref_put(&dev->kref, aschuh_dev_delete);
+	return -ENOMEM;
+}
+static void aschuh_can_driver_disconnect(struct usb_interface *interface)
+{
+    struct aschuh_dev *dev;
+    int minor = interface->minor;
+
+    dev = usb_get_intfdata(interface);
+    usb_set_intfdata(interface, NULL);
+
+    /* give back our minor */
+    usb_deregister_dev(interface, &aschuh_dev_class);
+
+    /* prevent more I/O from starting */
+	mutex_lock(&dev->bulk.io_mutex);
+	mutex_lock(&dev->intr.io_mutex);
+    dev->interface = NULL;
+    mutex_unlock(&dev->bulk.io_mutex);
+    mutex_unlock(&dev->intr.io_mutex);
+
+    usb_kill_anchored_urbs(&dev->submitted);
+
+    /* decrement our usage count */
+    kref_put(&dev->kref, aschuh_dev_delete);
+
+    dev_info(&interface->dev, "USB aschuh_dev #%d now disconnected", minor);
+}
+
diff --git a/gyro_board/src/usb_driver/usb-aschuh_can_device.h b/gyro_board/src/usb_driver/usb-aschuh_can_device.h
new file mode 100644
index 0000000..0065839
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_can_device.h
@@ -0,0 +1,37 @@
+#ifndef _USB_ASCHUH_CAN_DEVICE__H_
+#define _USB_ASCHUH_CAN_DEVICE__H_
+struct aschuh_dev;
+struct aschuh_chan{
+    struct urb              *in_urb;           /* the urb to read data with */
+    unsigned char           *in_buffer;        /* the buffer to receive data */
+    size_t                  in_size;           /* the size of the receive buffer */
+    size_t                  in_filled;         /* number of bytes in the buffer */
+    size_t                  in_copied;         /* already copied to user space */
+    __u8                    in_endpointAddr;   /* the address of the in endpoint */
+    __u8                    out_endpointAddr;  /* the address of the out endpoint */
+    int                     errors;            /* the last request tanked */
+    spinlock_t              err_lock;          /* lock for errors */
+    struct mutex            io_mutex;          /* synchronize I/O with disconnect */
+    struct semaphore        limit_sem;              /* limiting the number of writes in progress */
+    struct completion       in_completion;     /* to wait for an ongoing read */
+    bool                    ongoing_read;      /* a read is going on */
+    bool                    processed_urb;     /* indicates we haven't processed the urb */
+	__u8					bEndpointInterval; /* used in fill_int_urb */
+	struct aschuh_dev		*owner;
+};
+
+struct aschuh_dev{
+    struct usb_device       *udev;                  /* the usb device for this device */
+    struct usb_interface    *interface;             /* the interface for this device */
+    struct usb_anchor       submitted;              /* in case we need to retract our submissions */
+	struct aschuh_chan		bulk;					/* channel for handling bulk requests */
+	struct aschuh_chan		intr;
+    int                     open_count;             /* count the number of openers */
+    struct kref             kref;
+};
+static void aschuh_can_driver_disconnect(struct usb_interface *interface);
+static int aschuh_can_driver_probe(struct usb_interface *interface,
+        const struct usb_device_id *id);
+
+
+#endif
diff --git a/gyro_board/src/usb_driver/usb-aschuh_can_driver.c b/gyro_board/src/usb_driver/usb-aschuh_can_driver.c
new file mode 100644
index 0000000..44a7f6e
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_can_driver.c
@@ -0,0 +1,46 @@
+#include "usb-aschuh_can_driver.h"
+#include "usb-aschuh_can_device.h"
+#define WRITES_IN_FLIGHT        8
+static const struct usb_device_id aschuh_can_device_table[] = {
+	{ USB_DEVICE(VENDOR_ID,	PRODUCT_ID) },
+	{ } /*terminating entry */
+};
+MODULE_DEVICE_TABLE(usb, aschuh_can_device_table);
+
+
+#include "usb-aschuh_can_device.c"
+static struct usb_driver aschuh_can_driver = {
+	.name = 	"aschuh_can_driver",
+	.probe =  	aschuh_can_driver_probe,
+	.disconnect = 	aschuh_can_driver_disconnect,
+	.suspend =	NULL,
+	.resume =	NULL,
+	.pre_reset = 	NULL,
+	.post_reset = 	NULL,
+	.id_table = 	aschuh_can_device_table,
+	.supports_autosuspend = 0,
+};
+
+static int __init aschuh_can_driver_init(void)
+{
+	int result;
+
+	result = usb_register(&aschuh_can_driver);
+	if(result)
+		err("usb_register failed. Error number %d",result);
+
+	printk("INIT CAN driver\n");
+	return result;
+}
+static void __exit aschuh_can_driver_exit(void)
+{
+	usb_deregister(&aschuh_can_driver);
+	printk("Closing CAN driver\n");
+}
+
+
+module_init(aschuh_can_driver_init);
+module_exit(aschuh_can_driver_exit);
+
+
+MODULE_LICENSE("GPL"); //not sure about this.
diff --git a/gyro_board/src/usb_driver/usb-aschuh_can_driver.h b/gyro_board/src/usb_driver/usb-aschuh_can_driver.h
new file mode 100644
index 0000000..73fcb1f
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_can_driver.h
@@ -0,0 +1,21 @@
+#ifndef __USB_ASCHUH_CAN_DRIVER__H_
+#define __USB_ASCHUH_CAN_DRIVER__H_
+
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/kref.h>
+#include <linux/uaccess.h>
+#include <linux/usb.h>
+#include <linux/mutex.h>
+
+struct aschuh_can_device {
+	struct usb_device	*udev;
+	struct usb_interface	*interface;
+};
+#define VENDOR_ID		0x1424
+#define PRODUCT_ID		0xd243
+
+#endif
diff --git a/gyro_board/src/usb_driver/usb-aschuh_fops_ioctl.c b/gyro_board/src/usb_driver/usb-aschuh_fops_ioctl.c
new file mode 100644
index 0000000..4229444
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_fops_ioctl.c
@@ -0,0 +1,19 @@
+static long aschuh_dev_ioctl(struct file *file,
+		unsigned int cmd, unsigned long arg)
+{
+	struct aschuh_chan *new_chan;
+	struct aschuh_chan *chan = file->private_data;
+	struct aschuh_dev *dev = chan->owner;
+	printk("ioctl(%d,%d)\n",cmd,(int)arg);
+	if(cmd == 1){
+		if(arg == 254){
+			new_chan = &dev->bulk;
+		}else{
+			new_chan = &dev->intr;
+		}
+		file->private_data = new_chan;
+		return 0;
+	}else{
+		return 0;
+	}
+}
diff --git a/gyro_board/src/usb_driver/usb-aschuh_fops_open.c b/gyro_board/src/usb_driver/usb-aschuh_fops_open.c
new file mode 100644
index 0000000..5263acd
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_fops_open.c
@@ -0,0 +1,60 @@
+static struct usb_driver aschuh_can_driver;
+static int aschuh_dev_open(struct inode *inode, struct file *file)
+{
+    struct aschuh_dev *dev;
+    struct usb_interface *interface;
+    int subminor;
+
+    subminor = iminor(inode);
+	printk("opening device!!!\n");
+    interface = usb_find_interface(&aschuh_can_driver, subminor);
+    if (!interface) {
+        err("%s - error, can't find device for minor %d",
+                __func__, subminor);
+        return( -ENODEV);
+    }
+
+    dev = usb_get_intfdata(interface);
+    if (!dev) {
+        return( -ENODEV);
+    }
+
+    /* increment our usage count for the device */
+    kref_get(&dev->kref);
+
+    /* lock the device to allow correctly handling errors
+     * in resumption */
+    mutex_lock(&dev->bulk.io_mutex);
+    mutex_lock(&dev->intr.io_mutex);
+	//TODO(parker): Hey folks! I just commented this out.
+	// it would be a good thing to check what usb_autopm_get_interface
+	// actually does :P. Good thing to check if you find errors.
+	/*
+    if (!dev->open_count++) {
+        int retval = usb_autopm_get_interface(interface);
+        if (retval) {
+            dev->open_count--;
+            mutex_unlock(&dev->bulk.io_mutex);
+            mutex_unlock(&dev->intr.io_mutex);
+            kref_put(&dev->kref, aschuh_dev_delete);
+            return retval;
+        }
+    }
+	*/
+	/* else { //uncomment this block if you want exclusive open
+         retval = -EBUSY;
+         dev->open_count--;
+         mutex_unlock(&dev->io_mutex);
+         kref_put(&dev->kref, aschuh_dev_delete);
+         goto exit;
+         } */
+    /* prevent the device from being autosuspended */
+
+    /* save our object in the file's private structure */
+    file->private_data = &dev->intr;
+    mutex_unlock(&dev->bulk.io_mutex);
+    mutex_unlock(&dev->intr.io_mutex);
+
+    return 0;
+}
+
diff --git a/gyro_board/src/usb_driver/usb-aschuh_fops_read.c b/gyro_board/src/usb_driver/usb-aschuh_fops_read.c
new file mode 100644
index 0000000..912e4b6
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_fops_read.c
@@ -0,0 +1,207 @@
+static void aschuh_chan_read_callback(struct urb *urb)
+{
+    struct aschuh_chan *chan;
+
+    chan = urb->context;
+
+    spin_lock(&chan->err_lock);
+    /* sync/async unlink faults aren't errors */
+    if (urb->status) {
+        if (!(urb->status == -ENOENT ||
+                    urb->status == -ECONNRESET ||
+                    urb->status == -ESHUTDOWN))
+            err("%s - nonzero write bulk status received: %d",
+                    __func__, urb->status);
+
+        chan->errors = urb->status;
+    } else {
+        chan->in_filled = urb->actual_length;
+    }
+    chan->ongoing_read = 0;
+    spin_unlock(&chan->err_lock);
+
+    complete(&chan->in_completion);
+}
+
+static int aschuh_chan_submit(struct aschuh_chan *chan){
+    int rv;
+    /* tell everybody to leave the URB alone */
+    spin_lock_irq(&chan->err_lock);
+    chan->ongoing_read = 1;
+    spin_unlock_irq(&chan->err_lock);
+	
+
+    /* do it */
+    rv = usb_submit_urb(chan->in_urb, GFP_KERNEL);
+    if (rv < 0) {
+        err("%s - failed submitting read urb, error %d",
+                __func__, rv);
+        chan->in_filled = 0;
+        rv = (rv == -ENOMEM) ? rv : -EIO;
+        spin_lock_irq(&chan->err_lock);
+        chan->ongoing_read = 0;
+        spin_unlock_irq(&chan->err_lock);
+    }
+
+    return rv;
+}
+
+
+static int aschuh_dev_bulk_do_read_io(struct aschuh_dev *dev,size_t count)
+{
+	struct aschuh_chan *chan = &dev->bulk;
+    /* prepare a read */
+    usb_fill_bulk_urb(chan->in_urb, dev->udev,
+            usb_rcvbulkpipe(dev->udev, chan->in_endpointAddr),
+            chan->in_buffer,
+            min(chan->in_size, count),
+            aschuh_chan_read_callback,
+            chan);
+	return aschuh_chan_submit(chan);
+}
+
+static int aschuh_dev_intr_do_read_io(struct aschuh_dev *dev,size_t count)
+{
+	struct aschuh_chan *chan = &dev->intr;
+    /* prepare a read */
+    usb_fill_int_urb(chan->in_urb, dev->udev,
+            usb_rcvintpipe(dev->udev, chan->in_endpointAddr),
+            chan->in_buffer,
+            chan->in_size,
+            aschuh_chan_read_callback,
+            chan,chan->bEndpointInterval);
+	return aschuh_chan_submit(chan);
+}
+
+static ssize_t aschuh_dev_read(struct file *file, char *buffer, size_t count,
+        loff_t *ppos)
+{
+	int rv;
+	bool ongoing_io;
+	struct aschuh_chan *chan = file->private_data;
+	struct aschuh_dev *dev = chan->owner; 
+	enum chan_types{
+		BULK_CHAN, INTR_CHAN
+	} chan_type = INTR_CHAN;
+    size_t available;
+	if(chan == &dev->intr)
+		chan_type = INTR_CHAN;
+	else if(chan == &dev->bulk){
+		chan_type = BULK_CHAN;
+	}else{
+		printk("Chan type not debug or data!!!");
+		return 0;
+	}
+	
+
+	    /* if we cannot read at all, return EOF */
+    if (!chan->in_urb || !count)
+        return 0;
+
+	rv = mutex_lock_interruptible(&chan->io_mutex);
+    if (rv < 0)
+        return rv;
+
+	if (!dev->interface) {          /* disconnect() was called */
+        rv = -ENODEV;
+        goto exit;
+    }
+
+	    /* if IO is under way, we must not touch things */
+	while(true){
+    	spin_lock_irq(&chan->err_lock);
+    	ongoing_io = chan->ongoing_read;
+    	spin_unlock_irq(&chan->err_lock);
+
+    	if (ongoing_io) {
+        	/* nonblocking IO shall not wait */
+        	if (file->f_flags & O_NONBLOCK) {
+            	rv = -EAGAIN;
+            	goto exit;
+        	}
+        	/*
+         	 * IO may take forever
+         	 * hence wait in an interruptible state
+         	 */
+			mutex_unlock(&chan->io_mutex);
+        	rv = wait_for_completion_interruptible(&chan->in_completion);
+        	if (rv < 0)
+            	return rv;
+
+			rv = mutex_lock_interruptible(&chan->io_mutex);
+    		if (rv < 0)
+        		return rv;
+        	/*
+         	 * by waiting we also semiprocessed the urb
+         	 * we must finish now
+         	 */
+        	chan->in_copied = 0;
+    	}
+
+
+    	/* errors must be reported */
+    	rv = chan->errors;
+    	if (rv < 0) {
+        	/* any error is reported once */
+        	chan->errors = 0;
+        	/* to preserve notifications about reset */
+        	rv = (rv == -EPIPE) ? rv : -EIO;
+        	/* no data to deliver */
+        	chan->in_filled = 0;
+        	/* report it */
+        	goto exit;
+    	}
+		/*
+     	 * if the buffer is filled we may satisfy the read
+     	 * else we need to start IO
+     	 */
+
+    	/* we had read data */
+    	available = chan->in_filled - chan->in_copied;
+
+    	if (!chan->in_filled || !available) {
+        	/*
+         	 * all data has been used or no data is avaiable.
+         	 * actual IO needs to be done
+         	 */
+			if(chan_type == INTR_CHAN)
+        		rv = aschuh_dev_intr_do_read_io(dev, count);
+			else if(chan_type == BULK_CHAN){
+        		rv = aschuh_dev_bulk_do_read_io(dev, count);
+			}
+        	if (rv < 0)
+            	goto exit;
+    	}else{
+    		size_t chunk = min(available, count);
+    		/*
+     	 	 * data is available
+     	 	 * chunk tells us how much shall be copied
+     	 	 */
+
+    		if (copy_to_user(buffer,
+                		chan->in_buffer + chan->in_copied,
+                		chunk))
+        		rv = -EFAULT;
+    		else
+        		rv = chunk;
+
+    		chan->in_copied += chunk;
+
+    		/*
+     	 	 * if we are asked for more than we have,
+     	 	 * we start IO but don't wait
+     	 	 */
+    		//if (available < count){
+			//	if(chan_type == INTR_CHAN)
+        	//		aschuh_dev_intr_do_read_io(dev, count);
+			//	else if(chan_type == BULK_CHAN){
+        	//		aschuh_dev_bulk_do_read_io(dev, count);
+			//	}
+			//}
+			goto exit;
+		}
+	}
+exit:
+	mutex_unlock(&chan->io_mutex);
+	return rv;
+}
diff --git a/gyro_board/src/usb_driver/usb-aschuh_fops_release.c b/gyro_board/src/usb_driver/usb-aschuh_fops_release.c
new file mode 100644
index 0000000..259a1b9
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_fops_release.c
@@ -0,0 +1,22 @@
+static int aschuh_dev_release(struct inode *inode, struct file *file)
+{
+    struct aschuh_dev *dev;
+	printk("closing device!!!\n");
+
+    dev = ((struct aschuh_chan *)file->private_data)->owner;
+    if (dev == NULL)
+        return -ENODEV;
+
+    /* allow the device to be autosuspended */
+   	//mutex_lock(&dev->bulk.io_mutex);
+    //mutex_lock(&dev->intr.io_mutex);
+    //if (!--dev->open_count && dev->interface)
+    //    usb_autopm_put_interface(dev->interface);
+    //mutex_unlock(&dev->bulk.io_mutex);
+    //mutex_unlock(&dev->intr.io_mutex);
+
+    /* decrement the count on our device */
+    kref_put(&dev->kref, aschuh_dev_delete);
+    return 0;
+}
+
diff --git a/gyro_board/src/usb_driver/usb-aschuh_fops_write.c b/gyro_board/src/usb_driver/usb-aschuh_fops_write.c
new file mode 100644
index 0000000..7a9e00e
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-aschuh_fops_write.c
@@ -0,0 +1,144 @@
+#include <linux/usb.h>
+static void aschuh_dev_write_callback(struct urb *urb)
+{
+    struct aschuh_chan *chan;
+
+    chan = urb->context;
+    /* sync/async unlink faults aren't errors */
+    if (urb->status) {
+        if (!(urb->status == -ENOENT ||
+                    urb->status == -ECONNRESET ||
+                    urb->status == -ESHUTDOWN))
+            err("%s - nonzero write bulk status received: %d",
+                    __func__, urb->status);
+
+        spin_lock(&chan->err_lock);
+        chan->errors = urb->status;
+        spin_unlock(&chan->err_lock);
+    }
+
+    /* free up our allocated buffer */
+    usb_free_coherent(urb->dev, urb->transfer_buffer_length,
+            urb->transfer_buffer, urb->transfer_dma);
+    up(&chan->limit_sem);
+}
+//#define WRITES_IN_FLIGHT        8
+#define MAX_TRANSFER	64
+
+static ssize_t aschuh_dev_write(struct file *file, const char *user_buffer,
+        size_t count, loff_t *ppos)
+{
+    struct aschuh_chan *chan;
+	struct aschuh_dev *dev;
+    int retval = 0;
+    struct urb *urb = NULL;
+    char *buf = NULL;
+    size_t writesize = min(count, (size_t)MAX_TRANSFER);
+
+    chan = file->private_data;
+	dev = chan->owner;
+
+    /* verify that we actually have some data to write */
+    if (count == 0)
+        goto exit;
+
+    /*
+     * limit the number of URBs in flight to stop a user from using up all
+     * RAM
+     */
+    if (!(file->f_flags & O_NONBLOCK)) {
+        if (down_interruptible(&chan->limit_sem)) {
+            retval = -ERESTARTSYS;
+            goto exit;
+        }
+    } else {
+        if (down_trylock(&chan->limit_sem)) {
+            retval = -EAGAIN;
+            goto exit;
+        }
+    }
+
+    spin_lock_irq(&chan->err_lock);
+    retval = chan->errors;
+    if (retval < 0) {
+        /* any error is reported once */
+        chan->errors = 0;
+        /* to preserve notifications about reset */
+        retval = (retval == -EPIPE) ? retval : -EIO;
+    }
+    spin_unlock_irq(&chan->err_lock);
+    if (retval < 0)
+        goto error;
+
+    /* create a urb, and a buffer for it, and copy the data to the urb */
+    urb = usb_alloc_urb(0, GFP_KERNEL);
+    if (!urb) {
+        retval = -ENOMEM;
+        goto error;
+    }
+
+    buf = usb_alloc_coherent(dev->udev, writesize, GFP_KERNEL,
+            &urb->transfer_dma);
+    if (!buf) {
+        retval = -ENOMEM;
+        goto error;
+    }
+
+    if (copy_from_user(buf, user_buffer, writesize)) {
+        retval = -EFAULT;
+        goto error;
+    }
+
+    /* this lock makes sure we don't submit URBs to gone devices */
+    mutex_lock(&chan->io_mutex);
+    if (!dev->interface) {          /* disconnect() was called */
+        mutex_unlock(&chan->io_mutex);
+		printk("Should be exiting shortly.... stay tuned for details\n");
+        retval = -ENODEV;
+        goto error;
+    }
+
+    /* initialize the urb properly */
+	if(chan == &dev->bulk){
+    	usb_fill_bulk_urb(urb, dev->udev,
+            usb_sndbulkpipe(dev->udev, chan->out_endpointAddr),
+            buf, writesize, aschuh_dev_write_callback, chan);
+	}else{
+		usb_fill_int_urb(urb, dev->udev,
+            usb_sndintpipe(dev->udev, chan->out_endpointAddr),
+            buf, writesize, aschuh_dev_write_callback, chan,
+			chan->bEndpointInterval);
+	}
+    urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+
+    usb_anchor_urb(urb, &dev->submitted);
+    /* send the data out the bulk port */
+    retval = usb_submit_urb(urb, GFP_KERNEL);
+    mutex_unlock(&chan->io_mutex);
+    if (retval) {
+        err("%s - failed submitting write urb, error %d", __func__,
+                retval);
+    	usb_unanchor_urb(urb);
+		goto error;
+    }
+
+    /*
+     * release our reference to this urb, the USB core will eventually free
+     * it entirely
+     */
+    usb_free_urb(urb);
+
+
+    return writesize;
+
+error:
+    if (urb) {
+        usb_free_coherent(dev->udev, writesize, buf, urb->transfer_dma);
+        usb_free_urb(urb);
+    }
+    up(&chan->limit_sem);
+
+exit:
+    return retval;
+}
+
diff --git a/gyro_board/src/usb_driver/usb-skeleton.c b/gyro_board/src/usb_driver/usb-skeleton.c
new file mode 100644
index 0000000..1409724
--- /dev/null
+++ b/gyro_board/src/usb_driver/usb-skeleton.c
@@ -0,0 +1,713 @@
+/*
+ * USB Skeleton driver - 2.2
+ *
+ * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com)
+ *
+ *      This program is free software; you can redistribute it and/or
+ *      modify it under the terms of the GNU General Public License as
+ *      published by the Free Software Foundation, version 2.
+ *
+ * This driver is based on the 2.6.3 version of drivers/usb/usb-skeleton.c
+ * but has been rewritten to be easier to read and use.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/kref.h>
+#include <linux/uaccess.h>
+#include <linux/usb.h>
+#include <linux/mutex.h>
+
+
+/* Define these values to match your devices */
+#define USB_SKEL_VENDOR_ID      0xfff0
+#define USB_SKEL_PRODUCT_ID     0xfff0
+
+/* table of devices that work with this driver */
+static const struct usb_device_id skel_table[] = {
+    { USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) },
+    { }                                     /* Terminating entry */
+};
+MODULE_DEVICE_TABLE(usb, skel_table);
+
+
+/* Get a minor range for your devices from the usb maintainer */
+#define USB_SKEL_MINOR_BASE     192
+
+/* our private defines. if this grows any larger, use your own .h file */
+#define MAX_TRANSFER            (PAGE_SIZE - 512)
+/* MAX_TRANSFER is chosen so that the VM is not stressed by
+   allocations > PAGE_SIZE and the number of packets in a page
+   is an integer 512 is the largest possible packet on EHCI */
+#define WRITES_IN_FLIGHT        8
+/* arbitrarily chosen */
+
+/* Structure to hold all of our device specific stuff */
+struct usb_skel {
+    struct usb_device       *udev;                  /* the usb device for this device */
+    struct usb_interface    *interface;             /* the interface for this device */
+    struct semaphore        limit_sem;              /* limiting the number of writes in progress */
+    struct usb_anchor       submitted;              /* in case we need to retract our submissions */
+    struct urb              *bulk_in_urb;           /* the urb to read data with */
+    unsigned char           *bulk_in_buffer;        /* the buffer to receive data */
+    size_t                  bulk_in_size;           /* the size of the receive buffer */
+    size_t                  bulk_in_filled;         /* number of bytes in the buffer */
+    size_t                  bulk_in_copied;         /* already copied to user space */
+    __u8                    bulk_in_endpointAddr;   /* the address of the bulk in endpoint */
+    __u8                    bulk_out_endpointAddr;  /* the address of the bulk out endpoint */
+    int                     errors;                 /* the last request tanked */
+    int                     open_count;             /* count the number of openers */
+    bool                    ongoing_read;           /* a read is going on */
+    bool                    processed_urb;          /* indicates we haven't processed the urb */
+    spinlock_t              err_lock;               /* lock for errors */
+    struct kref             kref;
+    struct mutex            io_mutex;               /* synchronize I/O with disconnect */
+    struct completion       bulk_in_completion;     /* to wait for an ongoing read */
+};
+#define to_skel_dev(d) container_of(d, struct usb_skel, kref)
+
+static struct usb_driver skel_driver;
+static void skel_draw_down(struct usb_skel *dev);
+
+static void skel_delete(struct kref *kref)
+{
+    struct usb_skel *dev = to_skel_dev(kref);
+
+    usb_free_urb(dev->bulk_in_urb);
+    usb_put_dev(dev->udev);
+    kfree(dev->bulk_in_buffer);
+    kfree(dev);
+}
+
+static int skel_open(struct inode *inode, struct file *file)
+{
+    struct usb_skel *dev;
+    struct usb_interface *interface;
+    int subminor;
+    int retval = 0;
+
+    subminor = iminor(inode);
+
+    interface = usb_find_interface(&skel_driver, subminor);
+    if (!interface) {
+        err("%s - error, can't find device for minor %d",
+                __func__, subminor);
+        retval = -ENODEV;
+        goto exit;
+    }
+
+    dev = usb_get_intfdata(interface);
+    if (!dev) {
+        retval = -ENODEV;
+        goto exit;
+    }
+
+    /* increment our usage count for the device */
+    kref_get(&dev->kref);
+
+    /* lock the device to allow correctly handling errors
+     * in resumption */
+    mutex_lock(&dev->io_mutex);
+
+    if (!dev->open_count++) {
+        retval = usb_autopm_get_interface(interface);
+        if (retval) {
+            dev->open_count--;
+            mutex_unlock(&dev->io_mutex);
+            kref_put(&dev->kref, skel_delete);
+            goto exit;
+        }
+    } /* else { //uncomment this block if you want exclusive open
+         retval = -EBUSY;
+         dev->open_count--;
+         mutex_unlock(&dev->io_mutex);
+         kref_put(&dev->kref, skel_delete);
+         goto exit;
+         } */
+    /* prevent the device from being autosuspended */
+
+    /* save our object in the file's private structure */
+    file->private_data = dev;
+    mutex_unlock(&dev->io_mutex);
+
+exit:
+    return retval;
+}
+
+static int skel_release(struct inode *inode, struct file *file)
+{
+    struct usb_skel *dev;
+
+    dev = file->private_data;
+    if (dev == NULL)
+        return -ENODEV;
+
+    /* allow the device to be autosuspended */
+    mutex_lock(&dev->io_mutex);
+    if (!--dev->open_count && dev->interface)
+        usb_autopm_put_interface(dev->interface);
+    mutex_unlock(&dev->io_mutex);
+
+    /* decrement the count on our device */
+    kref_put(&dev->kref, skel_delete);
+    return 0;
+}
+
+static int skel_flush(struct file *file, fl_owner_t id)
+{
+    struct usb_skel *dev;
+    int res;
+
+    dev = file->private_data;
+    if (dev == NULL)
+        return -ENODEV;
+
+    /* wait for io to stop */
+    mutex_lock(&dev->io_mutex);
+    skel_draw_down(dev);
+
+    /* read out errors, leave subsequent opens a clean slate */
+    spin_lock_irq(&dev->err_lock);
+    res = dev->errors ? (dev->errors == -EPIPE ? -EPIPE : -EIO) : 0;
+    dev->errors = 0;
+    spin_unlock_irq(&dev->err_lock);
+
+    mutex_unlock(&dev->io_mutex);
+
+    return res;
+}
+
+static void skel_read_bulk_callback(struct urb *urb)
+{
+    struct usb_skel *dev;
+
+    dev = urb->context;
+
+    spin_lock(&dev->err_lock);
+    /* sync/async unlink faults aren't errors */
+    if (urb->status) {
+        if (!(urb->status == -ENOENT ||
+                    urb->status == -ECONNRESET ||
+                    urb->status == -ESHUTDOWN))
+            err("%s - nonzero write bulk status received: %d",
+                    __func__, urb->status);
+
+        dev->errors = urb->status;
+    } else {
+        dev->bulk_in_filled = urb->actual_length;
+    }
+    dev->ongoing_read = 0;
+    spin_unlock(&dev->err_lock);
+
+    complete(&dev->bulk_in_completion);
+}
+
+static int skel_do_read_io(struct usb_skel *dev, size_t count)
+{
+    int rv;
+
+    /* prepare a read */
+    usb_fill_bulk_urb(dev->bulk_in_urb,
+            dev->udev,
+            usb_rcvbulkpipe(dev->udev,
+                dev->bulk_in_endpointAddr),
+            dev->bulk_in_buffer,
+            min(dev->bulk_in_size, count),
+            skel_read_bulk_callback,
+            dev);
+    /* tell everybody to leave the URB alone */
+    spin_lock_irq(&dev->err_lock);
+    dev->ongoing_read = 1;
+    spin_unlock_irq(&dev->err_lock);
+
+    /* do it */
+    rv = usb_submit_urb(dev->bulk_in_urb, GFP_KERNEL);
+    if (rv < 0) {
+        err("%s - failed submitting read urb, error %d",
+                __func__, rv);
+        dev->bulk_in_filled = 0;
+        rv = (rv == -ENOMEM) ? rv : -EIO;
+        spin_lock_irq(&dev->err_lock);
+        dev->ongoing_read = 0;
+        spin_unlock_irq(&dev->err_lock);
+    }
+
+    return rv;
+}
+
+static ssize_t skel_read(struct file *file, char *buffer, size_t count,
+        loff_t *ppos)
+{
+    struct usb_skel *dev;
+    int rv;
+    bool ongoing_io;
+
+    dev = file->private_data;
+
+    /* if we cannot read at all, return EOF */
+    if (!dev->bulk_in_urb || !count)
+        return 0;
+
+    /* no concurrent readers */
+    rv = mutex_lock_interruptible(&dev->io_mutex);
+    if (rv < 0)
+        return rv;
+
+    if (!dev->interface) {          /* disconnect() was called */
+        rv = -ENODEV;
+        goto exit;
+    }
+
+    /* if IO is under way, we must not touch things */
+retry:
+    spin_lock_irq(&dev->err_lock);
+    ongoing_io = dev->ongoing_read;
+    spin_unlock_irq(&dev->err_lock);
+
+    if (ongoing_io) {
+        /* nonblocking IO shall not wait */
+        if (file->f_flags & O_NONBLOCK) {
+            rv = -EAGAIN;
+            goto exit;
+        }
+        /*
+         * IO may take forever
+         * hence wait in an interruptible state
+         */
+        rv = wait_for_completion_interruptible(&dev->bulk_in_completion);
+        if (rv < 0)
+            goto exit;
+        /*
+         * by waiting we also semiprocessed the urb
+         * we must finish now
+         */
+        dev->bulk_in_copied = 0;
+        dev->processed_urb = 1;
+    }
+
+    if (!dev->processed_urb) {
+        /*
+         * the URB hasn't been processed
+         * do it now
+         */
+        wait_for_completion(&dev->bulk_in_completion);
+        dev->bulk_in_copied = 0;
+        dev->processed_urb = 1;
+    }
+
+    /* errors must be reported */
+    rv = dev->errors;
+    if (rv < 0) {
+        /* any error is reported once */
+        dev->errors = 0;
+        /* to preserve notifications about reset */
+        rv = (rv == -EPIPE) ? rv : -EIO;
+        /* no data to deliver */
+        dev->bulk_in_filled = 0;
+        /* report it */
+        goto exit;
+    }
+
+    /*
+     * if the buffer is filled we may satisfy the read
+     * else we need to start IO
+     */
+
+    if (dev->bulk_in_filled) {
+        /* we had read data */
+        size_t available = dev->bulk_in_filled - dev->bulk_in_copied;
+        size_t chunk = min(available, count);
+
+        if (!available) {
+            /*
+             * all data has been used
+             * actual IO needs to be done
+             */
+            rv = skel_do_read_io(dev, count);
+            if (rv < 0)
+                goto exit;
+            else
+                goto retry;
+        }
+        /*
+         * data is available
+         * chunk tells us how much shall be copied
+         */
+
+        if (copy_to_user(buffer,
+                    dev->bulk_in_buffer + dev->bulk_in_copied,
+                    chunk))
+            rv = -EFAULT;
+        else
+            rv = chunk;
+
+        dev->bulk_in_copied += chunk;
+
+        /*
+         * if we are asked for more than we have,
+         * we start IO but don't wait
+         */
+        if (available < count)
+            skel_do_read_io(dev, count - chunk);
+    } else {
+        /* no data in the buffer */
+        rv = skel_do_read_io(dev, count);
+        if (rv < 0)
+            goto exit;
+        else if (!(file->f_flags & O_NONBLOCK))
+            goto retry;
+        rv = -EAGAIN;
+    }
+exit:
+    mutex_unlock(&dev->io_mutex);
+    return rv;
+}
+
+static void skel_write_bulk_callback(struct urb *urb)
+{
+    struct usb_skel *dev;
+
+    dev = urb->context;
+
+    /* sync/async unlink faults aren't errors */
+    if (urb->status) {
+        if (!(urb->status == -ENOENT ||
+                    urb->status == -ECONNRESET ||
+                    urb->status == -ESHUTDOWN))
+            err("%s - nonzero write bulk status received: %d",
+                    __func__, urb->status);
+
+        spin_lock(&dev->err_lock);
+        dev->errors = urb->status;
+        spin_unlock(&dev->err_lock);
+    }
+
+    /* free up our allocated buffer */
+    usb_free_coherent(urb->dev, urb->transfer_buffer_length,
+            urb->transfer_buffer, urb->transfer_dma);
+    up(&dev->limit_sem);
+}
+
+static ssize_t skel_write(struct file *file, const char *user_buffer,
+        size_t count, loff_t *ppos)
+{
+    struct usb_skel *dev;
+    int retval = 0;
+    struct urb *urb = NULL;
+    char *buf = NULL;
+    size_t writesize = min(count, (size_t)MAX_TRANSFER);
+
+    dev = file->private_data;
+
+    /* verify that we actually have some data to write */
+    if (count == 0)
+        goto exit;
+
+    /*
+     * limit the number of URBs in flight to stop a user from using up all
+     * RAM
+     */
+    if (!(file->f_flags & O_NONBLOCK)) {
+        if (down_interruptible(&dev->limit_sem)) {
+            retval = -ERESTARTSYS;
+            goto exit;
+        }
+    } else {
+        if (down_trylock(&dev->limit_sem)) {
+            retval = -EAGAIN;
+            goto exit;
+        }
+    }
+
+    spin_lock_irq(&dev->err_lock);
+    retval = dev->errors;
+    if (retval < 0) {
+        /* any error is reported once */
+        dev->errors = 0;
+        /* to preserve notifications about reset */
+        retval = (retval == -EPIPE) ? retval : -EIO;
+    }
+    spin_unlock_irq(&dev->err_lock);
+    if (retval < 0)
+        goto error;
+
+    /* create a urb, and a buffer for it, and copy the data to the urb */
+    urb = usb_alloc_urb(0, GFP_KERNEL);
+    if (!urb) {
+        retval = -ENOMEM;
+        goto error;
+    }
+
+    buf = usb_alloc_coherent(dev->udev, writesize, GFP_KERNEL,
+            &urb->transfer_dma);
+    if (!buf) {
+        retval = -ENOMEM;
+        goto error;
+    }
+
+    if (copy_from_user(buf, user_buffer, writesize)) {
+        retval = -EFAULT;
+        goto error;
+    }
+
+    /* this lock makes sure we don't submit URBs to gone devices */
+    mutex_lock(&dev->io_mutex);
+    if (!dev->interface) {          /* disconnect() was called */
+        mutex_unlock(&dev->io_mutex);
+        retval = -ENODEV;
+        goto error;
+    }
+
+    /* initialize the urb properly */
+    usb_fill_bulk_urb(urb, dev->udev,
+            usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr),
+            buf, writesize, skel_write_bulk_callback, dev);
+    urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+    usb_anchor_urb(urb, &dev->submitted);
+
+    /* send the data out the bulk port */
+    retval = usb_submit_urb(urb, GFP_KERNEL);
+    mutex_unlock(&dev->io_mutex);
+    if (retval) {
+        err("%s - failed submitting write urb, error %d", __func__,
+                retval);
+        goto error_unanchor;
+    }
+
+    /*
+     * release our reference to this urb, the USB core will eventually free
+     * it entirely
+     */
+    usb_free_urb(urb);
+
+
+    return writesize;
+
+error_unanchor:
+    usb_unanchor_urb(urb);
+error:
+    if (urb) {
+        usb_free_coherent(dev->udev, writesize, buf, urb->transfer_dma);
+        usb_free_urb(urb);
+    }
+    up(&dev->limit_sem);
+
+exit:
+    return retval;
+}
+
+static const struct file_operations skel_fops = {
+    .owner =        THIS_MODULE,
+    .read =         skel_read,
+    .write =        skel_write,
+    .open =         skel_open,
+    .release =      skel_release,
+    .flush =        skel_flush,
+    .llseek =       noop_llseek,
+};
+
+/*
+ * usb class driver info in order to get a minor number from the usb core,
+ * and to have the device registered with the driver core
+ */
+static struct usb_class_driver skel_class = {
+    .name =         "skel%d",
+    .fops =         &skel_fops,
+    .minor_base =   USB_SKEL_MINOR_BASE,
+};
+
+static int skel_probe(struct usb_interface *interface,
+        const struct usb_device_id *id)
+{
+    struct usb_skel *dev;
+    struct usb_host_interface *iface_desc;
+    struct usb_endpoint_descriptor *endpoint;
+    size_t buffer_size;
+    int i;
+    int retval = -ENOMEM;
+
+    /* allocate memory for our device state and initialize it */
+    dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+    if (!dev) {
+        err("Out of memory");
+        goto error;
+    }
+    kref_init(&dev->kref);
+    sema_init(&dev->limit_sem, WRITES_IN_FLIGHT);
+    mutex_init(&dev->io_mutex);
+    spin_lock_init(&dev->err_lock);
+    init_usb_anchor(&dev->submitted);
+    init_completion(&dev->bulk_in_completion);
+
+    dev->udev = usb_get_dev(interface_to_usbdev(interface));
+    dev->interface = interface;
+
+    /* set up the endpoint information */
+    /* use only the first bulk-in and bulk-out endpoints */
+    iface_desc = interface->cur_altsetting;
+    for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
+        endpoint = &iface_desc->endpoint[i].desc;
+
+        if (!dev->bulk_in_endpointAddr &&
+                usb_endpoint_is_bulk_in(endpoint)) {
+            /* we found a bulk in endpoint */
+            buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+            dev->bulk_in_size = buffer_size;
+            dev->bulk_in_endpointAddr = endpoint->bEndpointAddress;
+            dev->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
+            if (!dev->bulk_in_buffer) {
+                err("Could not allocate bulk_in_buffer");
+                goto error;
+            }
+            dev->bulk_in_urb = usb_alloc_urb(0, GFP_KERNEL);
+            if (!dev->bulk_in_urb) {
+                err("Could not allocate bulk_in_urb");
+                goto error;
+            }
+        }
+
+        if (!dev->bulk_out_endpointAddr &&
+                usb_endpoint_is_bulk_out(endpoint)) {
+            /* we found a bulk out endpoint */
+            dev->bulk_out_endpointAddr = endpoint->bEndpointAddress;
+        }
+    }
+    if (!(dev->bulk_in_endpointAddr && dev->bulk_out_endpointAddr)) {
+        err("Could not find both bulk-in and bulk-out endpoints");
+        goto error;
+    }
+
+    /* save our data pointer in this interface device */
+    usb_set_intfdata(interface, dev);
+
+    /* we can register the device now, as it is ready */
+    retval = usb_register_dev(interface, &skel_class);
+    if (retval) {
+        /* something prevented us from registering this driver */
+        err("Not able to get a minor for this device.");
+        usb_set_intfdata(interface, NULL);
+        goto error;
+    }
+
+    /* let the user know what node this device is now attached to */
+    dev_info(&interface->dev,
+            "USB Skeleton device now attached to USBSkel-%d",
+            interface->minor);
+    return 0;
+
+error:
+    if (dev)
+        /* this frees allocated memory */
+        kref_put(&dev->kref, skel_delete);
+    return retval;
+}
+
+static void skel_disconnect(struct usb_interface *interface)
+{
+    struct usb_skel *dev;
+    int minor = interface->minor;
+
+    dev = usb_get_intfdata(interface);
+    usb_set_intfdata(interface, NULL);
+
+    /* give back our minor */
+    usb_deregister_dev(interface, &skel_class);
+
+    /* prevent more I/O from starting */
+    mutex_lock(&dev->io_mutex);
+    dev->interface = NULL;
+    mutex_unlock(&dev->io_mutex);
+
+    usb_kill_anchored_urbs(&dev->submitted);
+
+    /* decrement our usage count */
+    kref_put(&dev->kref, skel_delete);
+
+    dev_info(&interface->dev, "USB Skeleton #%d now disconnected", minor);
+}
+
+static void skel_draw_down(struct usb_skel *dev)
+{
+    int time;
+
+    time = usb_wait_anchor_empty_timeout(&dev->submitted, 1000);
+    if (!time)
+        usb_kill_anchored_urbs(&dev->submitted);
+    usb_kill_urb(dev->bulk_in_urb);
+}
+
+static int skel_suspend(struct usb_interface *intf, pm_message_t message)
+{
+    struct usb_skel *dev = usb_get_intfdata(intf);
+
+    if (!dev)
+        return 0;
+    skel_draw_down(dev);
+    return 0;
+}
+
+static int skel_resume(struct usb_interface *intf)
+{
+    return 0;
+}
+
+static int skel_pre_reset(struct usb_interface *intf)
+{
+    struct usb_skel *dev = usb_get_intfdata(intf);
+
+    mutex_lock(&dev->io_mutex);
+    skel_draw_down(dev);
+
+    return 0;
+}
+
+static int skel_post_reset(struct usb_interface *intf)
+{
+    struct usb_skel *dev = usb_get_intfdata(intf);
+
+    /* we are sure no URBs are active - no locking needed */
+    dev->errors = -EPIPE;
+    mutex_unlock(&dev->io_mutex);
+
+    return 0;
+}
+
+static struct usb_driver skel_driver = {
+    .name =         "skeleton",
+    .probe =        skel_probe,
+    .disconnect =   skel_disconnect,
+    .suspend =      skel_suspend,
+    .resume =       skel_resume,
+    .pre_reset =    skel_pre_reset,
+    .post_reset =   skel_post_reset,
+    .id_table =     skel_table,
+    .supports_autosuspend = 1,
+};
+
+static int __init usb_skel_init(void)
+{
+    int result;
+
+    /* register this driver with the USB subsystem */
+    result = usb_register(&skel_driver);
+    if (result)
+        err("usb_register failed. Error number %d", result);
+
+    return result;
+}
+
+static void __exit usb_skel_exit(void)
+{
+    /* deregister this driver with the USB subsystem */
+    usb_deregister(&skel_driver);
+}
+
+module_init(usb_skel_init);
+module_exit(usb_skel_exit);
+
+MODULE_LICENSE("GPL");
+