text:
DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. \
It allows you to access the data held on the MusicBrainz server."
HOMEPAGE = "http://musicbrainz.org"
LICENSE = "LGPL"
DEPENDS = "expat"

SRC_URI = "http://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-${PV}.tar.gz"

inherit autotools pkgconfig

do_stage() {
	autotools_stage_all
}


text:
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)
#
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2b3f4cc03cb8549623b4bee89feebe73"

HOMEPAGE = "https://github.com/wadda/gps3"
SUMMARY = "Python 2.7-3.5 clients for gpsd"

SRC_URI = "https://github.com/wadda/gps3/archive/master.zip;downloadfilename=master.zip"
SRC_URI[md5sum] = "b95e33546ddc3e96e407d47a953d57b0"
SRC_URI[sha256sum] = "0da1c224a9fe5e62afe0bdc27073dfaf9c168920847062905b35104d0fbd65ad"

S = "${WORKDIR}/gps3-master"

inherit setuptools

# WARNING: the following rdepends are from setuptools install_requires. These
# upstream names may not correspond exactly to bitbake package names.
RDEPENDS_${PN} += "python-gps3 python-misc"

# WARNING: the following rdepends are determined through basic analysis of the
# python sources, and might not be 100% accurate.
RDEPENDS_${PN} += "python-argparse python-core python-io python-json python-subprocess python-threading"

do_install_append() {
    # remove some useless files before packaging
    rm -r ${D}${datadir}/gps3
}

license: MIT

repository: ISOBlue/meta-isoblue

license_type: permissive

repo_name: ISOBlue/meta-isoblue

branch_name: refs/heads/master

gha_language: BitBake

extension: bb


text:
DESCRIPTION = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
SECTION = "base"
PRIORITY = "required"
LICENSE = "GPLv2"
DEPENDS = "virtual/libusb0"

PR = "r4"

SRC_URI = "http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-${PV}.tar.bz2 \
           file://fix-install-in-makefile.patch \
           "
SRC_URI[md5sum] = "a04db36bd0fc6fb303df7567f677b714"
SRC_URI[sha256sum] = "c20abfdf9d46fb83e1b82f961a9f6ec8064bed3304155b6e1af7cf596845d0d0"

FILES_${PN} = "${bindir} ${sysconfdir} ${base_libdir}/udev/usb_modeswitch ${sbindir}"
RPROVIDES_${PN} += "usbmodeswitch"
RREPLACES_${PN} += "usbmodeswitch"
RRECOMMENDS_${PN} = "usb-modeswitch-data"

do_install() {
	oe_runmake install DESTDIR=${D}
}

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD


text:
/*
Copyright 2020 The OpenYurt 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

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "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 server

import (
	"context"
	"crypto/tls"
	"errors"
	"fmt"
	"net"
	"net/http"

	"github.com/google/uuid"
	"google.golang.org/grpc"
	"google.golang.org/grpc/credentials"
	"k8s.io/klog"

	anpserver "sigs.k8s.io/apiserver-network-proxy/pkg/server"
	anpagent "sigs.k8s.io/apiserver-network-proxy/proto/agent"
)

// RunServer runs the yurttunnel-server
func RunServer(ctx context.Context,
	egressSelectorEnabled bool,
	interceptorServerUDSFile,
	serverMasterAddr,
	serverMasterInsecureAddr,
	serverAgentAddr string,
	tlsCfg *tls.Config) error {
	proxyServer := anpserver.NewProxyServer(uuid.New().String(), 1,
		&anpserver.AgentTokenAuthenticationOptions{})

	// 1. start the proxier
	proxierErr := runProxier(&anpserver.Tunnel{Server: proxyServer},
		egressSelectorEnabled,
		interceptorServerUDSFile,
		tlsCfg)
	if proxierErr != nil {
		return fmt.Errorf("fail to run the proxier: %s", proxierErr)
	}

	// 2. start the master server
	masterServerErr := runMasterServer(
		&RequestInterceptor{
			UDSSockFile: interceptorServerUDSFile,
			TLSConfig:   tlsCfg,
		},
		egressSelectorEnabled,
		serverMasterAddr,
		serverMasterInsecureAddr,
		tlsCfg)
	if masterServerErr != nil {
		return fmt.Errorf("fail to run master server: %s", masterServerErr)
	}

	// 3. start the agent server
	agentServerErr := runAgentServer(tlsCfg, serverAgentAddr, proxyServer)
	if agentServerErr != nil {
		return fmt.Errorf("fail to run agent server: %s", agentServerErr)
	}

	return nil
}

// runProxier starts a proxy server that redirects requests received from
// apiserver to corresponding yurttunel-agent
func runProxier(handler http.Handler,
	egressSelectorEnabled bool,
	udsSockFile string,
	tlsConfig *tls.Config) error {
	klog.Info("start handling request from interceptor")
	if egressSelectorEnabled {
		// TODO will support egress selector for apiserver version > 1.18
		return errors.New("DOESN'T SUPPROT EGRESS SELECTOR YET")
	}
	// request will be sent from request interceptor on the same host,
	// so we use UDS protocol to avoide sending request through kernel
	// network stack.
	go func() {
		server := &http.Server{
			Handler: handler,
		}
		unixListener, err := net.Listen("unix", udsSockFile)
		if err != nil {
			klog.Errorf("proxier fail to serving request through uds: %s", err)
		}
		defer unixListener.Close()
		if err := server.Serve(unixListener); err != nil {
			klog.Errorf("proxier fail to serving request through uds: %s", err)
		}
	}()

	return nil
}

// runMasterServer runs an https server to handle requests from apiserver
func runMasterServer(handler http.Handler,
	egressSelectorEnabled bool,
	masterServerAddr,
	masterServerInsecureAddr string,
	tlsCfg *tls.Config) error {
	if egressSelectorEnabled {
		return errors.New("DOESN'T SUPPORT EGRESS SELECTOR YET")
	}
	go func() {
		klog.Infof("start handling https request from master at %s", masterServerAddr)
		server := http.Server{
			Addr:         masterServerAddr,
			Handler:      handler,
			TLSConfig:    tlsCfg,
			TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)),
		}
		if err := server.ListenAndServeTLS("", ""); err != nil {
			klog.Errorf("failed to serve https request from master: %v", err)
		}
	}()

	go func() {
		klog.Infof("start handling http request from master at %s", masterServerInsecureAddr)
		server := http.Server{
			Addr:         masterServerInsecureAddr,
			Handler:      handler,
			TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)),
		}
		if err := server.ListenAndServe(); err != nil {
			klog.Errorf("failed to serve http request from master: %v", err)
		}
	}()

	return nil
}

// runAgentServer runs a grpc server that handles connections from the yurttunel-agent
// NOTE agent server is responsible for managing grpc connection yurttunel-server
// and yurttunnel-agent, and the proxy server is responsible for redirecting requests
// to corresponding yurttunel-agent
func runAgentServer(tlsCfg *tls.Config,
	agentServerAddr string,
	proxyServer *anpserver.ProxyServer) error {
	serverOption := grpc.Creds(credentials.NewTLS(tlsCfg))
	grpcServer := grpc.NewServer(serverOption)
	anpagent.RegisterAgentServiceServer(grpcServer, proxyServer)
	listener, err := net.Listen("tcp", agentServerAddr)
	klog.Info("start handling connection from agents")
	if err != nil {
		return fmt.Errorf("fail to listen to agent on %s: %s", agentServerAddr, err)
	}
	go grpcServer.Serve(listener)
	return nil
}

repository: dddddai/openyurt

repo_name: dddddai/openyurt

extension: go


text:
LICENSE = "LGPL"
PACKAGE_ARCH = "all"
SRC_URI = "ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-${PV}.tar.bz2"
PR = "r2"

inherit autotools

FILES_${PN} += "${datadir}/xml/"

SRC_URI[md5sum] = "4073466e57df23d39721513219e4f7ae"
SRC_URI[sha256sum] = "0a7cf177c25b3f0d77c60a5f1149aab9e03ba70f69bac70138a867efe19a1d97"


text:
/* -------------------------------------------------------------------
 *
 * This module has been developed by the Automatic Control Group
 * of the University of Salerno, Italy.
 *
 * Title:   force_torque_sensor.cpp
 * Author:  Sabatino Simeone
 * Org.:    UNISA
 * Date:    Oct 30, 2019
 *
 * Refer to the header file for a description of this module.
 *
 * -------------------------------------------------------------------
 */

#include <force_torque_sensor/exceptions.h>
#include <force_torque_sensor/force_torque_sensor.h>
#include <ros/console.h>

using namespace force_torque_sensor;

ForceTorqueSensor::ForceTorqueSensor()
  : number_of_samples_for_average_measure_(ForceTorqueSensor::default_number_samples_average_measure)
{
}

void ForceTorqueSensor::getAverageMeasure(std::vector<float>& force_torque) const
{
  int c, i;
  float sum[number_of_channels] = { 0, 0, 0, 0, 0, 0 };

  for (c = 0; c < number_of_samples_for_average_measure_; c++)
  {
    getMeasure(force_torque);

    for (i = 0; i < number_of_channels; i++)
      sum[i] += force_torque[i];
  }

  for (i = 0; i < number_of_channels; i++)
    force_torque[i] = sum[i] / number_of_samples_for_average_measure_;
}

void ForceTorqueSensor::printMeasure(const std::vector<float>& force_torque)
{
  ROS_INFO("\nFx %f Fy %f Fz %f Tx %f Ty %f Tz %f ", force_torque[0], force_torque[1], force_torque[2], force_torque[3],
           force_torque[4], force_torque[5]);
}

void ForceTorqueSensor::setNumberOfSamplesForAverageMeasure(unsigned int number_samples)
{
  if (number_samples >= 1)
    number_of_samples_for_average_measure_ = number_samples;
  else
    throw force_torque_sensor::Exception("Number of samples must be bigger than 0");
}

extension: cpp


