text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="6.5.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.0001" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" 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="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="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="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" 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="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="no" 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="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="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="no"/>
<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="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" fill="1" visible="yes" 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="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<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="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="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="no" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="yes" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="Rect_Pads" 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="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="14" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" 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="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<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"/>
<layer number="255" name="routoute" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="-0.2133625" y1="0.17779375" x2="44.739759375" y2="0.09905625" width="0" layer="20"/>
<wire x1="44.739759375" y1="0.09905625" x2="44.26731875" y2="32.397859375" width="0" layer="20"/>
<wire x1="44.26731875" y1="32.397859375" x2="-0.10921875" y2="32.0448" width="0" layer="20"/>
<wire x1="-0.10921875" y1="32.0448" x2="-0.2133625" y2="0.17779375" width="0" layer="20"/>
<text x="31.048959375" y="27.07131875" size="1.016" layer="125" ratio="15">C1</text>
<text x="28.254959375" y="22.68981875" size="1.27" layer="125" ratio="10">IC1</text>
<text x="27.746959375" y="4.21131875" size="1.27" layer="125" rot="R90">JP1</text>
<text x="28.254959375" y="24.53131875" size="1.016" layer="125" ratio="15" rot="R180">R1</text>
<text x="36.001959375" y="16.27631875" size="1.27" layer="125" rot="R90">U$1</text>
</plain>
<libraries>
<library name="fab">
<packages>
<package name="SOIC14">
<description>Small Outline Package</description>
<wire x1="-4.267" y1="-1.791" x2="4.267" y2="-1.791" width="0.1524" layer="51"/>
<wire x1="4.267" y1="-1.791" x2="4.267" y2="1.791" width="0.1524" layer="21"/>
<wire x1="4.267" y1="1.791" x2="-4.267" y2="1.791" width="0.1524" layer="51"/>
<wire x1="-4.267" y1="1.791" x2="-4.267" y2="-1.791" width="0.1524" layer="21"/>
<circle x="-3.5052" y="-0.7747" radius="0.5334" width="0.1524" layer="21"/>
<smd name="1" x="-3.81" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="14" x="-3.81" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="2" x="-2.54" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="3" x="-1.27" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="13" x="-2.54" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="12" x="-1.27" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="4" x="0" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="11" x="0" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="5" x="1.27" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="6" x="2.54" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="10" x="1.27" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="9" x="2.54" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="7" x="3.81" y="-2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<smd name="8" x="3.81" y="2.6035" dx="0.6096" dy="2.2098" layer="1"/>
<text x="-4.5085" y="-2.032" size="1.27" layer="25" ratio="10" rot="R90">>NAME</text>
<text x="-2.54" y="-0.6985" size="1.27" layer="27" ratio="10">>VALUE</text>
<rectangle x1="-3.9878" y1="1.8415" x2="-3.6322" y2="2.8575" layer="51"/>
<rectangle x1="-2.7178" y1="1.8415" x2="-2.3622" y2="2.8575" layer="51"/>
<rectangle x1="-1.4478" y1="1.8415" x2="-1.0922" y2="2.8575" layer="51"/>
<rectangle x1="-0.1778" y1="1.8415" x2="0.1778" y2="2.8575" layer="51"/>
<rectangle x1="1.0922" y1="1.8415" x2="1.4478" y2="2.8575" layer="51"/>
<rectangle x1="2.3622" y1="1.8415" x2="2.7178" y2="2.8575" layer="51"/>
<rectangle x1="3.6322" y1="1.8415" x2="3.9878" y2="2.8575" layer="51"/>
<rectangle x1="3.6322" y1="-2.8575" x2="3.9878" y2="-1.8415" layer="51"/>
<rectangle x1="2.3622" y1="-2.8575" x2="2.7178" y2="-1.8415" layer="51"/>
<rectangle x1="1.0922" y1="-2.8575" x2="1.4478" y2="-1.8415" layer="51"/>
<rectangle x1="-0.1778" y1="-2.8575" x2="0.1778" y2="-1.8415" layer="51"/>
<rectangle x1="-1.4478" y1="-2.8575" x2="-1.0922" y2="-1.8415" layer="51"/>
<rectangle x1="-2.7178" y1="-2.8575" x2="-2.3622" y2="-1.8415" layer="51"/>
<rectangle x1="-3.9878" y1="-2.8575" x2="-3.6322" y2="-1.8415" layer="51"/>
</package>
<package name="R1206FAB">
<wire x1="-2.032" y1="1.016" x2="2.032" y2="1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="1.016" x2="2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="-1.016" x2="-2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="-2.032" y1="-1.016" x2="-2.032" y2="1.016" width="0.127" layer="21"/>
<smd name="1" x="-1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<smd name="2" x="1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<text x="-1.778" y="1.27" size="1.016" layer="25" ratio="15">>NAME</text>
<text x="-1.778" y="-2.286" size="1.016" layer="27" ratio="15">>VALUE</text>
</package>
<package name="2X03SMD">
<smd name="1" x="-2.54" y="2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="3" x="-2.54" y="0" dx="2.54" dy="1.27" layer="1"/>
<smd name="5" x="-2.54" y="-2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="2" x="2.92" y="2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="4" x="2.92" y="0" dx="2.54" dy="1.27" layer="1"/>
<smd name="6" x="2.92" y="-2.54" dx="2.54" dy="1.27" layer="1"/>
<text x="-5.08" y="2.54" size="1.27" layer="27">1</text>
<text x="-3.81" y="3.81" size="1.27" layer="25">>NAME</text>
<text x="-3.81" y="-5.08" size="1.27" layer="27">>VALUE</text>
</package>
<package name="C1206FAB">
<wire x1="-2.032" y1="1.016" x2="2.032" y2="1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="1.016" x2="2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="-1.016" x2="-2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="-2.032" y1="-1.016" x2="-2.032" y2="1.016" width="0.127" layer="21"/>
<smd name="1" x="-1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<smd name="2" x="1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<text x="-1.778" y="1.27" size="1.016" layer="25" ratio="15">>NAME</text>
<text x="-1.778" y="-2.286" size="1.016" layer="27" ratio="15">>VALUE</text>
</package>
<package name="1X06SMD">
<smd name="1" x="0" y="6.35" dx="2.54" dy="1.27" layer="1"/>
<smd name="2" x="0" y="3.81" dx="2.54" dy="1.27" layer="1"/>
<smd name="3" x="0" y="1.27" dx="2.54" dy="1.27" layer="1"/>
<smd name="4" x="0" y="-1.27" dx="2.54" dy="1.27" layer="1"/>
<smd name="5" x="0" y="-3.81" dx="2.54" dy="1.27" layer="1"/>
<smd name="6" x="0" y="-6.35" dx="2.54" dy="1.27" layer="1"/>
<text x="-1.905" y="-3.175" size="1.27" layer="25" rot="R90">>NAME</text>
</package>
<package name="EFOBM">
<smd name="1" x="-1.35" y="0" dx="3.9" dy="0.8" layer="1" rot="R90"/>
<smd name="2" x="0" y="0" dx="3.9" dy="0.8" layer="1" rot="R270"/>
<smd name="3" x="1.35" y="0" dx="3.9" dy="0.8" layer="1" rot="R270"/>
</package>
<package name="6MM_SWITCH">
<description>OMRON SWITCH</description>
<wire x1="3.302" y1="-0.762" x2="3.048" y2="-0.762" width="0.1524" layer="21"/>
<wire x1="3.302" y1="-0.762" x2="3.302" y2="0.762" width="0.1524" layer="21"/>
<wire x1="3.048" y1="0.762" x2="3.302" y2="0.762" width="0.1524" layer="21"/>
<wire x1="3.048" y1="1.016" x2="3.048" y2="2.54" width="0.1524" layer="51"/>
<wire x1="-3.302" y1="0.762" x2="-3.048" y2="0.762" width="0.1524" layer="21"/>
<wire x1="-3.302" y1="0.762" x2="-3.302" y2="-0.762" width="0.1524" layer="21"/>
<wire x1="-3.048" y1="-0.762" x2="-3.302" y2="-0.762" width="0.1524" layer="21"/>
<wire x1="3.048" y1="2.54" x2="2.54" y2="3.048" width="0.1524" layer="51"/>
<wire x1="2.54" y1="-3.048" x2="3.048" y2="-2.54" width="0.1524" layer="51"/>
<wire x1="3.048" y1="-2.54" x2="3.048" y2="-1.016" width="0.1524" layer="51"/>
<wire x1="-2.54" y1="3.048" x2="-3.048" y2="2.54" width="0.1524" layer="51"/>
<wire x1="-3.048" y1="2.54" x2="-3.048" y2="1.016" width="0.1524" layer="51"/>
<wire x1="-2.54" y1="-3.048" x2="-3.048" y2="-2.54" width="0.1524" layer="51"/>
<wire x1="-3.048" y1="-2.54" x2="-3.048" y2="-1.016" width="0.1524" layer="51"/>
<wire x1="-1.27" y1="1.27" x2="-1.27" y2="-1.27" width="0.0508" layer="51"/>
<wire x1="1.27" y1="-1.27" x2="-1.27" y2="-1.27" width="0.0508" layer="51"/>
<wire x1="1.27" y1="-1.27" x2="1.27" y2="1.27" width="0.0508" layer="51"/>
<wire x1="-1.27" y1="1.27" x2="1.27" y2="1.27" width="0.0508" layer="51"/>
<wire x1="-1.27" y1="3.048" x2="-1.27" y2="2.794" width="0.0508" layer="21"/>
<wire x1="1.27" y1="2.794" x2="-1.27" y2="2.794" width="0.0508" layer="21"/>
<wire x1="1.27" y1="2.794" x2="1.27" y2="3.048" width="0.0508" layer="21"/>
<wire x1="1.143" y1="-2.794" x2="-1.27" y2="-2.794" width="0.0508" layer="21"/>
<wire x1="1.143" y1="-2.794" x2="1.143" y2="-3.048" width="0.0508" layer="21"/>
<wire x1="-1.27" y1="-2.794" x2="-1.27" y2="-3.048" width="0.0508" layer="21"/>
<wire x1="2.54" y1="-3.048" x2="2.159" y2="-3.048" width="0.1524" layer="51"/>
<wire x1="-2.54" y1="-3.048" x2="-2.159" y2="-3.048" width="0.1524" layer="51"/>
<wire x1="-2.159" y1="-3.048" x2="-1.27" y2="-3.048" width="0.1524" layer="21"/>
<wire x1="-2.54" y1="3.048" x2="-2.159" y2="3.048" width="0.1524" layer="51"/>
<wire x1="2.54" y1="3.048" x2="2.159" y2="3.048" width="0.1524" layer="51"/>
<wire x1="2.159" y1="3.048" x2="1.27" y2="3.048" width="0.1524" layer="21"/>
<wire x1="1.27" y1="3.048" x2="-1.27" y2="3.048" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="3.048" x2="-2.159" y2="3.048" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="-3.048" x2="1.143" y2="-3.048" width="0.1524" layer="21"/>
<wire x1="1.143" y1="-3.048" x2="2.159" y2="-3.048" width="0.1524" layer="21"/>
<wire x1="3.048" y1="-0.762" x2="3.048" y2="-1.016" width="0.1524" layer="21"/>
<wire x1="3.048" y1="0.762" x2="3.048" y2="1.016" width="0.1524" layer="21"/>
<wire x1="-3.048" y1="-0.762" x2="-3.048" y2="-1.016" width="0.1524" layer="21"/>
<wire x1="-3.048" y1="0.762" x2="-3.048" y2="1.016" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="-2.159" x2="1.27" y2="-2.159" width="0.1524" layer="51"/>
<wire x1="1.27" y1="2.286" x2="-1.27" y2="2.286" width="0.1524" layer="51"/>
<wire x1="-2.413" y1="1.27" x2="-2.413" y2="0.508" width="0.1524" layer="51"/>
<wire x1="-2.413" y1="-0.508" x2="-2.413" y2="-1.27" width="0.1524" layer="51"/>
<wire x1="-2.413" y1="0.508" x2="-2.159" y2="-0.381" width="0.1524" layer="51"/>
<circle x="0" y="0" radius="1.778" width="0.1524" layer="21"/>
<circle x="-2.159" y="-2.159" radius="0.508" width="0.1524" layer="51"/>
<circle x="2.159" y="-2.032" radius="0.508" width="0.1524" layer="51"/>
<circle x="2.159" y="2.159" radius="0.508" width="0.1524" layer="51"/>
<circle x="-2.159" y="2.159" radius="0.508" width="0.1524" layer="51"/>
<circle x="0" y="0" radius="0.635" width="0.0508" layer="51"/>
<circle x="0" y="0" radius="0.254" width="0.1524" layer="21"/>
<smd name="1" x="-3.302" y="2.286" dx="2.286" dy="1.524" layer="1"/>
<smd name="2" x="3.302" y="2.286" dx="2.286" dy="1.524" layer="1"/>
<smd name="3" x="-3.302" y="-2.286" dx="2.286" dy="1.524" layer="1"/>
<smd name="4" x="3.302" y="-2.286" dx="2.286" dy="1.524" layer="1"/>
<text x="-3.048" y="3.683" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="-3.048" y="-5.08" size="1.27" layer="27" ratio="10">>VALUE</text>
<text x="-4.318" y="1.651" size="1.27" layer="51" ratio="10">1</text>
<text x="3.556" y="1.524" size="1.27" layer="51" ratio="10">2</text>
<text x="-4.572" y="-2.794" size="1.27" layer="51" ratio="10">3</text>
<text x="3.556" y="-2.794" size="1.27" layer="51" ratio="10">4</text>
</package>
<package name="LED1206FAB">
<description>LED1206 FAB style (smaller pads to allow trace between)</description>
<wire x1="-2.032" y1="1.016" x2="2.032" y2="1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="1.016" x2="2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="-1.016" x2="-2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="-2.032" y1="-1.016" x2="-2.032" y2="1.016" width="0.127" layer="21"/>
<smd name="1" x="-1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<smd name="2" x="1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<text x="-1.778" y="1.27" size="1.016" layer="25" ratio="15">>NAME</text>
<text x="-1.778" y="-2.286" size="1.016" layer="27" ratio="15">>VALUE</text>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
<clearance class="0" value="0.205"/>
</class>
</classes>
<designrules name="Hello World Schemadic">
<description language="de">EAGLE Design Rules

