text:
// Copyright (c) 2016 Arista Networks, Inc.
// Use of this source code is governed by the Apache License 2.0
// that can be found in the COPYING file.

package walker

import (
	"context"
	"errors"
	"fmt"
	"path/filepath"
	"runtime"
	"runtime/debug"

	"github.com/aristanetworks/quantumfs"
	"github.com/aristanetworks/quantumfs/utils"
	"github.com/aristanetworks/quantumfs/utils/simplebuffer"
	"golang.org/x/sync/errgroup"
)

// ErrSkipHierarchy is a special error from WalkFunc to indicate that
// the walker should skip the current workspace hiearchy and
// continue with rest of the workspace walk. This error also
// leaves it upto the walker library to decide whether it wishes
// to exit or continue walking.
// This error will not be treated as an error during workspace walk.
var ErrSkipHierarchy = errors.New("skip this hierarchy")

// WalkFunc is the type of the function called for each data block under the
// Workspace. Every error encountered by walker library can be filtered by
// WalkFunc. So walker library does not log any errors, instead it forwards all
// errors to the walkFunc. Hence the right place to harvest errors is the
// WalkFunc. Hence even if Walk returns nil error, it could still mean that there
// were errors during the walk. If WalkFunc returns any error, except
// ErrSkipDirectory, then the workspace walk is stopped. So depending on the error
// handling behaviour of WalkFunc, Walk API can be used to do a fail-fast (abort walk
// on first error) or a best-effort walk (continue walk amidst errors).
//
// When err argument is non-nil, size is invalid.
//
// When err argument is non-nil, path may be empty. When path is empty, key, size
// and objType are invalid.
type WalkFunc func(ctx *Ctx, path string, key quantumfs.ObjectKey,
	size uint64, objType quantumfs.ObjectType,
	err error) error

// filterErrByWalkFunc is used to forward the walker library
// encountered errors to walkFunc. Use of this function
// makes the error forwarding more clear than using the
// walkFunc directly.
func filterErrByWalkFunc(c *Ctx, path string, key quantumfs.ObjectKey,
	objTyp quantumfs.ObjectType, err error) error {

	// size is invalid, see note above.
	return c.wf(c, path, key, 0, objTyp, err)
}

// walkDsGet enables mocking datastore Get in test routines.
type walkDsGet func(cq *quantumfs.Ctx, path string,
	key quantumfs.ObjectKey, typ quantumfs.ObjectType,
	buf quantumfs.Buffer) error

// Ctx maintains context for the walker library.
type Ctx struct {
	context.Context
	Qctx   *quantumfs.Ctx
	rootID quantumfs.ObjectKey

	hlkeys map[quantumfs.FileId]*quantumfs.EncodedDirectoryRecord
	wf     WalkFunc
	group  *errgroup.Group
	dsGet  walkDsGet
}

type workerData struct {
	path    string
	key     quantumfs.ObjectKey
	size    uint64
	objType quantumfs.ObjectType
}

const panicErrFmt = "PANIC %s\n%v"

func panicToError(exception interface{}) error {
	var result string
	switch exception.(type) {
	default:
		result = fmt.Sprintf("Unknown panic type: %v", exception)
	case string:
		result = exception.(string)
	case error:
		result = exception.(error).Error()
	}

	trace := utils.BytesToString(debug.Stack())

	return fmt.Errorf(panicErrFmt, result, trace)
}

const walkerErrLog = "desc: %s key: %s err: %s"

// aggregateDsGetter returns a datastore getter function that
// first checks in ConstantStore and then falls back to the
// provied datastore getter.
func aggregateDsGetter(dsGet walkDsGet) walkDsGet {
	return func(cq *quantumfs.Ctx, path string,
		key quantumfs.ObjectKey, typ quantumfs.ObjectType,
		buf quantumfs.Buffer) error {

		if err := quantumfs.ConstantStore.Get(cq, key, buf); err != nil {
			return dsGet(cq, path, key, typ, buf)
		}
		return nil
	}
}

// dsErrFilter forwards errors from dsGet invocations to
// walkFunc.
func dsErrFilter(c *Ctx, dsGet walkDsGet) walkDsGet {
	return func(cq *quantumfs.Ctx, path string,
		key quantumfs.ObjectKey, typ quantumfs.ObjectType,
		buf quantumfs.Buffer) error {

		err := dsGet(cq, path, key, typ, buf)
		if err != nil {
			err = filterErrByWalkFunc(c, path, key, typ, err)
		}
		return err
	}
}

func newContext(cq *quantumfs.Ctx, dsGet walkDsGet,
	rootID quantumfs.ObjectKey, wf WalkFunc) *Ctx {

	group, groupCtx := errgroup.WithContext(context.Background())
	return &Ctx{
		Context: groupCtx,
		Qctx:    cq,
		rootID:  rootID,
		hlkeys: make(
			map[quantumfs.FileId]*quantumfs.EncodedDirectoryRecord),
		wf:    wf,
		group: group,
		dsGet: dsGet,
	}
}

// Walk the workspace hierarchy
func Walk(cq *quantumfs.Ctx, ds quantumfs.DataStore, rootID quantumfs.ObjectKey,
	wf WalkFunc) error {

	getter := func(cq *quantumfs.Ctx, path string,
		key quantumfs.ObjectKey, typ quantumfs.ObjectType,
		buf quantumfs.Buffer) error {

		return ds.Get(cq, key, buf)
	}

	c := newContext(cq, getter, rootID, wf)

	// since test routines directly call walk()
	// ensure that Walk() doesn't add anything
	// else here.
	return walk(c)
}

// walk is the core walker routine which accepts a context.
// This enables test routines to setup appropriate context
// to simulate different conditions while keeping the API
// simple.
func walk(c *Ctx) error {
	// we use the aggregated data store throughout walker
	// but we don't overwrite the c.dsGet since thats the
	// caller provided dsGet
	adsGet := aggregateDsGetter(c.dsGet)
	// a dsGet wrapper which first queries from aggregate datastore and then the
	// real datastore. Any error during dsGet is filtered using walkFunc.
	adsGetEF := dsErrFilter(c, adsGet)

	var err error
	buf := simplebuffer.New(nil, c.rootID)
	if err = adsGetEF(c.Qctx, "wsr", c.rootID,
		quantumfs.ObjectTypeWorkspaceRoot, buf); err != nil {

		return err
	}
	simplebuffer.AssertNonZeroBuf(buf,
		"WorkspaceRoot buffer %s", c.rootID.String())

	wsr := buf.AsWorkspaceRoot()
	//===============================================
	// NOTE: currently we only use base layer key
	// rootID is ObjectKey of type KeyTypeMetadata which refers to
	// WorkspaceRoot. The BaseLayer() is ObjectKey of type
	// KeyTypeMetadata which refers to an ObjectType of
	// DirectoryEntry

	keyChan := make(chan *workerData, 100)

	// Start Workers
	conc := runtime.GOMAXPROCS(-1)
	for i := 0; i < conc; i++ {

		c.group.Go(func() (err error) {
			return worker(c, keyChan)
		})
	}

	c.group.Go(func() (err error) {
		defer close(keyChan)
		defer func() {
			if exception := recover(); exception != nil {
				// If walker goroutine panics then irrespective
				// of walkFunc error filtering, we'll end the
				// workspace walk.
				err = panicToError(exception)
				filterErrByWalkFunc(c, "", quantumfs.ObjectKey{},
					quantumfs.ObjectTypeSmallFile, err)
			}
		}()

		// WSR
		if err = writeToChan(c, keyChan, "[rootId]", c.rootID,
			uint64(buf.Size()),
			quantumfs.ObjectTypeWorkspaceRoot); err != nil {

			return err
		}

		if err = handleHardLinks(c, adsGetEF, wsr.HardlinkEntry(),
			keyChan); err != nil {

			return err
		}

		// all the hardlinks in this workspace must be walked
		// prior to starting the walk of the root directory to
		// enable lookup for fileID in directoryRecord of the
		// path which represents the hardlink

		if err = handleDirectoryEntry(c, "/", adsGetEF, wsr.BaseLayer(),
			keyChan); err != nil {

			return err
		}

		return nil
	})

	return c.group.Wait()
}

func handleHardLinks(c *Ctx, adsGetEF walkDsGet,
	hle quantumfs.HardlinkEntry, keyChan chan<- *workerData) error {

	for {
		// Go through all records in this entry.
		for idx := 0; idx < hle.NumEntries(); idx++ {

			hlr := hle.Entry(idx)
			dr := hlr.Record()
			linkPath := dr.Filename()
			err := handleDirectoryRecord(c, linkPath, adsGetEF, dr,
				keyChan)
			if err != nil {
				return err
			}
			// add an entry to enable lookup based on FileId
			c.hlkeys[dr.FileId()] = dr
		}
		if !hle.HasNext() {
			break
		}

		key := hle.Next()
		buf := simplebuffer.New(nil, key)
		if err := adsGetEF(c.Qctx, "[hardlink table]",
			key, quantumfs.ObjectTypeHardlink, buf); err != nil {

			if err == ErrSkipHierarchy {
				return nil
			}
			return err
		}

		simplebuffer.AssertNonZeroBuf(buf,
			"WorkspaceRoot buffer %s", key.String())

		if err := writeToChan(c, keyChan, "[hardlink table]", key,
			uint64(buf.Size()),
			quantumfs.ObjectTypeHardlink); err != nil {

			return err
		}

		hle = buf.AsHardlinkEntry()
	}
	return nil
}

func handleMultiBlockFile(c *Ctx, path string, dsGet walkDsGet,
	key quantumfs.ObjectKey, typ quantumfs.ObjectType,
	keyChan chan<- *workerData) error {

	buf := simplebuffer.New(nil, key)
	if err := dsGet(c.Qctx, path, key, typ, buf); err != nil {
		if err == ErrSkipHierarchy {
			return nil
		}
		return err
	}

	simplebuffer.AssertNonZeroBuf(buf,
		"MultiBlockFile buffer %s", key.String())

	// indicate metadata block's ObjectType
	if err := writeToChan(c, keyChan, path, key, uint64(buf.Size()),
		typ); err != nil {
		return err
	}

	mbf := buf.AsMultiBlockFile()
	keys := mbf.ListOfBlocks()
	for i, k := range keys {
		size := uint64(mbf.BlockSize())
		if i == len(keys)-1 {
			size = uint64(mbf.SizeOfLastBlock())
		}
		// multi-block files are always made up of
		// small files
		if err := writeToChan(c, keyChan, path, k, size,
			quantumfs.ObjectTypeSmallFile); err != nil {
			return err
		}
	}

	return nil
}

