text:
rectangle x1="16.2687" y1="5.0165" x2="16.8529" y2="5.0419" layer="21"/>
<rectangle x1="21.2217" y1="5.0165" x2="21.7805" y2="5.0419" layer="21"/>
<rectangle x1="0.8763" y1="5.0419" x2="1.4097" y2="5.0673" layer="21"/>
<rectangle x1="2.5527" y1="5.0419" x2="3.0861" y2="5.0673" layer="21"/>
<rectangle x1="4.1529" y1="5.0419" x2="4.7625" y2="5.0673" layer="21"/>
<rectangle x1="5.4229" y1="5.0419" x2="6.0071" y2="5.0673" layer="21"/>
<rectangle x1="6.8453" y1="5.0419" x2="7.5311" y2="5.0673" layer="21"/>
<rectangle x1="11.6967" y1="5.0419" x2="12.1285" y2="5.0673" layer="21"/>
<rectangle x1="12.3317" y1="5.0419" x2="12.7635" y2="5.0673" layer="21"/>
<rectangle x1="12.9921" y1="5.0419" x2="13.4239" y2="5.0673" layer="21"/>
<rectangle x1="13.6017" y1="5.0419" x2="14.0335" y2="5.0673" layer="21"/>
<rectangle x1="16.2687" y1="5.0419" x2="16.8529" y2="5.0673" layer="21"/>
<rectangle x1="21.2217" y1="5.0419" x2="21.7805" y2="5.0673" layer="21"/>
<rectangle x1="0.8763" y1="5.0673" x2="1.3843" y2="5.0927" layer="21"/>
<rectangle x1="2.5781" y1="5.0673" x2="3.0861" y2="5.0927" layer="21"/>
<rectangle x1="4.1529" y1="5.0673" x2="4.7625" y2="5.0927" layer="21"/>
<rectangle x1="5.4229" y1="5.0673" x2="6.0071" y2="5.0927" layer="21"/>
<rectangle x1="6.8707" y1="5.0673" x2="7.5311" y2="5.0927" layer="21"/>
<rectangle x1="11.6967" y1="5.0673" x2="12.1285" y2="5.0927" layer="21"/>
<rectangle x1="12.3317" y1="5.0673" x2="12.7635" y2="5.0927" layer="21"/>
<rectangle x1="12.9921" y1="5.0673" x2="13.4239" y2="5.0927" layer="21"/>
<rectangle x1="13.6017" y1="5.0673" x2="14.0335" y2="5.0927" layer="21"/>
<rectangle x1="16.2687" y1="5.0673" x2="16.8529" y2="5.0927" layer="21"/>
<rectangle x1="21.2217" y1="5.0673" x2="21.7805" y2="5.0927" layer="21"/>
<rectangle x1="0.8763" y1="5.0927" x2="1.3843" y2="5.1181" layer="21"/>
<rectangle x1="2.5781" y1="5.0927" x2="3.0861" y2="5.1181" layer="21"/>
<rectangle x1="4.1275" y1="5.0927" x2="4.7625" y2="5.1181" layer="21"/>
<rectangle x1="5.4229" y1="5.0927" x2="6.0071" y2="5.1181" layer="21"/>
<rectangle x1="6.8961" y1="5.0927" x2="7.5565" y2="5.1181" layer="21"/>
<rectangle x1="11.6967" y1="5.0927" x2="12.1285" y2="5.1181" layer="21"/>
<rectangle x1="12.3317" y1="5.0927" x2="12.7635" y2="5.1181" layer="21"/>
<rectangle x1="12.9921" y1="5.0927" x2="13.4239" y2="5.1181" layer="21"/>
<rectangle x1="13.6017" y1="5.0927" x2="14.0335" y2="5.1181" layer="21"/>
<rectangle x1="16.2687" y1="5.0927" x2="16.8529" y2="5.1181" layer="21"/>
<rectangle x1="21.2217" y1="5.0927" x2="21.7805" y2="5.1181" layer="21"/>
<rectangle x1="0.8763" y1="5.1181" x2="1.3843" y2="5.1435" layer="21"/>
<rectangle x1="2.5781" y1="5.1181" x2="3.0607" y2="5.1435" layer="21"/>
<rectangle x1="4.1275" y1="5.1181" x2="4.7879" y2="5.1435" layer="21"/>
<rectangle x1="5.4229" y1="5.1181" x2="6.0071" y2="5.1435" layer="21"/>
<rectangle x1="6.9215" y1="5.1181" x2="7.5819" y2="5.1435" layer="21"/>
<rectangle x1="11.6967" y1="5.1181" x2="12.1285" y2="5.1435" layer="21"/>
<rectangle x1="12.3317" y1="5.1181" x2="12.7635" y2="5.1435" layer="21"/>
<rectangle x1="12.9921" y1="5.1181" x2="13.4239" y2="5.1435" layer="21"/>
<rectangle x1="13.6017" y1="5.1181" x2="14.0335" y2="5.1435" layer="21"/>
<rectangle x1="16.2687" y1="5.1181" x2="16.8529" y2="5.1435" layer="21"/>
<rectangle x1="21.2217" y1="5.1181" x2="21.7805" y2="5.1435" layer="21"/>
<rectangle x1="0.9017" y1="5.1435" x2="1.3589" y2="5.1689" layer="21"/>
<rectangle x1="2.6035" y1="5.1435" x2="3.0607" y2="5.1689" layer="21"/>
<rectangle x1="4.1275" y1="5.1435" x2="4.7879" y2="5.1689" layer="21"/>
<rectangle x1="5.4229" y1="5.1435" x2="6.0071" y2="5.1689" layer="21"/>
<rectangle x1="6.9215" y1="5.1435" x2="7.6073" y2="5.1689" layer="21"/>
<rectangle x1="11.6967" y1="5.1435" x2="12.1285" y2="5.1689" layer="21"/>
<rectangle x1="12.3317" y1="5.1435" x2="12.7635" y2="5.1689" layer="21"/>
<rectangle x1="12.9921" y1="5.1435" x2="13.4239" y2="5.1689" layer="21"/>
<rectangle x1="13.6017" y1="5.1435" x2="14.0335" y2="5.1689" layer="21"/>
<rectangle x1="16.2687" y1="5.1435" x2="16.8529" y2="5.1689" layer="21"/>
<rectangle x1="21.2217" y1="5.1435" x2="21.7805" y2="5.1689" layer="21"/>
<rectangle x1="0.9017" y1="5.1689" x2="1.3589" y2="5.1943" layer="21"/>
<rectangle x1="2.6035" y1="5.1689" x2="3.0607" y2="5.1943" layer="21"/>
<rectangle x1="4.1275" y1="5.1689" x2="4.7879" y2="5.1943" layer="21"/>
<rectangle x1="5.4229" y1="5.1689" x2="6.0071" y2="5.1943" layer="21"/>
<rectangle x1="6.9469" y1="5.1689" x2="7.6073" y2="5.1943" layer="21"/>
<rectangle x1="11.6967" y1="5.1689" x2="12.1285" y2="5.1943" layer="21"/>
<rectangle x1="12.3317" y1="5.1689" x2="12.7635" y2="5.1943" layer="21"/>
<rectangle x1="12.9921" y1="5.1689" x2="13.4239" y2="5.1943" layer="21"/>
<rectangle x1="13.6017" y1="5.1689" x2="14.0335" y2="5.1943" layer="21"/>
<rectangle x1="16.2687" y1="5.1689" x2="16.8529" y2="5.1943" layer="21"/>
<rectangle x1="21.2217" y1="5.1689" x2="21.7805" y2="5.1943" layer="21"/>
<rectangle x1="0.9017" y1="5.1943" x2="1.3589" y2="5.2197" layer="21"/>
<rectangle x1="2.6035" y1="5.1943" x2="3.0607" y2="5.2197" layer="21"/>
<rectangle x1="4.1275" y1="5.1943" x2="4.7879" y2="5.2197" layer="21"/>
<rectangle x1="5.4229" y1="5.1943" x2="6.0071" y2="5.2197" layer="21"/>
<rectangle x1="6.9723" y1="5.1943" x2="7.6327" y2="5.2197" layer="21"/>
<rectangle x1="11.6967" y1="5.1943" x2="12.1285" y2="5.2197" layer="21"/>
<rectangle x1="12.3317" y1="5.1943" x2="12.7635" y2="5.2197" layer="21"/>
<rectangle x1="12.9921" y1="5.1943" x2="13.4239" y2="5.2197" layer="21"/>
<rectangle x1="13.6017" y1="5.1943" x2="14.0335" y2="5.2197" layer="21"/>
<rectangle x1="16.2687" y1="5.1943" x2="16.8529" y2="5.2197" layer="21"/>
<rectangle x1="21.2217" y1="5.1943" x2="21.7805" y2="5.2197" layer="21"/>
<rectangle x1="0.9017" y1="5.2197" x2="1.3335" y2="5.2451" layer="21"/>
<rectangle x1="2.6289" y1="5.2197" x2="3.0607" y2="5.2451" layer="21"/>
<rectangle x1="4.1275" y1="5.2197" x2="4.7879" y2="5.2451" layer="21"/>
<rectangle x1="5.4229" y1="5.2197" x2="6.0071" y2="5.2451" layer="21"/>
<rectangle x1="6.9723" y1="5.2197" x2="7.6581" y2="5.2451" layer="21"/>
<rectangle x1="11.6967" y1="5.2197" x2="12.1285" y2="5.2451" layer="21"/>
<rectangle x1="12.3317" y1="5.2197" x2="12.7635" y2="5.2451" layer="21"/>
<rectangle x1="12.9921" y1="5.2197" x2="13.4239" y2="5.2451" layer="21"/>
<rectangle x1="13.6017" y1="5.2197" x2="14.0335" y2="5.2451" layer="21"/>
<rectangle x1="16.2687" y1="5.2197" x2="16.8529" y2="5.2451" layer="21"/>
<rectangle x1="21.2217" y1="5.2197" x2="21.7805" y2="5.2451" layer="21"/>
<rectangle x1="0.9017" y1="5.2451" x2="1.3335" y2="5.2705" layer="21"/>
<rectangle x1="2.6289" y1="5.2451" x2="3.0353" y2="5.2705" layer="21"/>
<rectangle x1="4.1275" y1="5.2451" x2="4.7625" y2="5.2705" layer="21"/>
<rectangle x1="5.4229" y1="5.2451" x2="6.0071" y2="5.2705" layer="21"/>
<rectangle x1="6.9977" y1="5.2451" x2="7.6581" y2="5.2705" layer="21"/>
<rectangle x1="11.6967" y1="5.2451" x2="12.1285" y2="5.2705" layer="21"/>
<rectangle x1="12.3317" y1="5.2451" x2="12.7635" y2="5.2705" layer="21"/>
<rectangle x1="12.9921" y1="5.2451" x2="13.4239" y2="5.2705" layer="21"/>
<rectangle x1="13.6017" y1="5.2451" x2="14.0335" y2="5.2705" layer="21"/>
<rectangle x1="16.2687" y1="5.2451" x2="16.8529" y2="5.2705" layer="21"/>
<rectangle x1="21.2217" y1="5.2451" x2="21.7805" y2="5.2705" layer="21"/>
<rectangle x1="0.9271" y1="5.2705" x2="1.3335" y2="5.2959" layer="21"/>
<rectangle x1="2.6289" y1="5.2705" x2="3.0353" y2="5.2959" layer="21"/>
<rectangle x1="4.1275" y1="5.2705" x2="4.7625" y2="5.2959" layer="21"/>
<rectangle x1="5.4229" y1="5.2705" x2="6.0071" y2="5.2959" layer="21"/>
<rectangle x1="7.0231" y1="5.2705" x2="7.6835" y2="5.2959" layer="21"/>
<rectangle x1="11.6967" y1="5.2705" x2="12.1285" y2="5.2959" layer="21"/>
<rectangle x1="12.3317" y1="5.2705" x2="12.7635" y2="5.2959" layer="21"/>
<rectangle x1="12.9921" y1="5.2705" x2="13.4239" y2="5.2959" layer="21"/>
<rectangle x1="13.6017" y1="5.2705" x2="14.0335" y2="5.2959" layer="21"/>
<rectangle x1="16.2687" y1="5.2705" x2="16.8529" y2="5.2959" layer="21"/>
<rectangle x1="21.2217" y1="5.2705" x2="21.7805" y2="5.2959" layer="21"/>
<rectangle x1="0.9271" y1="5.2959" x2="1.3081" y2="5.3213" layer="21"/>
<rectangle x1="2.6289" y1="5.2959" x2="3.0353" y2="5.3213" layer="21"/>
<rectangle x1="4.1529" y1="5.2959" x2="4.7625" y2="5.3213" layer="21"/>
<rectangle x1="5.4229" y1="5.2959" x2="6.0071" y2="5.3213" layer="21"/>
<rectangle x1="7.0231" y1="5.2959" x2="7.7089" y2="5.3213" layer="21"/>
<rectangle x1="11.6967" y1="5.2959" x2="12.1285" y2="5.3213" layer="21"/>
<rectangle x1="12.3317" y1="5.2959" x2="12.7635" y2="5.3213" layer="21"/>
<rectangle x1="12.9921" y1="5.2959" x2="13.4239" y2="5.3213" layer="21"/>
<rectangle x1="13.6017" y1="5.2959" x2="14.0335" y2="5.3213" layer="21"/>
<rectangle x1="16.2687" y1="5.2959" x2="16.8529" y2="5.3213" layer="21"/>
<rectangle x1="21.2217" y1="5.2959" x2="21.7805" y2="5.3213" layer="21"/>
<rectangle x1="0.9271" y1="5.3213" x2="1.3081" y2="5.3467" layer="21"/>
<rectangle x1="2.6543" y1="5.3213" x2="3.0353" y2="5.3467" layer="21"/>
<rectangle x1="4.1529" y1="5.3213" x2="4.7371" y2="5.3467" layer="21"/>
<rectangle x1="5.4229" y1="5.3213" x2="6.0071" y2="5.3467" layer="21"/>
<rectangle x1="7.0485" y1="5.3213" x2="7.7343" y2="5.3467" layer="21"/>
<rectangle x1="11.6967" y1="5.3213" x2="12.1285" y2="5.3467" layer="21"/>
<rectangle x1="12.3317" y1="5.3213" x2="12.7635" y2="5.3467" layer="21"/>
<rectangle x1="12.9921" y1="5.3213" x2="13.4239" y2="5.3467" layer="21"/>
<rectangle x1="13.6017" y1="5.3213" x2="14.0335" y2="5.3467" layer="21"/>
<rectangle x1="16.2687" y1="5.3213" x2="16.8529" y2="5.3467" layer="21"/>
<rectangle x1="21.2217" y1="5.3213" x2="21.7805" y2="5.3467" layer="21"/>
<rectangle x1="0.9271" y1="5.3467" x2="1.3081" y2="5.3721" layer="21"/>
<rectangle x1="2.6543" y1="5.3467" x2="3.0353" y2="5.3721" layer="21"/>
<rectangle x1="4.1783" y1="5.3467" x2="4.7371" y2="5.3721" layer="21"/>
<rectangle x1="5.4229" y1="5.3467" x2="6.0071" y2="5.3721" layer="21"/>
<rectangle x1="7.0739" y1="5.3467" x2="7.7343" y2="5.3721" layer="21"/>
<rectangle x1="11.6967" y1="5.3467" x2="12.1285" y2="5.3721" layer="21"/>
<rectangle x1="12.3317" y1="5.3467" x2="12.7635" y2="5.3721" layer="21"/>
<rectangle x1="12.9921" y1="5.3467" x2="13.4239" y2="5.3721" layer="21"/>
<rectangle x1="13.6017" y1="5.3467" x2="14.0335" y2="5.3721" layer="21"/>
<rectangle x1="16.2687" y1="5.3467" x2="16.8529" y2="5.3721" layer="21"/>
<rectangle x1="21.2217" y1="5.3467" x2="21.7805" y2="5.3721" layer="21"/>
<rectangle x1="0.9271" y1="5.3721" x2="1.2827" y2="5.3975" layer="21"/>
<rectangle x1="2.6543" y1="5.3721" x2="3.0099" y2="5.3975" layer="21"/>
<rectangle x1="4.2037" y1="5.3721" x2="4.7117" y2="5.3975" layer="21"/>
<rectangle x1="5.4229" y1="5.3721" x2="6.0071" y2="5.3975" layer="21"/>
<rectangle x1="7.0993" y1="5.3721" x2="7.7597" y2="5.3975" layer="21"/>
<rectangle x1="11.6967" y1="5.3721" x2="12.1285" y2="5.3975" layer="21"/>
<rectangle x1="12.3317" y1="5.3721" x2="12.7635" y2="5.3975" layer="21"/>
<rectangle x1="12.9921" y1="5.3721" x2="13.4239" y2="5.3975" layer="21"/>
<rectangle x1="13.6017" y1="5.3721" x2="14.0335" y2="5.3975" layer="21"/>
<rectangle x1="16.2687" y1="5.3721" x2="16.8529" y2="5.3975" layer="21"/>
<rectangle x1="21.2217" y1="5.3721" x2="21.7805" y2="5.3975" layer="21"/>
<rectangle x1="0.9525" y1="5.3975" x2="1.2827" y2="5.4229" layer="21"/>
<rectangle x1="2.6797" y1="5.3975" x2="3.0099" y2="5.4229" layer="21"/>
<rectangle x1="4.2037" y1="5.3975" x2="4.6863" y2="5.4229" layer="21"/>
<rectangle x1="5.4229" y1="5.3975" x2="6.0071" y2="5.4229" layer="21"/>
<rectangle x1="7.0993" y1="5.3975" x2="7.7851" y2="5.4229" layer="21"/>
<rectangle x1="11.6967" y1="5.3975" x2="12.1285" y2="5.4229" layer="21"/>
<rectangle x1="12.3317" y1="5.3975" x2="12.7635" y2="5.4229" layer="21"/>
<rectangle x1="12.9921" y1="5.3975" x2="13.4239" y2="5.4229" layer="21"/>
<rectangle x1="13.6017" y1="5.3975" x2="14.0335" y2="5.4229" layer="21"/>
<rectangle x1="16.2687" y1="5.3975" x2="16.8529" y2="5.4229" layer="21"/>
<rectangle x1="21.2217" y1="5.3975" x2="21.7805" y2="5.4229" layer="21"/>
<rectangle x1="0.9525" y1="5.4229" x2="1.2827" y2="5.4483" layer="21"/>
<rectangle x1="2.6797" y1="5.4229" x2="3.0099" y2="5.4483" layer="21"/>
<rectangle x1="4.2545" y1="5.4229" x2="4.6609" y2="5.4483" layer="21"/>
<rectangle x1="5.4229" y1="5.4229" x2="6.0071" y2="5.4483" layer="21"/>
<rectangle x1="7.1247" y1="5.4229" x2="7.7851" y2="5.4483" layer="21"/>
<rectangle x1="11.6967" y1="5.4229" x2="12.1285" y2="5.4483" layer="21"/>
<rectangle x1="12.3317" y1="5.4229" x2="12.7635" y2="5.4483" layer="21"/>
<rectangle x1="12.9921" y1="5.4229" x2="13.4239" y2="5.4483" layer="21"/>
<rectangle x1="13.6017" y1="5.4229" x2="14.0335" y2="5.4483" layer="21"/>
<rectangle x1="16.2687" y1="5.4229" x2="16.8529" y2="5.4483" layer="21"/>
<rectangle x1="21.2217" y1="5.4229" x2="21.7805" y2="5.4483" layer="21"/>
<rectangle x1="0.9525" y1="5.4483" x2="1.2573" y2="5.4737" layer="21"/>
<rectangle x1="2.7051" y1="5.4483" x2="2.9845" y2="5.4737" layer="21"/>
<rectangle x1="4.2799" y1="5.4483" x2="4.6355" y2="5.4737" layer="21"/>
<rectangle x1="5.4229" y1="5.4483" x2="6.0071" y2="5.4737" layer="21"/>
<rectangle x1="7.1501" y1="5.4483" x2="7.8105" y2="5.4737" layer="21"/>
<rectangle x1="11.6967" y1="5.4483" x2="12.1285" y2="5.4737" layer="21"/>
<rectangle x1="12.3317" y1="5.4483" x2="12.7635" y2="5.4737" layer="21"/>
<rectangle x1="12.9921" y1="5.4483" x2="13.4239" y2="5.4737" layer="21"/>
<rectangle x1="13.6017" y1="5.4483" x2="14.0335" y2="5.4737" layer="21"/>
<rectangle x1="16.2687" y1="5.4483" x2="16.8529" y2="5.4737" layer="21"/>
<rectangle x1="21.2217" y1="5.4483" x2="21.7805" y2="5.4737" layer="21"/>
<rectangle x1="4.3307" y1="5.4737" x2="4.5847" y2="5.4991" layer="21"/>
<rectangle x1="11.6967" y1="5.4737" x2="12.1285" y2="5.4991" layer="21"/>
<rectangle x1="12.3317" y1="5.4737" x2="12.7635" y2="5.4991" layer="21"/>
<rectangle x1="12.9921" y1="5.4737" x2="13.4239" y2="5.4991" layer="21"/>
<rectangle x1="13.6017" y1="5.4737" x2="14.0335" y2="5.4991" layer="21"/>
<rectangle x1="21.2725" y1="5.4737" x2="21.8059" y2="5.4991" layer="21"/>
<rectangle x1="4.4323" y1="5.4991" x2="4.4577" y2="5.5245" layer="21"/>
<rectangle x1="11.6967" y1="5.4991" x2="12.1285" y2="5.5245" layer="21"/>
<rectangle x1="12.3317" y1="5.4991" x2="12.7635" y2="5.5245" layer="21"/>
<rectangle x1="12.9921" y1="5.4991" x2="13.4239" y2="5.5245" layer="21"/>
<rectangle x1="13.6017" y1="5.4991" x2="14.0335" y2="5.5245" layer="21"/>
<rectangle x1="21.3741" y1="5.4991" x2="21.8059" y2="5.5245" layer="21"/>
<rectangle x1="11.6967" y1="5.5245" x2="12.1285" y2="5.5499" layer="21"/>
<rectangle x1="12.3317" y1="5.5245" x2="12.7635" y2="5.5499" layer="21"/>
<rectangle x1="12.9921" y1="5.5245" x2="13.4239" y2="5.5499" layer="21"/>
<rectangle x1="13.6017" y1="5.5245" x2="14.0335" y2="5.5499" layer="21"/>
<rectangle x1="21.4757" y1="5.5245" x2="21.8059" y2="5.5499" layer="21"/>
<rectangle x1="11.6967" y1="5.5499" x2="12.1285" y2="5.5753" layer="21"/>
<rectangle x1="12.3317" y1="5.5499" x2="12.7635" y2="5.5753" layer="21"/>
<rectangle x1="12.9921" y1="5.5499" x2="13.4239" y2="5.5753" layer="21"/>
<rectangle x1="13.6017" y1="5.5499" x2="14.0335" y2="5.5753" layer="21"/>
<rectangle x1="21.5773" y1="5.5499" x2="21.8059" y2="5.5753" layer="21"/>
<rectangle x1="11.6967" y1="5.5753" x2="12.1285" y2="5.6007" layer="21"/>
<rectangle x1="12.3317" y1="5.5753" x2="12.7635" y2="5.6007" layer="21"/>
<rectangle x1="12.9921" y1="5.5753" x2="13.4239" y2="5.6007" layer="21"/>
<rectangle x1="13.6017" y1="5.5753" x2="14.0335" y2="5.6007" layer="21"/>
<rectangle x1="21.6789" y1="5.5753" x2="21.8059" y2="5.6007" layer="21"/>
<rectangle x1="11.6967" y1="5.6007" x2="12.1285" y2="5.6261" layer="21"/>
<rectangle x1="12.3317" y1="5.6007" x2="12.7635" y2="5.6261" layer="21"/>
<rectangle x1="12.9921" y1="5.6007" x2="13.4239" y2="5.6261" layer="21"/>
<rectangle x1="13.6017" y1="5.6007" x2="14.0335" y2="5.6261" layer="21"/>
<rectangle x1="11.6967" y1="5.6261" x2="12.1285" y2="5.6515" layer="21"/>
<rectangle x1="12.3317" y1="5.6261" x2="12.7635" y2="5.6515" layer="21"/>
<rectangle x1="12.9921" y1="5.6261" x2="13.4239" y2="5.6515" layer="21"/>
<rectangle x1="13.6017" y1="5.6261" x2="14.0335" y2="5.6515" layer="21"/>
<rectangle x1="11.6967" y1="5.6515" x2="12.1285" y2="5.6769" layer="21"/>
<rectangle x1="12.3317" y1="5.6515" x2="12.7635" y2="5.6769" layer="21"/>
<rectangle x1="12.9921" y1="5.6515" x2="13.4239" y2="5.6769" layer="21"/>
<rectangle x1="13.6017" y1="5.6515" x2="14.0335" y2="5.6769" layer="21"/>
<rectangle x1="11.6967" y1="5.6769" x2="12.1285" y2="5.7023" layer="21"/>
<rectangle x1="12.3317" y1="5.6769" x2="12.7635" y2="5.7023" layer="21"/>
<rectangle x1="12.9921" y1="5.6769" x2="13.4239" y2="5.7023" layer="21"/>
<rectangle x1="13.6017" y1="5.6769" x2="14.0335" y2="5.7023" layer="21"/>
<rectangle x1="11.6967" y1="5.7023" x2="12.1285" y2="5.7277" layer="21"/>
<rectangle x1="12.3317" y1="5.7023" x2="12.7635" y2="5.7277" layer="21"/>
<rectangle x1="12.9921" y1="5.7023" x2="13.4239" y2="5.7277" layer="21"/>
<rectangle x1="13.6017" y1="5.7023" x2="14.0335" y2="5.7277" layer="21"/>
<rectangle x1="11.6967" y1="5.7277" x2="12.1285" y2="5.7531" layer="21"/>
<rectangle x1="12.3317" y1="5.7277" x2="12.7635" y2="5.7531" layer="21"/>
<rectangle x1="12.9921" y1="5.7277" x2="13.4239" y2="5.7531" layer="21"/>
<rectangle x1="13.6017" y1="5.7277" x2="14.0335" y2="5.7531" layer="21"/>
<rectangle x1="11.6967" y1="5.7531" x2="12.1285" y2="5.7785" layer="21"/>
<rectangle x1="12.3317" y1="5.7531" x2="12.7635" y2="5.7785" layer="21"/>
<rectangle x1="12.9921" y1="5.7531" x2="13.4239" y2="5.7785" layer="21"/>
<rectangle x1="13.6017" y1="5.7531" x2="14.0335" y2="5.7785" layer="21"/>
<rectangle x1="11.6967" y1="5.7785" x2="12.1285" y2="5.8039" layer="21"/>
<rectangle x1="12.3317" y1="5.7785" x2="12.7635" y2="5.8039" layer="21"/>
<rectangle x1="12.9921" y1="5.7785" x2="13.4239" y2="5.8039" layer="21"/>
<rectangle x1="13.6017" y1="5.7785" x2="14.0335" y2="5.8039" layer="21"/>
<rectangle x1="11.6967" y1="5.8039" x2="12.1285" y2="5.8293" layer="21"/>
<rectangle x1="12.3317" y1="5.8039" x2="12.7635" y2="5.8293" layer="21"/>
<rectangle x1="12.9921" y1="5.8039" x2="13.4239" y2="5.8293" layer="21"/>
<rectangle x1="13.6017" y1="5.8039" x2="14.0335" y2="5.8293" layer="21"/>
<rectangle x1="11.6967" y1="5.8293" x2="12.1285" y2="5.8547" layer="21"/>
<rectangle x1="12.3317" y1="5.8293" x2="12.7635" y2="5.8547" layer="21"/>
<rectangle x1="12.9921" y1="5.8293" x2="13.4239" y2="5.8547" layer="21"/>
<rectangle x1="13.6017" y1="5.8293" x2="14.0335" y2="5.8547" layer="21"/>
<rectangle x1="11.6967" y1="5.8547" x2="12.1285" y2="5.8801" layer="21"/>
<rectangle x1="12.3317" y1="5.8547" x2="12.7635" y2="5.8801" layer="21"/>
<rectangle x1="12.9921" y1="5.8547" x2="13.4239" y2="5.8801" layer="21"/>
<rectangle x1="13.6017" y1="5.8547" x2="14.0335" y2="5.8801" layer="21"/>
<rectangle x1="11.6967" y1="5.8801" x2="12.1285" y2="5.9055" layer="21"/>
<rectangle x1="12.3317" y1="5.8801" x2="12.7635" y2="5.9055" layer="21"/>
<rectangle x1="12.9921" y1="5.8801" x2="13.4239" y2="5.9055" layer="21"/>
<rectangle x1="13.6017" y1="5.8801" x2="14.0335" y2="5.9055" layer="21"/>
<rectangle x1="11.6967" y1="5.9055" x2="12.1285" y2="5.9309" layer="21"/>
<rectangle x1="12.3317" y1="5.9055" x2="12.7635" y2="5.9309" layer="21"/>
<rectangle x1="12.9921" y1="5.9055" x2="13.4239" y2="5.9309" layer="21"/>
<rectangle x1="13.6017" y1="5.9055" x2="14.0335" y2="5.9309" layer="21"/>
<rectangle x1="11.6967" y1="5.9309" x2="12.1285" y2="5.9563" layer="21"/>
<rectangle x1="12.3317" y1="5.9309" x2="12.7635" y2="5.9563" layer="21"/>
<rectangle x1="12.9921" y1="5.9309" x2="13.4239" y2="5.9563" layer="21"/>
<rectangle x1="13.6017" y1="5.9309" x2="14.0335" y2="5.9563" layer="21"/>
<rectangle x1="11.6967" y1="5.9563" x2="12.1285" y2="5.9817" layer="21"/>
<rectangle x1="12.3317" y1="5.9563" x2="12.7635" y2="5.9817" layer="21"/>
<rectangle x1="12.9921" y1="5.9563" x2="13.4239" y2="5.9817" layer="21"/>
<rectangle x1="13.6017" y1="5.9563" x2="14.0335" y2="5.9817" layer="21"/>
<rectangle x1="11.6967" y1="5.9817" x2="12.1285" y2="6.0071" layer="21"/>
<rectangle x1="12.3317" y1="5.9817" x2="12.7635" y2="6.0071" layer="21"/>
<rectangle x1="12.9921" y1="5.9817" x2="13.4239" y2="6.0071" layer="21"/>
<rectangle x1="13.6017" y1="5.9817" x2="14.0335" y2="6.0071" layer="21"/>
<rectangle x1="11.6967" y1="6.0071" x2="12.1285" y2="6.0325" layer="21"/>
<rectangle x1="12.3317" y1="6.0071" x2="12.7635" y2="6.0325" layer="21"/>
<rectangle x1="12.9921" y1="6.0071" x2="13.4239" y2="6.0325" layer="21"/>
<rectangle x1="13.6017" y1="6.0071" x2="14.0335" y2="6.0325" layer="21"/>
<rectangle x1="11.6967" y1="6.0325" x2="12.1285" y2="6.0579" layer="21"/>
<rectangle x1="12.3317" y1="6.0325" x2="12.7635" y2="6.0579" layer="21"/>
<rectangle x1="12.9921" y1="6.0325" x2="13.4239" y2="6.0579" layer="21"/>
<rectangle x1="13.6017" y1="6.0325" x2="14.0335" y2="6.0579" layer="21"/>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="SeeedStudio_DRU_no_angle_20130527">
<description language="de"><b>EAGLE Design Rules</b>
<p>
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"><b>EAGLE Design Rules</b>
<p>
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>
<description language="zh"><b>Seeed Studio EAGLE Design Rules</b>
</description>
<param name="layerSetup" value="(1*2*15*16)"/>
<param name="mtCopper" value="0.035mm 0.0175mm 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.0175mm 0.035mm"/>
<param name="mtIsolate" value="0.2mm 1.1mm 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="6mil"/>
<param name="mdWirePad" value="6mil"/>
<param name="mdWireVia" value="6mil"/>
<param name="mdPadPad" value="6mil"/>
<param name="mdPadVia" value="6mil"/>
<param name="mdViaVia" value="6mil"/>
<param name="mdSmdPad" value="0mil"/>
<param name="mdSmdVia" value="0mil"/>
<param name="mdSmdSmd" value="0mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="10mil"/>
<param name="mdDrill" value="10mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="6mil"/>
<param name="msDrill" value="12mil"/>
<param name="msMicroVia" value="12mil"/>
<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="6mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="6mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="6mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="6mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="6mil"/>
<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="0"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="2mil"/>
<param name="mlMaxStopFrame" value="2mil"/>
<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="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="0"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="0.02mm"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="0"/>
<param name="TopRouterVariant" value="1"/>
<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>
</autorouter>
<elements>
<element name="LOGO1" library="Logo" package="OSHW_6X100_NOTEXT" value="LOGO-OSHW-6MILX0100-NT" x="21.6" y="46.9"/>
<element name="J1" library="Tag-Connect" package="TC2030-MCP-NL" value="" x="12.8" y="30" smashed="yes" rot="R180"/>
<element name="C2" library="OPL" package="C0603" value="1u" x="22.5" y="43.7" smashed="yes" rot="R90"/>
<element name="C1" library="OPL" package="C0603" value="1u" x="9.1" y="36.8" smashed="yes" rot="R90"/>
<element name="R1" library="OPL" package="R0603" value="10k" x="20.3" y="32" smashed="yes" rot="R180"/>
<element name="R2" library="OPL" package="R0603" value="470" x="23.7" y="30.1" smashed="yes" rot="R180"/>
<element name="D1" library="OPL" package="LED0603" value="CONN" x="23.7" y="28.3" smashed="yes" rot="R180"/>
<element name="U3" library="BLEbee-1_0_0-REV-B" package="MODULE_20P-DIP-2.0-W/-SILK" value="" x="16.3" y="37.2" smashed="yes">
<attribute name="VALUE" x="12.49" y="40.375" size="1.27" layer="27" ratio="10"/>
</element>
<element name="U2" library="sf-bluegiga" package="BLE113-A" value="BLE113" x="15.8" y="43" smashed="yes"/>
<element name="R3" library="OPL" package="R0603" value="10k" x="16.9" y="30.1" smashed="yes" rot="R180"/>
<element name="R4" library="OPL" package="R0603" value="10k" x="20.3" y="30.1" smashed="yes" rot="R180"/>
<element name="U$1" library="MiKroLabs-Asthetics" package="MIKROLABS-LOGO" value="" x="22.9" y="27.7" rot="MR45"/>
</elements>
<signals>
<signal name="GND">
<contactref element="J1" pad="1"/>
<contactref element="D1" pad="-"/>
<contactref element="U3" pad="10"/>
<contactref element="U2" pad="GND@7"/>
<contactref element="U2" pad="GND"/>
<contactref element="U2" pad="GND@2"/>
<contactref element="U2" pad="GND@3"/>
<contactref element="U2" pad="GND@4"/>
<contactref element="U2" pad="GND@5"/>
<contactref element="U2" pad="GND@6"/>
<contactref element="U2" pad="GND@10"/>
<contactref element="U2" pad="GND@9"/>
<contactref element="U2" pad="GND@8"/>
<contactref element="C2" pad="2"/>
<contactref element="C1" pad="1"/>
<wire x1="20.84" y1="44.46" x2="22.5" y2="44.46" width="0.1524" layer="1"/>
<wire x1="19.98" y1="45.32" x2="20.84" y2="44.46" width="0.1524" layer="1"/>
<wire x1="19.88" y1="45.32" x2="19.98" y2="45.32" width="0.1524" layer="1"/>
<wire x1="19.86" y1="45.34" x2="19.88" y2="45.32" width="0.1524" layer="1"/>
<wire x1="19.24" y1="45.34" x2="19.86" y2="45.34" width="0.1524" layer="1"/>
<wire x1="22.5" y1="44.46" x2="22.5" y2="44.462" width="0.1524" layer="1"/>
<wire x1="19.24" y1="45.34" x2="19.225" y2="45.3375" width="0.1524" layer="1"/>
<wire x1="12.96" y1="45.34" x2="12.38" y2="45.34" width="0.1524" layer="1"/>
<wire x1="12.98" y1="45.36" x2="12.96" y2="45.34" width="0.1524" layer="1"/>
<wire x1="12.98" y1="46.12" x2="12.98" y2="45.36" width="0.1524" layer="1"/>
<wire x1="12.96" y1="46.14" x2="12.98" y2="46.12" width="0.1524" layer="1"/>
<wire x1="12.38" y1="46.14" x2="12.96" y2="46.14" width="0.1524" layer="1"/>
<wire x1="12.38" y1="45.34" x2="12.375" y2="45.3375" width="0.1524" layer="1"/>
<wire x1="12.38" y1="46.14" x2="12.375" y2="46.1375" width="0.1524" layer="1"/>
<wire x1="12.96" y1="46.94" x2="12.38" y2="46.94" width="0.1524" layer="1"/>
<wire x1="12.98" y1="46.92" x2="12.96" y2="46.94" width="0.1524" layer="1"/>
<wire x1="12.98" y1="46.2" x2="12.98" y2="46.92" width="0.1524" layer="1"/>
<wire x1="12.38" y1="46.94" x2="12.375" y2="46.9375" width="0.1524" layer="1"/>
<wire x1="12.98" y1="46.2" x2="12.375" y2="46.1375" width="0.1524" layer="1"/>
<wire x1="12.96" y1="47.74" x2="12.38" y2="47.74" width="0.1524" layer="1"/>
<wire x1="12.98" y1="47.72" x2="12.96" y2="47.74" width="0.1524" layer="1"/>
<wire x1="12.98" y1="47" x2="12.98" y2="47.72" width="0.1524" layer="1"/>
<wire x1="12.38" y1="47.74" x2="12.375" y2="47.7375" width="0.1524" layer="1"/>
<wire x1="12.98" y1="47" x2="12.375" y2="46.9375" width="0.1524" layer="1"/>
<wire x1="12.96" y1="48.54" x2="12.38" y2="48.54" width="0.1524" layer="1"/>
<wire x1="12.98" y1="48.52" x2="12.96" y2="48.54" width="0.1524" layer="1"/>
<wire x1="12.98" y1="47.8" x2="12.98" y2="48.52" width="0.1524" layer="1"/>
<wire x1="12.38" y1="48.54" x2="12.375" y2="48.5375" width="0.1524" layer="1"/>
<wire x1="12.98" y1="47.8" x2="12.375" y2="47.7375" width="0.1524" layer="1"/>
<wire x1="12.96" y1="49.34" x2="12.38" y2="49.34" width="0.1524" layer="1"/>
<wire x1="12.98" y1="49.32" x2="12.96" y2="49.34" width="0.1524" layer="1"/>
<wire x1="12.98" y1="48.6" x2="12.98" y2="49.32" width="0.1524" layer="1"/>
<wire x1="12.38" y1="49.34" x2="12.375" y2="49.3375" width="0.1524" layer="1"/>
<wire x1="12.98" y1="48.6" x2="12.375" y2="48.5375" width="0.1524" layer="1"/>
<wire x1="12.96" y1="50.14" x2="12.38" y2="50.14" width="0.1524" layer="1"/>
<wire x1="12.98" y1="50.12" x2="12.96" y2="50.14" width="0.1524" layer="1"/>
<wire x1="12.98" y1="49.4" x2="12.98" y2="50.12" width="0.1524" layer="1"/>
<wire x1="12.38" y1="50.14" x2="12.375" y2="50.1375" width="0.1524" layer="1"/>
<wire x1="12.98" y1="49.4" x2="12.375" y2="49.3375" width="0.1524" layer="1"/>
<wire x1="13.04" y1="45.34" x2="19.16" y2="45.34" width="0.1524" layer="1"/>
<wire x1="19.16" y1="45.34" x2="19.225" y2="45.3375" width="0.1524" layer="1"/>
<wire x1="13.04" y1="45.34" x2="12.375" y2="45.3375" width="0.1524" layer="1"/>
<wire x1="12.12" y1="30.64" x2="12.02" y2="30.64" width="0.1524" layer="1"/>
<wire x1="12.02" y1="30.64" x2="11.54" y2="30.64" width="0.1524" layer="1"/>
<wire x1="12.14" y1="30.66" x2="12.12" y2="30.64" width="0.1524" layer="1"/>
<wire x1="12.14" y1="36.54" x2="12.14" y2="35.26" width="0.1524" layer="1"/>
<wire x1="12.14" y1="35.26" x2="12.14" y2="30.66" width="0.1524" layer="1"/>
<wire x1="12.36" y1="36.54" x2="12.14" y2="36.54" width="0.1524" layer="1"/>
<wire x1="11.54" y1="30.64" x2="11.53" y2="30.635" width="0.1524" layer="1"/>
<wire x1="12.36" y1="36.54" x2="12.375" y2="36.5375" width="0.1524" layer="1"/>
<wire x1="8.74" y1="36.04" x2="9.1" y2="36.04" width="0.1524" layer="1"/>
<wire x1="8.74" y1="36.06" x2="8.74" y2="36.04" width="0.1524" layer="1"/>
<wire x1="8.78" y1="36.1" x2="8.74" y2="36.06" width="0.1524" layer="1"/>
<wire x1="9.06" y1="36.1" x2="8.78" y2="36.1" width="0.1524" layer="1"/>
<wire x1="9.12" y1="36.04" x2="9.06" y2="36.1" width="0.1524" layer="1"/>
<wire x1="11.24" y1="36.04" x2="9.12" y2="36.04" width="0.1524" layer="1"/>
<wire x1="11.74" y1="36.54" x2="11.24" y2="36.04" width="0.1524" layer="1"/>
<wire x1="12.08" y1="36.54" x2="11.74" y2="36.54" width="0.1524" layer="1"/>
<wire x1="9.1" y1="36.04" x2="9.1" y2="36.038" width="0.1524" layer="1"/>
<wire x1="12.08" y1="36.54" x2="12.375" y2="36.5375" width="0.1524" layer="1"/>
<wire x1="22.94" y1="28.66" x2="22.94" y2="28.3" width="0.1524" layer="1"/>
<wire x1="22.96" y1="28.66" x2="22.94" y2="28.66" width="0.1524" layer="1"/>
<wire x1="23" y1="28.62" x2="22.96" y2="28.66" width="0.1524" layer="1"/>
<wire x1="23" y1="28.34" x2="23" y2="28.62" width="0.1524" layer="1"/>
<wire x1="22.94" y1="28.28" x2="23" y2="28.34" width="0.1524" layer="1"/>
<wire x1="22.94" y1="27.66" x2="22.94" y2="28.28" width="0.1524" layer="1"/>
<wire x1="22.62" y1="27.34" x2="22.94" y2="27.66" width="0.1524" layer="1"/>
<wire x1="14.32" y1="27.34" x2="22.62" y2="27.34" width="0.1524" layer="1"/>
<wire x1="12.14" y1="29.52" x2="14.27" y2="27.39" width="0.1524" layer="1"/>
<wire x1="14.27" y1="27.39" x2="14.32" y2="27.34" width="0.1524" layer="1"/>
<wire x1="12.14" y1="29.56" x2="12.14" y2="29.52" width="0.1524" layer="1"/>
<wire x1="12.12" y1="29.58" x2="12.14" y2="29.56" width="0.1524" layer="1"/>
<wire x1="12.12" y1="29.6" x2="12.12" y2="29.58" width="0.1524" layer="1"/>
<wire x1="12.1" y1="29.62" x2="12.12" y2="29.6" width="0.1524" layer="1"/>
<wire x1="12.1" y1="29.66" x2="12.1" y2="29.62" width="0.1524" layer="1"/>
<wire x1="12.08" y1="29.68" x2="12.1" y2="29.66" width="0.1524" layer="1"/>
<wire x1="12.08" y1="29.7" x2="12.08" y2="29.68" width="0.1524" layer="1"/>
<wire x1="12.02" y1="29.76" x2="12.08" y2="29.7" width="0.1524" layer="1"/>
<wire x1="12.02" y1="30.64" x2="12.02" y2="29.76" width="0.1524" layer="1"/>
<wire x1="22.94" y1="28.3" x2="22.938" y2="28.3" width="0.1524" layer="1"/>
<wire x1="18.64" y1="36.54" x2="19.22" y2="36.54" width="0.1524" layer="1"/>
<wire x1="18.32" y1="36.22" x2="18.64" y2="36.54" width="0.1524" layer="1"/>
<wire x1="18.32" y1="35.28" x2="18.32" y2="36.22" width="0.1524" layer="1"/>
<wire x1="18.3" y1="35.26" x2="18.32" y2="35.28" width="0.1524" layer="1"/>
<wire x1="12.14" y1="35.26" x2="18.3" y2="35.26" width="0.1524" layer="1"/>
<wire x1="19.22" y1="36.54" x2="19.225" y2="36.5375" width="0.1524" layer="1"/>
<wire x1="6.16" y1="27.34" x2="5.3" y2="28.2" width="0.1524" layer="1"/>
<wire x1="14.22" y1="27.34" x2="6.16" y2="27.34" width="0.1524" layer="1"/>
<wire x1="14.22" y1="27.34" x2="14.27" y2="27.39" width="0.1524" layer="1"/>
<wire x1="23.1" y1="44.46" x2="22.56" y2="44.46" width="0.1524" layer="1"/>
<wire x1="23.22" y1="44.34" x2="23.1" y2="44.46" width="0.1524" layer="1"/>
<wire x1="23.22" y1="39.78" x2="23.22" y2="44.34" width="0.1524" layer="1"/>
<wire x1="20" y1="36.56" x2="23.22" y2="39.78" width="0.1524" layer="1"/>
<wire x1="19.88" y1="36.56" x2="20" y2="36.56" width="0.1524" layer="1"/>
<wire x1="19.86" y1="36.54" x2="19.88" y2="36.56" width="0.1524" layer="1"/>
<wire x1="19.3" y1="36.54" x2="19.86" y2="36.54" width="0.1524" layer="1"/>
<wire x1="22.56" y1="44.46" x2="22.5" y2="44.462" width="0.1524" layer="1"/>
<wire x1="19.3" y1="36.54" x2="19.225" y2="36.5375" width="0.1524" layer="1"/>
</signal>
<signal name="3.3V">
<contactref element="J1" pad="2"/>
<contactref element="R1" pad="2"/>
<contactref element="U3" pad="1"/>
<contactref element="U2" pad="AVDD"/>
<contactref element="C2" pad="1"/>
<contactref element="U2" pad="DVDD"/>
<contactref element="C1" pad="2"/>
<contactref element="R3" pad="1"/>
<contactref element="R4" pad="1"/>
<wire x1="20.48" y1="30.1" x2="21.062" y2="30.1" width="0.1524" layer="1"/>
<wire x1="20.26" y1="30.32" x2="20.48" y2="30.1" width="0.1524" layer="1"/>
<wire x1="20.26" y1="31.9" x2="20.26" y2="30.32" width="0.1524" layer="1"/>
<wire x1="20.16" y1="32" x2="20.26" y2="31.9" width="0.1524" layer="1"/>
<wire x1="19.538" y1="32" x2="20.16" y2="32" width="0.1524" layer="1"/>
<wire x1="11.86" y1="29.36" x2="11.54" y2="29.36" width="0.1524" layer="1"/>
<wire x1="12.14" y1="29.08" x2="11.86" y2="29.36" width="0.1524" layer="1"/>
<wire x1="12.14" y1="28.76" x2="12.14" y2="29.08" width="0.1524" layer="1"/>
<wire x1="16.22" y1="28.76" x2="12.14" y2="28.76" width="0.1524" layer="16"/>
<wire x1="17.02" y1="29.56" x2="16.22" y2="28.76" width="0.1524" layer="1"/>
<wire x1="17.02" y1="30.08" x2="17.02" y2="29.56" width="0.1524" layer="1"/>
<wire x1="17.04" y1="30.1" x2="17.02" y2="30.08" width="0.1524" layer="1"/>
<wire x1="17.662" y1="30.1" x2="17.04" y2="30.1" width="0.1524" layer="1"/>
<wire x1="11.54" y1="29.36" x2="11.53" y2="29.365" width="0.1524" layer="1"/>
<wire x1="18.94" y1="32" x2="19.538" y2="32" width="0.1524" layer="1"/>
<wire x1="18.32" y1="31.38" x2="18.94" y2="32" width="0.1524" layer="1"/>
<wire x1="18.32" y1="30.12" x2="18.32" y2="31.38" width="0.1524" layer="1"/>
<wire x1="18.3" y1="30.1" x2="18.32" y2="30.12" width="0.1524" layer="1"/>
<wire x1="17.662" y1="30.1" x2="18.3" y2="30.1" width="0.1524" layer="1"/>
<wire x1="8.74" y1="37.56" x2="9.1" y2="37.56" width="0.1524" layer="1"/>
<wire x1="8.74" y1="37.54" x2="8.74" y2="37.56" width="0.1524" layer="1"/>
<wire x1="8.78" y1="37.5" x2="8.74" y2="37.54" width="0.1524" layer="1"/>
<wire x1="9.06" y1="37.5" x2="8.78" y2="37.5" width="0.1524" layer="1"/>
<wire x1="9.12" y1="37.56" x2="9.06" y2="37.5" width="0.1524" layer="1"/>
<wire x1="11.52" y1="37.56" x2="10.94" y2="37.56" width="0.1524" layer="1"/>
<wire x1="10.94" y1="37.56" x2="9.12" y2="37.56" width="0.1524" layer="1"/>
<wire x1="11.74" y1="37.34" x2="11.52" y2="37.56" width="0.1524" layer="1"/>
<wire x1="12.36" y1="37.34" x2="11.74" y2="37.34" width="0.1524" layer="1"/>
<wire x1="9.1" y1="37.56" x2="9.1" y2="37.562" width="0.1524" layer="1"/>
<wire x1="12.36" y1="37.34" x2="12.375" y2="37.3375" width="0.1524" layer="1"/>
<wire x1="20.44" y1="42.94" x2="22.5" y2="42.94" width="0.1524" layer="1"/>
<wire x1="14.7" y1="42.94" x2="20.44" y2="42.94" width="0.1524" layer="16"/>
<wire x1="13.12" y1="44.52" x2="14.7" y2="42.94" width="0.1524" layer="1"/>
<wire x1="13.02" y1="44.52" x2="13.12" y2="44.52" width="0.1524" layer="1"/>
<wire x1="13" y1="44.54" x2="13.02" y2="44.52" width="0.1524" layer="1"/>
<wire x1="12.38" y1="44.54" x2="13" y2="44.54" width="0.1524" layer="1"/>
<wire x1="22.5" y1="42.94" x2="22.5" y2="42.938" width="0.1524" layer="1"/>
<wire x1="12.38" y1="44.54" x2="12.375" y2="44.5375" width="0.1524" layer="1"/>
<wire x1="13.12" y1="37.34" x2="12.44" y2="37.34" width="0.1524" layer="1"/>
<wire x1="14.66" y1="38.88" x2="13.12" y2="37.34" width="0.1524" layer="1"/>
<wire x1="14.66" y1="42.88" x2="14.66" y2="38.88" width="0.1524" layer="1"/>
<wire x1="12.44" y1="37.34" x2="12.375" y2="37.3375" width="0.1524" layer="1"/>
<wire x1="14.66" y1="42.88" x2="14.7" y2="42.94" width="0.1524" layer="1"/>
<wire x1="9.96" y1="46.2" x2="5.3" y2="46.2" width="0.1524" layer="1"/>
<wire x1="11.6" y1="44.56" x2="9.96" y2="46.2" width="0.1524" layer="1"/>
<wire x1="11.72" y1="44.56" x2="11.6" y2="44.56" width="0.1524" layer="1"/>
<wire x1="11.74" y1="44.54" x2="11.72" y2="44.56" width="0.1524" layer="1"/>
<wire x1="12.3" y1="44.54" x2="11.74" y2="44.54" width="0.1524" layer="1"/>
<wire x1="12.3" y1="44.54" x2="12.375" y2="44.5375" width="0.1524" layer="1"/>
<wire x1="10.96" y1="29.36" x2="11.46" y2="29.36" width="0.1524" layer="1"/>
<wire x1="10.94" y1="29.38" x2="10.96" y2="29.36" width="0.1524" layer="1"/>
<wire x1="10.94" y1="29.98" x2="10.94" y2="29.38" width="0.1524" layer="1"/>
<wire x1="10.94" y1="37.5" x2="10.94" y2="29.98" width="0.1524" layer="16"/>
<wire x1="11.46" y1="29.36" x2="11.53" y2="29.365" width="0.1524" layer="1"/>
<wire x1="10.94" y1="37.5" x2="10.94" y2="37.56" width="0.1524" layer="1"/>
<via x="12.14" y="28.76" extent="1-16" drill="0.3048"/>
<via x="16.22" y="28.76" extent="1-16" drill="0.3048"/>
<via x="20.44" y="42.94" extent="1-16" drill="0.3048"/>
<via x="14.7" y="42.94" extent="1-16" drill="0.3048"/>
<via x="10.94" y="29.98" extent="1-16" drill="0.3048"/>
<via x="10.94" y="37.5" extent="1-16" drill="0.3048"/>
</signal>
<signal name="N$1">
<contactref element="R2" pad="1"/>
<contactref element="D1" pad="+"/>
<wire x1="24.46" y1="30.08" x2="24.46" y2="28.3" width="0.1524" layer="1"/>
<wire x1="24.44" y1="30.1" x2="24.46" y2="30.08" width="0.1524" layer="1"/>
<wire x1="24.12" y1="30.1" x2="24.44" y2="30.1" width="0.1524" layer="1"/>
<wire x1="24.12" y1="30.12" x2="24.12" y2="30.1" width="0.1524" layer="1"/>
<wire x1="24.16" y1="30.16" x2="24.12" y2="30.12" width="0.1524" layer="1"/>
<wire x1="24.4" y1="30.16" x2="24.16" y2="30.16" width="0.1524" layer="1"/>
<wire x1="24.46" y1="30.1" x2="24.4" y2="30.16" width="0.1524" layer="1"/>
<wire x1="24.46" y1="28.3" x2="24.462" y2="28.3" width="0.1524" layer="1"/>
<wire x1="24.46" y1="30.1" x2="24.462" y2="30.1" width="0.1524" layer="1"/>
</signal>
<signal name="RESET_BLE">
<contactref element="J1" pad="4"/>
<contactref element="R1" pad="1"/>
<contactref element="U3" pad="5"/>
<contactref element="U2" pad="RESET"/>
<wire x1="9.68" y1="29.36" x2="10.26" y2="29.36" width="0.1524" layer="1"/>
<wire x1="9.66" y1="29.38" x2="9.68" y2="29.36" width="0.1524" layer="1"/>
<wire x1="9.66" y1="29.98" x2="9.66" y2="29.38" width="0.1524" layer="1"/>
<wire x1="9.66" y1="33.84" x2="9.66" y2="29.98" width="0.1524" layer="16"/>
<wire x1="5.3" y1="38.2" x2="9.66" y2="33.84" width="0.1524" layer="16"/>
<wire x1="10.26" y1="29.36" x2="10.26" y2="29.365" width="0.1524" layer="1"/>
<wire x1="20.58" y1="32" x2="21.062" y2="32" width="0.1524" layer="1"/>
<wire x1="20.58" y1="31.3" x2="20.58" y2="32" width="0.1524" layer="1"/>
<wire x1="20.8" y1="31.08" x2="20.58" y2="31.3" width="0.1524" layer="1"/>
<wire x1="17.06" y1="27.34" x2="20.25" y2="30.53" width="0.1524" layer="16"/>
<wire x1="20.25" y1="30.53" x2="20.8" y2="31.08" width="0.1524" layer="16"/>
<wire x1="12.32" y1="27.34" x2="17.06" y2="27.34" width="0.1524" layer="16"/>
<wire x1="10.88" y1="28.78" x2="12.32" y2="27.34" width="0.1524" layer="16"/>
<wire x1="10.76" y1="28.9" x2="10.88" y2="28.78" width="0.1524" layer="1"/>
<wire x1="10.76" y1="29.12" x2="10.76" y2="28.9" width="0.1524" layer="1"/>
<wire x1="10.62" y1="29.26" x2="10.76" y2="29.12" width="0.1524" layer="1"/>
<wire x1="10.62" y1="29.36" x2="10.62" y2="29.26" width="0.1524" layer="1"/>
<wire x1="10.32" y1="29.36" x2="10.62" y2="29.36" width="0.1524" layer="1"/>
<wire x1="10.32" y1="29.36" x2="10.26" y2="29.365" width="0.1524" layer="1"/>
<wire x1="18.5" y1="43.74" x2="19.22" y2="43.74" width="0.1524" layer="1"/>
<wire x1="18.12" y1="43.36" x2="18.5" y2="43.74" width="0.1524" layer="1"/>
<wire x1="18.12" y1="38.54" x2="18.12" y2="43.36" width="0.1524" layer="1"/>
<wire x1="18.12" y1="38.12" x2="18.12" y2="38.54" width="0.1524" layer="16"/>
<wire x1="18.54" y1="37.7" x2="18.12" y2="38.12" width="0.1524" layer="16"/>
<wire x1="18.54" y1="37.38" x2="18.54" y2="37.7" width="0.1524" layer="16"/>
<wire x1="19.18" y1="36.74" x2="18.54" y2="37.38" width="0.1524" layer="16"/>
<wire x1="19.18" y1="31.6" x2="19.18" y2="36.74" width="0.1524" layer="16"/>
<wire x1="20.25" y1="30.53" x2="19.18" y2="31.6" width="0.1524" layer="16"/>
<wire x1="19.22" y1="43.74" x2="19.225" y2="43.7375" width="0.1524" layer="1"/>
<via x="9.66" y="29.98" extent="1-16" drill="0.3048"/>
<via x="20.8" y="31.08" extent="1-16" drill="0.3048"/>
<via x="10.88" y="28.78" extent="1-16" drill="0.3048"/>
<via x="18.12" y="38.54" extent="1-16" drill="0.3048"/>
</signal>
<signal name="P0_0">
<contactref element="R2" pad="2"/>
<contactref element="U2" pad="P0_0"/>
<wire x1="22.3" y1="30.1" x2="22.938" y2="30.1" width="0.1524" layer="1"/>
<wire x1="21.98" y1="30.42" x2="22.3" y2="30.1" width="0.1524" layer="1"/>
<wire x1="21.98" y1="30.66" x2="21.98" y2="30.42" width="0.1524" layer="16"/>
<wire x1="21.02" y1="31.62" x2="21.98" y2="30.66" width="0.1524" layer="16"/>
<wire x1="19.6" y1="31.62" x2="21.02" y2="31.62" width="0.1524" layer="16"/>
<wire x1="19.5" y1="31.72" x2="19.6" y2="31.62" width="0.1524" layer="16"/>
<wire x1="19.5" y1="41.24" x2="19.5" y2="31.72" width="0.1524" layer="16"/>
<wire x1="20.98" y1="42.72" x2="19.5" y2="41.24" width="0.1524" layer="16"/>
<wire x1="20.98" y1="43.48" x2="20.98" y2="42.72" width="0.1524" layer="16"/>
<wire x1="20.22" y1="43.48" x2="20.98" y2="43.48" width="0.1524" layer="1"/>
<wire x1="19.88" y1="43.14" x2="20.22" y2="43.48" width="0.1524" layer="1"/>
<wire x1="19.88" y1="42.96" x2="19.88" y2="43.14" width="0.1524" layer="1"/>
<wire x1="19.86" y1="42.94" x2="19.88" y2="42.96" width="0.1524" layer="1"/>
<wire x1="19.24" y1="42.94" x2="19.86" y2="42.94" width="0.1524" layer="1"/>
<wire x1="19.24" y1="42.94" x2="19.225" y2="42.9375" width="0.1524" layer="1"/>
<via x="21.98" y="30.42" extent="1-16" drill="0.3048"/>
<via x="20.98" y="43.48" extent="1-16" drill="0.3048"/>
</signal>
<signal name="P0_4/TX">
<contactref element="U3" pad="2"/>
<contactref element="U2" pad="P0_4"/>
<wire x1="20.02" y1="39.74" x2="19.24" y2="39.74" width="0.1524" layer="1"/>
<wire x1="20.36" y1="40.08" x2="20.02" y2="39.74" width="0.1524" layer="1"/>
<wire x1="22.98" y1="40.08" x2="20.36" y2="40.08" width="0.1524" layer="16"/>
<wire x1="23.48" y1="39.58" x2="22.98" y2="40.08" width="0.1524" layer="16"/>
<wire x1="23.48" y1="39.26" x2="23.48" y2="39.58" width="0.1524" layer="16"/>
<wire x1="23.48" y1="39.6" x2="23.48" y2="39.26" width="0.1524" layer="1"/>
<wire x1="23.54" y1="39.66" x2="23.48" y2="39.6" width="0.1524" layer="1"/>
<wire x1="23.54" y1="41.68" x2="23.54" y2="39.66" width="0.1524" layer="1"/>
<wire x1="23.76" y1="41.9" x2="23.54" y2="41.68" width="0.1524" layer="1"/>
<wire x1="21.32" y1="44.34" x2="23.76" y2="41.9" width="0.1524" layer="16"/>
<wire x1="7" y1="44.34" x2="21.32" y2="44.34" width="0.1524" layer="16"/>
<wire x1="6.86" y1="44.2" x2="7" y2="44.34" width="0.1524" layer="16"/>
<wire x1="5.3" y1="44.2" x2="6.86" y2="44.2" width="0.1524" layer="16"/>
<wire x1="19.24" y1="39.74" x2="19.225" y2="39.7375" width="0.1524" layer="1"/>
<via x="20.36" y="40.08" extent="1-16" drill="0.3048"/>
<via x="23.48" y="39.26" extent="1-16" drill="0.3048"/>
<via x="23.76" y="41.9" extent="1-16" drill="0.3048"/>
</signal>
<signal name="P0_5/RX">
<contactref element="U3" pad="3"/>
<contactref element="U2" pad="P0_5"/>
<wire x1="19.98" y1="38.94" x2="19.24" y2="38.94" width="0.1524" layer="1"/>
<wire x1="22.24" y1="41.2" x2="19.98" y2="38.94" width="0.1524" layer="1"/>
<wire x1="22.24" y1="42.02" x2="22.24" y2="41.2" width="0.1524" layer="1"/>
<wire x1="22.24" y1="42.98" x2="22.24" y2="42.02" width="0.1524" layer="16"/>
<wire x1="21.2" y1="44.02" x2="22.24" y2="42.98" width="0.1524" layer="16"/>
<wire x1="7.12" y1="44.02" x2="21.2" y2="44.02" width="0.1524" layer="16"/>
<wire x1="5.3" y1="42.2" x2="7.12" y2="44.02" width="0.1524" layer="16"/>
<wire x1="19.24" y1="38.94" x2="19.225" y2="38.9375" width="0.1524" layer="1"/>
<via x="22.24" y="42.02" extent="1-16" drill="0.3048"/>
</signal>
<signal name="P2_1">
<contactref element="J1" pad="5"/>
<contactref element="U2" pad="P2_1"/>
<wire x1="8.5" y1="30.64" x2="8.98" y2="30.64" width="0.1524" layer="1"/>
<wire x1="8.5" y1="35.22" x2="8.5" y2="30.64" width="0.1524" layer="1"/>
<wire x1="8.38" y1="35.34" x2="8.5" y2="35.22" width="0.1524" layer="1"/>
<wire x1="8.38" y1="39.68" x2="8.38" y2="35.34" width="0.1524" layer="1"/>
<wire x1="11.62" y1="42.92" x2="8.38" y2="39.68" width="0.1524" layer="1"/>
<wire x1="11.72" y1="42.92" x2="11.62" y2="42.92" width="0.1524" layer="1"/>
<wire x1="11.74" y1="42.94" x2="11.72" y2="42.92" width="0.1524" layer="1"/>
<wire x1="12.36" y1="42.94" x2="11.74" y2="42.94" width="0.1524" layer="1"/>
<wire x1="8.98" y1="30.64" x2="8.99" y2="30.635" width="0.1524" layer="1"/>
<wire x1="12.36" y1="42.94" x2="12.375" y2="42.9375" width="0.1524" layer="1"/>
</signal>
<signal name="P2_2">
<contactref element="J1" pad="3"/>
<contactref element="U2" pad="P2_2"/>
<wire x1="9.9" y1="30.64" x2="10.26" y2="30.64" width="0.1524" layer="1"/>
<wire x1="9.9" y1="30.66" x2="9.9" y2="30.64" width="0.1524" layer="1"/>
<wire x1="9.94" y1="30.7" x2="9.9" y2="30.66" width="0.1524" layer="1"/>
<wire x1="10.22" y1="30.7" x2="9.94" y2="30.7" width="0.1524" layer="1"/>
<wire x1="10.28" y1="30.64" x2="10.22" y2="30.7" width="0.1524" layer="1"/>
<wire x1="10.84" y1="30.64" x2="10.28" y2="30.64" width="0.1524" layer="1"/>
<wire x1="10.86" y1="30.66" x2="10.84" y2="30.64" width="0.1524" layer="1"/>
<wire x1="10.86" y1="34.9" x2="10.86" y2="30.66" width="0.1524" layer="1"/>
<wire x1="11.48" y1="35.52" x2="10.86" y2="34.9" width="0.1524" layer="1"/>
<wire x1="11.26" y1="35.74" x2="11.48" y2="35.52" width="0.1524" layer="16"/>
<wire x1="11.26" y1="37.06" x2="11.26" y2="35.74" width="0.1524" layer="16"/>
<wire x1="11.48" y1="37.28" x2="11.26" y2="37.06" width="0.1524" layer="16"/>
<wire x1="11.48" y1="43.14" x2="11.48" y2="37.28" width="0.1524" layer="16"/>
<wire x1="11.26" y1="43.36" x2="11.48" y2="43.14" width="0.1524" layer="16"/>
<wire x1="11.62" y1="43.72" x2="11.26" y2="43.36" width="0.1524" layer="1"/>
<wire x1="11.72" y1="43.72" x2="11.62" y2="43.72" width="0.1524" layer="1"/>
<wire x1="11.74" y1="43.74" x2="11.72" y2="43.72" width="0.1524" layer="1"/>
<wire x1="12.36" y1="43.74" x2="11.74" y2="43.74" width="0.1524" layer="1"/>
<wire x1="10.26" y1="30.64" x2="10.26" y2="30.635" width="0.1524" layer="1"/>
<wire x1="12.36" y1="43.74" x2="12.375" y2="43.7375" width="0.1524" layer="1"/>
<via x="11.48" y="35.52" extent="1-16" drill="0.3048"/>
<via x="11.26" y="43.36" extent="1-16" drill="0.3048"/>
</signal>
<signal name="N$2">
<polygon width="0.254" layer="1">
<vertex x="4.2" y="46.3"/>
<vertex x="10.5" y="52.6"/>
<vertex x="15.9" y="52.6"/>
<vertex x="15.9" y="45.9"/>
<vertex x="28.4" y="45.9"/>
<vertex x="28.4" y="27.1"/>
<vertex x="4.2" y="27.1"/>
</polygon>
</signal>
<signal name="N$3">
<polygon width="0.254" layer="16">
<vertex x="4.2" y="46.3"/>
<vertex x="10.5" y="52.6"/>
<vertex x="15.9" y="52.6"/>
<vertex x="15.9" y="45.9"/>
<vertex x="28.4" y="45.9"/>
<vertex x="28.4" y="27.2"/>
<vertex x="4.2" y="27.2"/>
</polygon>
</signal>
<signal name="P0_1">
<contactref element="U3" pad="15"/>
<contactref element="U2" pad="P0_1"/>
<wire x1="21.36" y1="42.14" x2="19.24" y2="42.14" width="0.1524" layer="1"/>
<wire x1="27.3" y1="36.2" x2="21.36" y2="42.14" width="0.1524" layer="16"/>
<wire x1="19.24" y1="42.14" x2="19.225" y2="42.1375" width="0.1524" layer="1"/>
<via x="21.36" y="42.14" extent="1-16" drill="0.3048"/>
</signal>
<signal name="N$12">
<contactref element="U2" pad="P1_0"/>
<contactref element="R4" pad="2"/>
<wire x1="18.9" y1="30.1" x2="19.538" y2="30.1" width="0.1524" layer="1"/>
<wire x1="18.64" y1="30.36" x2="18.9" y2="30.1" width="0.1524" layer="1"/>
<wire x1="18.64" y1="30.94" x2="18.64" y2="30.36" width="0.1524" layer="1"/>
<wire x1="18.86" y1="31.16" x2="18.64" y2="30.94" width="0.1524" layer="1"/>
<wire x1="18.86" y1="36.62" x2="18.86" y2="31.16" width="0.1524" layer="16"/>
<wire x1="18" y1="37