Die Standard-Design-Rules sind so gewählt, dass sie für
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">EAGLE Design Rules

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="0.205mm"/>
<param name="mdWirePad" value="0.205mm"/>
<param name="mdWireVia" value="0.205mm"/>
<param name="mdPadPad" value="0.205mm"/>
<param name="mdPadVia" value="0.205mm"/>
<param name="mdViaVia" value="0.205mm"/>
<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="40mil"/>
<param name="mdDrill" value="8mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="10mil"/>
<param name="msDrill" value="24mil"/>
<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="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<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="0mil"/>
<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="0"/>
<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="IC1" library="fab" package="SOIC14" value="ATTINY44-SSU" x="30.286959375" y="18.18131875" rot="R270"/>
<element name="R1" library="fab" package="R1206FAB" value="" x="26.476959375" y="25.80131875" rot="R180"/>
<element name="JP1" library="fab" package="2X03SMD" value="" x="31.556959375" y="8.02131875" rot="R90"/>
<element name="C1" library="fab" package="C1206FAB" value="CAP-US1206FAB" x="32.826959375" y="25.80131875"/>
<element name="U$1" library="fab" package="1X06SMD" value="FTDI-SMD-HEADER" x="37.906959375" y="19.45131875"/>
<element name="U$2" library="fab" package="EFOBM" value="RESONATOR" x="21.396959375" y="20.72131875" rot="R270"/>
<element name="S1" library="fab" package="6MM_SWITCH" value="" x="19.46655" y="8.186415625" rot="R270"/>
<element name="U$3" library="fab" package="LED1206FAB" value="LEDFAB1206" x="15.633696875" y="16.002003125" rot="R179.8"/>
<element name="R2" library="fab" package="R1206FAB" value="" x="21.539203125" y="16.54555625" rot="R180"/>
</elements>
<signals>
<signal name="N$1">
<contactref element="IC1" pad="1"/>
<contactref element="R1" pad="2"/>
<contactref element="C1" pad="1"/>
<contactref element="U$1" pad="3"/>
<contactref element="JP1" pad="5"/>
<contactref element="U$1" pad="4"/>
<contactref element="IC1" pad="13"/>
<wire x1="24.825959375" y1="25.80131875" x2="25.105359375" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="25.105359375" y1="25.80131875" x2="25.105359375" y2="23.21051875" width="0.6096" layer="1"/>
<wire x1="25.105359375" y1="23.21051875" x2="25.918159375" y2="23.21051875" width="0.6096" layer="1"/>
<wire x1="25.918159375" y1="23.21051875" x2="25.918159375" y2="21.99131875" width="0.6096" layer="1"/>
<wire x1="25.918159375" y1="21.99131875" x2="27.683459375" y2="21.99131875" width="0.6096" layer="1"/>
<wire x1="31.175959375" y1="25.80131875" x2="31.087059375" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="31.087059375" y1="25.80131875" x2="31.087059375" y2="28.16351875" width="0.6096" layer="1"/>
<wire x1="31.087059375" y1="28.16351875" x2="24.825959375" y2="28.16351875" width="0.6096" layer="1"/>
<wire x1="24.825959375" y1="28.16351875" x2="24.825959375" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="31.175959375" y1="25.80131875" x2="31.066740625" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="31.066740625" y1="25.80131875" x2="31.066740625" y2="28.140659375" width="0.6096" layer="1"/>
<wire x1="31.066740625" y1="28.140659375" x2="40.6273" y2="28.140659375" width="0.6096" layer="1"/>
<wire x1="40.6273" y1="28.140659375" x2="40.6273" y2="20.711159375" width="0.6096" layer="1"/>
<wire x1="37.906959375" y1="20.711159375" x2="37.906959375" y2="20.72131875" width="0.6096" layer="1"/>
<wire x1="37.906959375" y1="20.711159375" x2="40.6273" y2="20.711159375" width="0.6096" layer="1"/>
<wire x1="40.6273" y1="20.711159375" x2="40.6273" y2="5.6413375" width="0.6096" layer="1"/>
<wire x1="40.6273" y1="5.6413375" x2="34.096959375" y2="5.6413375" width="0.6096" layer="1"/>
<wire x1="34.096959375" y1="5.6413375" x2="34.096959375" y2="5.48131875" width="0.6096" layer="1"/>
<wire x1="32.890459375" y1="20.72131875" x2="35.8521" y2="20.72131875" width="0.6096" layer="1"/>
<wire x1="35.8521" y1="20.72131875" x2="35.8521" y2="17.99081875" width="0.6096" layer="1"/>
<wire x1="35.8521" y1="17.99081875" x2="37.906959375" y2="17.99081875" width="0.6096" layer="1"/>
<wire x1="37.906959375" y1="17.99081875" x2="37.906959375" y2="18.18131875" width="0.6096" layer="1"/>
<wire x1="37.906959375" y1="20.72131875" x2="35.8521" y2="20.72131875" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$5">
<contactref element="U$1" pad="5"/>
<contactref element="IC1" pad="12"/>
<wire x1="32.890459375" y1="19.45131875" x2="34.70401875" y2="19.45131875" width="0.6096" layer="1"/>
<wire x1="34.70401875" y1="19.45131875" x2="34.70401875" y2="19.199859375" width="0.6096" layer="1"/>
<wire x1="34.70401875" y1="19.199859375" x2="34.7345" y2="19.199859375" width="0.6096" layer="1"/>
<wire x1="34.7345" y1="19.199859375" x2="34.7345" y2="15.631159375" width="0.6096" layer="1"/>
<wire x1="34.7345" y1="15.631159375" x2="37.906959375" y2="15.631159375" width="0.6096" layer="1"/>
<wire x1="37.906959375" y1="15.631159375" x2="37.906959375" y2="15.64131875" width="0.6096" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="U$2" pad="1"/>
<contactref element="IC1" pad="2"/>
<wire x1="21.396959375" y1="22.07131875" x2="24.698959375" y2="22.07131875" width="0.6096" layer="1"/>
<wire x1="24.698959375" y1="22.07131875" x2="24.698959375" y2="21.99131875" width="0.6096" layer="1"/>
<wire x1="24.698959375" y1="21.99131875" x2="24.719278125" y2="21.99131875" width="0.6096" layer="1"/>
<wire x1="24.719278125" y1="21.99131875" x2="24.719278125" y2="20.693378125" width="0.6096" layer="1"/>
<wire x1="24.719278125" y1="20.693378125" x2="27.683459375" y2="20.693378125" width="0.6096" layer="1"/>
<wire x1="27.683459375" y1="20.693378125" x2="27.683459375" y2="20.72131875" width="0.6096" layer="1"/>
</signal>
<signal name="N$7">
<contactref element="U$2" pad="3"/>
<contactref element="IC1" pad="3"/>
<wire x1="21.396959375" y1="19.37131875" x2="27.683459375" y2="19.37131875" width="0.6096" layer="1"/>
<wire x1="27.683459375" y1="19.37131875" x2="27.683459375" y2="19.45131875" width="0.6096" layer="1"/>
</signal>
<signal name="N$8">
<contactref element="U$2" pad="2"/>
<contactref element="JP1" pad="1"/>
<contactref element="C1" pad="2"/>
<contactref element="IC1" pad="14"/>
<contactref element="U$1" pad="1"/>
<wire x1="37.906959375" y1="25.80131875" x2="34.477959375" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="34.477959375" y1="25.80131875" x2="34.592259375" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="34.592259375" y1="25.80131875" x2="34.592259375" y2="21.9608375" width="0.6096" layer="1"/>
<wire x1="34.592259375" y1="21.9608375" x2="32.890459375" y2="21.9608375" width="0.6096" layer="1"/>
<wire x1="32.890459375" y1="21.9608375" x2="32.890459375" y2="21.99131875" width="0.6096" layer="1"/>
<wire x1="29.016959375" y1="5.48131875" x2="29.01441875" y2="1.8669" width="0.6096" layer="1"/>
<wire x1="29.01441875" y1="1.8669" x2="12.4206" y2="1.762759375" width="0.6096" layer="1"/>
<wire x1="12.4206" y1="1.762759375" x2="12.2809" y2="20.76958125" width="0.6096" layer="1"/>
<wire x1="12.2809" y1="20.76958125" x2="21.396959375" y2="20.72131875" width="0.6096" layer="1"/>
<wire x1="32.890459375" y1="21.9608375" x2="30.464759375" y2="21.97861875" width="0.4064" layer="1"/>
<wire x1="30.464759375" y1="21.97861875" x2="30.325059375" y2="8.74268125" width="0.4064" layer="1"/>
<wire x1="30.325059375" y1="8.74268125" x2="32.877759375" y2="8.84681875" width="0.4064" layer="1"/>
<wire x1="32.877759375" y1="8.84681875" x2="32.877759375" y2="1.8669" width="0.4064" layer="1"/>
<wire x1="32.877759375" y1="1.8669" x2="29.01441875" y2="1.8669" width="0.6096" layer="1"/>
</signal>
<signal name="N$3">
<contactref element="IC1" pad="7"/>
<contactref element="JP1" pad="3"/>
<wire x1="31.556959375" y1="5.48131875" x2="31.645859375" y2="5.48131875" width="0.6096" layer="1"/>
<wire x1="31.645859375" y1="5.48131875" x2="31.645859375" y2="7.56411875" width="0.6096" layer="1"/>
<wire x1="31.645859375" y1="7.56411875" x2="26.6065" y2="7.56411875" width="0.6096" layer="1"/>
<wire x1="26.6065" y1="7.56411875" x2="26.6065" y2="7.693659375" width="0.6096" layer="1"/>
<wire x1="26.6065" y1="7.693659375" x2="26.6827" y2="7.693659375" width="0.6096" layer="1"/>
<wire x1="26.6827" y1="7.693659375" x2="26.6827" y2="14.335759375" width="0.6096" layer="1"/>
<wire x1="26.6827" y1="14.335759375" x2="27.683459375" y2="14.335759375" width="0.6096" layer="1"/>
<wire x1="27.683459375" y1="14.335759375" x2="27.683459375" y2="14.37131875" width="0.6096" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="JP1" pad="2"/>
<contactref element="IC1" pad="4"/>
<contactref element="R1" pad="1"/>
<wire x1="28.127959375" y1="25.80131875" x2="29.37001875" y2="25.80131875" width="0.6096" layer="1"/>
<wire x1="29.37001875" y1="18.161" x2="27.683459375" y2="18.161" width="0.6096" layer="1"/>
<wire x1="27.683459375" y1="18.161" x2="27.683459375" y2="18.18131875" width="0.6096" layer="1"/>
<wire x1="27.683459375" y1="18.18131875" x2="29.37001875" y2="18.18131875" width="0.6096" layer="1"/>
<wire x1="29.37001875" y1="12.2936" x2="29.016959375" y2="12.2936" width="0.6096" layer="1"/>
<wire x1="28.983940625" y1="12.2936" x2="29.016959375" y2="12.2936" width="0.6096" layer="1"/>
<wire x1="29.016959375" y1="12.2936" x2="29.016959375" y2="10.94131875" width="0.6096" layer="1"/>
<wire x1="29.37001875" y1="25.80131875" x2="29.37001875" y2="18.18131875" width="0.4064" layer="1"/>
<wire x1="29.37001875" y1="18.18131875" x2="29.37001875" y2="12.2936" width="0.4064" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="JP1" pad="4"/>
<contactref element="IC1" pad="9"/>
<wire x1="31.556959375" y1="10.94131875" x2="31.3563" y2="10.94131875" width="0.4064" layer="1"/>
<wire x1="31.3563" y1="10.94131875" x2="31.3563" y2="15.6591" width="0.4064" layer="1"/>
<wire x1="31.3563" y1="15.6591" x2="32.890459375" y2="15.6591" width="0.4064" layer="1"/>
<wire x1="32.890459375" y1="15.6591" x2="32.890459375" y2="15.64131875" width="0.4064" layer="1"/>
</signal>
<signal name="N$9">
<contactref element="JP1" pad="6"/>
<contactref element="IC1" pad="8"/>
<wire x1="34.096959375" y1="10.94131875" x2="34.178240625" y2="10.94131875" width="0.6096" layer="1"/>
<wire x1="34.178240625" y1="10.94131875" x2="34.178240625" y2="14.3256" width="0.6096" layer="1"/>
<wire x1="34.178240625" y1="14.3256" x2="32.890459375" y2="14.3256" width="0.6096" layer="1"/>
<wire x1="32.890459375" y1="14.3256" x2="32.890459375" y2="14.37131875" width="0.6096" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="IC1" pad="5"/>
<wire x1="23.357840625" y1="15.999459375" x2="23.357840625" y2="16.89861875" width="0.6096" layer="1"/>
<wire x1="23.357840625" y1="16.89861875" x2="27.683459375" y2="16.91131875" width="0.6096" layer="1"/>
<contactref element="R2" pad="1"/>
<wire x1="23.190203125" y1="16.54555625" x2="23.987759375" y2="16.54555625" width="0.6096" layer="1"/>
<wire x1="23.987759375" y1="16.54555625" x2="23.987759375" y2="16.2433" width="0.6096" layer="1"/>
<wire x1="23.987759375" y1="16.2433" x2="23.357840625" y2="16.2433" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="N$11">
<contactref element="IC1" pad="6"/>
<contactref element="S1" pad="1"/>
<contactref element="S1" pad="2"/>
<wire x1="21.75255" y1="4.884415625" x2="21.75255" y2="11.488415625" width="0.6096" layer="1"/>
<wire x1="27.683459375" y1="15.64131875" x2="25.18918125" y2="15.567659375" width="0.6096" layer="1"/>
<wire x1="25.18918125" y1="15.567659375" x2="25.13838125" y2="11.53921875" width="0.6096" layer="1"/>
<wire x1="25.13838125" y1="11.53921875" x2="21.75255" y2="11.488415625" width="0.6096" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="S1" pad="3"/>
<contactref element="S1" pad="4"/>
<contactref element="U$3" pad="2"/>
<wire x1="17.18055" y1="4.884415625" x2="17.18055" y2="11.488415625" width="0.6096" layer="1"/>
<wire x1="13.98270625" y1="16.007765625" x2="12.2682" y2="16.007765625" width="0.6096" layer="1"/>
<wire x1="17.18055" y1="11.488415625" x2="12.3063" y2="11.488415625" width="0.6096" layer="1"/>
<wire x1="12.3063" y1="11.488415625" x2="12.3063" y2="11.42238125" width="0.6096" layer="1"/>
<wire x1="12.3063" y1="11.42238125" x2="12.2682" y2="11.42238125" width="0.6096" layer="1"/>
<wire x1="12.2682" y1="11.42238125" x2="12.2682" y2="16.007765625" width="0.6096" layer="1"/>
</signal>
<signal name="N$12">
<contactref element="R2" pad="2"/>
<contactref element="U$3" pad="1"/>
<wire x1="17.284684375" y1="15.9962375" x2="18.595340625" y2="15.9962375" width="0.6096" layer="1"/>
<wire x1="18.595340625" y1="15.9962375" x2="18.595340625" y2="16.545559375" width="0.6096" layer="1"/>
<wire x1="18.595340625" y1="16.545559375" x2="19.888203125" y2="16.545559375" width="0.6096" layer="1"/>
<wire x1="19.888203125" y1="16.545559375" x2="19.888203125" y2="16.54555625" width="0.6096" layer="1"/>
</signal>
</signals>
</board>
</drawing>
</eagle>