func handleVeryLargeFile(c *Ctx, path string, dsGet walkDsGet,
	key quantumfs.ObjectKey, keyChan chan<- *workerData) error {

	buf := simplebuffer.New(nil, key)
	if err := dsGet(c.Qctx, path, key,
		quantumfs.ObjectTypeVeryLargeFile, buf); err != nil {

		if err == ErrSkipHierarchy {
			return nil
		}
		return err
	}

	simplebuffer.AssertNonZeroBuf(buf,
		"VeryLargeFile buffer %s", key.String())

	if err := writeToChan(c, keyChan, path, key,
		uint64(buf.Size()), quantumfs.ObjectTypeVeryLargeFile); err != nil {

		return err
	}
	vlf := buf.AsVeryLargeFile()
	for part := 0; part < vlf.NumberOfParts(); part++ {
		// ObjectTypeVeryLargeFile contains multiple
		// ObjectTypeLargeFile objects
		if err := handleMultiBlockFile(c, path, dsGet,
			vlf.LargeFileKey(part), quantumfs.ObjectTypeLargeFile,
			keyChan); err != nil && err != ErrSkipHierarchy {

			return err
		}
	}

	return nil
}

func handleDirectoryEntry(c *Ctx, path string, adsGetEF walkDsGet,
	key quantumfs.ObjectKey, keyChan chan<- *workerData) error {

	for {
		buf := simplebuffer.New(nil, key)
		if err := adsGetEF(c.Qctx, path, key,
			quantumfs.ObjectTypeDirectory, buf); err != nil {

			if err == ErrSkipHierarchy {
				return nil
			}
			return err
		}

		simplebuffer.AssertNonZeroBuf(buf,
			"DirectoryEntry buffer %s", key.String())

		// When wf returns ErrSkipHierarchy for a DirectoryEntry,
		// we can skip the DirectoryRecords in that DirectoryEntry
		if err := c.wf(c, path, key, uint64(buf.Size()),
			quantumfs.ObjectTypeDirectory, nil); err != nil {

			if err == ErrSkipHierarchy {
				return nil
			}
			return err
		}

		de := buf.AsDirectoryEntry()
		for i := 0; i < de.NumEntries(); i++ {
			if err := handleDirectoryRecord(c, path, adsGetEF,
				de.Entry(i), keyChan); err != nil {

				return err
			}
		}
		if !de.HasNext() {
			break
		}

		key = de.Next()
	}
	return nil
}

func handleDirectoryRecord(c *Ctx, path string, adsGetEF walkDsGet,
	dr *quantumfs.EncodedDirectoryRecord, keyChan chan<- *workerData) error {

	// NOTE: some of the EncodedDirectoryRecord accesses eg: Filename, Size etc
	//       may not be meaningful for some EncodedDirectoryRecords. For example,
	//       Filename for EncodedDirectoryRecord in hardlinkRecord is
	//       meaningless
	//       Size for EncodedDirectoryRecord in special file is meaningless
	//
	//       This information is eventually sent to the walk handler
	//       function. Current use-cases don't need to filter such
	//       meaningless info, the default values work fine.
	fpath := filepath.Join(path, dr.Filename())

	if err := handleExtendedAttributes(c, fpath, adsGetEF,
		dr, keyChan); err != nil {

		return err
	}

	key := dr.ID()
	switch dr.Type() {
	case quantumfs.ObjectTypeMediumFile:
		fallthrough
	case quantumfs.ObjectTypeLargeFile:
		return handleMultiBlockFile(c, fpath,
			adsGetEF, key, dr.Type(), keyChan)
	case quantumfs.ObjectTypeVeryLargeFile:
		return handleVeryLargeFile(c, fpath, adsGetEF, key, keyChan)
	case quantumfs.ObjectTypeDirectory:
		return handleDirectoryEntry(c, fpath, adsGetEF, key, keyChan)
	case quantumfs.ObjectTypeHardlink:
		// This ObjectType will only be seen when looking at a
		// directoryRecord reached from directoryEntry and not
		// when walking from hardlinkEntry table hence use the
		// key from the hardlinkRecord.
		//
		// hardlinks cannot be made to directories so its safe
		// to just log the error if below checks fail and continue
		// walking other directory records in the caller.
		hldr, exists := c.hlkeys[dr.FileId()]

		if !exists {
			errStr := fmt.Sprintf("Key for hardlink Path: %s "+
				"FileId: %d missing in WSR hardlink info",
				fpath, dr.FileId())
			err := fmt.Errorf("%s", errStr)
			err = filterErrByWalkFunc(c, fpath, key,
				quantumfs.ObjectTypeHardlink, err)
			if err == ErrSkipHierarchy {
				return nil
			}
			return err
		} else if hldr.Type() == quantumfs.ObjectTypeHardlink {
			errStr := fmt.Sprintf("Hardlink object type found in"+
				"WSR hardlink info for path: %s fileID: %d", fpath,
				dr.FileId())
			err := fmt.Errorf("%s", errStr)
			err = filterErrByWalkFunc(c, fpath, key,
				quantumfs.ObjectTypeHardlink, err)
			if err == ErrSkipHierarchy {
				return nil
			}
			return err
		} else {
			// hldr could be of any of the supported ObjectTypes so
			// handle the directoryRecord accordingly
			return handleDirectoryRecord(c, fpath, adsGetEF, hldr,
				keyChan)
		}
	case quantumfs.ObjectTypeSpecial:
		fallthrough
	case quantumfs.ObjectTypeSmallFile:
		fallthrough
	case quantumfs.ObjectTypeSymlink:
		fallthrough
	default:
		return writeToChan(c, keyChan, fpath, key, dr.Size(), dr.Type())
	}
}

func handleExtendedAttributes(c *Ctx, fpath string, adsGetEF walkDsGet,
	dr quantumfs.DirectoryRecord, keyChan chan<- *workerData) error {

	extKey := dr.ExtendedAttributes()
	if extKey.IsEqualTo(quantumfs.EmptyBlockKey) {
		return nil
	}

	buf := simplebuffer.New(nil, extKey)
	if err := adsGetEF(c.Qctx, fpath, extKey,
		quantumfs.ObjectTypeExtendedAttribute, buf); err != nil {

		if err == ErrSkipHierarchy {
			return nil
		}
		return err
	}
	simplebuffer.AssertNonZeroBuf(buf,
		"Attributes List buffer %s", extKey.String())

	if err := writeToChan(c, keyChan, fpath, extKey, uint64(buf.Size()),
		quantumfs.ObjectTypeExtendedAttribute); err != nil {

		return err
	}

	attributeList := buf.AsExtendedAttributes()

	for i := 0; i < attributeList.NumAttributes(); i++ {
		_, key := attributeList.Attribute(i)

		buf := simplebuffer.New(nil, key)
		if err := adsGetEF(c.Qctx, fpath, key,
			quantumfs.ObjectTypeExtendedAttribute, buf); err != nil {

			if err == ErrSkipHierarchy {
				return nil
			}
			return err
		}
		simplebuffer.AssertNonZeroBuf(buf,
			"Attributes List buffer %s", key.String())

		// ObjectTypeExtendedAttribute is made up of
		// ObjectTypeSmallFile
		if err := writeToChan(c, keyChan, fpath, key,
			uint64(buf.Size()),
			quantumfs.ObjectTypeSmallFile); err != nil {

			return err
		}
	}
	return nil
}

// _worker handles multiple items from keyChan and converts any panics into errors
// during processing.
func _worker(c *Ctx, keyChan <-chan *workerData) (err error) {
	defer func() {
		if exception := recover(); exception != nil {
			// The panic in walkFunc is converted to error and the
			// filtered error is returned.
			err = panicToError(exception)
			err = filterErrByWalkFunc(c, "", quantumfs.ObjectKey{},
				quantumfs.ObjectTypeSmallFile, err)
		}
	}()

	var keyItem *workerData
	for {
		select {
		case <-c.Done():
			err = fmt.Errorf("Quitting worker because at least one " +
				"goroutine failed with an error")
			return
		case keyItem = <-keyChan:
			if keyItem == nil {
				err = nil
				return
			}
		}

		if err = c.wf(c, keyItem.path, keyItem.key, keyItem.size,
			keyItem.objType, nil); err != nil &&
			err != ErrSkipHierarchy {

			return
		}
	}
}

// worker knows when to terminate the worker goroutine.
func worker(c *Ctx, keyChan <-chan *workerData) (err error) {
	for {
		err = _worker(c, keyChan)
		// close the worker is an err different than ErrSkipHierarchy
		// is seen or when the walker goroutine has terminated.
		if err == nil || err != ErrSkipHierarchy {
			return
		}
	}
}

func writeToChan(c context.Context, keyChan chan<- *workerData, p string,
	k quantumfs.ObjectKey, s uint64, t quantumfs.ObjectType) error {

	select {
	case <-c.Done():
		return fmt.Errorf("Quitting writeToChan because at least one " +
			"goroutine failed with an error")
	case keyChan <- &workerData{path: p, key: k, size: s, objType: t}:
	}
	return nil
}

// SkipKey returns true:
// If the Key is in Constant DataStore, or
// If the Key is of Type Embedded,
func SkipKey(c *Ctx, key quantumfs.ObjectKey) bool {

	if key.Type() == quantumfs.KeyTypeEmbedded {
		return true
	}

	cds := quantumfs.ConstantStore
	buf := simplebuffer.New(nil, key)

	if err := cds.Get(c.Qctx, key, buf); err != nil {
		return false // Not a ConstKey, so do not Skip.
	}
	return true
}

repository: aristanetworks/quantumfs

repo_name: aristanetworks/quantumfs


text:
using System.Windows.Forms;
using LiveChartsCore.SkiaSharpView.WinForms;
using ViewModelsSamples.Axes.Paging;