text:
@article{Shu2017,
 author = {Shu, Zhan and Bergner, Yoav and Zhu, Mengxiao and Hao, Jiangang and von Davier, Alina A},
 journal = {Psychological Test and Assessment Modeling},
 number = {1},
 pages = {109--131},
 title = {An item response theory analysis of problem-solving processes in scenario-based tasks},
 url = {https://www.researchgate.net/profile/Zhan_Shu4/publication/318347343_An_item_response_theory_analysis_of_problem-solving_processes_in_scenario-based_tasks/links/5964d392458515183cfaa7e5/An-item-response-theory-analysis-of-problem-solving-processes-in-scen},
 volume = {59},
 year = {2017}
}

extension: bib


text:
package storage

import (
	"time"

	"github.com/kaseat/pManager/models"
	"github.com/kaseat/pManager/models/provider"
	"github.com/kaseat/pManager/storage/mongo"
	"github.com/kaseat/pManager/storage/postgres"
	"golang.org/x/oauth2"
)

// Type - storage type
type Type string

const (
	// Mongo - MongoDB storage
	Mongo Type = "mongo"
	// Postgres - PostgreSQL storage
	Postgres Type = "postgres"
)

// Db represents data storage
type Db interface {
	AddUser(login, email, hash string) (string, error)
	GetUserByLogin(login string) (models.User, error)
	AddUserState(login string, state string) error
	GetUserState(login string) (string, error)
	AddUserToken(state string, token *oauth2.Token) error
	GetUserToken(login string) (oauth2.Token, error)
	GetUserPassword(login string) (string, error)
	UpdateUserPassword(login, hash string) (bool, error)
	DeleteUser(login string) (bool, error)

	AddPortfolio(userID string, p models.Portfolio) (string, error)
	GetPortfolio(userID string, portfolioID string) (models.Portfolio, error)
	GetPortfolios(userID string) ([]models.Portfolio, error)
	UpdatePortfolio(userID string, portfolioID string, p models.Portfolio) (bool, error)
	DeletePortfolio(userID string, portfolioID string) (bool, error)
	DeletePortfolios(userID string) (int64, error)

	AddUserLastUpdateTime(login string, provider provider.Type, date time.Time) error
	GetUserLastUpdateTime(login string, provider provider.Type) (time.Time, error)
	DeleteUserLastUpdateTime(login string, provider provider.Type) error

	AddOperation(portfolioID string, op models.Operation) (string, error)
	AddOperations(portfolioID string, ops []models.Operation) ([]string, error)
	GetOperations(portfolioID string, key string, value string, from string, to string) ([]models.Operation, error)
	DeleteOperation(portfolioID string, operationID string) (bool, error)
	DeleteOperations(portfolioID string) (int64, error)

	AddInstruments(instr []models.Instrument) error
	SetInstrumentPriceUptdTime(sid int, updTime time.Time) (bool, error)
	ClearInstrumentPriceUptdTime(isin string) (bool, error)
	ClearAllInstrumentPriceUptdTime() (bool, error)
	GetInstruments(key string, value string) ([]models.Instrument, error)
	GetAllInstruments() ([]models.Instrument, error)
	DeleteInstruments(key string, value string) (int64, error)
	DeleteAllInstruments() (int64, error)

	AddPrices(prices []models.Price) error
	GetPrices(key, value, from, to string) ([]models.Price, error)
	GetPricesByIsin(isin, from, to string) ([]models.Price, error)
	DeletePrices(key string, value string) (int64, error)
	DeleteAllPrices() (int64, error)

	GetShares(pid string, onDate string) ([]models.Share, error)

	AddTcsToken(token string) error
	DeleteTcsToken() error
	GetTcsToken() (string, error)
}

var dbMongo mongo.Db
var dbPostgres postgres.Db
var currentStorage Type = Postgres

// SwitchStorage switches storage
func SwitchStorage(t Type) {
	currentStorage = t
}

// GetStorage gets storage
func GetStorage() Db {
	switch currentStorage {
	case Postgres:
		if !dbPostgres.IsInitialized() {
			dbPostgres = postgres.Db{}
			dbPostgres.Init(postgres.Config{
				ConnString: "host=localhost port=5432 dbname=p_manager user=test password=test",
			})
		}
		return dbPostgres
	case Mongo:
		if !dbMongo.IsInitialized() {
			dbMongo = mongo.Db{}
			dbMongo.Init(mongo.Config{
				MongoURL: "mongodb://localhost:27017",
				DbName:   "p_manager",
			})
		}
		return dbMongo
	default:
		return nil
	}
}

repository: kaseat/pManager

repo_name: kaseat/pManager


text:
DESCRIPTION = "Bootloader firmware extractor for the h2200 iPAQ"
MAINTAINER = "Koen Kooi <koen@handhelds.org>"
PR="r3"

PACKAGES = "${PN}"
ALLOW_EMPTY_${PN} = "1"

pkg_postinst_${PN} () {
#!/bin/sh
mkdir -p /lib/firmware
dd if=/dev/mtdblock0 of=/lib/firmware/h2200_bootloader.bin 2>/dev/null
}

repository: Terentyev/familiar-linux

repo_name: Terentyev/familiar-linux


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="7.6.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.00625" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="yes" active="yes"/>
<layer number="3" name="Route3" color="4" fill="3" visible="yes" active="yes"/>
<layer number="14" name="Route14" color="1" fill="6" visible="yes" active="yes"/>
<layer number="15" name="Route15" color="4" fill="6" 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="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="yes" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="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="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="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="no" active="no"/>
<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="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="yes" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="yes" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="yes" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="yes" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="yes" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="yes" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="yes" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<plain>
<wire x1="0" y1="2.54" x2="2.54" y2="0" width="0" layer="20" curve="90"/>
<wire x1="2.54" y1="0" x2="41.11625" y2="0" width="0" layer="20"/>
<wire x1="41.11625" y1="0" x2="43.65625" y2="2.54" width="0" layer="20" curve="90"/>
<wire x1="43.65625" y1="2.54" x2="43.65625" y2="15.24" width="0" layer="20"/>
<wire x1="43.65625" y1="15.24" x2="41.11625" y2="17.78" width="0" layer="20" curve="90"/>
<wire x1="41.11625" y1="17.78" x2="2.54" y2="17.78" width="0" layer="20"/>
<wire x1="2.54" y1="17.78" x2="0" y2="15.24" width="0" layer="20" curve="90"/>
<wire x1="0" y1="15.24" x2="0" y2="2.54" width="0" layer="20"/>
<text x="39.84625" y="8.89" size="1.27" layer="22" rot="SMR90" align="center">Lyrebird V0.1.1
Prototype</text>
</plain>
<libraries>
<library name="SparkFun-Connectors">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="USB-A-H">
<description>USB Series A Hole Mounted</description>
<wire x1="-17.8" y1="6" x2="-17.8" y2="-6" width="0.2032" layer="51"/>
<wire x1="-3" y1="6" x2="-3" y2="-6" width="0.2032" layer="21"/>
<wire x1="-3" y1="6" x2="-17.8" y2="6" width="0.2032" layer="51"/>
<wire x1="-3" y1="-6" x2="-17.8" y2="-6" width="0.2032" layer="51"/>
<wire x1="-3" y1="6" x2="-2" y2="6" width="0.2032" layer="21"/>
<wire x1="-3" y1="-6" x2="-2" y2="-6" width="0.2032" layer="21"/>
<wire x1="1" y1="-4" x2="1" y2="4" width="0.2032" layer="21"/>
<wire x1="-13.5" y1="4.3" x2="-13.5" y2="1.9" width="0.2032" layer="51"/>
<wire x1="-13.5" y1="1.9" x2="-11.2" y2="1.9" width="0.2032" layer="51"/>
<wire x1="-11.2" y1="1.9" x2="-11.2" y2="4.3" width="0.2032" layer="51"/>
<wire x1="-11.2" y1="4.3" x2="-13.5" y2="4.3" width="0.2032" layer="51"/>
<wire x1="-13.5" y1="-1.9" x2="-13.5" y2="-4.3" width="0.2032" layer="51"/>
<wire x1="-13.5" y1="-4.3" x2="-11.2" y2="-4.3" width="0.2032" layer="51"/>
<wire x1="-11.2" y1="-4.3" x2="-11.2" y2="-1.9" width="0.2032" layer="51"/>
<wire x1="-11.2" y1="-1.9" x2="-13.5" y2="-1.9" width="0.2032" layer="51"/>
<pad name="GND" x="2.4" y="3.5" drill="0.9144" diameter="1.8796" rot="R270"/>
<pad name="D+" x="2.4" y="1.127" drill="0.9144" diameter="1.8796" rot="R270"/>
<pad name="D-" x="2.4" y="-1.127" drill="0.9144" diameter="1.8796" rot="R270"/>
<pad name="VBUS" x="2.4" y="-3.5" drill="0.9144" diameter="1.8796" rot="R270"/>
<pad name="GND2" x="0" y="-5.8" drill="2.2" rot="R270"/>
<pad name="GND3" x="0" y="5.8" drill="2.2" rot="R270"/>
<text x="5.85" y="-2.7" size="1.27" layer="25" rot="R90">>NAME</text>
<text x="-3.9" y="-4.4" size="1.27" layer="51" rot="R90">PCB Edge</text>
<hole x="-0.1" y="2.25" drill="1.1"/>
<hole x="-0.1" y="-2.25" drill="1.1"/>
</package>
</packages>
</library>
<library name="LB-RF">
<description>Lyrebird library of RF devices</description>
<packages>
<package name="HM-11">
<wire x1="-6.75" y1="7" x2="6.75" y2="7" width="0.127" layer="21"/>
<smd name="1" x="-6.75" y="0" dx="2.4" dy="1.1" layer="1" cream="no"/>
<smd name="16" x="6.75" y="0" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-0.45" x2="-6.25" y2="0.45" layer="31"/>
<rectangle x1="6.25" y1="-0.45" x2="7.8" y2="0.45" layer="31"/>
<smd name="15" x="6.75" y="-1.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-1.95" x2="7.8" y2="-1.05" layer="31"/>
<smd name="14" x="6.75" y="-3" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-3.45" x2="7.8" y2="-2.55" layer="31"/>
<smd name="13" x="6.75" y="-4.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-4.95" x2="7.8" y2="-4.05" layer="31"/>
<smd name="12" x="6.75" y="-6" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-6.45" x2="7.8" y2="-5.55" layer="31"/>
<smd name="11" x="6.75" y="-7.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-7.95" x2="7.8" y2="-7.05" layer="31"/>
<smd name="10" x="6.75" y="-9" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-9.45" x2="7.8" y2="-8.55" layer="31"/>
<smd name="9" x="6.75" y="-10.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="6.25" y1="-10.95" x2="7.8" y2="-10.05" layer="31"/>
<smd name="2" x="-6.75" y="-1.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-1.95" x2="-6.25" y2="-1.05" layer="31"/>
<smd name="3" x="-6.75" y="-3" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-3.45" x2="-6.25" y2="-2.55" layer="31"/>
<smd name="4" x="-6.75" y="-4.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-4.95" x2="-6.25" y2="-4.05" layer="31"/>
<smd name="5" x="-6.75" y="-6" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-6.45" x2="-6.25" y2="-5.55" layer="31"/>
<smd name="6" x="-6.75" y="-7.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-7.95" x2="-6.25" y2="-7.05" layer="31"/>
<smd name="7" x="-6.75" y="-9" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-9.45" x2="-6.25" y2="-8.55" layer="31"/>
<smd name="8" x="-6.75" y="-10.5" dx="2.4" dy="1.1" layer="1" cream="no"/>
<rectangle x1="-7.8" y1="-10.95" x2="-6.25" y2="-10.05" layer="31"/>
<wire x1="-6.75" y1="-11.5" x2="6.75" y2="-11.5" width="0.127" layer="21"/>
<wire x1="-6.75" y1="-11.5" x2="-6.75" y2="7" width="0.127" layer="51"/>
<wire x1="6.75" y1="1" x2="6.75" y2="7" width="0.127" layer="21"/>
<text x="0" y="-5" size="1.27" layer="51" align="center">HM-11</text>
<polygon width="0.127" layer="41">
<vertex x="-6.75" y="7"/>
<vertex x="6.75" y="7"/>
<vertex x="6.75" y="1"/>
<vertex x="-6.75" y="1"/>
</polygon>
<polygon width="0.127" layer="42">
<vertex x="6.75" y="7"/>
<vertex x="-6.75" y="7"/>
<vertex x="-6.75" y="1"/>
<vertex x="6.75" y="1"/>
</polygon>
<wire x1="-6.75" y1="1" x2="-6.75" y2="7" width="0.127" layer="21"/>
<wire x1="-6.75" y1="7" x2="6.75" y2="7" width="0.127" layer="51"/>
<wire x1="6.75" y1="-11.5" x2="6.75" y2="7" width="0.127" layer="51"/>
<wire x1="-6.75" y1="-11.5" x2="6.75" y2="-11.5" width="0.127" layer="51"/>
</package>
</packages>
</library>
<library name="SparkFun-DigitalIC">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find all manner of digital ICs- microcontrollers, memory chips, logic chips, FPGAs, etc.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="TQFP32-08">
<description>Thin Plasic Quad Flat Package Grid 0.8 mm</description>
<wire x1="3.505" y1="3.505" x2="3.505" y2="-3.505" width="0.2032" layer="21"/>
<wire x1="3.505" y1="-3.505" x2="-3.505" y2="-3.505" width="0.2032" layer="21"/>
<wire x1="-3.505" y1="-3.505" x2="-3.505" y2="3.15" width="0.2032" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="3.505" y2="3.505" width="0.2032" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="-3.505" y2="3.15" width="0.2032" layer="21"/>
<circle x="-3.6576" y="3.683" radius="0.1524" width="0.2032" layer="21"/>
<smd name="1" x="-4.2926" y="2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="2" x="-4.2926" y="2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="3" x="-4.2926" y="1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="4" x="-4.2926" y="0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="5" x="-4.2926" y="-0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="6" x="-4.2926" y="-1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="7" x="-4.2926" y="-2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="8" x="-4.2926" y="-2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="9" x="-2.8" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="10" x="-2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="11" x="-1.2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="12" x="-0.4" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="13" x="0.4" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="14" x="1.2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="15" x="2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="16" x="2.8" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="17" x="4.2926" y="-2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="18" x="4.2926" y="-2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="19" x="4.2926" y="-1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="20" x="4.2926" y="-0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="21" x="4.2926" y="0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="22" x="4.2926" y="1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="23" x="4.2926" y="2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="24" x="4.2926" y="2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="25" x="2.8" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="26" x="2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="27" x="1.2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="28" x="0.4" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="29" x="-0.4" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="30" x="-1.2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="31" x="-2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="32" x="-2.8" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<text x="-3.175" y="5.08" size="0.4064" layer="25">>NAME</text>
<text x="-2.54" y="-6.35" size="0.4064" layer="27">>VALUE</text>
<rectangle x1="-4.5466" y1="2.5714" x2="-3.556" y2="3.0286" layer="51"/>
<rectangle x1="-4.5466" y1="1.7714" x2="-3.556" y2="2.2286" layer="51"/>
<rectangle x1="-4.5466" y1="0.9714" x2="-3.556" y2="1.4286" layer="51"/>
<rectangle x1="-4.5466" y1="0.1714" x2="-3.556" y2="0.6286" layer="51"/>
<rectangle x1="-4.5466" y1="-0.6286" x2="-3.556" y2="-0.1714" layer="51"/>
<rectangle x1="-4.5466" y1="-1.4286" x2="-3.556" y2="-0.9714" layer="51"/>
<rectangle x1="-4.5466" y1="-2.2286" x2="-3.556" y2="-1.7714" layer="51"/>
<rectangle x1="-4.5466" y1="-3.0286" x2="-3.556" y2="-2.5714" layer="51"/>
<rectangle x1="-3.0286" y1="-4.5466" x2="-2.5714" y2="-3.556" layer="51"/>
<rectangle x1="-2.2286" y1="-4.5466" x2="-1.7714" y2="-3.556" layer="51"/>
<rectangle x1="-1.4286" y1="-4.5466" x2="-0.9714" y2="-3.556" layer="51"/>
<rectangle x1="-0.6286" y1="-4.5466" x2="-0.1714" y2="-3.556" layer="51"/>
<rectangle x1="0.1714" y1="-4.5466" x2="0.6286" y2="-3.556" layer="51"/>
<rectangle x1="0.9714" y1="-4.5466" x2="1.4286" y2="-3.556" layer="51"/>
<rectangle x1="1.7714" y1="-4.5466" x2="2.2286" y2="-3.556" layer="51"/>
<rectangle x1="2.5714" y1="-4.5466" x2="3.0286" y2="-3.556" layer="51"/>
<rectangle x1="3.556" y1="-3.0286" x2="4.5466" y2="-2.5714" layer="51"/>
<rectangle x1="3.556" y1="-2.2286" x2="4.5466" y2="-1.7714" layer="51"/>
<rectangle x1="3.556" y1="-1.4286" x2="4.5466" y2="-0.9714" layer="51"/>
<rectangle x1="3.556" y1="-0.6286" x2="4.5466" y2="-0.1714" layer="51"/>
<rectangle x1="3.556" y1="0.1714" x2="4.5466" y2="0.6286" layer="51"/>
<rectangle x1="3.556" y1="0.9714" x2="4.5466" y2="1.4286" layer="51"/>
<rectangle x1="3.556" y1="1.7714" x2="4.5466" y2="2.2286" layer="51"/>
<rectangle x1="3.556" y1="2.5714" x2="4.5466" y2="3.0286" layer="51"/>
<rectangle x1="2.5714" y1="3.556" x2="3.0286" y2="4.5466" layer="51"/>
<rectangle x1="1.7714" y1="3.556" x2="2.2286" y2="4.5466" layer="51"/>
<rectangle x1="0.9714" y1="3.556" x2="1.4286" y2="4.5466" layer="51"/>
<rectangle x1="0.1714" y1="3.556" x2="0.6286" y2="4.5466" layer="51"/>
<rectangle x1="-0.6286" y1="3.556" x2="-0.1714" y2="4.5466" layer="51"/>
<rectangle x1="-1.4286" y1="3.556" x2="-0.9714" y2="4.5466" layer="51"/>
<rectangle x1="-2.2286" y1="3.556" x2="-1.7714" y2="4.5466" layer="51"/>
<rectangle x1="-3.0286" y1="3.556" x2="-2.5714" y2="4.5466" layer="51"/>
</package>
</packages>
</library>
<library name="SparkFun-FreqCtrl">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find crystals and oscillators and other things that go "tick".

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="CRYSTAL-SMD-5X3">
<wire x1="-0.6" y1="1.6" x2="0.6" y2="1.6" width="0.2032" layer="21"/>
<wire x1="2.5" y1="0.3" x2="2.5" y2="-0.3" width="0.2032" layer="21"/>
<wire x1="0.6" y1="-1.6" x2="-0.6" y2="-1.6" width="0.2032" layer="21"/>
<wire x1="-2.5" y1="0.3" x2="-2.5" y2="-0.3" width="0.2032" layer="21"/>
<smd name="1" x="-1.85" y="-1.15" dx="1.9" dy="1.1" layer="1"/>
<smd name="3" x="1.85" y="1.15" dx="1.9" dy="1.1" layer="1"/>
<smd name="4" x="-1.85" y="1.15" dx="1.9" dy="1.1" layer="1"/>
<smd name="2" x="1.85" y="-1.15" dx="1.9" dy="1.1" layer="1"/>
<text x="-2.54" y="1.905" size="0.4064" layer="25">>NAME</text>
<text x="-2.54" y="-2.54" size="0.4064" layer="27">>VALUE</text>
</package>
</packages>
</library>
<library name="SparkFun-Resistors">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="0603-RES">
<wire x1="-1.6002" y1="0.6858" x2="1.6002" y2="0.6858" width="0.0508" layer="39"/>
<wire x1="1.6002" y1="0.6858" x2="1.6002" y2="-0.6858" width="0.0508" layer="39"/>
<wire x1="1.6002" y1="-0.6858" x2="-1.6002" y2="-0.6858" width="0.0508" layer="39"/>
<wire x1="-1.6002" y1="-0.6858" x2="-1.6002" y2="0.6858" width="0.0508" layer="39"/>
<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
<text x="-0.889" y="0.762" size="0.4064" layer="25" font="vector">>NAME</text>
<text x="-1.016" y="-1.143" size="0.4064" layer="27" font="vector">>VALUE</text>
<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
<rectangle x1="-0.1905" y1="-0.381" x2="0.1905" y2="0.381" layer="21"/>
</package>
<package name="0402-RES">
<description>CAPACITOR

chip</description>
<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
<wire x1="-1.2065" y1="0.6477" x2="1.2065" y2="0.6477" width="0.0508" layer="39"/>
<wire x1="1.2065" y1="0.6477" x2="1.2065" y2="-0.6477" width="0.0508" layer="39"/>
<wire x1="1.2065" y1="-0.6477" x2="-1.2065" y2="-0.6477" width="0.0508" layer="39"/>
<wire x1="-1.2065" y1="-0.6477" x2="-1.2065" y2="0.6477" width="0.0508" layer="39"/>
<smd name="1" x="-0.58" y="0" dx="0.85" dy="0.9" layer="1"/>
<smd name="2" x="0.58" y="0" dx="0.85" dy="0.9" layer="1"/>
<text x="-0.889" y="0.6985" size="0.4064" layer="25">>NAME</text>
<text x="-1.0795" y="-1.143" size="0.4064" layer="27">>VALUE</text>
<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
<rectangle x1="-0.2032" y1="-0.3556" x2="0.2032" y2="0.3556" layer="21"/>
</package>
</packages>
</library>
<library name="SparkFun-Capacitors">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="0402-CAP">
<description>CAPACITOR

chip</description>
<wire x1="-0.245" y1="0.224" x2="0.245" y2="0.224" width="0.1524" layer="51"/>
<wire x1="0.245" y1="-0.224" x2="-0.245" y2="-0.224" width="0.1524" layer="51"/>
<wire x1="-1.473" y1="0.483" x2="1.473" y2="0.483" width="0.0508" layer="39"/>
<wire x1="1.473" y1="0.483" x2="1.473" y2="-0.483" width="0.0508" layer="39"/>
<wire x1="1.473" y1="-0.483" x2="-1.473" y2="-0.483" width="0.0508" layer="39"/>
<wire x1="-1.473" y1="-0.483" x2="-1.473" y2="0.483" width="0.0508" layer="39"/>
<wire x1="0" y1="0.0305" x2="0" y2="-0.0305" width="0.4064" layer="21"/>
<smd name="1" x="-0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
<smd name="2" x="0.65" y="0" dx="0.7" dy="0.9" layer="1"/>
<text x="-0.889" y="0.6985" size="0.4064" layer="25">>NAME</text>
<text x="-1.0795" y="-1.143" size="0.4064" layer="27">>VALUE</text>
<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.2951" layer="51"/>
<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.2951" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
</package>
<package name="0603-CAP">
<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
<wire x1="0" y1="0.0305" x2="0" y2="-0.0305" width="0.5588" layer="21"/>
<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
<text x="-0.889" y="0.762" size="0.4064" layer="25" font="vector">>NAME</text>
<text x="-1.016" y="-1.143" size="0.4064" layer="27" font="vector">>VALUE</text>
<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
</package>
</packages>
</library>
<library name="SparkFun-PowerIC">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find drivers, regulators, and amplifiers.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="SOT23-5">
<description>Small Outline Transistor</description>
<wire x1="1.4224" y1="0.4294" x2="1.4224" y2="-0.4294" width="0.2032" layer="21"/>
<wire x1="1.4" y1="-0.8" x2="-1.4" y2="-0.8" width="0.1524" layer="51"/>
<wire x1="-1.4224" y1="-0.4294" x2="-1.4224" y2="0.4294" width="0.2032" layer="21"/>
<wire x1="-1.4" y1="0.8" x2="1.4" y2="0.8" width="0.1524" layer="51"/>
<wire x1="-0.2684" y1="0.8104" x2="0.2684" y2="0.8104" width="0.2032" layer="21"/>
<wire x1="1.4" y1="0.8" x2="1.4" y2="-0.8" width="0.1524" layer="51"/>
<wire x1="-1.4" y1="0.8" x2="-1.4" y2="-0.8" width="0.1524" layer="51"/>
<smd name="1" x="-0.95" y="-1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="2" x="0" y="-1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="3" x="0.95" y="-1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="4" x="0.95" y="1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="5" x="-0.95" y="1.3001" dx="0.55" dy="1.2" layer="1"/>
<text x="-0.889" y="2.159" size="0.4064" layer="25">>NAME</text>
<text x="-0.9525" y="-0.1905" size="0.4064" layer="27">>VALUE</text>
<rectangle x1="-1.2" y1="-1.5" x2="-0.7" y2="-0.85" layer="51"/>
<rectangle x1="-0.25" y1="-1.5" x2="0.25" y2="-0.85" layer="51"/>
<rectangle x1="0.7" y1="-1.5" x2="1.2" y2="-0.85" layer="51"/>
<rectangle x1="0.7" y1="0.85" x2="1.2" y2="1.5" layer="51"/>
<rectangle x1="-1.2" y1="0.85" x2="-0.7" y2="1.5" layer="51"/>
</package>
</packages>
</library>
<library name="LB-Connectors">
<packages>
<package name="2X3_SMD_MALE">
<description>4UCON 15881

Male .1" spaced SMT

Keying posts into board</description>
<smd name="4" x="0" y="2.54" dx="3.17" dy="1" layer="1" rot="R90"/>
<smd name="3" x="0" y="-2.54" dx="3.17" dy="1" layer="1" rot="R90"/>
<smd name="5" x="2.54" y="-2.54" dx="3.17" dy="1" layer="1" rot="R90"/>
<smd name="6" x="2.54" y="2.54" dx="3.17" dy="1" layer="1" rot="R90"/>
<smd name="2" x="-2.54" y="2.54" dx="3.17" dy="1" layer="1" rot="R90"/>
<smd name="1" x="-2.54" y="-2.54" dx="3.17" dy="1" layer="1" rot="R90"/>
<text x="0" y="-5.08" size="0.6096" layer="27">>VALUE</text>
<text x="0" y="-6.35" size="0.6096" layer="25">>NAME</text>
<wire x1="-1.778" y1="2.54" x2="-0.762" y2="2.54" width="0.127" layer="21"/>
<wire x1="0.762" y1="2.54" x2="1.778" y2="2.54" width="0.127" layer="21"/>
<wire x1="-1.778" y1="-2.54" x2="-0.889" y2="-2.54" width="0.127" layer="21"/>
<wire x1="0.762" y1="-2.54" x2="1.778" y2="-2.54" width="0.127" layer="21"/>
<wire x1="-3.175" y1="2.54" x2="-3.81" y2="2.54" width="0.127" layer="21"/>
<wire x1="-3.81" y1="2.54" x2="-3.81" y2="-2.54" width="0.127" layer="21"/>
<wire x1="-3.81" y1="-2.54" x2="-3.175" y2="-2.54" width="0.127" layer="21"/>
<wire x1="3.175" y1="2.54" x2="3.81" y2="2.54" width="0.127" layer="21"/>
<wire x1="3.81" y1="2.54" x2="3.81" y2="-2.54" width="0.127" layer="21"/>
<wire x1="3.81" y1="-2.54" x2="3.175" y2="-2.54" width="0.127" layer="21"/>
<wire x1="-3.429" y1="-4.064" x2="-3.429" y2="-2.794" width="0.127" layer="21"/>
</package>
</packages>
</library>
<library name="LB-Electromech">
<description>Lyrebird library of electromechanical components (i.e. buttons)</description>
<packages>
<package name="PTS840G*P">
<smd name="1" x="-1.8" y="0.725" dx="1.4" dy="1.05" layer="1"/>
<smd name="2" x="1.8" y="0.725" dx="1.4" dy="1.05" layer="1"/>
<smd name="3" x="-1.8" y="-0.725" dx="1.4" dy="1.05" layer="1"/>
<smd name="4" x="1.8" y="-0.725" dx="1.4" dy="1.05" layer="1"/>
<hole x="0" y="0.9" drill="0.7"/>
<hole x="0" y="-0.9" drill="0.7"/>
<wire x1="-1.75" y1="1.45" x2="1.75" y2="1.45" width="0.127" layer="51"/>
<wire x1="1.75" y1="1.45" x2="1.75" y2="-1.45" width="0.127" layer="51"/>
<wire x1="1.75" y1="-1.45" x2="0.85" y2="-1.45" width="0.127" layer="21"/>
<wire x1="0.85" y1="-1.45" x2="-0.85" y2="-1.45" width="0.127" layer="21"/>
<wire x1="-0.85" y1="-1.45" x2="-1.75" y2="-1.45" width="0.127" layer="21"/>
<wire x1="-1.75" y1="-1.45" x2="-1.75" y2="1.45" width="0.127" layer="51"/>
<wire x1="-1.75" y1="1.45" x2="1.75" y2="1.45" width="0.127" layer="21"/>
<wire x1="1.75" y1="-1.45" x2="0.85" y2="-1.45" width="0.127" layer="51"/>
<wire x1="0.85" y1="-1.45" x2="-0.85" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-0.85" y1="-1.45" x2="-1.75" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-0.85" y1="-1.45" x2="-0.85" y2="-2.3" width="0.127" layer="51"/>
<wire x1="-0.85" y1="-2.3" x2="0.85" y2="-2.3" width="0.127" layer="51"/>
<wire x1="0.85" y1="-2.3" x2="0.85" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-0.85" y1="-1.45" x2="-0.85" y2="-1.1" width="0.127" layer="21"/>
<wire x1="-0.85" y1="-1.1" x2="0.85" y2="-1.1" width="0.127" layer="21"/>
<wire x1="0.85" y1="-1.1" x2="0.85" y2="-1.45" width="0.127" layer="21"/>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0.3048" drill="0">
</class>
</classes>
<designrules name="pcbway">
<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="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="6mil"/>
<param name="mdSmdVia" value="6mil"/>
<param name="mdSmdSmd" value="6mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="6mil"/>
<param name="mdDrill" value="6mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="6mil"/>
<param name="msDrill" value="12mil"/>
<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="15mil"/>
<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="AutoGrid" value="1"/>
<param name="Efforts" value="0"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="a"/>
<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="a"/>
<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="J1" library="SparkFun-Connectors" package="USB-A-H" value="USB-A-H" x="3.175" y="8.89">
<attribute name="PROD_ID" value="CONN-08367" x="3.175" y="8.89" size="1.778" layer="27" display="off"/>
<attribute name="PARTNO" value="1001-010-01001" x="3.175" y="8.89" size="1.778" layer="27" display="off"/>
</element>
<element name="U2" library="LB-RF" package="HM-11" value="HM-11" x="36.195" y="8.89" rot="R270"/>
<element name="U1" library="SparkFun-DigitalIC" package="TQFP32-08" value="ATMEGA32U2AU" x="16.03375" y="9.68375" rot="R90">
<attribute name="PARTNO" value="ATMEGA32U2-AU" x="16.03375" y="9.68375" size="1.778" layer="27" rot="R90" display="off"/>
</element>
<element name="X1" library="SparkFun-FreqCtrl" package="CRYSTAL-SMD-5X3" value="16MHz" x="12.3825" y="2.54" smashed="yes" rot="R180">
<attribute name="PARTNO" value="FA-238 16.0000MB-C3" x="12.3825" y="2.54" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="NAME" x="9.8425" y="4.7625" size="0.6096" layer="25"/>
<attribute name="VALUE" x="14.9225" y="5.08" size="0.4064" layer="27" rot="R180"/>
</element>
<element name="R1" library="SparkFun-Resistors" package="0603-RES" value="22" x="8.73125" y="9.8425" rot="R180">
<attribute name="PARTNO" value="RC0603JR-0722RL" x="8.73125" y="9.8425" size="1.778" layer="27" rot="R180" display="off"/>
</element>
<element name="R2" library="SparkFun-Resistors" package="0603-RES" value="22" x="8.73125" y="7.9375" rot="R180">
<attribute name="PARTNO" value="RC0603JR-0722RL" x="8.73125" y="7.9375" size="1.778" layer="27" rot="R180" display="off"/>
</element>
<element name="C1" library="SparkFun-Capacitors" package="0402-CAP" value="22pF" x="8.5725" y="2.54" smashed="yes" rot="R90">
<attribute name="PARTNO" value="C0603C220J1GACTU" x="8.5725" y="2.54" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="NAME" x="7.71525" y="2.54" size="0.6096" layer="25" rot="R90" align="bottom-center"/>
<attribute name="VALUE" x="9.7155" y="1.4605" size="0.4064" layer="27" rot="R90"/>
</element>
<element name="C2" library="SparkFun-Capacitors" package="0402-CAP" value="22pF" x="16.03375" y="2.54" smashed="yes" rot="R270">
<attribute name="PARTNO" value="C0603C220J1GACTU" x="16.03375" y="2.54" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="NAME" x="16.03375" y="1.2065" size="0.6096" layer="25" rot="R180" align="bottom-center"/>
<attribute name="VALUE" x="14.89075" y="3.6195" size="0.4064" layer="27" rot="R270"/>
</element>
<element name="C3" library="SparkFun-Capacitors" package="0603-CAP" value="1uF" x="8.73125" y="12.3825" rot="R180">
<attribute name="PARTNO" value="GRM155R61A105KE15D" x="8.73125" y="12.3825" size="1.778" layer="27" rot="R180" display="off"/>
</element>
<element name="U3" library="SparkFun-PowerIC" package="SOT23-5" value="MIC5365 3.3V" x="21.74875" y="2.69875" rot="R270">
<attribute name="PROD_ID" value="VREG-10107" x="21.74875" y="2.69875" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="PARTNO" value="MIC5365-3.3YD5-TR" x="21.74875" y="2.69875" size="1.778" layer="27" rot="R270" display="off"/>
</element>
<element name="C4" library="SparkFun-Capacitors" package="0603-CAP" value="1uF" x="18.0975" y="2.54" smashed="yes" rot="R270">
<attribute name="PARTNO" value="GRM155R61A105KE15D" x="18.0975" y="2.54" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="NAME" x="18.0975" y="1.2065" size="0.6096" layer="25" font="vector" rot="R180" align="bottom-center"/>
<attribute name="VALUE" x="16.9545" y="3.556" size="0.4064" layer="27" font="vector" rot="R270"/>
</element>
<element name="C5" library="SparkFun-Capacitors" package="0603-CAP" value="1uF" x="23.1775" y="5.87375" rot="R90">
<attribute name="PARTNO" value="GRM155R61A105KE15D" x="23.1775" y="5.87375" size="1.778" layer="27" rot="R90" display="off"/>
</element>
<element name="R3" library="SparkFun-Resistors" package="0402-RES" value="4.7k" x="13.6525" y="15.875">
<attribute name="PARTNO" value="RC0402JR-074K7L" x="13.6525" y="15.875" size="1.778" layer="27" display="off"/>
</element>
<element name="S1" library="LB-Electromech" package="PTS840G*P" value="SPST_PTS840GKP" x="9.2075" y="15.71625" rot="R180">
<attribute name="PARTNO" value="PTS840 GKP SMTR LFS" x="9.2075" y="15.71625" size="1.778" layer="27" rot="R180" display="off"/>
</element>
<element name="J2" library="LB-Connectors" package="2X3_SMD_MALE" value="" x="21.11375" y="9.68375" rot="MR0">
<attribute name="PROD_ID" value="CONN-11415" x="21.11375" y="9.68375" size="1.778" layer="28" rot="MR0" display="off"/>
<attribute name="BOM" value="EXCLUDE" x="21.11375" y="9.68375" size="1.778" layer="28" rot="MR0" display="off"/>
</element>
<element name="R4" library="SparkFun-Resistors" package="0402-RES" value="10k" x="23.65375" y="12.54125" smashed="yes" rot="R270">
<attribute name="PARTNO" value="RC0402JR-074K7L" x="23.65375" y="12.54125" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="NAME" x="22.7965" y="12.54125" size="0.4064" layer="25" rot="R90" align="bottom-center"/>
</element>
</elements>
<signals>
<signal name="XTAL1">
<contactref element="U1" pad="1"/>
<contactref element="X1" pad="3"/>
<contactref element="C1" pad="1"/>
<wire x1="13.23375" y1="5.39115" x2="13.1699" y2="5.39115" width="0.4064" layer="1"/>
<wire x1="13.1699" y1="5.39115" x2="12.3825" y2="4.60375" width="0.6096" layer="1"/>
<wire x1="12.3825" y1="4.60375" x2="12.3825" y2="2.38125" width="0.6096" layer="1"/>
<wire x1="12.3825" y1="2.38125" x2="11.39125" y2="1.39" width="0.6096" layer="1"/>
<wire x1="11.39125" y1="1.39" x2="10.5325" y2="1.39" width="0.4064" layer="1"/>
<wire x1="8.5725" y1="1.89" x2="9.0725" y2="1.39" width="0.6096" layer="1"/>
<wire x1="9.0725" y1="1.39" x2="10.5325" y2="1.39" width="0.6096" layer="1"/>
</signal>
<signal name="XTAL2">
<contactref element="U1" pad="2"/>
<contactref element="X1" pad="1"/>
<contactref element="C2" pad="1"/>
<wire x1="14.03375" y1="5.39115" x2="14.03375" y2="4.20625" width="0.6096" layer="1"/>
<wire x1="14.03375" y1="4.20625" x2="14.2325" y2="3.69" width="0.4064" layer="1"/>
<wire x1="14.2325" y1="3.69" x2="14.7325" y2="3.19" width="0.6096" layer="1"/>
<wire x1="14.7325" y1="3.19" x2="16.03375" y2="3.19" width="0.6096" layer="1"/>
</signal>
<signal name="GND">
<contactref element="X1" pad="2"/>
<contactref element="X1" pad="4"/>
<contactref element="U1" pad="28"/>
<contactref element="U1" pad="3"/>
<contactref element="U2" pad="12"/>
<contactref element="C1" pad="2"/>
<contactref element="C2" pad="2"/>
<contactref element="C3" pad="2"/>
<contactref element="U3" pad="2"/>
<contactref element="C5" pad="2"/>
<contactref element="C4" pad="2"/>
<contactref element="J1" pad="GND"/>
<polygon width="0.4064" layer="16" rank="6">
<vertex x="0" y="17.78"/>
<vertex x="36.83" y="17.78"/>
<vertex x="36.83" y="0"/>
<vertex x="0" y="0"/>
</polygon>
<wire x1="11.74115" y1="10.08375" x2="13.49375" y2="10.08375" width="0.6096" layer="1"/>
<via x="13.49375" y="10.08375" extent="1-16" drill="0.3048"/>
<wire x1="14.83375" y1="5.39115" x2="14.83375" y2="7.055" width="0.6096" layer="1"/>
<via x="14.83375" y="7.055" extent="1-16" drill="0.3048"/>
<wire x1="20.44865" y1="2.69875" x2="21.74875" y2="2.69875" width="0.6096" layer="1"/>
<via x="21.74875" y="2.69875" extent="1-16" drill="0.3048"/>
<wire x1="14.2325" y1="1.39" x2="14.7325" y2="1.89" width="0.6096" layer="1"/>
<wire x1="14.7325" y1="1.89" x2="16.03375" y2="1.89" width="0.6096" layer="1"/>
<wire x1="10.5325" y1="3.69" x2="10.0325" y2="3.19" width="0.4064" layer="1"/>
<wire x1="10.0325" y1="3.19" x2="8.5725" y2="3.19" width="0.4064" layer="1"/>
<wire x1="8.5725" y1="3.19" x2="8.5725" y2="4.28625" width="0.6096" layer="1"/>
<via x="8.5725" y="4.28625" extent="1-16" drill="0.3048"/>
<wire x1="30.195" y1="2.14" x2="30.195" y2="4.095" width="0.4064" layer="1"/>
<via x="30.195" y="4.095" extent="1-16" drill="0.3048"/>
<via x="16.98625" y="2.69875" extent="1-16" drill="0.3048"/>
<wire x1="16.03375" y1="1.89" x2="16.98625" y2="1.89" width="0.6096" layer="1"/>
<wire x1="16.98625" y1="1.89" x2="17.8975" y2="1.89" width="0.6096" layer="1"/>
<wire x1="17.8975" y1="1.89" x2="18.0975" y2="1.69" width="0.6096" layer="1"/>
<wire x1="16.98625" y1="2.69875" x2="16.98625" y2="1.89" width="0.6096" layer="1"/>
<wire x1="23.1775" y1="6.72375" x2="24.70875" y2="6.72375" width="0.6096" layer="1"/>
<via x="24.70875" y="6.72375" extent="1-16" drill="0.3048"/>
<wire x1="7.88125" y1="12.3825" x2="6.92125" y2="12.39" width="0.6096" layer="1"/>
<wire x1="6.92125" y1="12.39" x2="5.575" y2="12.39" width="0.6096" layer="1"/>
<contactref element="S1" pad="1" route="any" routetag="G$1.2"/>
<contactref element="S1" pad="2" route="any" routetag="G$1.2"/>
<wire x1="7.4075" y1="14.99125" x2="7.88125" y2="14.5175" width="0.6096" layer="1"/>
<wire x1="7.88125" y1="14.5175" x2="7.88125" y2="12.3825" width="0.6096" layer="1"/>
<contactref element="J2" pad="6"/>
<contactref element="R4" pad="1"/>
<wire x1="23.65375" y1="13.12125" x2="23.65375" y2="14.9225" width="0.4064" layer="1"/>
<via x="23.65375" y="14.9225" extent="1-16" drill="0.3048"/>
</signal>
<signal name="MCU_RX">
<contactref element="U1" pad="8"/>
<contactref element="U2" pad="2"/>
<wire x1="34.13125" y1="7.77875" x2="34.695" y2="8.3425" width="0.4064" layer="1"/>
<wire x1="34.695" y1="8.3425" x2="34.695" y2="15.64" width="0.4064" layer="1"/>
<wire x1="18.83375" y1="5.39115" x2="21.1074" y2="5.39115" width="0.4064" layer="1"/>
<wire x1="21.1074" y1="5.39115" x2="22.225" y2="6.50875" width="0.4064" layer="1"/>
<wire x1="22.225" y1="6.50875" x2="22.225" y2="7.46125" width="0.4064" layer="1"/>
<wire x1="22.225" y1="7.46125" x2="22.5425" y2="7.77875" width="0.4064" layer="1"/>
<wire x1="22.5425" y1="7.77875" x2="34.13125" y2="7.77875" width="0.4064" layer="1"/>
</signal>
<signal name="MCU_TX">
<contactref element="U1" pad="9"/>
<contactref element="U2" pad="4"/>
<wire x1="30.95625" y1="8.5725" x2="31.695" y2="9.31125" width="0.4064" layer="1"/>
<wire x1="31.695" y1="9.31125" x2="31.695" y2="15.64" width="0.4064" layer="1"/>
<wire x1="20.32635" y1="6.88375" x2="21.17125" y2="6.88375" width="0.4064" layer="1"/>
<wire x1="21.17125" y1="6.88375" x2="21.59" y2="7.3025" width="0.4064" layer="1"/>
<wire x1="21.59" y1="7.3025" x2="21.59" y2="7.9375" width="0.4064" layer="1"/>
<wire x1="21.59" y1="7.9375" x2="22.225" y2="8.5725" width="0.4064" layer="1"/>
<wire x1="22.225" y1="8.5725" x2="30.95625" y2="8.5725" width="0.4064" layer="1"/>
</signal>
<signal name="MCU_RTS">
<contactref element="U1" pad="12"/>
<contactref element="U2" pad="3"/>
<wire x1="20.32635" y1="9.28375" x2="30.23875" y2="9.28375" width="0.4064" layer="1"/>
<wire x1="30.23875" y1="9.28375" x2="30.715" y2="9.76" width="0.4064" layer="1"/>
<via x="30.715" y="9.76" extent="1-16" drill="0.3048"/>
<wire x1="30.715" y1="9.76" x2="32.77875" y2="9.76" width="0.4064" layer="16"/>
<wire x1="32.77875" y1="9.76" x2="33.17875" y2="10.16" width="0.4064" layer="16"/>
<via x="33.17875" y="10.16" extent="1-16" drill="0.3048"/>
<wire x1="33.17875" y1="10.16" x2="33.17875" y2="15.62375" width="0.4064" layer="1"/>
<wire x1="33.17875" y1="15.62375" x2="33.195" y2="15.64" width="0.4064" layer="1"/>
</signal>
<signal name="MCU_CTS">
<contactref element="U1" pad="13"/>
<contactref element="U2" pad="1"/>
<wire x1="20.32635" y1="10.08375" x2="23.65375" y2="10.08375" width="0.4064" layer="1"/>
<wire x1="23.65375" y1="10.08375" x2="29.2925" y2="10.08375" width="0.4064" layer="1"/>
<wire x1="29.2925" y1="10.08375" x2="30.1625" y2="10.95375" width="0.4064" layer="1"/>
<via x="30.1625" y="10.95375" extent="1-16" drill="0.3048"/>
<wire x1="30.1625" y1="10.95375" x2="35.71875" y2="10.95375" width="0.4064" layer="16"/>
<wire x1="35.71875" y1="10.95375" x2="36.195" y2="11.43" width="0.4064" layer="16"/>
<via x="36.195" y="11.43" extent="1-16" drill="0.3048"/>
<wire x1="36.195" y1="11.43" x2="36.195" y2="15.64" width="0.4064" layer="1"/>
<contactref element="R4" pad="2"/>
<wire x1="23.65375" y1="11.96125" x2="23.65375" y2="10.08375" width="0.4064" layer="1"/>
</signal>
<signal name="MCU_D_P">
<contactref element="U1" pad="29"/>
<contactref element="R1" pad="1"/>
<wire x1="9.7536" y1="10.16" x2="9.58125" y2="9.8425" width="0.3048" layer="1"/>
<wire x1="11.74115" y1="9.28375" x2="10.8775" y2="9.28375" width="0.6096" layer="1"/>
<wire x1="10.8775" y1="9.28375" x2="10.31875" y2="9.8425" width="0.6096" layer="1"/>
<wire x1="10.31875" y1="9.8425" x2="9.58125" y2="9.8425" width="0.6096" layer="1"/>
</signal>
<signal name="MCU_D_N">
<contactref element="U1" pad="30"/>
<contactref element="R2" pad="1"/>
<wire x1="11.74115" y1="8.48375" x2="10.865" y2="8.48375" width="0.6096" layer="1"/>
<wire x1="10.865" y1="8.48375" x2="10.31875" y2="7.9375" width="0.6096" layer="1"/>
<wire x1="10.31875" y1="7.9375" x2="9.58125" y2="7.9375" width="0.6096" layer="1"/>
</signal>
<signal name="CONN_D_P">
<contactref element="R1" pad="2"/>
<contactref element="J1" pad="D+"/>
<wire x1="5.7495" y1="9.8425" x2="7.88125" y2="9.8425" width="0.6096" layer="1"/>
<wire x1="5.575" y1="10.017" x2="5.7495" y2="9.8425" width="0.6096" layer="1"/>
</signal>
<signal name="CONN_D_N">
<contactref element="R2" pad="2"/>
<contactref element="J1" pad="D-"/>
<wire x1="5.7495" y1="7.9375" x2="7.88125" y2="7.9375" width="0.6096" layer="1"/>
<wire x1="5.575" y1="7.763" x2="5.7495" y2="7.9375" width="0.6096" layer="1"/>
</signal>
<signal name="VIN">
<contactref element="J1" pad="VBUS"/>
<contactref element="U1" pad="32"/>
<contactref element="U1" pad="4"/>
<contactref element="U1" pad="31"/>
<contactref element="U3" pad="1"/>
<contactref element="C4" pad="1"/>
<contactref element="U3" pad="3"/>
<wire x1="11.74115" y1="6.88375" x2="11.74115" y2="7.68375" width="0.6096" layer="1"/>
<wire x1="11.74115" y1="6.88375" x2="13.075" y2="6.88375" width="0.6096" layer="1"/>
<wire x1="13.075" y1="6.88375" x2="14.18625" y2="7.995" width="0.6096" layer="1"/>
<wire x1="8.57" y1="5.395" x2="9.525" y2="5.3975" width="0.6096" layer="1"/>
<wire x1="9.525" y1="5.3975" x2="5.5825" y2="5.3975" width="0.6096" layer="1"/>
<wire x1="5.5825" y1="5.3975" x2="5.575" y2="5.39" width="0.6096" layer="1"/>
<wire x1="15.63375" y1="6.42625" x2="15.63375" y2="5.39115" width="0.6096" layer="1"/>
<wire x1="9.525" y1="5.3975" x2="11.01125" y2="6.88375" width="0.6096" layer="1"/>
<wire x1="11.01125" y1="6.88375" x2="11.74115" y2="6.88375" width="0.6096" layer="1"/>
<wire x1="15.63375" y1="5.39115" x2="15.63375" y2="4.5275" width="0.6096" layer="1"/>
<wire x1="15.63375" y1="4.5275" x2="16.03375" y2="4.1275" width="0.6096" layer="1"/>
<wire x1="16.03375" y1="4.1275" x2="17.36" y2="4.1275" width="0.6096" layer="1"/>
<wire x1="17.36" y1="4.1275" x2="18.0975" y2="3.39" width="0.6096" layer="1"/>
<wire x1="18.0975" y1="3.39" x2="18.35625" y2="3.64875" width="0.6096" layer="1"/>
<wire x1="18.35625" y1="3.64875" x2="19.20875" y2="3.64875" width="0.6096" layer="1"/>
<wire x1="19.20875" y1="3.64875" x2="20.44865" y2="3.64875" width="0.6096" layer="1"/>
<wire x1="20.44865" y1="1.74875" x2="20.44615" y2="1.74625" width="0.6096" layer="1"/>
<wire x1="20.44615" y1="1.74625" x2="19.52625" y2="1.74625" width="0.6096" layer="1"/>
<wire x1="19.52625" y1="1.74625" x2="19.20875" y2="2.06375" width="0.6096" layer="1"/>
<wire x1="19.20875" y1="2.06375" x2="19.20875" y2="3.64875" width="0.6096" layer="1"/>
<contactref element="R3" pad="2"/>
<wire x1="14.2325" y1="15.875" x2="15.39875" y2="15.875" width="0.6096" layer="1"/>
<via x="15.39875" y="15.875" extent="1-16" drill="0.3048"/>
<wire x1="15.39875" y1="15.875" x2="16.03375" y2="15.24" width="0.6096" layer="16"/>
<wire x1="16.03375" y1="15.24" x2="16.03375" y2="12.065" width="0.6096" layer="16"/>
<via x="16.03375" y="12.065" extent="1-16" drill="0.3048"/>
<wire x1="14.18625" y1="7.995" x2="16.03375" y2="7.995" width="0.6096" layer="1"/>
<wire x1="16.03375" y1="7.995" x2="16.03375" y2="12.065" width="0.6096" layer="1"/>
<wire x1="15.63375" y1="6.42625" x2="16.03375" y2="6.82625" width="0.6096" layer="1"/>
<wire x1="16.03375" y1="6.82625" x2="16.03375" y2="7.995" width="0.6096" layer="1"/>
</signal>
<signal name="UCAP">
<contactref element="U1" pad="27"/>
<contactref element="C3" pad="1"/>
<wire x1="9.58125" y1="11.85" x2="10.5475" y2="10.88375" width="0.6096" layer="1"/>
<wire x1="10.5475" y1="10.88375" x2="11.74115" y2="10.88375" width="0.6096" layer="1"/>
<wire x1="9.58125" y1="11.85" x2="9.58125" y2="12.3825" width="0.6096" layer="1"/>
</signal>
<signal name="3.3V">
<contactref element="U3" pad="5"/>
<contactref element="C5" pad="1"/>
<contactref element="U2" pad="9"/>
<wire x1="23.1775" y1="5.02375" x2="23.04885" y2="4.8951" width="0.6096" layer="1"/>
<wire x1="23.04885" y1="4.8951" x2="23.04885" y2="3.64875" width="0.6096" layer="1"/>
<wire x1="23.04885" y1="3.64875" x2="24.5576" y2="2.14" width="0.6096" layer="1"/>
<wire x1="24.5576" y1="2.14" x2="25.695" y2="2.14" width="0.6096" layer="1"/>
</signal>
<signal name="MISO">
<contactref element="U1" pad="17"/>
<contactref element="J2" pad="1"/>
<wire x1="18.83375" y1="13.97635" x2="18.83375" y2="15.02375" width="0.6096" layer="1"/>
<wire x1="18.83375" y1="15.02375" x2="20.0025" y2="16.1925" width="0.6096" layer="1"/>
<wire x1="20.0025" y1="16.1925" x2="21.59" y2="16.1925" width="0.6096" layer="1"/>
<wire x1="21.59" y1="16.1925" x2="22.38375" y2="15.39875" width="0.6096" layer="1"/>
<wire x1="22.38375" y1="15.39875" x2="22.38375" y2="10.95375" width="0.6096" layer="1"/>
<via x="22.38375" y="10.95375" extent="1-16" drill="0.3048"/>
<wire x1="22.38375" y1="10.95375" x2="22.38375" y2="8.41375" width="0.6096" layer="16"/>
<wire x1="22.38375" y1="8.41375" x2="23.65375" y2="7.14375" width="0.6096" layer="16"/>
</signal>
<signal name="SCK">
<contactref element="U1" pad="15"/>
<contactref element="J2" pad="3"/>
<wire x1="20.32635" y1="11.68375" x2="19.30375" y2="11.68375" width="0.6096" layer="1"/>
<wire x1="19.30375" y1="11.68375" x2="18.89125" y2="11.27125" width="0.6096" layer="1"/>
<wire x1="18.89125" y1="11.27125" x2="18.89125" y2="10.00125" width="0.6096" layer="1"/>
<via x="18.89125" y="10.00125" extent="1-16" drill="0.3048"/>
<wire x1="18.89125" y1="10.00125" x2="19.84375" y2="9.04875" width="0.6096" layer="16"/>
<wire x1="19.84375" y1="9.04875" x2="20.32" y2="9.04875" width="0.6096" layer="16"/>
<wire x1="20.32" y1="9.04875" x2="21.11375" y2="8.255" width="0.6096" layer="16"/>
<wire x1="21.11375" y1="8.255" x2="21.11375" y2="7.14375" width="0.6096" layer="16"/>
</signal>
<signal name="RESET">
<contactref element="U1" pad="24"/>
<contactref element="R3" pad="1"/>
<wire x1="13.23375" y1="13.97635" x2="13.0725" y2="14.1376" width="0.6096" layer="1"/>
<wire x1="13.0725" y1="14.1376" x2="13.0725" y2="15.875" width="0.6096" layer="1"/>
<contactref element="S1" pad="3" route="any" routetag="G$1.1"/>
<contactref element="S1" pad="4" route="any" routetag="G$1.1"/>
<wire x1="11.0075" y1="16.44125" x2="12.50625" y2="16.44125" width="0.6096" layer="1"/>
<wire x1="12.50625" y1="16.44125" x2="13.0725" y2="15.875" width="0.6096" layer="1"/>
<contactref element="J2" pad="5"/>
<wire x1="13.23375" y1="13.97635" x2="13.23375" y2="12.325" width="0.6096" layer="1"/>
<wire x1="13.23375" y1="12.325" x2="14.76375" y2="10.795" width="0.6096" layer="1"/>
<via x="14.76375" y="10.795" extent="1-16" drill="0.3048"/>
<wire x1="14.76375" y1="10.795" x2="14.76375" y2="8.5725" width

repository: UNIVERSAL-IT-SYSTEMS/lyrebird

repo_name: UNIVERSAL-IT-SYSTEMS/lyrebird

extension: brd


text:
="0.6096" layer="16"/>
<wire x1="14.76375" y1="8.5725" x2="16.1925" y2="7.14375" width="0.6096" layer="16"/>
<wire x1="16.1925" y1="7.14375" x2="18.57375" y2="7.14375" width="0.6096" layer="16"/>
</signal>
<signal name="MOSI">
<contactref element="U1" pad="16"/>
<contactref element="J2" pad="4"/>
<wire x1="20.32635" y1="12.48375" x2="20.32635" y2="14.1351" width="0.6096" layer="1"/>
<wire x1="20.32635" y1="14.1351" x2="21.11375" y2="14.9225" width="0.6096" layer="1"/>
<via x="21.11375" y="14.9225" extent="1-16" drill="0.3048"/>
<wire x1="21.11375" y1="14.9225" x2="21.11375" y2="12.22375" width="0.6096" layer="16"/>
</signal>
</signals>
</board>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
</compatibility>
</eagle>


text:
DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support."
HOMEPAGE = "http://www.ntfs-3g.org/"
LICENSE = "GPLv2"
DEPENDS = "fuse"
RDEPENDS = "fuse"
PR = "r0"

SRC_URI = http://www.ntfs-3g.org/ntfs-3g-${PV}.tgz

inherit autotools

EXTRA_OEMAKE = "LDCONFIG=echo"


text:
// Copyright 2020 spaGO Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package charlm

import (
	"encoding/json"
	"os"
)

// Config provides configuration settings for a Character-level Language Model.
// TODO: add dropout
type Config struct {
	VocabularySize    int
	EmbeddingSize     int
	HiddenSize        int
	OutputSize        int    // use the projection layer when the output size is > 0
	SequenceSeparator string // empty string is replaced with DefaultSequenceSeparator
	UnknownToken      string // empty string is replaced with DefaultUnknownToken
}

// LoadConfig loads a Config from file.
func LoadConfig(file string) (Config, error) {
	var config Config
	configFile, err := os.Open(file)
	if err != nil {
		return Config{}, err
	}
	defer configFile.Close()
	err = json.NewDecoder(configFile).Decode(&config)
	if err != nil {
		return Config{}, err
	}
	return config, nil
}

repository: muharihar/spago

repo_name: muharihar/spago

branch_name: refs/heads/main


text:
include regina-rexx_${PV}.bb
inherit native
DEPENDS = ""

do_compile() {
	oe_runmake CEXTRA='-DREGINA_SHARE_DIRECTORY=\"$(sharedir)\"'
}

do_stage_append() {
	install -m 0644 ./msgcmp ${STAGING_BINDIR}/msgcmp-multi-input
}

repository: BackupTheBerlios/openslug-svn

repo_name: BackupTheBerlios/openslug-svn


text:
package csc

import (
	"context"
	"database/sql"
	"fmt"
	"os"
	"path/filepath"
	"time"

	"github.com/iancoleman/strcase"
	"github.com/k0kubun/pp"
	"github.com/sirupsen/logrus"
	"github.com/spf13/cobra"
	"github.com/spf13/viper"
	"github.com/taskie/csc"
	"github.com/taskie/csc/models"
	"github.com/taskie/osplus"
	"github.com/volatiletech/sqlboiler/boil"
	"github.com/volatiletech/sqlboiler/queries/qm"
)

type Config struct {
	LogLevel string
	AbsMode  bool
}

var configFile string
var config Config
var (
	verbose, debug, version bool
)

func buildWalkFunc(ctx context.Context, db *sql.DB, basePath string) func(path string, info os.FileInfo, err error) error {
	return func(path string, info os.FileInfo, err error) error {
		if info.IsDir() {
			return nil
		}
		if err != nil {
			return err
		}
		if filepath.Base(path) == "csc.db" {
			return nil
		}
		var dbPath string
		if config.AbsMode {
			dbPath, err = filepath.Abs(path)
		} else {
			dbPath, err = filepath.Rel(basePath, path)
		}
		if err != nil {
			return err
		}
		mtime := info.ModTime()
		size := info.Size()

		qs := []qm.QueryMod{
			qm.Where(models.ObjectColumns.Path+" = ?", dbPath),
		}
		f, err := models.Objects(qs...).One(ctx, db)
		if err == nil {
			if f.Size == -1 {
				q := qm.WhereIn(models.ObjectColumns.ID+" = ?", f.ID)
				logrus.Debugf("Updating (size): %s", dbPath)
				n, err := models.Objects(q).UpdateAll(ctx, db, map[string]interface{}{
					models.ObjectColumns.Size: size,
				})
				if n != 1 {
					logrus.Warn("invalid number of updated records: " + string(n))
				}
				if err != nil {
					return err
				}
				logrus.Debugf("Updated (size): %s", dbPath)
			}
			if f.Mtime != mtime {
				sha256Hex, err := csc.CalcSha256HexString(path)
				if err != nil {
					return err
				}
				if f.Sha256 != sha256Hex {
					q := qm.WhereIn(models.ObjectColumns.ID+" = ?", f.ID)
					logrus.Debugf("Updating: %s", dbPath)
					n, err := models.Objects(q).UpdateAll(ctx, db, map[string]interface{}{
						models.ObjectColumns.Type:   "b",
						models.ObjectColumns.Mtime:  mtime,
						models.ObjectColumns.Size:   size,
						models.ObjectColumns.Sha256: sha256Hex,
					})
					if n != 1 {
						logrus.Warn("invalid number of updated records: " + string(n))
					}
					if err != nil {
						return err
					}
					logrus.Infof("Updated: %s", dbPath)
					return nil
				}
			}
		} else {
			sha256Hex, err := csc.CalcSha256HexString(path)
			if err != nil {
				return err
			}
			f = &models.Object{
				Path:      dbPath,
				Type:      "b",
				Mtime:     mtime,
				Size:      size,
				Sha256:    sha256Hex,
				Status:    "ok",
				UpdatedAt: time.Now(),
			}
			logrus.Debugf("Inserting: %s", dbPath)
			err = f.Insert(ctx, db, boil.Infer())
			if err != nil {
				// do nothing
				// return err
			}
			logrus.Infof("Inserted: %s", dbPath)
			return nil
		}
		return nil
	}
}

const initSQL = `CREATE TABLE objects (
	id INTEGER PRIMARY KEY,
	path TEXT UNIQUE NOT NULL,
	type TEXT NOT NULL,
	size INTEGER NOT NULL,
	mtime DATETIME NOT NULL,
	sha256 TEXT NOT NULL,
	status TEXT NOT NULL,
	created_at DATETIME NOT NULL,
	updated_at DATETIME NOT NULL
);
CREATE INDEX objects_path ON objects (path);
CREATE INDEX objects_sha256_path ON objects (sha256, path);
CREATE INDEX objects_mtime ON objects (mtime);
CREATE INDEX objects_updated_at ON objects (updated_at);
`

func prepare() (context.Context, *sql.DB) {
	ctx := context.Background()
	dbName := "csc.db"
	db, err := sql.Open("sqlite3", dbName)
	if err != nil {
		logrus.Fatal(err)
	}
	return ctx, db
}

func scan(cmd *cobra.Command, args []string) {
	ctx, db := prepare()
	defer db.Close()

	_, err := models.Objects().Count(ctx, db)
	if err != nil {
		_, err := db.Exec(initSQL)
		if err != nil {
			logrus.Fatal(err)
		}
	}

	for _, arg := range args {
		err = filepath.Walk(arg, buildWalkFunc(ctx, db, arg))
		if err != nil {
			logrus.Fatal(err)
		}
	}
}

func sha256(cmd *cobra.Command, args []string) {
	ctx, db := prepare()
	defer db.Close()

	for _, arg := range args {
		fs, err := models.Objects(
			qm.Where(models.ObjectColumns.Sha256+" LIKE ?", arg+"%"),
			qm.OrderBy(models.ObjectColumns.Sha256+","+models.ObjectColumns.Path)).All(ctx, db)
		if err != nil {
			logrus.Fatal(err)
		}
		for _, f := range fs {
			fmt.Printf("%s\t%s\n", f.Sha256, f.Path)
		}
	}
}

func path(cmd *cobra.Command, args []string) {
	ctx, db := prepare()
	defer db.Close()

	for _, arg := range args {
		fs, err := models.Objects(
			qm.Where(models.ObjectColumns.Path+" LIKE ?", arg+"%"),
			qm.OrderBy(models.ObjectColumns.Path)).All(ctx, db)
		if err != nil {
			logrus.Fatal(err)
		}
		for _, f := range fs {
			fmt.Printf("%s\t%s\n", f.Sha256, f.Path)
		}
	}
}

func find(cmd *cobra.Command, args []string) {
	ctx, db := prepare()
	defer db.Close()

	sha256hexs := make([]interface{}, 0)
	for _, arg := range args {
		sha256hex, err := csc.CalcSha256HexString(arg)
		if err != nil {
			logrus.Error(err)
			continue
		}
		sha256hexs = append(sha256hexs, sha256hex)
	}
	fs, err := models.Objects(
		qm.WhereIn(models.ObjectColumns.Sha256+" IN ?", sha256hexs...),
		qm.OrderBy(models.ObjectColumns.Path)).All(ctx, db)
	if err != nil {
		logrus.Fatal(err)
	}
	for _, f := range fs {
		fmt.Printf("%s\t%s\n", f.Sha256, f.Path)
	}
}

const ScanCommandName = "scan"

var ScanCommand = &cobra.Command{
	Use:  ScanCommandName,
	Args: cobra.ArbitraryArgs,
	Run:  scan,
}

const Sha256CommandName = "sha256"

var Sha256Command = &cobra.Command{
	Use:  Sha256CommandName,
	Args: cobra.ArbitraryArgs,
	Run:  sha256,
}

const PathCommandName = "path"

var PathCommand = &cobra.Command{
	Use:  PathCommandName,
	Args: cobra.ArbitraryArgs,
	Run:  path,
}

const FindCommandName = "find"

var FindCommand = &cobra.Command{
	Use:  FindCommandName,
	Args: cobra.ArbitraryArgs,
	Run:  find,
}

const CommandName = "csc"

var Command = &cobra.Command{
	Use: CommandName,
}

func init() {
	Command.AddCommand(ScanCommand, Sha256Command, PathCommand, FindCommand)
	Command.PersistentFlags().StringVarP(&configFile, "config", "c", "", `config file (default "`+CommandName+`.yml")`)
	Command.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "verbose output")
	Command.PersistentFlags().BoolVar(&debug, "debug", false, "debug output")
	Command.PersistentFlags().BoolVarP(&version, "version", "V", false, "show Version")
	Command.Flags().BoolP("abs-mode", "A", false, "absolute path mode")

	for _, s := range []string{"abs-mode"} {
		envKey := strcase.ToSnake(s)
		structKey := strcase.ToCamel(s)
		viper.BindPFlag(envKey, Command.Flags().Lookup(s))
		viper.RegisterAlias(structKey, envKey)
	}

	cobra.OnInitialize(initConfig)
}