extension: brd


text:
package parens

var matching = map[byte]byte{
	']': '[',
	')': '(',
	'}': '{',
}

func isValid(s string) bool {
	stack := []byte{}
	for _, b := range []byte(s) {
		switch b {
		case '(', '{', '[':
			stack = append(stack, b)
			continue
		}

		top := len(stack) - 1
		if top < 0 {
			return false
		}
		ch := stack[top]
		stack = stack[:top]
		expect := matching[b]
		if ch != expect {
			return false
		}
	}
	return len(stack) == 0
}

license: MIT

repository: mmcloughlin/problems

license_type: permissive

repo_name: mmcloughlin/problems

branch_name: refs/heads/master

extension: go


text:
DESCRIPTION = "Meta recipe for recording system image version"

LICENSE = "MIT"
PV = "${DISTRO_VERSION}"

HOMEPAGE = "https://github.com/rehsack/"

LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

inherit record-installed-app

repository: rehsack/meta-jens

repo_name: rehsack/meta-jens

gha_license_id: MIT

gha_language: BitBake

extension: bb


text:
#include "kriFram.h"

void setup() {
  // initialize framework.
  kriFramSetup();

  kriFramAddSettings("call","Callibrate");
  server.on ( "/home", handleRoot );
  server.on ( "/", handleRoot );

  server.begin();
}