namespace WinFormsSample.Axes.Paging;

public partial class View : UserControl
{
    private readonly CartesianChart cartesianChart;

    public View()
    {
        InitializeComponent();
        Size = new System.Drawing.Size(100, 100);

        var viewModel = new ViewModel();

        cartesianChart = new CartesianChart
        {
            Series = viewModel.Series,
            XAxes = viewModel.XAxes,
            ZoomMode = LiveChartsCore.Measure.ZoomAndPanMode.X,

            // out of livecharts properties...
            Location = new System.Drawing.Point(0, 50),
            Size = new System.Drawing.Size(100, 50),
            Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom
        };

        Controls.Add(cartesianChart);

        var b1 = new Button { Text = "Go to page 1", Location = new System.Drawing.Point(0, 0) };
        b1.Click += (object sender, System.EventArgs e) => viewModel.GoToPage1();
        Controls.Add(b1);

        var b2 = new Button { Text = "Go to page 2", Location = new System.Drawing.Point(80, 0) };
        b2.Click += (object sender, System.EventArgs e) => viewModel.GoToPage2();
        Controls.Add(b2);

        var b3 = new Button { Text = "Go to page 3", Location = new System.Drawing.Point(160, 0) };
        b3.Click += (object sender, System.EventArgs e) => viewModel.GoToPage3();
        Controls.Add(b3);

        var b4 = new Button { Text = "Clear", Location = new System.Drawing.Point(24, 0) };
        b4.Click += (object sender, System.EventArgs e) => viewModel.SeeAll();
        Controls.Add(b4);
    }
}

license: MIT

license_type: permissive

branch_name: refs/heads/master

gha_license_id: MIT

gha_language: C#

extension: cs


text:
DESCRIPTION = "GNU unit testing framework, written in Expect and Tcl"
LICENSE = "GPL"
SECTION = "devel"
PR = "r1"

SRC_URI = "ftp://ftp.gnu.org/gnu/dejagnu/dejagnu-${PV}.tar.gz"

inherit autotools

SRC_URI[md5sum] = "053f18fd5d00873de365413cab17a666"
SRC_URI[sha256sum] = "d0fbedef20fb0843318d60551023631176b27ceb1e11de7468a971770d0e048d"

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD

extension: bb


text:
include(tacklelib/Handlers)
include(tacklelib/Props)

macro(return_pre_handler_1)
  tkl_append_global_prop(. call_sequence -2)
endmacro()

macro(return_pre_handler_2)
  tkl_append_global_prop(. call_sequence -1)
endmacro()

tkl_enable_handlers(PRE_ONLY macro return)

tkl_add_last_handler(PRE return return_pre_handler_1)

tkl_copy_vars(all_vars_list1)
tkl_add_last_handler(PRE return return_pre_handler_2)
tkl_copy_vars(all_vars_list2)

list(REMOVE_ITEM all_vars_list2 all_vars_list1)

set(vars_before ${all_vars_list1})
list(REMOVE_ITEM vars_before ${all_vars_list2})

set(vars_after ${all_vars_list2})
list(REMOVE_ITEM vars_after ${all_vars_list1})

tkl_test_assert_true("vars_before STREQUAL \"\"" "vars_before=${vars_before}")
tkl_test_assert_true("vars_after STREQUAL \"\"" "vars_after=${vars_after}")

function(func_with_return)
  return()

  tkl_test_assert_true(0 "unreachable code")
endfunction()

func_with_return()

tkl_get_global_prop(call_sequence call_sequence 0)
tkl_test_assert_true("call_sequence STREQUAL \"-2;-1\"" "call sequence is invalid: call_sequence=${call_sequence}")

extension: cmake


text:
package model

import (
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

	"strings"
)

// ListErrorServersResponse Response Object
type ListErrorServersResponse struct {

	// 迁移过程中发生错误的源端数量
	Count *int32 `json:"count,omitempty"`

	// 迁移过程中发生的错误详情
	MigrationErrors *[]MigrationErrors `json:"migration_errors,omitempty"`
	HttpStatusCode  int                `json:"-"`
}

func (o ListErrorServersResponse) String() string {
	data, err := utils.Marshal(o)
	if err != nil {
		return "ListErrorServersResponse struct{}"
	}

	return strings.Join([]string{"ListErrorServersResponse", string(data)}, " ")
}

gha_license_id: NOASSERTION

gha_language: Go

extension: go


text:
#
# libxcomposite_0.4.4.bb
#
SUMMARY = "Xcomposite: X Composite extension library"

DESCRIPTION = "The composite extension provides three related \
mechanisms: per-hierarchy storage, automatic shadow update, and external \
parent.  In per-hierarchy storage, the rendering of an entire hierarchy \
of windows is redirected to off-screen storage.  In automatic shadow \
update, when a hierarchy is rendered off-screen, the X server provides \
an automatic mechanism for presenting those contents within the parent \
window.  In external parent, a mechanism for providing redirection of \
compositing transformations through a client."

require xorg-lib-common.inc

LICENSE = "MIT-style"
LIC_FILES_CHKSUM = "file://COPYING;md5=3f2907aad541f6f226fbc58cc1b3cdf1"

DEPENDS += " compositeproto virtual/libx11 libxfixes libxext"
PROVIDES = "xcomposite"
BBCLASSEXTEND = "native"

PE = "1"

XORG_PN = "libXcomposite"

SRC_URI += " file://change-include-order.patch"

SRC_URI[md5sum] = "f7a218dcbf6f0848599c6c36fc65c51a"
SRC_URI[sha256sum] = "ede250cd207d8bee4a338265c3007d7a68d5aca791b6ac41af18e9a2aeb34178"

#
# debian
#
inherit debian-package
DEBIAN_SECTION = "x11"
DPR = "0"

# There is no debian patch
DEBIAN_PATCH_TYPE = "nopatch"

repository: takuya-t/meta-debian

repo_name: takuya-t/meta-debian