text:
.48" x2="18.86" y2="36.62" width="0.1524" layer="16"/>
<wire x1="18" y1="37.12" x2="18" y2="37.48" width="0.1524" layer="1"/>
<wire x1="17.8" y1="36.92" x2="18" y2="37.12" width="0.1524" layer="1"/>
<wire x1="17.8" y1="36.2875" x2="17.8" y2="36.92" width="0.1524" layer="1"/>
<via x="18.86" y="31.16" extent="1-16" drill="0.3048"/>
<via x="18" y="37.48" extent="1-16" drill="0.3048"/>
</signal>
<signal name="N$13">
<contactref element="U2" pad="P1_1"/>
<contactref element="R3" pad="2"/>
<wire x1="16.64" y1="30.1" x2="16.138" y2="30.1" width="0.1524" layer="1"/>
<wire x1="16.64" y1="34.72" x2="16.64" y2="30.1" width="0.1524" layer="1"/>
<wire x1="16.64" y1="37.38" x2="16.64" y2="34.72" width="0.1524" layer="16"/>
<wire x1="16.62" y1="37.4" x2="16.64" y2="37.38" width="0.1524" layer="16"/>
<wire x1="16.98" y1="37.04" x2="16.62" y2="37.4" width="0.1524" layer="1"/>
<wire x1="16.98" y1="36.94" x2="16.98" y2="37.04" width="0.1524" layer="1"/>
<wire x1="17" y1="36.92" x2="16.98" y2="36.94" width="0.1524" layer="1"/>
<wire x1="17" y1="36.2875" x2="17" y2="36.92" width="0.1524" layer="1"/>
<via x="16.64" y="34.72" extent="1-16" drill="0.3048"/>
<via x="16.62" y="37.4" extent="1-16" drill="0.3048"/>
</signal>
</signals>
</board>
</drawing>
</eagle>