// the loop function runs over and over again forever
void loop() {
  //loop framework
  kriFramLoop();

}

void handleRoot() {
  String body = "Hello World!";
  server.send ( 200, "text/html", kriFramHeadder + body + kriFramFooter );
  Serial.println ( "root page sent" );
}

repository: kritagyaAdhikari/kriFram

repo_name: kritagyaAdhikari/kriFram

extension: ino


text:
using System;
class VegetableMarket
{
    static void Main()
    {
        double vegKg = double.Parse(Console.ReadLine());
        double fruKg = double.Parse(Console.ReadLine());

        double TotalVegKg = double.Parse(Console.ReadLine());
        double TotalFruKg = double.Parse(Console.ReadLine());
        vegKg *= TotalVegKg;
        fruKg *= TotalFruKg;

        vegKg += fruKg;
        vegKg /= 1.94;
        Console.WriteLine(vegKg);

        // Console.WriteLine(((vegKg * TotalVegKg) + (fruKg * TotalFruKg))/ 1.94);

    }
}

url: https://raw.githubusercontent.com/KrasimiraGeorgieva/Programming-Basics-Exam/815fba5a9e3f8024fe8fa4d449f48b0042c080c1/Coding 101 Exam 26 March 2016/01. VegetableMarket/01. VegetableMarket.cs