branch_name: refs/heads/daisy


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="7.7.0">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="1" unitdist="mil" unit="mil" style="dots" multiple="1" display="yes" altdistance="0.003125" altunitdist="mic" altunit="mm"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="yes" active="yes"/>
<layer number="5" name="Route5" color="4" fill="4" visible="yes" active="yes"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="yes"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="yes"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="yes"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="yes"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="yes"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="yes"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="yes"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="yes"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="25" name="tNames" color="1" fill="1" visible="no" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="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="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="yes" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="yes" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="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="no" 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="no" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="yes" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="yes" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="yes" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" 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="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="Measures4lbr" color="14" fill="1" visible="no" active="yes"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="7" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="mm4panel" color="15" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="RECTANGLE_PADS" color="4" fill="1" visible="no" active="yes"/>
<layer number="120" name="_Dimension" color="5" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="10" fill="10" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="11" fill="10" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="12" fill="10" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="13" fill="10" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="14" fill="10" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="15" fill="10" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="16" fill="10" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="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"/>
</layers>
<board>
<plain>
<text x="10.05764375" y="17.114565625" size="0.9144" layer="21" font="vector" ratio="15">6</text>
<circle x="10.36301875" y="10.973028125" radius="8.89" width="0.0508" layer="51"/>
<hole x="8.71201875" y="11.544528125" drill="1.3208"/>
<hole x="4.24161875" y="11.150828125" drill="1.7018"/>
<hole x="16.45901875" y="11.227028125" drill="1.7018"/>
<hole x="12.01401875" y="11.544528125" drill="1.3208"/>
<circle x="4.25431875" y="11.150828125" radius="1.27" width="0.1778" layer="51"/>
<circle x="16.44631875" y="11.252428125" radius="1.27" width="0.1778" layer="51"/>
<circle x="8.67391875" y="11.544528125" radius="1.016" width="0.1778" layer="51"/>
<text x="12.730409375" y="12.332271875" size="0.9144" layer="21" font="vector" ratio="18" rot="R90">open-
ephys
.org</text>
<circle x="12.02671875" y="11.544528125" radius="1.016" width="0.1778" layer="51"/>
<wire x1="10.36301875" y1="10.973028125" x2="10.36301875" y2="10.871428125" width="0" layer="51"/>
<wire x1="4.30511875" y1="10.109428125" x2="10.36301875" y2="10.973028125" width="0" layer="51"/>
<wire x1="10.36301875" y1="10.973028125" x2="16.42091875" y2="11.836628125" width="0" layer="51"/>
<wire x1="16.42091875" y1="10.109428125" x2="10.36301875" y2="10.973028125" width="0" layer="51"/>
<wire x1="10.36301875" y1="10.973028125" x2="4.30511875" y2="11.836628125" width="0" layer="51"/>
<wire x1="10.36301875" y1="10.973028125" x2="1.25711875" y2="10.973028125" width="0" layer="51"/>
<wire x1="10.36301875" y1="10.973028125" x2="19.53241875" y2="10.973028125" width="0" layer="51"/>
<circle x="10.36301875" y="10.973028125" radius="5.51478125" width="0.0254" layer="51"/>
<circle x="10.36301875" y="10.973028125" radius="6.047359375" width="0.0254" layer="51"/>
<circle x="10.36301875" y="10.973028125" radius="7.416103125" width="0.0254" layer="51"/>
<wire x1="10.36301875" y1="10.973028125" x2="10.36301875" y2="19.837628125" width="0" layer="51"/>
<wire x1="9.53751875" y1="5.004028125" x2="11.18851875" y2="3.607028125" width="0" layer="51"/>
<wire x1="11.18851875" y1="5.004028125" x2="9.53751875" y2="3.607028125" width="0" layer="51"/>
<wire x1="11.31551875" y1="18.339028125" x2="13.22051875" y2="17.831028125" width="0" layer="51"/>
<wire x1="13.22051875" y1="17.831028125" x2="12.71251875" y2="16.561028125" width="0" layer="51"/>
<wire x1="12.71251875" y1="16.561028125" x2="11.18851875" y2="16.942028125" width="0" layer="51"/>
<wire x1="13.22051875" y1="17.831028125" x2="14.74451875" y2="16.942028125" width="0" layer="51"/>
<wire x1="14.74451875" y1="16.942028125" x2="16.14151875" y2="15.545028125" width="0" layer="51"/>
<wire x1="16.14151875" y1="15.545028125" x2="17.15751875" y2="14.021028125" width="0" layer="51"/>
<wire x1="17.15751875" y1="14.021028125" x2="15.88751875" y2="13.386028125" width="0" layer="51"/>
<wire x1="15.88751875" y1="13.386028125" x2="15.12551875" y2="14.783028125" width="0" layer="51"/>
<wire x1="15.12551875" y1="14.783028125" x2="13.98251875" y2="15.799028125" width="0" layer="51"/>
<wire x1="13.98251875" y1="15.799028125" x2="12.71251875" y2="16.561028125" width="0" layer="51"/>
<wire x1="11.18851875" y1="18.339028125" x2="9.53751875" y2="16.942028125" width="0" layer="51"/>
<wire x1="9.53751875" y1="18.339028125" x2="11.18851875" y2="16.942028125" width="0" layer="51"/>
<wire x1="9.41051875" y1="18.339028125" x2="7.50551875" y2="17.831028125" width="0" layer="51"/>
<wire x1="7.50551875" y1="17.831028125" x2="8.01351875" y2="16.561028125" width="0" layer="51"/>
<wire x1="8.01351875" y1="16.561028125" x2="9.53751875" y2="16.942028125" width="0" layer="51"/>
<wire x1="7.50551875" y1="17.831028125" x2="5.98151875" y2="16.942028125" width="0" layer="51"/>
<wire x1="5.98151875" y1="16.942028125" x2="4.58451875" y2="15.545028125" width="0" layer="51"/>
<wire x1="4.58451875" y1="15.545028125" x2="3.56851875" y2="14.021028125" width="0" layer="51"/>
<wire x1="3.56851875" y1="14.021028125" x2="4.83851875" y2="13.386028125" width="0" layer="51"/>
<wire x1="4.83851875" y1="13.386028125" x2="5.60051875" y2="14.783028125" width="0" layer="51"/>
<wire x1="5.60051875" y1="14.783028125" x2="6.74351875" y2="15.799028125" width="0" layer="51"/>
<wire x1="6.74351875" y1="15.799028125" x2="8.01351875" y2="16.561028125" width="0" layer="51"/>
<circle x="10.36301875" y="10.973028125" radius="9.525" width="0.0001" layer="20"/>
<wire x1="11.88701875" y1="16.243528125" x2="12.39501875" y2="19.037528125" width="0.2032" layer="21"/>
<wire x1="12.07751875" y1="2.845028125" x2="11.88701875" y2="5.702528125" width="0.2032" layer="21"/>
<wire x1="8.83901875" y1="16.243528125" x2="8.33101875" y2="19.037528125" width="0.2032" layer="21"/>
<wire x1="6.585153125" y1="14.90870625" x2="4.5677875" y2="16.96965" width="0.2032" layer="21"/>
<wire x1="14.140884375" y1="14.90870625" x2="16.15825" y2="16.96965" width="0.2032" layer="21"/>
<wire x1="8.83901875" y1="5.702528125" x2="8.64851875" y2="2.845028125" width="0.2032" layer="21"/>
<wire x1="5.061153125" y1="12.55920625" x2="2.5357875" y2="13.79465" width="0.2032" layer="21"/>
<wire x1="15.664884375" y1="12.55920625" x2="18.19025" y2="13.79465" width="0.2032" layer="21"/>
<text x="10.05764375" y="3.906565625" size="0.9144" layer="21" font="vector" ratio="15">2</text>
<text x="6.31114375" y="5.303565625" size="0.9144" layer="21" font="vector" ratio="15">1</text>
<text x="13.74064375" y="5.303565625" size="0.9144" layer="21" font="vector" ratio="15">3</text>
<text x="4.34264375" y="14.003065625" size="0.9144" layer="21" font="vector" ratio="15">8</text>
<text x="6.64134375" y="16.377965625" size="0.9144" layer="21" font="vector" ratio="15">7</text>
<text x="13.42314375" y="16.416065625" size="0.9144" layer="21" font="vector" ratio="15">5</text>
<text x="15.77264375" y="14.003065625" size="0.9144" layer="21" font="vector" ratio="15">4</text>
<text x="14.58691875" y="8.882928125" size="0.8128" layer="22" font="vector" ratio="15" rot="MR0">Champalimaud
Foundation</text>
<text x="14.45991875" y="12.629428125" size="0.8636" layer="22" font="vector" ratio="15" rot="MR0">Developed &
Produced by</text>
<text x="1.9249625" y="11.823990625" size="0.8128" layer="21" font="vector" ratio="15" rot="R335">R1</text>
<text x="17.6286875" y="11.281278125" size="0.8128" layer="21" font="vector" ratio="15" rot="R25">R2</text>
<text x="9.05526875" y="9.989425" size="0.8128" layer="21" font="vector" ratio="15">v1.2</text>
<text x="14.585378125" y="6.405546875" size="0.8128" layer="22" font="vector" ratio="15" rot="MR0">Hardware
Platform</text>
<text x="5.575684375" y="6.315934375" size="1.016" layer="22" font="vector" ratio="15" rot="MR90">0.50</text>
<text x="2.19634375" y="10.307365625" size="0.8128" layer="21" font="vector" ratio="15">G</text>
<text x="17.58874375" y="8.021365625" size="0.8128" layer="21" font="vector" ratio="15">G</text>
<rectangle x1="4.1402" y1="8.432528125" x2="4.52043125" y2="9.702796875" layer="1"/>
<rectangle x1="16.2052" y1="6.400528125" x2="16.58543125" y2="7.670796875" layer="1"/>
<rectangle x1="16.2052" y1="8.432528125" x2="16.58543125" y2="9.702796875" layer="1"/>
<rectangle x1="4.1402" y1="6.400528125" x2="4.52043125" y2="7.670796875" layer="1"/>
<rectangle x1="4.0894" y1="6.35" x2="4.572" y2="7.7216" layer="29"/>
<rectangle x1="4.0894" y1="8.4074" x2="4.572" y2="9.779" layer="29"/>
<rectangle x1="4.1402" y1="6.4008" x2="4.5212" y2="7.6708" layer="31"/>
<rectangle x1="4.1402" y1="8.4328" x2="4.5212" y2="9.7028" layer="31"/>
<rectangle x1="16.1544" y1="6.35" x2="16.637" y2="7.7216" layer="29"/>
<rectangle x1="16.1544" y1="8.382" x2="16.637" y2="9.7536" layer="29"/>
<rectangle x1="16.2052" y1="8.4328" x2="16.5862" y2="9.7028" layer="31"/>
<rectangle x1="16.2052" y1="6.4008" x2="16.5862" y2="7.6708" layer="31"/>
</plain>
<libraries>
<library name="omnetics">
<packages>
<package name="A79026-001_MALE">
<wire x1="-6.5532" y1="0.8509" x2="6.5278" y2="0.8509" width="0.127" layer="51"/>
<text x="-6.8072" y="0.7239" size="0.508" layer="27" ratio="12" rot="R180">>VALUE</text>
<wire x1="-6.5532" y1="0.8509" x2="-6.5532" y2="-0.9271" width="0.127" layer="51"/>
<wire x1="6.5278" y1="0.8509" x2="6.5278" y2="-0.9271" width="0.127" layer="51"/>
<wire x1="-6.5532" y1="-0.9271" x2="6.5278" y2="-0.9271" width="0.127" layer="51"/>
<text x="-6.8072" y="-0.2921" size="0.508" layer="25" ratio="12" rot="R180">>NAME</text>
<circle x="-6.0579" y="-1.2954" radius="0.104725" width="0.2032" layer="21"/>
<smd name="P17" x="-0.3175" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P19" x="0.3175" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P21" x="0.9525" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P23" x="1.5875" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P25" x="2.2225" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P27" x="2.8575" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P29" x="3.4925" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P31" x="4.1275" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P33" x="4.7625" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P35" x="5.3975" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P15" x="-0.9525" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P13" x="-1.5875" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P11" x="-2.2225" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P9" x="-2.8575" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P7" x="-3.4925" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P5" x="-4.1275" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P3" x="-4.7625" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P1" x="-5.3975" y="-1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P2" x="-5.3975" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P4" x="-4.7625" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P6" x="-4.1275" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P8" x="-3.4925" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P10" x="-2.8575" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P12" x="-2.2225" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P14" x="-1.5875" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P16" x="-0.9525" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P18" x="-0.3175" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P20" x="0.3175" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P22" x="0.9525" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P24" x="1.5875" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P26" x="2.2225" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P28" x="2.8575" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P30" x="3.4925" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P32" x="4.1275" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P34" x="4.7625" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
<smd name="P36" x="5.3975" y="1.016" dx="1.27" dy="0.381" layer="1" rot="R90"/>
</package>
</packages>
</library>
<library name="holes">
<packages>
<package name="LARGE_GOLD_PIN_V5">
<pad name="P$1" x="0" y="0" drill="0.5" diameter="0.8"/>
<text x="0.508" y="0.508" size="0.24" layer="25">>NAME</text>
<text x="-4.572" y="-5.842" size="0.8128" layer="250">Inner: 0.50mm
Outer: 0.80mm
0.5mm(drill)+0.1mm(plating)+
+0.2mm(OAR class 8) </text>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="SeeedStudio_2layer_DRU_no_angle_20140221">
<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*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="1.5mm 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="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="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="100mil"/>
<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="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="|"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="-"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="CON1" library="omnetics" package="A79026-001_MALE" value="A79022-001_MALESMD" x="10.36301875" y="8.052028125" smashed="yes"/>
<element name="1.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="5.34651875" y="5.512028125" smashed="yes">
<attribute name="NAME" x="5.046253125" y="5.38091875" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="1.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="6.61651875" y="4.623028125" smashed="yes">
<attribute name="NAME" x="6.31171875" y="4.470628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="1.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="7.88651875" y="3.988028125" smashed="yes">
<attribute name="NAME" x="7.58171875" y="3.835628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="1.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="8.01351875" y="5.385028125" smashed="yes">
<attribute name="NAME" x="7.70871875" y="5.232628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="2.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="9.53751875" y="3.607028125" smashed="yes">
<attribute name="NAME" x="9.2273875" y="3.4742875" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="2.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="9.53751875" y="4.902428125" smashed="yes">
<attribute name="NAME" x="9.222453125" y="4.765990625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="2.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="11.21391875" y="4.902428125" smashed="yes">
<attribute name="NAME" x="10.90911875" y="4.750028125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="2.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="11.18851875" y="3.607028125" smashed="yes">
<attribute name="NAME" x="10.88371875" y="3.454628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="3.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="12.71251875" y="5.385028125" smashed="yes" rot="R90">
<attribute name="NAME" x="12.395025" y="5.244815625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="3.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="12.83951875" y="3.988028125" smashed="yes" rot="R90">
<attribute name="NAME" x="12.522025" y="3.847815625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="3.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="14.10951875" y="4.623028125" smashed="yes" rot="R90">
<attribute name="NAME" x="13.795234375" y="4.480096875" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="3.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="15.30331875" y="5.410428125" smashed="yes" rot="R90">
<attribute name="NAME" x="14.987875" y="5.270475" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="5.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="13.22051875" y="17.831028125" smashed="yes" rot="R90">
<attribute name="NAME" x="12.903025" y="17.690815625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="5.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="13.98251875" y="15.799028125" smashed="yes" rot="R90">
<attribute name="NAME" x="13.665025" y="15.658815625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="5.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="12.71251875" y="16.561028125" smashed="yes" rot="R90">
<attribute name="NAME" x="12.395025" y="16.420815625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="5.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="14.74451875" y="16.942028125" smashed="yes" rot="R90">
<attribute name="NAME" x="14.452425" y="16.776415625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="4.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="17.03051875" y="14.148028125" smashed="yes" rot="R270">
<attribute name="NAME" x="16.71763125" y="14.0180625" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="4.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="15.88751875" y="13.436828125" smashed="yes">
<attribute name="NAME" x="15.56814375" y="13.305378125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="4.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="16.14151875" y="15.545028125" smashed="yes" rot="R270">
<attribute name="NAME" x="15.812971875" y="15.411703125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="4.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="15.12551875" y="14.783028125" smashed="yes">
<attribute name="NAME" x="14.82071875" y="14.630628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="6.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="9.47401875" y="16.942028125" smashed="yes" rot="R270">
<attribute name="NAME" x="9.185803125" y="16.816203125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="6.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="11.25201875" y="16.942028125" smashed="yes">
<attribute name="NAME" x="10.932728125" y="16.807103125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="6.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="11.18851875" y="18.339028125" smashed="yes" rot="R270">
<attribute name="NAME" x="10.854375" y="18.1964375" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="6.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="9.61371875" y="18.339028125" smashed="yes">
<attribute name="NAME" x="9.30891875" y="18.186628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="7.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="8.01351875" y="16.561028125" smashed="yes" rot="R270">
<attribute name="NAME" x="7.7116375" y="16.432303125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="7.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="7.50551875" y="17.831028125" smashed="yes">
<attribute name="NAME" x="7.20071875" y="17.678628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="7.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="6.74351875" y="15.799028125" smashed="yes">
<attribute name="NAME" x="6.43871875" y="15.646628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="7.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="5.98151875" y="16.942028125" smashed="yes">
<attribute name="NAME" x="5.67671875" y="16.789628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="8.1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="5.60051875" y="14.783028125" smashed="yes">
<attribute name="NAME" x="5.29571875" y="14.630628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="8.2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="4.58451875" y="15.545028125" smashed="yes">
<attribute name="NAME" x="4.27971875" y="15.392628125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="8.3" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="4.83851875" y="13.411428125" smashed="yes">
<attribute name="NAME" x="4.53371875" y="13.259028125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="8.4" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="3.69551875" y="14.148028125" smashed="yes">
<attribute name="NAME" x="3.396990625" y="13.980784375" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="G1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="2.73031875" y="9.703028125" smashed="yes">
<attribute name="NAME" x="2.5265125" y="9.554246875" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="R1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="3.13671875" y="12.751028125" smashed="yes">
<attribute name="NAME" x="2.907865625" y="12.61106875" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="G2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="18.04651875" y="10.109428125" smashed="yes">
<attribute name="NAME" x="17.79251875" y="9.957028125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="R2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="17.71631875" y="12.801828125" smashed="yes">
<attribute name="NAME" x="17.46231875" y="12.649428125" size="0.3048" layer="25" font="vector" ratio="15"/>
</element>
<element name="STIM2_1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="17.2974" y="9.2202"/>
<element name="STIM2_2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="17.272" y="6.8072"/>
<element name="STIM1_1" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="2.9718" y="8.4836"/>
<element name="STIM1_2" library="holes" package="LARGE_GOLD_PIN_V5" value="HOLE_L_G_PIN_V5" x="3.3274" y="7.0104"/>
</elements>
<signals>
<signal name="GND">
<contactref element="CON1" pad="P36"/>
<contactref element="CON1" pad="P1"/>
<contactref element="G1" pad="P$1"/>
<contactref element="G2" pad="P$1"/>
<wire x1="15.76051875" y1="9.195028125" x2="15.76051875" y2="9.068028125" width="0.2032" layer="1"/>
<wire x1="1.44761875" y1="10.972509375" x2="1.61271875" y2="12.572709375" width="0.2032" layer="16"/>
<wire x1="1.61271875" y1="12.572709375" x2="1.81591875" y2="13.410909375" width="0.2032" layer="16"/>
<via x="19.290865625" y="10.96006875" extent="1-16" drill="0.3048"/>
<via x="10.426265625" y="2.09546875" extent="1-16" drill="0.3048"/>
<wire x1="10.41381875" y1="2.083028125" x2="10.426265625" y2="2.09546875" width="0.2032" layer="1"/>
<via x="10.324665625" y="19.87546875" extent="1-16" drill="0.3048"/>
<wire x1="10.31221875" y1="19.888428125" x2="10.324665625" y2="19.87546875" width="0.2032" layer="1"/>
<via x="1.460065625" y="10.96006875" extent="1-16" drill="0.3048"/>
<wire x1="4.96551875" y1="7.036028125" x2="4.953" y2="7.277509375" width="0.2032" layer="1"/>
<wire x1="4.953" y1="7.277509375" x2="4.953" y2="6.2992" width="0.2032" layer="1"/>
<wire x1="18.04651875" y1="10.109428125" x2="18.960709375" y2="10.121259375" width="0.2032" layer="1"/>
<wire x1="4.40266875" y1="4.363775" x2="10.324665625" y2="2.09546875" width="0.3048" layer="1" curve="41.916746"/>
<wire x1="4.40266875" y1="4.363775" x2="1.460065625" y2="10.96006875" width="0.3048" layer="1" curve="-48.083254"/>
<wire x1="10.324665625" y1="2.09546875" x2="10.426265625" y2="2.09546875" width="0.3048" layer="1"/>
<wire x1="10.426265625" y1="2.09546875" x2="19.290865625" y2="10.96006875" width="0.3048" layer="1" curve="90"/>
<wire x1="19.290865625" y1="10.96006875" x2="10.375465625" y2="19.87546875" width="0.3048" layer="1" curve="90"/>
<wire x1="10.375465625" y1="19.87546875" x2="10.324665625" y2="19.87546875" width="0.3048" layer="1"/>
<wire x1="10.324665625" y1="19.87546875" x2="1.460065625" y2="11.01086875" width="0.3048" layer="1" curve="90"/>
<wire x1="1.460065625" y1="11.01086875" x2="1.460065625" y2="10.96006875" width="0.3048" layer="1"/>
<wire x1="1.460065625" y1="10.96006875" x2="1.460065625" y2="11.01086875" width="0.3048" layer="16"/>
<wire x1="1.460065625" y1="11.01086875" x2="10.324665625" y2="19.87546875" width="0.3048" layer="16" curve="-90"/>
<wire x1="10.324665625" y1="19.87546875" x2="10.375465625" y2="19.87546875" width="0.3048" layer="16"/>
<wire x1="10.375465625" y1="19.87546875" x2="19.290865625" y2="10.96006875" width="0.3048" layer="16" curve="-90"/>
<wire x1="19.290865625" y1="10.96006875" x2="10.426265625" y2="2.09546875" width="0.3048" layer="16" curve="-90"/>
<wire x1="10.426265625" y1="2.09546875" x2="10.324659375" y2="2.09546875" width="0.3048" layer="16"/>
<wire x1="10.324659375" y1="2.09546875" x2="1.44761875" y2="10.972509375" width="0.3048" layer="16" curve="-90"/>
<wire x1="1.460065625" y1="10.96006875" x2="2.73031875" y2="9.703028125" width="0.2032" layer="1"/>
<wire x1="4.953" y1="6.2992" x2="4.8768" y2="6.2484" width="0.2032" layer="1"/>
<wire x1="4.8768" y1="6.2484" x2="4.3434" y2="5.969" width="0.2032" layer="1"/>
<wire x1="4.3434" y1="5.969" x2="4.40266875" y2="4.363775" width="0.2032" layer="1"/>
<wire x1="18.960709375" y1="10.121259375" x2="19.290865625" y2="10.121259375" width="0.2032" layer="1"/>
<wire x1="19.290865625" y1="10.121259375" x2="19.290865625" y2="10.96006875" width="0.2032" layer="1"/>
<wire x1="15.76051875" y1="9.195028125" x2="15.76051875" y2="9.79151875" width="0.1524" layer="1"/>
<wire x1="18.04651875" y1="10.109428125" x2="17.500828125" y2="10.109428125" width="0.1524" layer="1"/>
<wire x1="17.500828125" y1="10.109428125" x2="17.3736" y2="9.9822" width="0.1524" layer="1"/>
<wire x1="17.3736" y1="9.9822" x2="15.9512" y2="9.9822" width="0.1524" layer="1"/>
<wire x1="15.9512" y1="9.9822" x2="15.76051875" y2="9.79151875" width="0.1524" layer="1"/>
</signal>
<signal name="N$97">
</signal>
<signal name="N$34">
<contactref element="R1" pad="P$1"/>
<contactref element="CON1" pad="P2"/>
<wire x1="4.96551875" y1="9.068028125" x2="4.953" y2="9.068028125" width="0.1524" layer="1"/>
<wire x1="4.953" y1="9.068028125" x2="4.9276" y2="9.9568" width="0.1524" layer="1"/>
<wire x1="4.9276" y1="9.9568" x2="3.683" y2="9.9568" width="0.1524" layer="1"/>
<wire x1="3.18751875" y1="10.42688125" x2="3.683" y2="9.9568" width="0.1524" layer="1"/>
<wire x1="3.13671875" y1="12.751028125" x2="2.9718" y2="12.535309375" width="0.1524" layer="1"/>
<wire x1="2.9718" y1="10.6426" x2="3.18751875" y2="10.42688125" width="0.1524" layer="1" curve="90"/>
<wire x1="2.9718" y1="12.535309375" x2="2.9718" y2="10.6426" width="0.1524" layer="1"/>
</signal>
<signal name="N$35">
<contactref element="R2" pad="P$1"/>
<contactref element="CON1" pad="P35"/>
<via x="16.21771875" y="5.867628125" extent="1-16" drill="0.3048"/>
<wire x1="17.61471875" y1="12.674828125" x2="17.71631875" y2="12.801828125" width="0.2032" layer="16"/>
<wire x1="15.76051875" y1="7.036028125" x2="15.76051875" y2="6.324828125" width="0.1524" layer="1"/>
<wire x1="15.76051875" y1="6.324828125" x2="16.21771875" y2="5.867628125" width="0.1524" layer="1"/>
<wire x1="16.06531875" y1="5.9944" x2="16.21771875" y2="5.867628125" width="0.2032" layer="16"/>
<wire x1="17.71631875" y1="12.801828125" x2="17.7292" y2="12.560346875" width="0.2032" layer="16"/>
<wire x1="17.7292" y1="11.0236" x2="17.7292" y2="12.560346875" width="0.2032" layer="16"/>
<wire x1="16.21771875" y1="5.867628125" x2="16.4084" y2="6.337709375" width="0.1524" layer="16"/>
<wire x1="16.4084" y1="7.5946" x2="17.8054" y2="7.5946" width="0.1524" layer="16"/>
<wire x1="16.4084" y1="6.337709375" x2="16.4084" y2="7.5946" width="0.1524" layer="16"/>
<wire x1="17.8054" y1="7.5946" x2="18.3134" y2="8.1026" width="0.1524" layer="16"/>
<wire x1="18.3134" y1="8.1026" x2="18.3134" y2="9.3218" width="0.1524" layer="16"/>
<wire x1="18.3134" y1="9.3218" x2="18.8214" y2="9.8298" width="0.1524" layer="16"/>
<wire x1="18.8214" y1="9.8298" x2="18.8214" y2="10.668" width="0.1524" layer="16"/>
<wire x1="18.8214" y1="10.668" x2="18.5166" y2="11.0236" width="0.1524" layer="16"/>
<wire x1="18.5166" y1="11.0236" x2="17.7292" y2="11.0236" width="0.1524" layer="16"/>
</signal>
<signal name="N$1">
<contactref element="1.1" pad="P$1"/>
<contactref element="CON1" pad="P5"/>
<wire x1="6.23551875" y1="7.036028125" x2="6.23551875" y2="5.740628125" width="0.1524" layer="1"/>
<wire x1="6.23551875" y1="5.740628125" x2="6.00691875" y2="5.512028125" width="0.1524" layer="1"/>
<wire x1="6.00691875" y1="5.512028125" x2="5.34651875" y2="5.512028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="1.2" pad="P$1"/>
<contactref element="CON1" pad="P7"/>
<wire x1="6.87051875" y1="7.036028125" x2="6.87051875" y2="5.766028125" width="0.1524" layer="1"/>
<wire x1="6.87051875" y1="5.766028125" x2="6.61651875" y2="5.512028125" width="0.1524" layer="1"/>
<wire x1="6.61651875" y1="5.512028125" x2="6.61651875" y2="4.623028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$3">
<contactref element="1.3" pad="P$1"/>
<contactref element="CON1" pad="P9"/>
<wire x1="7.50551875" y1="7.036028125" x2="7.50551875" y2="5.943828125" width="0.1524" layer="1"/>
<wire x1="7.50551875" y1="5.943828125" x2="7.14991875" y2="5.588228125" width="0.1524" layer="1"/>
<wire x1="7.14991875" y1="5.588228125" x2="7.14991875" y2="5.131028125" width="0.1524" layer="1"/>
<wire x1="7.14991875" y1="5.131028125" x2="7.45471875" y2="4.826228125" width="0.1524" layer="1"/>
<wire x1="7.45471875" y1="4.826228125" x2="7.45471875" y2="4.419828125" width="0.1524" layer="1"/>
<wire x1="7.45471875" y1="4.419828125" x2="7.88651875" y2="3.988028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$7">
<contactref element="1.4" pad="P$1"/>
<contactref element="CON1" pad="P11"/>
<wire x1="8.14051875" y1="7.036028125" x2="8.14051875" y2="6.235921875" width="0.1524" layer="1"/>
<wire x1="8.14051875" y1="6.235921875" x2="8.013265625" y2="6.10866875" width="0.1524" layer="1"/>
<wire x1="8.013265625" y1="6.10866875" x2="8.013265625" y2="5.38528125" width="0.1524" layer="1"/>
<wire x1="8.013265625" y1="5.38528125" x2="8.01351875" y2="5.385028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="2.1" pad="P$1"/>
<contactref element="CON1" pad="P13"/>
<wire x1="8.77551875" y1="7.036028125" x2="8.77551875" y2="4.369028125" width="0.1524" layer="1"/>
<wire x1="8.77551875" y1="4.369028125" x2="9.53751875" y2="3.607028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$14">
<contactref element="2.2" pad="P$1"/>
<contactref element="CON1" pad="P15"/>
<wire x1="9.53751875" y1="4.902428125" x2="9.537265625" y2="5.00428125" width="0.1524" layer="1"/>
<wire x1="9.41051875" y1="5.029428125" x2="9.53751875" y2="4.902428125" width="0.1524" layer="1"/>
<wire x1="9.41051875" y1="7.036028125" x2="9.41051875" y2="5.029428125" width="0.1524" layer="1"/>
</signal>
<signal name="N$15">
<contactref element="2.3" pad="P$1"/>
<contactref element="CON1" pad="P21"/>
<wire x1="11.31551875" y1="7.036028125" x2="11.31551875" y2="5.753321875" width="0.1524" layer="1"/>
<wire x1="11.31551875" y1="5.753321875" x2="11.18851875" y2="5.626321875" width="0.1524" layer="1"/>
<wire x1="11.21391875" y1="4.902428125" x2="11.18851875" y2="5.626321875" width="0.1524" layer="1"/>
</signal>
<signal name="N$16">
<contactref element="2.4" pad="P$1"/>
<contactref element="CON1" pad="P23"/>
<wire x1="11.95051875" y1="7.036028125" x2="11.95051875" y2="4.369028125" width="0.1524" layer="1"/>
<wire x1="11.95051875" y1="4.369028125" x2="11.18851875" y2="3.607028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$17">
<contactref element="CON1" pad="P25"/>
<contactref element="3.1" pad="P$1"/>
<wire x1="12.58551875" y1="7.036028125" x2="12.58551875" y2="6.260815625" width="0.1524" layer="1"/>
<wire x1="12.58551875" y1="6.260815625" x2="12.737665625" y2="6.10866875" width="0.1524" layer="1"/>
<wire x1="12.737665625" y1="6.10866875" x2="12.737665625" y2="5.410175" width="0.1524" layer="1"/>
<wire x1="12.737665625" y1="5.410175" x2="12.71251875" y2="5.385028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$18">
<contactref element="CON1" pad="P27"/>
<contactref element="3.2" pad="P$1"/>
<wire x1="13.22051875" y1="7.036028125" x2="13.22051875" y2="5.994628125" width="0.1524" layer="1"/>
<wire x1="13.22051875" y1="5.994628125" x2="13.55071875" y2="5.664428125" width="0.1524" layer="1"/>
<wire x1="13.55071875" y1="5.664428125" x2="13.55071875" y2="5.131028125" width="0.1524" layer="1"/>
<wire x1="13.55071875" y1="5.131028125" x2="13.24591875" y2="4.826228125" width="0.1524" layer="1"/>
<wire x1="13.24591875" y1="4.826228125" x2="13.24591875" y2="4.394428125" width="0.1524" layer="1"/>
<wire x1="13.24591875" y1="4.394428125" x2="12.83951875" y2="3.988028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$19">
<contactref element="CON1" pad="P29"/>
<contactref element="3.3" pad="P$1"/>
<wire x1="13.85551875" y1="7.036028125" x2="13.85551875" y2="5.816828125" width="0.1524" layer="1"/>
<wire x1="13.85551875" y1="5.816828125" x2="14.08411875" y2="5.588228125" width="0.1524" layer="1"/>
<wire x1="14.08411875" y1="5.588228125" x2="14.08411875" y2="4.648428125" width="0.1524" layer="1"/>
<wire x1="14.08411875" y1="4.648428125" x2="14.10951875" y2="4.623028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$20">
<contactref element="CON1" pad="P31"/>
<contactref element="3.4" pad="P$1"/>
<wire x1="14.49051875" y1="7.036028125" x2="14.49051875" y2="5.791428125" width="0.1524" layer="1"/>
<wire x1="14.49051875" y1="5.791428125" x2="14.76991875" y2="5.512028125" width="0.1524" layer="1"/>
<wire x1="14.76991875" y1="5.512028125" x2="15.30331875" y2="5.410428125" width="0.1524" layer="1"/>
</signal>
<signal name="N$9">
<contactref element="6.1" pad="P$1"/>
<contactref element="CON1" pad="P17"/>
<via x="9.94391875" y="5.969228125" extent="1-16" drill="0.3048"/>
<wire x1="9.94391875" y1="5.969228125" x2="9.96931875" y2="7.721828125" width="0.1524" layer="16"/>
<wire x1="9.96931875" y1="7.721828125" x2="9.81691875" y2="7.874228125" width="0.1524" layer="16"/>
<wire x1="9.81691875" y1="7.874228125" x2="9.81691875" y2="15.989528125" width="0.1524" layer="16"/>
<wire x1="9.81691875" y1="15.989528125" x2="9.47401875" y2="16.332428125" width="0.1524" layer="16"/>
<wire x1="9.47401875" y1="16.332428125" x2="9.47401875" y2="16.942028125" width="0.1524" layer="16"/>
<wire x1="9.94391875" y1="5.969228125" x2="9.96931875" y2="6.959828125" width="0.1524" layer="1"/>
<wire x1="9.96931875" y1="6.959828125" x2="10.04551875" y2="7.036028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="6.2" pad="P$1"/>
<contactref element="CON1" pad="P19"/>
<via x="10.70591875" y="5.893028125" extent="1-16" drill="0.3048"/>
<wire x1="10.70591875" y1="5.893028125" x2="10.73131875" y2="7.721828125" width="0.1524" layer="16"/>
<wire x1="10.73131875" y1="7.721828125" x2="10.88371875" y2="7.874228125" width="0.1524" layer="16"/>
<wire x1="10.88371875" y1="7.874228125" x2="10.88371875" y2="15.964128125" width="0.1524" layer="16"/>
<wire x1="10.88371875" y1="15.964128125" x2="11.25201875" y2="16.332428125" width="0.1524" layer="16"/>
<wire x1="11.25201875" y1="16.332428125" x2="11.25201875" y2="16.942028125" width="0.1524" layer="16"/>
<wire x1="10.70591875" y1="5.893028125" x2="10.73131875" y2="6.985228125" width="0.1524" layer="1"/>
<wire x1="10.73131875" y1="6.985228125" x2="10.68051875" y2="7.036028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$11">
<contactref element="6.3" pad="P$1"/>
<contactref element="CON1" pad="P20"/>
<wire x1="10.51541875" y1="17.665928125" x2="11.18851875" y2="18.339028125" width="0.1524" layer="1"/>
<wire x1="10.51541875" y1="17.665928125" x2="10.51541875" y2="10.071328125" width="0.1524" layer="1"/>
<wire x1="10.68051875" y1="9.068028125" x2="10.68051875" y2="9.906228125" width="0.1524" layer="1"/>
<wire x1="10.68051875" y1="9.906228125" x2="10.51541875" y2="10.071328125" width="0.1524" layer="1"/>
</signal>
<signal name="N$21">
<contactref element="6.4" pad="P$1"/>
<contactref element="CON1" pad="P18"/>
<wire x1="10.21061875" y1="17.665928125" x2="9.61371875" y2="18.339028125" width="0.1524" layer="1"/>
<wire x1="10.21061875" y1="17.665928125" x2="10.21061875" y2="10.096728125" width="0.1524" layer="1"/>
<wire x1="10.04551875" y1="9.068028125" x2="10.04551875" y2="9.931628125" width="0.1524" layer="1"/>
<wire x1="10.04551875" y1="9.931628125" x2="10.21061875" y2="10.096728125" width="0.1524" layer="1"/>
</signal>
<signal name="N$22">
<contactref element="8.4" pad="P$1"/>
<contactref element="CON1" pad="P3"/>
<wire x1="5.60051875" y1="7.036028125" x2="5.60051875" y2="7.823428125" width="0.1524" layer="1"/>
<wire x1="5.60051875" y1="7.823428125" x2="5.39731875" y2="8.026628125" width="0.1524" layer="1"/>
<wire x1="5.39731875" y1="8.026628125" x2="3.82251875" y2="8.026628125" width="0.1524" layer="1"/>
<via x="3.82251875" y="8.026628125" extent="1-16" drill="0.3048"/>
<wire x1="3.69551875" y1="14.148028125" x2="3.72091875" y2="14.122628125" width="0.1524" layer="16"/>
<wire x1="2.0828" y1="12.3952" x2="2.3876" y2="13.4366" width="0.1524" layer="16"/>
<wire x1="2.0828" y1="12.3952" x2="2.9972" y2="11.9888" width="0.1524" layer="16"/>
<wire x1="2.9972" y1="11.9888" x2="2.9972" y2="10.668" width="0.1524" layer="16"/>
<wire x1="2.9972" y1="10.668" x2="3.7084" y2="9.9568" width="0.1524" layer="16"/>
<wire x1="3.7084" y1="9.9568" x2="4.9784" y2="9.9568" width="0.1524" layer="16"/>
<wire x1="4.9784" y1="9.9568" x2="5.1054" y2="9.8298" width="0.1524" layer="16"/>
<wire x1="5.1054" y1="9.8298" x2="5.1054" y2="8.026628125" width="0.1524" layer="16"/>
<wire x1="5.1054" y1="8.026628125" x2="3.82251875" y2="8.026628125" width="0.1524" layer="16"/>
<wire x1="2.3876" y1="13.4366" x2="3.69551875" y2="14.148028125" width="0.1524" layer="16"/>
</signal>
<signal name="N$23">
<contactref element="CON1" pad="P4"/>
<contactref element="8.3" pad="P$1"/>
<wire x1="5.60051875" y1="9.068028125" x2="5.60051875" y2="12.624028125" width="0.1524" layer="1"/>
<wire x1="5.60051875" y1="12.624028125" x2="4.83851875" y2="13.411428125" width="0.1524" layer="1"/>
</signal>
<signal name="N$24">
<contactref element="CON1" pad="P6"/>
<contactref element="8.2" pad="P$1"/>
<wire x1="6.23551875" y1="9.068028125" x2="6.23551875" y2="10.084028125" width="0.1524" layer="1"/>
<wire x1="6.23551875" y1="10.084028125" x2="5.93071875" y2="10.388828125" width="0.1524" layer="1"/>
<wire x1="5.93071875" y1="10.388828125" x2="5.93071875" y2="13.360628125" width="0.1524" layer="1"/>
<wire x1="5.93071875" y1="13.360628125" x2="4.55911875" y2="14.732228125" width="0.1524" layer="1"/>
<wire x1="4.55911875" y1="14.732228125" x2="4.55911875" y2="15.519628125" width="0.1524" layer="1"/>
<wire x1="4.55911875" y1="15.519628125" x2="4.58451875" y2="15.545028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$25">
<contactref element="CON1" pad="P8"/>
<contactref element="8.1" pad="P$1"/>
<wire x1="6.87051875" y1="9.068028125" x2="6.87051875" y2="9.982428125" width="0.1524" layer="1"/>
<wire x1="6.87051875" y1="9.982428125" x2="6.23551875" y2="10.617428125" width="0.1524" layer="1"/>
<wire x1="6.23551875" y1="10.617428125" x2="6.23551875" y2="14.148028125" width="0.1524" layer="1"/>
<wire x1="6.23551875" y1="14.148028125" x2="5.60051875" y2="14.783028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$12">
<contactref element="CON1" pad="P12"/>
<contactref element="7.3" pad="P$1"/>
<wire x1="8.14051875" y1="9.068028125" x2="8.14051875" y2="9.703028125" width="0.1524" layer="1"/>
<wire x1="8.14051875" y1="9.703028125" x2="6.84511875" y2="10.998428125" width="0.1524" layer="1"/>
<wire x1="6.84511875" y1="10.998428125" x2="6.84511875" y2="15.697428125" width="0.1524" layer="1"/>
<wire x1="6.84511875" y1="15.697428125" x2="6.74351875" y2="15.799028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$26">
<contactref element="CON1" pad="P14"/>
<contactref element="7.2" pad="P$1"/>
<wire x1="8.77551875" y1="9.068028125" x2="8.77551875" y2="9.753828125" width="0.1524" layer="1"/>
<wire x1="8.77551875" y1="9.753828125" x2="8.59771875" y2="9.931628125" width="0.1524" layer="1"/>
<wire x1="8.59771875" y1="9.931628125" x2="8.36911875" y2="9.931628125" width="0.1524" layer="1"/>
<wire x1="8.36911875" y1="9.931628125" x2="7.14991875" y2="11.150828125" width="0.1524" layer="1"/>
<wire x1="7.14991875" y1="11.150828125" x2="7.14991875" y2="14.960828125" width="0.1524" layer="1"/>
<wire x1="7.14991875" y1="14.960828125" x2="7.75951875" y2="15.570428125" width="0.1524" layer="1"/>
<wire x1="7.75951875" y1="15.570428125" x2="6.99751875" y2="16.789628125" width="0.1524" layer="1"/>
<wire x1="6.99751875" y1="16.789628125" x2="6.99751875" y2="17.323028125" width="0.1524" layer="1"/>
<wire x1="6.99751875" y1="17.323028125" x2="7.50551875" y2="17.831028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$27">
<contactref element="CON1" pad="P16"/>
<contactref element="7.1" pad="P$1"/>
<wire x1="9.41051875" y1="9.068028125" x2="9.4105