license: MIT

repository: NormanHung/BLEbee

license_type: permissive

repo_name: NormanHung/BLEbee

branch_name: refs/heads/master

extension: brd


text:
package auth

import (
	"fmt"
	"log"
	"math/rand"
	"net/rpc"
	"strings"
	"sync"
	"sync/atomic"
	"time"
)

type Clients struct {
	sync.RWMutex
	clients       map[string]*rpc.Client
	addresses     []string
	initConnsFlag int32
}

func NewClients(addresses []string) *Clients {
	cs := &Clients{}
	cs.addresses = addresses
	cs.clients = make(map[string]*rpc.Client)
	cs.initConnsFlag = 0
	return cs
}

func (cs *Clients) hasInit() bool {
	return atomic.LoadInt32(&cs.initConnsFlag) == 1
}

func (cs *Clients) setInitConnsFlag(val int32) {
	atomic.StoreInt32(&cs.initConnsFlag, val)
}

func (this *Clients) initConns() error {
	addresses := this.GetAddresses()
	count := len(addresses)

	if count == 0 {
		return fmt.Errorf("backend is blank")
	}

	var ee error
	for i := 0; i < count; i++ {
		endpoint := addresses[i]
		client, err := NewClient("tcp", endpoint, time.Second)
		if err != nil {
			log.Println("[F] cannot connect to", endpoint)
			ee = err
		}
		this.clients[endpoint] = client
	}

	return ee
}