extension: cs

filename: 01. VegetableMarket.cs


text:
namespace ShineEngine
{
	public class UDPCommandType
	{
		/** 发包 */
		public const int Pack=1;
		/** 请求包 */
		public const int RequestPack=2;
		/** 出错(包等待超上限)(被动关闭) */
		public const int Error=3;
		/** 主动关闭 */
		public const int Close=4;
		/** 连接 */
		public const int Connect=5;
		/** 连接成功 */
		public const int ConnectSuccess=6;
	}
}


text:
#include "fluenttabgroup.h"
#include <QString>
#include <QVector>
#include "fluentbigbutton.h"

FluentTabGroup::FluentTabGroup(QString tabGroupCaption, QVector<FluentBigButton> fluentBigButtons)
{
    this->tabGroupCaption = tabGroupCaption;
    this->fluentBigButtons = fluentBigButtons;
    createControl();
}
FluentTabGroup::FluentTabGroup(QString tabGroupCaption, QVector<TextBox> fluentTextBoxes)
{
    this->tabGroupCaption = tabGroupCaption;
    this->fluentTextBoxes = fluentTextBoxes;
    createControl();
}
FluentTabGroup::FluentTabGroup()
{

}
void FluentTabGroup::createControl()
{
    html.append("
");
    html.append("
");
    for(FluentBigButton aButton : fluentBigButtons)
        html.append(aButton.toHTML());
    for(TextBox aTextBox : fluentTextBoxes)
        html.append(aTextBox.toHTML());
    html.append("
");
    html.append("
");
    html.append(tabGroupCaption);
    html.append("
");
    html.append("
");
}

repository: stephencullinan/WebBrowser

repo_name: stephencullinan/WebBrowser

extension: cpp


text:
@article{Czembor2011,
	Author = {Czembor, C. A. and Morris, W. K. and Wintle, B. A. and Vesk, P. A. },
	Journal = {Journal of Applied Ecology},
	Pages = {736--745},
	Title = {Quantifying variance components in ecological models based on expert opinion},
	Volume = {48},
	Year = {2011}
}
@article{Moore2012,
	year = 2012,
	volume = {26},
	pages = {810--820},
	author = {Joslin L. Moore and Michael C. Runge},
	title = {Combining Structured Decision Making and Value-of-Information Analyses to Identify Robust Management Strategies},
	journal = {Conservation Biology}
}
@article{Runge2011a,
	Author = {Runge, M. C. and Converse, S. J. and Lyons, J. E. },
	Journal = {Biological Conservation},
	Pages = {1214--1223},
	Title = {Which uncertainty? Using expert elicitation and expected value of information to design an adaptive program},
	Volume = {144},
	Year = {2011}
}
@article{Czembor2009,
	Author = {Czembor, C. A. and Vesk, P. A. },
	Journal = {Forest Ecology and Management},
	Pages = {165--175},
	Title = {Incorporating between-expert uncertainty into state-and-transition simulation models for forest restoration},
	Volume = {259},
	Year = {2009}
}
@article{Pigott2009,
	Author = {{Pigott}, {J. P. } and Gammack, J. and Pigott, D. and Hobbs, V. },
	Journal = {Vine},
	Pages = {159--173},
	Title = {{Practical application of a knowledge development life cycle: adaptive experimental management in Box-Ironbark forests of Victoria}},
	Volume = {39},
	Year = {2009}
}
@article{Pigott2010,
	Author = {{Pigott}, {J. P. } and Palmer, G. P. and Yen, A. L. and Tolsma, A. D. and Brown, G. W. and Gibson, M. S. and Wright, J. R. },
	Journal = {Proceedings of the Royal Society of Victoria},
	Pages = {112--123},
	Title = {{Establishment of the Box-Ironbark ecological thinning trial in north central Victoria}},
	Volume = {122},
	Year = {2010}
}
@book{Raiffa1961,
	Address = {New York},
	Author = {Raiffa, H. and Schlaifer, R. },
	Publisher = {John Wiley \& Sons Inc. },
	Title = {Applied statistical decision theory},
	Year = {1961}
}
@article{Yokota2004a,
 Author = {Yokota, F. and Thompson, K. M. },
 Journal = {Medical Decision Making},
 Pages = {287--298},
 Title = {Value of information analysis: a review of applications in health risk management},
 Volume = {24},
 Year = {2004}
}
@techreport{ECC2001,
 Author = {{Environment Conservation Council}},
 Year = {2001},
 Title = {Box-Ironbark forests and woodlands investigation: final report},
 Institution = {Environment Conservation Council},
 Address = {East Melbourne, Victoria}
}
@techreport{Cunningham2009,
 Author = {Cunningham, S. C. and Baker, P. J. and Horner, G. J. },
 Year = {2009},
 Title = {{Proposed ecological thinning trials for River Red Gum forests of the Middle Murray River Floodplain in Victoria}},
 Institution = {Australian Centre for Biodiversity, School of Biological Sciences, Monash University},
 Address = {Clayton, Victoria}
}
@book{Tzaros2005,
 Author = {Tzaros, C. },
 Title = {{Wildlife of the Box Ironbark Country}},
 Publisher = {CSIRO publishing},
 Year = {2005}
}
@techreport{Menkhorst1999,
 Author = {Menkhorst, P. and Schedvin, N. and Geering, D. },
 Year = {1999},
 Title = {{Regent Honeyeater recovery plan 1999--2003}},
 Institution = {Parks, Flora and Fauna Division, Department of Natural Resources and Environment},
 Address = {East Melbourne, Victoria}
}
@manual{ESSA2007,
 Author = {{ESSA Technologies Ltd. }},
 Year = {2007},
 Title = {{Vegetation Dynamics Development Tool User Guide, Version 6. 0}},
 Address = {Vancouver, British Columbia}
}
@article{Friedman1991,
 Author = {Friedman, J. H. },
 Journal = {The Annals of Statistics},
 Pages = {1--67},
 Title = {Multivariate adaptive regression splines},
 Volume = {19},
 Year = {1991}
}
@book{Milborrow2013,
 Author = {S. {Milborrow. Derived from mda:mars by T. Hastie and R. Tibshirani. }},
 Note = {\url{http://www. milbo. users. sonic. net/earth}},
 Publisher = {R Software Package},
 Title = {earth: Multivariate Adaptive Regression Spline Models},
 Year = {2013}
}
@Manual{R2017,
 title = {R: A Language and Environment for Statistical Computing},
 Author = {{R Core Team}},
 organization = {R Foundation for Statistical Computing},
 address = {Vienna, Austria},
 year = {2017},
 url = {https://www. R-project. org/},
}
@article{Williams2011,
 Author = {Williams, B. K. and Eaton, M. J. and Breininger, D. R. },
 Journal = {Ecological Modelling},
 Pages = {3429--3436},
 Title = {Adaptive resource management and the value of information},
 Volume = {222},
 Year = {2012}
}
@article{Ades2004,
 Author = {Ades, A. E. and Lu, G. and Claxton, K. },
 Journal = {Medical Decision Making},
 Pages = {202--227},
 Title = {Expected value of sample information calculations in medical decision making},
 Volume = {24},
 Year = {2004}
}
@article{Runting2013,
 Author = {Runting, R. K. and Wilson, K. A. and Rhodes, J. A. },
 Journal = {Global Change Biology},
 Pages = {352--363},
 Title = {Does more mean less? {T}he value of information for conservation planning under sea level rise},
 Volume = {19},
 Year = {2013}
}
@article{Polasky2001,
 Author = {Polasky, S. and Solow, A. R. },
 Journal = {Biodiversity and Conservation},
 Pages = {1051--1058},
 Title = {The value of information in reserve site selection},
 Volume = {10},
 Year = {2001}
}
@article{Moore2011,
	year = 2011,
	volume = {17},
	pages = {1047--1059},
	author = {Joslin L. Moore and Michael C. Runge and Bruce L. Webber and John R. U. Wilson},
	title = {Contain or eradicate? Optimizing the management goal for {A}ustralian {A}cacia invasions in the face of uncertainty},
	journal = {Diversity and Distributions}
}
@article{Dakins1999,
 Author = {Dakins, M. E. },
 Journal = {Human and Ecological Risk Assessment},
 Pages = {281--289},
 Title = {The value of the value of information},
 Volume = {5},
 Year = {1999}
}
@article{Claxton2008,
 Author = {Claxton, K. },
 Journal = {Pharmacoeconomics},
 Pages = {781--798},
 Title = {Exploring uncertainty in cost-effectiveness analysis},
 Volume = {9},
 Year = {2008}
}
@article{Mcdonaldmadden2010,
 Author = {McDonald-Madden, E. and Baxter, P. W. J. and Fuller, R. A. and Martin, T. G. and Game, E. T. and Montambault, J. and Possingham, H. P. },
 Journal = {Trends in Ecology \& Evolution},
 Title={Monitoring does not always count},
 Pages = {547--550},
 Volume = {25},
 Year = {2010}
}
@article{Johnson2014a,
 Author = {Johnson, F. A. and Jensen, G. H. and Madsen, J. and Williams, B. K. },
 Journal = {Ecological Modelling},
 Pages = {186--199},
 Title = {Uncertainty, robustness, and the value of information in managing an expanding Arctic goose population},
 Volume = {273},
 Year = {2014}
}
@article{Wu2013,
 Author = {Wu, B and Zheng, Y},
 Journal = {Environmental Monitoring and Assessment},
 Pages = {3023--3035},
 Title = {Assessing the value of information for water quality management: a watershed perspective from China},
 Volume={185},
 Year={2013}
}
@book{Morgan1990,
 Address = {Cambridge},
 Author = {Morgan, M. G. and Henrion, M. },
 Publisher = {Cambridge University Press},
 Title = {Uncertainty: a guide to dealing with uncertainty in quantitative risk and policy analysis},
 Year = {1990}
}
@article{Maxwell2015,
 title={How much is new information worth? Evaluating the financial benefit of resolving management uncertainty},
 author={Maxwell, Sean L. and Rhodes, Jonathan R. and Runge, Michael C. and Possingham, Hugh P. and Ng, Chooi Fei and McDonald-Madden, Eve},
 journal={Journal of Applied Ecology},
 volume={52},
 pages={12--20},
 year={2015}
}
@article{Canessa2015,
	year = 2015,
	volume = {6},
	pages = {1219--1228},
	author = {Stefano Canessa and Gurutzeta Guillera-Arroita and Jos{\'{e}} J. Lahoz-Monfort and Darren M. Southwell and Doug P. Armstrong and Iadine Chad{\`{e}}s and Robert C. Lacy and Sarah J. Converse},
	title = {When do we need more data? A primer on calculating the value of information for applied ecologists},
	journal = {Methods in Ecology and Evolution}
}
@article{Kangas2010,
 title={Value of forest information},
 author={Kangas, Annika Susanna},
 journal={European Journal of Forest Research},
 volume={129},
 pages={863--874},
 year={2010},
}
@article{Roessiger2016,
 title={Variability in growth of trees in uneven-aged stands displays the need for optimizing diversified harvest diameters},
 author={Roessiger, Joerg and Ficko, Andrej and Clasen, Christian and Griess, Verena C and Knoke, Thomas},
 journal={European Journal of Forest Research},
 volume={135},
 pages={283--295},
 year={2016}
}
@article{Keisler2014,
 title={Value of information analysis: the state of application},
 author={Keisler, Jeffrey M and Collier, Zachary A and Chu, Eric and Sinatra, Nina and Linkov, Igor},
 journal={Environment Systems and Decisions},
 volume={34},
 pages={3--23},
 year={2014}
}
@article{Bates2015,
 title={Balancing research and funding using value of information and portfolio tools for nanomaterial risk classification},
 author={Bates, Matthew E and Keisler, Jeffrey M and Zussblatt, Niels P and Plourde, Kenton J and Wender, Ben A and Linkov, Igor},
 journal={Nature nanotechnology},
 year={2015},
 pages={198--203},
 volume={11}
}
@article{Bates2014,
 title={The value of information for managing contaminated sediments},
 author={Bates, Matthew E and Sparrevik, Magnus and De Lichy, Nicolas and Linkov, Igor},
 journal={Environmental science \& technology},
 volume={48},
 pages={9478--9485},
 year={2014}
}
@article{Jones2015,
  title={Empirically validating a dense woody regrowth ‘problem’and thinning ‘solution’for understory vegetation},
  author={Jones, Christopher S and Duncan, David H and Rumpff, Libby and Thomas, Freya M and Morris, William K and Vesk, Peter A},
  journal={Forest Ecology and Management},
  volume={340},
  pages={153--162},
  year={2015}
}
@article{Horner2010,
  title={Forest structure, habitat and carbon benefits from thinning floodplain forests: managing early stand density makes a difference},
  author={Horner, Gillis J and Baker, Patrick J and Mac Nally, Ralph and Cunningham, Shaun C and Thomson, James R and Hamilton, Fiona},
  journal={Forest ecology and management},
  volume={259},
  pages={286--293},
  year={2010}
}

extension: bib


text:
using NUnit.Framework;

namespace SmartCardApi.Infrastructure
{
    [TestFixture]
    public class ProductTests
    {
        [TestCase]
        public void Product_of_two_numbers()
        {
            Assert.AreEqual(
                    12,
                    new Product(6, 2).Value()
                );
        }
    }
}


text:
package euler

// IsPandigital10 1-9までのパンデジタル数？
//
// https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%B3%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E6%95%B0
func IsPandigital10(m int) bool {
	if m < 123456789 || 987654321 < m {
		return false
	}

	flags := uint16(0)

	for ; m > 0; m = m / 10 {
		f := uint16(1) << uint32(m%10-1)
		if flags&f > 0 {
			return false
		}
		flags |= f
	}

	return (flags == 512-1) // 2^9-1
}

gha_language: Go


text:
using namespace std;

#pragma region "PRIME VECTOR"

#include <vector>
#include <memory>

vector<unsigned> populatePrimes(int limit) {
	vector<unsigned> primes;
	int sqrtLimit = (int)sqrt(limit + 1) + 1;
	unique_ptr<int[]> isPrime(new int[limit + 1]);

	isPrime[0] = isPrime[1] = 0;
	fill_n(&isPrime[2], limit - 1, 1);
	primes.clear();

	for (int i = 2; i <= sqrtLimit; i++)
		if (isPrime[i]) {
			primes.push_back(i);
			for (int j = i + i; j <= limit; j += i)
				isPrime[j] = false;
		}

	for (int i = sqrtLimit + 1; i <= limit; i++)
		if (isPrime[i])
			primes.push_back(i);

	return primes;
}

int totient(int n, const vector<unsigned> &primes){
	int l = 0, r = primes.size() - 1;

	while (l <= r){
		int m = (l + r) >> 1;

		if (n == primes[m])
			return m + 1;
		else if (n < primes[m])
			r = m - 1;
		else
			l = m + 1;
	}

	return l;
}

template<class T>
T totient(T n, const vector<unsigned> &primes) {
	T tot = 1;
	for (auto prime : primes) {
		unsigned power = 0;
		T powerMul = 1;
		while (n % prime == 0) {
			if (power++)
				powerMul *= prime;
			n /= prime;
		}
		if (power)
			tot *= powerMul * (prime - 1);
		if (n == 1)
			break;
	}
	if (n > 1)
		tot *= n - 1;
	return tot;
}

unique_ptr<int[]> populateMobius(int limit) {
	int sqrtLimit = (int)sqrt(limit) + 1;
	unique_ptr<int[]> sieve(new int[limit + 1]);
	for (int i = 1; i <= limit; i++)
		sieve[i] = 1;

	for (int i = 2; i <= sqrtLimit; i++) {
		if (sieve[i] == 1) {
			for (int j = i; j <= limit; j += i)
				sieve[j] *= -i;
			for (int j = i * i; j <= limit; j += i * i)
				sieve[j] = 0;
		}
	}

	for (int i = 2; i <= limit; i++)
		if (sieve[i] == i)
			sieve[i] = 1;
		else if (sieve[i] == -i)
			sieve[i] = -1;
		else if (sieve[i] < 0)
			sieve[i] = 1;
		else if (sieve[i] > 0)
			sieve[i] = -1;

	return sieve;
}

unique_ptr<int[]> populateTotient(int limit) {
	int sqrtLimit = (int)sqrt(limit) + 1;

	unique_ptr<int[]> sieve(new int[limit + 1]);
	sieve[0] = 1;
	for (int i = 1; i <= limit; i++)
		sieve[i] = i;

	for (int i = 2; i <= limit; i++)
		if (sieve[i] == i)
			for (int j = i; j <= limit; j += i)
				sieve[j] -= sieve[j] / i;

	return sieve;
}

#pragma endregion

#pragma region "Factors"

const unsigned primes[] = { // some primes
	2,   3,   5,   7,  11,  13,  17,  19,  23,  29,  31,  37,  41,
	43,  47,  53,  59,  61,  67,  71,  73,  79,  83,  89,  97, 101,
	103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167,
	173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239,
	241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313 };

template<class T>
T getNumOfFactors(T n) {
	T factors = 1;
	for (auto prime : primes) {
		natural power = 0;
		while (n % prime == 0) {
			n /= prime;
			power++;
		}
		if (power)
			factors *= power + 1;
		if (n == 1)
			break;
	}
	if (n > 1)
		factors *= 2;
	return factors;
}

template<class T>
vector<T> getAllFactors(T n) {
	vector<T> factors = { 1 };
	for (auto prime : primes) {
		T power = 1;
		size_t nFactors = factors.size();
		while (n % prime == 0) {
			power *= prime;
			for (size_t i = 0; i < nFactors; i++)
				factors.push_back(factors[i] * power);
			n /= prime;
		}
		if (n == 1)
			break;
	}
	if (n > 1)
		for (size_t i = 0, nFactors = factors.size(); i < nFactors; i++)
			factors.push_back(factors[i] * n);
	return factors;
}

#pragma endregion

#pragma region "Miller-Rabin"

namespace DeterministicMillerRabin {
	// Deterministic up to 341,550,071,728,321

	uint64_t modMul(uint64_t i, uint64_t j, uint64_t k) {
		if (i >= (1ULL << 32) || j >= (1ULL << 32)) {
			if (i >= k)
				i %= k;
			if (j >= k)
				j %= k;
			// Russian peasant multiplication
			uint64_t r = 0;
			while (j > 0) {
				if (j & 1) {
					r += i;
					if (r >= k)
						r -= k;
				}
				i <<= 1;
				if (i >= k)
					i -= k;
				j >>= 1;
			}
			return r;
		}
		uint64_t r = i*j;
		if (r >= k)
			r %= k;
		return r;
	}

	uint64_t modPower(uint64_t a, uint64_t n, uint64_t mod) {
		uint64_t power = a;
		uint64_t result = 1;
		while (n) {
			if (n & 1)
				result = modMul(result, power, mod);
			power = modMul(power, power, mod);
			n >>= 1;
		}
		return result;
	}

	// n-1 = 2^s * d with d odd by factoring powers of 2 from n-1
	bool witness(uint64_t n, uint64_t s, uint64_t d, uint64_t a) {
		uint64_t x = modPower(a, d, n);
		uint64_t y;
		while (s) {
			y = modMul(x, x, n);
			if (y == 1 && x != 1 && x != n - 1)
				return false;
			x = y;
			--s;
		}
		if (y != 1)
			return false;
		return true;
	}

	bool isPrime(uint64_t n) {
		if (((!(n & 1)) && n != 2) || (n < 2) || (n % 3 == 0 && n != 3))
			return false;
		if (n <= 3)
			return true;

		uint64_t d = n / 2;
		uint64_t s = 1;
		while (!(d & 1)) {
			d /= 2;
			++s;
		}

		if (n < 1373653ULL)
			return witness(n, s, d, 2) && witness(n, s, d, 3);
		if (n < 9080191ULL)
			return witness(n, s, d, 31) && witness(n, s, d, 73);
		if (n < 4759123141ULL)
			return witness(n, s, d, 2) && witness(n, s, d, 7) && witness(n, s, d, 61);
		if (n < 1122004669633ULL)
			return witness(n, s, d, 2) && witness(n, s, d, 13) && witness(n, s, d, 23) && witness(n, s, d, 1662803);
		if (n < 2152302898747ULL)
			return witness(n, s, d, 2) && witness(n, s, d, 3) && witness(n, s, d, 5) && witness(n, s, d, 7) && witness(n, s, d, 11);
		if (n < 3474749660383ULL)
			return witness(n, s, d, 2) && witness(n, s, d, 3) && witness(n, s, d, 5) && witness(n, s, d, 7) && witness(n, s, d, 11) && witness(n, s, d, 13);
		return witness(n, s, d, 2) && witness(n, s, d, 3) && witness(n, s, d, 5) && witness(n, s, d, 7) && witness(n, s, d, 11) && witness(n, s, d, 13) && witness(n, s, d, 17);
	}
}

#pragma endregion

#pragma region "Forisek Jancina 32Bit"
namespace ForisekJancina32 {
	// ref  Fast Primality Testing for Integers That Fit into a Machine Word
	uint16_t bases[] = { 15591,2018,166,7429,8064,16045,10503,4399,1949,1295,2776,3620,560,3128,5212,
		2657,2300,2021,4652,1471,9336,4018,2398,20462,10277,8028,2213,6219,620,3763,4852,5012,3185,
		1333,6227,5298,1074,2391,5113,7061,803,1269,3875,422,751,580,4729,10239,746,2951,556,2206,
		3778,481,1522,3476,481,2487,3266,5633,488,3373,6441,3344,17,15105,1490,4154,2036,1882,1813,
		467,3307,14042,6371,658,1005,903,737,1887,7447,1888,2848,1784,7559,3400,951,13969,4304,177,41,
		19875,3110,13221,8726,571,7043,6943,1199,352,6435,165,1169,3315,978,233,3003,2562,2994,10587,
		10030,2377,1902,5354,4447,1555,263,27027,2283,305,669,1912,601,6186,429,1930,14873,1784,1661,
		524,3577,236,2360,6146,2850,55637,1753,4178,8466,222,2579,2743,2031,2226,2276,374,2132,813,
		23788,1610,4422,5159,1725,3597,3366,14336,579,165,1375,10018,12616,9816,1371,536,1867,10864,
		857,2206,5788,434,8085,17618,727,3639,1595,4944,2129,2029,8195,8344,6232,9183,8126,1870,3296,
		7455,8947,25017,541,19115,368,566,5674,411,522,1027,8215,2050,6544,10049,614,774,2333,3007,
		35201,4706,1152,1785,1028,1540,3743,493,4474,2521,26845,8354,864,18915,5465,2447,42,4511,
		1660,166,1249,6259,2553,304,272,7286,73,6554,899,2816,5197,13330,7054,2818,3199,811,922,350,
		7514,4452,3449,2663,4708,418,1621,1171,3471,88,11345,412,1559,194 };

	bool is_SPRP(uint32_t n, uint32_t a) {
		uint32_t d = n - 1, s = 0;
		while ((d & 1) == 0) ++s, d >>= 1;
		uint64_t cur = 1, pw = d;
		while (pw) {
			if (pw & 1) cur = (cur*a) % n;
			a = ((uint64_t)a*a) % n;
			pw >>= 1;
		}
		if (cur == 1) return true;
		for (uint32_t r = 0; r<s; r++) {
			if (cur == n - 1) return true;
			cur = (cur*cur) % n;
		}
		return false;
	}

	bool isPrime(uint32_t x) {
		if (x == 2 || x == 3 || x == 5 || x == 7) return true;
		if (x % 2 == 0 || x % 3 == 0 || x % 5 == 0 || x % 7 == 0) return false;
		if (x<121)
			return x > 1;

		uint64_t h = x;
		h = ((h >> 16) ^ h) * 0x45d9f3b;
		h = ((h >> 16) ^ h) * 0x45d9f3b;
		h = ((h >> 16) ^ h) & 255;
		return is_SPRP(x, bases[h]);
	}
}

#pragma endregion