func initConfig() {
	if debug {
		logrus.SetLevel(logrus.DebugLevel)
	} else if verbose {
		logrus.SetLevel(logrus.InfoLevel)
	} else {
		logrus.SetLevel(logrus.WarnLevel)
	}

	if configFile != "" {
		viper.SetConfigFile(configFile)
	} else {
		viper.SetConfigName(CommandName)
		conf, err := osplus.GetXdgConfigHome()
		if err != nil {
			logrus.Info(err)
		} else {
			viper.AddConfigPath(filepath.Join(conf, CommandName))
		}
		viper.AddConfigPath(".")
	}
	viper.SetEnvPrefix(CommandName)
	viper.AutomaticEnv()

	err := viper.ReadInConfig()
	if err != nil {
		logrus.Debug(err)
	}
	err = viper.Unmarshal(&config)
	if err != nil {
		logrus.Warn(err)
	}
}

func Main() {
	if config.LogLevel != "" {
		lv, err := logrus.ParseLevel(config.LogLevel)
		if err != nil {
			logrus.Warn(err)
		} else {
			logrus.SetLevel(lv)
		}
	}
	if debug {
		if viper.ConfigFileUsed() != "" {
			logrus.Debugf("Using config file: %s", viper.ConfigFileUsed())
		}
		logrus.Debug(pp.Sprint(config))
		boil.DebugMode = true
	}
	Command.Execute()
}