// 这里的做法很简单，addresses列表一旦初始化设置好，就不变了，所以获取的时候也无需加锁
// 以后可以考虑做一个健康检查自动摘掉坏的实例，那个时候就要加锁了，复杂性增加，以后再说
func (this *Clients) GetAddresses() []string {
	return this.addresses
}

func (this *Clients) SetAddresses(addresses []string) {
	this.addresses = addresses
}

func (this *Clients) SetClients(clients map[string]*rpc.Client) {
	this.Lock()
	this.clients = clients
	this.Unlock()
}

func (this *Clients) PutClient(addr string, client *rpc.Client) {
	this.Lock()
	c, has := this.clients[addr]
	if has && c != nil {
		c.Close()
	}

	this.clients[addr] = client
	this.Unlock()
}

func (this *Clients) GetClient(addr string) (*rpc.Client, bool) {
	this.RLock()
	c, has := this.clients[addr]
	this.RUnlock()
	return c, has
}

func (this *Clients) Call(method string, args, reply interface{}) error {
	if !this.hasInit() {
		if err := this.initConns(); err != nil {
			return err
		}
		this.setInitConnsFlag(1)
	}

	addrs := this.GetAddresses()

	r := rand.New(rand.NewSource(time.Now().UnixNano()))
	for _, i := range r.Perm(len(addrs)) {
		addr := addrs[i]
		client, has := this.GetClient(addr)
		if !has {
			log.Println(addr, "has no client")
			continue
		}

		err := client.Call(method, args, reply)
		if err == nil {
			return nil
		}

		if err == rpc.ErrShutdown || strings.Contains(err.Error(), "connection refused") {
			// 后端可能重启了以至于原来持有的连接关闭，或者后端挂了
			// 可以尝试再次建立连接，搞定重启的情况
			client, err = NewClient("tcp", addr, time.Second)
			if err != nil {
				// 后端确实死翘翘了，继续尝试别的后端
				log.Println(addr, "is dead")
				continue
			} else {
				// 重新建立了与该实例的连接
				this.PutClient(addr, client)
				return client.Call(method, args, reply)
			}
		}

		// 刚开始后端没挂，但是仍然失败了，比如请求时间比较长，还没有结束，后端重启了，unexpected EOF
		// 不确定此时后端逻辑是否真的执行过了，防止后端逻辑不幂等，无法重试
		return err
	}

	return fmt.Errorf("all backends are dead")
}