repository: kemerelab/EphysHelperPCBs

repo_name: kemerelab/EphysHelperPCBs

extension: brd


text:
1875" y2="9.804628125" width="0.1524" layer="1"/>
<wire x1="9.41051875" y1="9.804628125" x2="8.97871875" y2="10.236428125" width="0.1524" layer="1"/>
<wire x1="8.97871875" y1="10.236428125" x2="8.52151875" y2="10.236428125" width="0.1524" layer="1"/>
<wire x1="8.52151875" y1="10.236428125" x2="7.45471875" y2="11.303228125" width="0.1524" layer="1"/>
<wire x1="7.45471875" y1="11.303228125" x2="7.45471875" y2="14.656028125" width="0.1524" layer="1"/>
<wire x1="7.45471875" y1="14.656028125" x2="8.06431875" y2="15.265628125" width="0.1524" layer="1"/>
<wire x1="8.06431875" y1="15.265628125" x2="8.06431875" y2="16.510228125" width="0.1524" layer="1"/>
<wire x1="8.06431875" y1="16.510228125" x2="8.01351875" y2="16.561028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$28">
<contactref element="7.4" pad="P$1"/>
<contactref element="CON1" pad="P10"/>
<wire x1="7.50551875" y1="9.068028125" x2="7.50551875" y2="9.880828125" width="0.1524" layer="1"/>
<wire x1="7.50551875" y1="9.880828125" x2="6.54031875" y2="10.846028125" width="0.1524" layer="1"/>
<wire x1="6.54031875" y1="10.846028125" x2="6.54031875" y2="14.960828125" width="0.1524" layer="1"/>
<wire x1="6.54031875" y1="14.960828125" x2="5.98151875" y2="15.519628125" width="0.1524" layer="1"/>
<wire x1="5.98151875" y1="16.942028125" x2="5.98151875" y2="15.519628125" width="0.1524" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="4.1" pad="P$1"/>
<contactref element="CON1" pad="P33"/>
<wire x1="15.12551875" y1="7.036028125" x2="15.12551875" y2="7.772628125" width="0.1524" layer="1"/>
<wire x1="15.12551875" y1="7.772628125" x2="15.37951875" y2="8.026628125" width="0.1524" layer="1"/>
<via x="17.13211875" y="8.229828125" extent="1-16" drill="0.3048"/>
<wire x1="14.84611875" y1="8.407628125" x2="15.22711875" y2="8.026628125" width="0.1524" layer="16"/>
<wire x1="14.84611875" y1="8.407628125" x2="14.84611875" y2="11.836628125" width="0.1524" layer="16"/>
<wire x1="14.84611875" y1="11.836628125" x2="15.45571875" y2="12.446228125" width="0.1524" layer="16"/>
<wire x1="15.45571875" y1="12.446228125" x2="16.06531875" y2="12.446228125" width="0.1524" layer="16"/>
<wire x1="16.06531875" y1="12.446228125" x2="17.03051875" y2="13.411428125" width="0.1524" layer="16"/>
<wire x1="17.03051875" y1="13.411428125" x2="17.03051875" y2="14.148028125" width="0.1524" layer="16"/>
<wire x1="15.37951875" y1="8.026628125" x2="16.92891875" y2="8.026628125" width="0.1524" layer="1"/>
<wire x1="16.92891875" y1="8.026628125" x2="17.13211875" y2="8.229828125" width="0.1524" layer="1"/>
<wire x1="15.22711875" y1="8.026628125" x2="16.92891875" y2="8.026628125" width="0.1524" layer="16"/>
<wire x1="16.92891875" y1="8.026628125" x2="17.13211875" y2="8.229828125" width="0.1524" layer="16"/>
</signal>
<signal name="N$5">
<contactref element="CON1" pad="P32"/>
<contactref element="4.3" pad="P$1"/>
<wire x1="14.49051875" y1="9.068028125" x2="14.49051875" y2="9.880828125" width="0.1524" layer="1"/>
<wire x1="14.49051875" y1="9.880828125" x2="14.76991875" y2="10.160228125" width="0.1524" layer="1"/>
<wire x1="14.76991875" y1="10.160228125" x2="14.76991875" y2="13.360628125" width="0.1524" layer="1"/>
<wire x1="14.76991875" y1="13.360628125" x2="16.14151875" y2="14.732228125" width="0.1524" layer="1"/>
<wire x1="16.14151875" y1="14.732228125" x2="16.14151875" y2="15.545028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="CON1" pad="P34"/>
<contactref element="4.2" pad="P$1"/>
<wire x1="15.12551875" y1="9.068028125" x2="15.12551875" y2="12.624028125" width="0.1524" layer="1"/>
<wire x1="15.12551875" y1="12.624028125" x2="15.88751875" y2="13.436828125" width="0.1524" layer="1"/>
</signal>
<signal name="N$8">
<contactref element="CON1" pad="P30"/>
<contactref element="4.4" pad="P$1"/>
<wire x1="13.85551875" y1="9.068028125" x2="13.85551875" y2="9.931628125" width="0.1524" layer="1"/>
<wire x1="13.85551875" y1="9.931628125" x2="14.46511875" y2="10.541228125" width="0.1524" layer="1"/>
<wire x1="14.46511875" y1="10.541228125" x2="14.46511875" y2="14.122628125" width="0.1524" layer="1"/>
<wire x1="14.46511875" y1="14.122628125" x2="15.12551875" y2="14.783028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$29">
<contactref element="CON1" pad="P28"/>
<contactref element="5.1" pad="P$1"/>
<wire x1="13.22051875" y1="9.068028125" x2="13.22051875" y2="9.753828125" width="0.1524" layer="1"/>
<wire x1="13.22051875" y1="9.753828125" x2="14.16031875" y2="10.693628125" width="0.1524" layer="1"/>
<wire x1="14.16031875" y1="10.693628125" x2="14.16031875" y2="14.884628125" width="0.1524" layer="1"/>
<wire x1="14.16031875" y1="14.884628125" x2="14.74451875" y2="15.468828125" width="0.1524" layer="1"/>
<wire x1="14.74451875" y1="16.942028125" x2="14.74451875" y2="15.468828125" width="0.1524" layer="1"/>
</signal>
<signal name="N$30">
<contactref element="CON1" pad="P26"/>
<contactref element="5.2" pad="P$1"/>
<wire x1="12.58551875" y1="9.068028125" x2="12.58551875" y2="9.652228125" width="0.1524" layer="1"/>
<wire x1="12.58551875" y1="9.652228125" x2="13.85551875" y2="10.922228125" width="0.1524" layer="1"/>
<wire x1="13.85551875" y1="10.922228125" x2="13.85551875" y2="15.672028125" width="0.1524" layer="1"/>
<wire x1="13.85551875" y1="15.672028125" x2="13.98251875" y2="15.799028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$31">
<contactref element="CON1" pad="P22"/>
<contactref element="5.4" pad="P$1"/>
<wire x1="11.31551875" y1="9.068028125" x2="11.31551875" y2="9.982428125" width="0.1524" layer="1"/>
<wire x1="11.31551875" y1="9.982428125" x2="11.64571875" y2="10.312628125" width="0.1524" layer="1"/>
<wire x1="11.64571875" y1="10.312628125" x2="12.33151875" y2="10.312628125" width="0.1524" layer="1"/>
<wire x1="12.33151875" y1="10.312628125" x2="13.24591875" y2="11.227028125" width="0.1524" layer="1"/>
<wire x1="13.24591875" y1="11.227028125" x2="13.24591875" y2="14.732228125" width="0.1524" layer="1"/>
<wire x1="13.24591875" y1="14.732228125" x2="12.63631875" y2="15.341828125" width="0.1524" layer="1"/>
<wire x1="12.63631875" y1="15.341828125" x2="12.63631875" y2="16.484828125" width="0.1524" layer="1"/>
<wire x1="12.63631875" y1="16.484828125" x2="12.71251875" y2="16.561028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$32">
<contactref element="CON1" pad="P24"/>
<contactref element="5.3" pad="P$1"/>
<wire x1="11.95051875" y1="9.068028125" x2="11.95051875" y2="9.703028125" width="0.1524" layer="1"/>
<wire x1="11.95051875" y1="9.703028125" x2="12.25531875" y2="10.007828125" width="0.1524" layer="1"/>
<wire x1="12.25531875" y1="10.007828125" x2="12.48391875" y2="10.007828125" width="0.1524" layer="1"/>
<wire x1="12.48391875" y1="10.007828125" x2="13.55071875" y2="11.074628125" width="0.1524" layer="1"/>
<wire x1="13.55071875" y1="11.074628125" x2="13.55071875" y2="14.960828125" width="0.1524" layer="1"/>
<wire x1="13.55071875" y1="14.960828125" x2="12.94111875" y2="15.570428125" width="0.1524" layer="1"/>
<wire x1="12.94111875" y1="15.570428125" x2="13.70311875" y2="16.713428125" width="0.1524" layer="1"/>
<wire x1="13.70311875" y1="16.713428125" x2="13.70311875" y2="17.348428125" width="0.1524" layer="1"/>
<wire x1="13.70311875" y1="17.348428125" x2="13.22051875" y2="17.831028125" width="0.1524" layer="1"/>
</signal>
<signal name="N$37">
<wire x1="2.9718" y1="8.4582" x2="3.5814" y2="9.0678" width="0.2032" layer="1"/>
<wire x1="3.5814" y1="9.0678" x2="4.2672" y2="9.0678" width="0.2032" layer="1"/>
</signal>
<signal name="N$38">
<wire x1="4.2926" y1="7.0358" x2="3.429" y2="7.0612" width="0.2032" layer="1"/>
</signal>
<signal name="N$39">
<wire x1="16.4338" y1="6.8072" x2="16.4338" y2="6.9342" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="N$41">
<wire x1="16.3068" y1="9.2202" x2="17.272" y2="9.2202" width="0.2032" layer="1"/>
</signal>
<signal name="N$33">
<wire x1="17.2466" y1="6.8072" x2="16.4338" y2="6.8072" width="0.1524" layer="1"/>
</signal>
</signals>
<errors>
<approved hash="19,1,35422d973e6fe178"/>
<approved hash="19,1,693f4b2a468a1eb3"/>
<approved hash="19,1,57f8bbe099a3658c"/>
<approved hash="19,1,7603f6e4ec9c1c7a"/>
<approved hash="19,1,725b34d48c90db3c"/>
<approved hash="19,1,9d717902b3a95f86"/>
<approved hash="19,1,2e22bb5fc1085602"/>
<approved hash="19,1,783bf9c7f866799a"/>
<approved hash="19,1,a35ab72874cda3f7"/>
<approved hash="19,1,681debc340ba3c94"/>
<approved hash="19,1,969f1769e8976966"/>
<approved hash="19,1,7a01fbc2dc1bfe98"/>
<approved hash="19,1,1392137910885229"/>
<approved hash="19,1,aeaf86a049159d2b"/>
<approved hash="19,1,3e72f10ef37a3c06"/>
<approved hash="19,1,c8a6e28a0a84dc45"/>
<approved hash="19,1,e72fcf20a79573ab"/>
<approved hash="19,1,2bf141c39a2ee416"/>
<approved hash="19,1,8ffa5f1eb41556bd"/>
<approved hash="19,1,ec9fcb48852d5e6b"/>
<approved hash="19,1,67bd039295ab3489"/>
<approved hash="19,1,bc8347be74f478f8"/>
<approved hash="19,1,8b009d859a2d8d48"/>
</errors>
</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>