repository: taskie/csc

repo_name: taskie/csc

gha_language: Go


text:
DESCRIPTION = "i18n for node with deep level objects"
HOMEPAGE = "https://github.com/larafale/node-i18n.git"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

inherit npm
DEPENDS = "nodejs-native nodejs"

S = "${WORKDIR}/git"

SRC_URI = "git://github.com/larafale/node-i18n.git;protocol=git;branch=master;rev=4790750928cb407cafb2fb81bb781626d886231f"

do_install () {
    export npm_config_prefix=${D}${prefix}
    export TMPDIR=${T}
    npm install -g
}

FILES_${PN} += "${libdir}/node_modules/node-i18n/"
FILES_${PN} += "/usr/etc/"
FILES_${PN} += "/usr/"

RDEPENDS_${PN} += "perl"

# Prevents do_package failures with:
# debugsources.list: No such file or directory:
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"


text:
package umbral

import (
	"reflect"
	"testing"
)

func TestAPIBasics(t *testing.T) {

	cxt := MakeDefaultContext()

	privKeyAlice := GenPrivateKey(cxt)
	pubKeyAlice := privKeyAlice.GetPublicKey(cxt)

	privKeyBob := GenPrivateKey(cxt)
	pubKeyBob := privKeyBob.GetPublicKey(cxt)

	plainText := []byte("attack at dawn")
	cipherText, capsule := Encrypt(cxt, pubKeyAlice, plainText)

	testDecrypt := DecryptDirect(cxt, capsule, privKeyAlice, cipherText)

	if !reflect.DeepEqual(plainText, testDecrypt) {
		t.Errorf("Direct decryption failed")
	}

	kFrags := SplitReKey(cxt, privKeyAlice, pubKeyBob, 10, 20)

	cFrags := make([]*CFrag, len(kFrags))
	for i := range kFrags {
		cFrags[i] = ReEncapsulate(kFrags[i], capsule)
	}

	testDecryptFrags := DecryptFragments(cxt, capsule, cFrags, privKeyBob, pubKeyAlice, cipherText)
	if !reflect.DeepEqual(plainText, testDecryptFrags) {
		t.Errorf("Re-encapsulated fragment decryption failed")
	}
}

repository: Eleven-Z/goUmbral

repo_name: Eleven-Z/goUmbral