repository: zhengjianwen/probe

repo_name: zhengjianwen/probe

extension: go


text:
if(NOT TARGET LibXml2::LibXml2)
    find_package(LibLZMA QUIET REQUIRED)
    find_package(unofficial-iconv CONFIG QUIET REQUIRED)
    add_library(LibXml2::LibXml2 STATIC IMPORTED)
    set_target_properties(LibXml2::LibXml2 PROPERTIES
        INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include"
        INTERFACE_LINK_LIBRARIES "LibLZMA::LibLZMA;unofficial::iconv::libcharset"
        IMPORTED_LOCATION "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libxml2${CMAKE_STATIC_LIBRARY_SUFFIX}"
        IMPORTED_LOCATION_DEBUG "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/libxml2d${CMAKE_STATIC_LIBRARY_SUFFIX}"
    )
    set(LibXml2_FOUND TRUE)
endif()

repository: dirkvdb/vcpkg-ports

repo_name: dirkvdb/vcpkg-ports

gha_license_id: MIT

extension: cmake


text:
package _350_intersection_of_two_arrays_II

import (
	"fmt"
	"testing"
)

func TestIntersect(t *testing.T) {
	nums1 := []int{4, 9, 5}
	nums2 := []int{9, 4, 9, 8, 4}
	fmt.Println(intersect(nums1, nums2))
}

repository: yangzhengkun/goleetcode

repo_name: yangzhengkun/goleetcode


text:
package server

import (
	"context"
	"crypto/tls"
	"io"
	"net"
	"net/http"
	"os"

	"k0s.io"
	"k0s.io/pkg/agent"
	"k0s.io/pkg/api"
	"k0s.io/pkg/log"
	"nhooyr.io/websocket"
)

func init() { Tunnels[api.Xpra] = StartXpraServer }

func StartXpraServer(c agent.Config) chan net.Conn {
	xpraListener := NewLys()
	go xpraServe(xpraListener)
	return xpraListener.Conns
}

func wsdial(u string) (*websocket.Conn, net.Conn, error) {
	var (
		h = http.Header{}
		t = &http.Client{
			Transport: &http.Transport{
				TLSClientConfig: &tls.Config{
					InsecureSkipVerify: true,
				},
			},
		}
		opts = &websocket.DialOptions{
			HTTPClient:      t,
			HTTPHeader:      h,
			Subprotocols:    []string{"binary"},
			CompressionMode: websocket.CompressionContextTakeover,
		}
	)

	wsconn, _, err := websocket.Dial(context.Background(), u, opts)
	if err != nil {
		return nil, nil, err
	}
	wsconn.SetReadLimit(k0s.MAX_WS_MESSAGE)
	return wsconn, websocket.NetConn(context.Background(), wsconn, websocket.MessageBinary), nil
}

func xpraHandle(c net.Conn) {
	u := envXpra()

	log.Println("XPRA: ", u, c.RemoteAddr())

	_, dnetconn, err := wsdial(u)
	if err != nil {
		log.Println(err)
		c.Close()
		return
	}

	// go io.Copy(c, d)
	// io.Copy(d, c)
	// _ = d
	// io.Copy(os.Stderr, c)
	// go io.Copy(os.Stderr, d)
	// b2 := make([]byte, 640 * 1024)
	/*
		b := make([]byte, 160 * 1024)
		go io.CopyBuffer(c, dnetconn, b) // local to remote
	*/

	go func() {
		if _, err := io.CopyBuffer(c, dnetconn, make([]byte, k0s.MAX_WS_MESSAGE)); err != nil {
			log.Println(err)
		}
	}()

	/*
		go func(){
			for {
				_, buf, err := dwsconn.Read(context.Background())
				if err != nil {
					log.Println(err)
					break
				}
				n, err := c.Write(buf)
				if err != nil {
					log.Println(err)
					break
				}
				// log.Println("wrote", len(buf), n)
			}
		}() // local to remote
	*/

	io.Copy(dnetconn, c) // remote to local
}

func xpraServe(l net.Listener) {
	for {
		c, err := l.Accept()
		if err != nil {
			continue
		}

		go func() {
			defer c.Close()
			xpraHandle(c)
		}()
	}
}

func envXpra() string {
	ep, ok := os.LookupEnv("XPRA")
	if !ok {
		return ""
	}
	return ep
}

gha_language: Starlark


text:
package service

import (
	"fmt"
	"metro_api/domain/model"

	"metro_api/domain/repository"

	"github.com/PolarPanda611/trinitygo"
	"github.com/PolarPanda611/trinitygo/application"
	modelutil "github.com/PolarPanda611/trinitygo/crud/model"
)

var _ GroupService = new(groupServiceImpl)

func init() {
	trinitygo.RegisterInstance(groupServiceImpl{}, "GroupService")
}

// GroupService  service interface
type GroupService interface {
	GetGroupByID(id int64) (*model.Group, error)
	GetGroupList(query string) (interface{}, error)
	CreateGroup(*model.Group) (*model.Group, error)
	UpdateGroupByID(id int64, dVersion string, change map[string]interface{}) error
	DeleteGroupByID(id int64, dVersion string) error
	MultiDeleteGroupByID([]modelutil.DeleteParam) error
}

type groupServiceImpl struct {
	GroupRepo repository.GroupRepository `autowired:"true"  resource:"GroupRepository"`
	Tctx      application.Context        `autowired:"true"`
}

func (s *groupServiceImpl) GetGroupByID(id int64) (*model.Group, error) {
	return s.GroupRepo.GetGroupByID(id)
}
func (s *groupServiceImpl) GetGroupList(query string) (interface{}, error) {
	res, isPaginationOff, err := s.GroupRepo.GetGroupList(query)
	if err != nil {
		return nil, err
	}
	if isPaginationOff {
		return res, nil
	}
	count, currentPage, totalPage, pageSize, err := s.GroupRepo.GetGroupCount(query)
	if err != nil {
		return nil, err
	}
	resWithPagination := map[string]interface{}{
		"data":       res,
		"current":    currentPage,
		"total":      count,
		"pageSize":   pageSize,
		"total_page": totalPage,
		"success":    true,
	}
	return resWithPagination, nil
}

func (s *groupServiceImpl) CreateGroup(newGroup *model.Group) (*model.Group, error) {
	return s.GroupRepo.CreateGroup(newGroup)
}

func (s *groupServiceImpl) UpdateGroupByID(id int64, dVersion string, change map[string]interface{}) error {
	return s.GroupRepo.UpdateGroupByID(id, dVersion, change)
}

func (s *groupServiceImpl) DeleteGroupByID(id int64, dVersion string) error {
	return s.GroupRepo.DeleteGroupByID(id, dVersion)
}

func (s *groupServiceImpl) MultiDeleteGroupByID(deleteParam []modelutil.DeleteParam) error {
	for _, v := range deleteParam {
		if err := s.DeleteGroupByID(v.Key, v.DVersion); err != nil {
			return fmt.Errorf("Group id %v deleted failed , %v", v.Key, err)
		}
	}
	return nil
}

gha_language: Go


text:
/*
 * Copyright 2012-2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package log

import (
	"fmt"
	"strings"
)

const (
	NoneLevel = Level(iota)
	TraceLevel
	DebugLevel
	InfoLevel
	WarnLevel
	ErrorLevel
	PanicLevel
	FatalLevel
	OffLevel
)

// Level used for identifying the severity of an event.
type Level int32

func (level Level) String() string {
	switch level {
	case NoneLevel:
		return "NONE"
	case TraceLevel:
		return "TRACE"
	case DebugLevel:
		return "DEBUG"
	case InfoLevel:
		return "INFO"
	case WarnLevel:
		return "WARN"
	case ErrorLevel:
		return "ERROR"
	case PanicLevel:
		return "PANIC"
	case FatalLevel:
		return "FATAL"
	case OffLevel:
		return "OFF"
	default:
		return "INVALID"
	}
}

// ParseLevel parses string to a level, and returns error if the conversion fails.
func ParseLevel(str string) (Level, error) {
	switch strings.ToUpper(str) {
	case "NONE":
		return NoneLevel, nil
	case "TRACE":
		return TraceLevel, nil
	case "DEBUG":
		return DebugLevel, nil
	case "INFO":
		return InfoLevel, nil
	case "WARN":
		return WarnLevel, nil
	case "ERROR":
		return ErrorLevel, nil
	case "PANIC":
		return PanicLevel, nil
	case "FATAL":
		return FatalLevel, nil
	case "OFF":
		return OffLevel, nil
	default:
		return -1, fmt.Errorf("invalid level %s", str)
	}
}

repository: go-spring/go-spring

repo_name: go-spring/go-spring


text:
@online{WEB:GNU:GPL:2010,
	Author = {{Free Software Foundation, Inc.}},
	Title = {GNU General Public License},
	Url = {http://www.gnu.org/licenses/gpl.html},
	Urldate = {2011-05-27},
	Year = {2010}}

@online{WEB:Miede:2011,
	Author = {Andr{\'e} Miede},
	Title = {A Classic Thesis Style by Andr{\'e} Miede},
	Url = {http://www.miede.de/index.php?page=classicthesis},
	Urldate = {2011-05-27},
	Year = {2011}}

@book{Jurgens:2000,
	Author = {Manuela J{\"u}rgens},
	Publisher = {FernUniversit{\"a}t Gesamthochschule in Hagen},
	Title = {LaTeX: eine Einf{\"u}hrung und ein bisschen mehr},
	Year = {2000}}

@book{Jurgens:1995,
	Author = {Manuela J{\"u}rgens},
	Publisher = {FernUniversit{\"a}t Gesamthochschule in Hagen},
	Title = {LaTeX: Fortgeschrittene Anwendungen},
	Year = {1995}}

@manual{Miede:2011,
	Author = {Andr{\'e} Miede},
	Title = {A Classic Thesis Style: An Homage to The Elements of Typographic Style},
	Year = {2011}}

@book{Kohm:2011,
	Author = {Markus Kohm and Jens-Uwe-Morawski},
	Title = {KOMA-Script: Die Anleitung},
	Year = {2011}}

@book{Apple:keynote:2010,
	Author = {{Apple Inc.}},
	Publisher = {{Apple Inc.}},
	Title = {Keynote '09 User Guide},
	Year = {2010}}

@book{Apple:numbers:2010,
	Author = {{Apple Inc.}},
	Publisher = {{Apple Inc.}},
	Title = {Numbers '09 User Guide},
	Year = {2010}}

@book{Apple:pages:2010,
	Author = {{Apple Inc.}},
	Publisher = {{Apple Inc.}},
	Title = {Pages '09 User Guide},
	Year = {2010}}

branch_name: refs/heads/main

gha_language: Dart

extension: bib


text:
@INPROCEEDINGS{Prasnal2015,
  author={L. {Prasnal} and S. {Szott} and M. {Natkaniec}},
  booktitle={2015 IEEE Symposium on Computers and Communication (ISCC)},
  title={Selfish attacks in IEEE 802.11aa networks with intra-AC prioritization},
  year={2015},
  volume={},
  number={},
  pages={708-713},}

repository: SzymonSzott/academic-kickstart

repo_name: SzymonSzott/academic-kickstart


text:
#include <Rcpp.h>
using namespace Rcpp;

#ifndef DBINOM_TWO_STAGE_H
#define DBINOM_TWO_STAGE_H

NumericMatrix dbinom_two_stage(NumericVector pi, NumericVector nC,
                               NumericVector nE);

#endif

extension: h


text:
/*
 * Copyright (c) 2010, Andras Varga and Opensim Ltd.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the Opensim Ltd. nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL Andras Varga or Opensim Ltd. 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.
 */

#ifndef __IHISTOGRAMSUMMARY_H
#define __IHISTOGRAMSUMMARY_H

#include "IStatisticalSummary.h"

/**
 * Interface for presenting histogram data.
 *
 * @author Andras
 */
class IHistogramSummary : public IStatisticalSummary
{
  public:
    /**
     * Returns the number of histogram cells used.
     */
    virtual int getNumCells() = 0;

    /**
     * Returns the kth cell boundary. Legal values for k are 0 through getNumCells(),
     * i.e. there are getNumCells()+1 cell boundaries.
     * getCellBounds(0) returns the lower bound of the first cell,
     * and getCellBounds(getNumCells()) returns the upper bound of the
     * last cell.
     */
    virtual double getCellBoundary(int k) = 0;

    /**
     * Returns the number of observations that fell into the kth histogram cell.
     */
    virtual double getCellValue(int k) = 0;

    /**
     * Returns the estimated value of the Probability Density Function
     * within the kth cell. This method simply divides the number of observations
     * in cell k with the cell size and the number of total observations collected.
     */
    virtual double getCellPDF(int k) = 0;

    /**
     * Returns number of observations that, being too small, fell out of the histogram
     * range.
     */
    virtual long getUnderflowCell() = 0;

    /**
     * Returns number of observations that, being too large, fell out of the histogram
     * range.
     */
    virtual long getOverflowCell() = 0;
};

#endif

repository: omnetpp/omnetpp-resultfiles

repo_name: omnetpp/omnetpp-resultfiles