text:
#include "stdafx.h"
#include "MAP.h"
#include "ServerDlg.h"
#include "Region.h"
#include "Npc.h"
#include "User.h"
#include "RoomEvent.h"
#include "../shared/packets.h"
#include <fstream>
#include <set>
#include "../shared/SMDFile.h"

INLINE int ParseSpace( char* tBuf, char* sBuf)
{
	int i = 0, index = 0;
	bool flag = false;

	while (sBuf[index] == ' ' || sBuf[index] == '\t')
		index++;

	while (sBuf[index] !=' ' && sBuf[index] !='\t' && sBuf[index] != 0)
	{
		tBuf[i++] = sBuf[index++];
		flag = true;
	}
	tBuf[i] = 0;

	while (sBuf[index] == ' ' || sBuf[index] == '\t')
		index++;

	return !flag ? 0 : index;
};

using namespace std;

/* passthru methods */
int MAP::GetMapSize() { return m_smdFile->GetMapSize(); }
float MAP::GetUnitDistance() { return m_smdFile->GetUnitDistance(); }
int MAP::GetXRegionMax() { return m_smdFile->GetXRegionMax(); }
int MAP::GetZRegionMax() { return m_smdFile->GetZRegionMax(); }
int16_t * MAP::GetEventIDs() { return m_smdFile->GetEventIDs(); }

MAP::MAP() : m_smdFile(nullptr), m_ppRegion(nullptr),
	m_fHeight(nullptr), m_byRoomType(0), m_byRoomEvent(0),
	m_byRoomStatus(RoomStatusInitialised), m_byInitRoomCount(0),
	m_nZoneNumber(0), m_sKarusRoom(0), m_sElmoradRoom(0)
{
}

bool MAP::Initialize(_ZONE_INFO *pZone)
{
	m_nZoneNumber = pZone->m_nZoneNumber;
	m_byRoomEvent = pZone->m_byRoomEvent;

	m_smdFile = SMDFile::Load(pZone->m_MapName);

	if (m_smdFile != nullptr)
	{
		SetZoneAttributes(m_nZoneNumber);

		{ // NOTE: need a second scope because of foreach macro
			foreach_stlmap(itr, m_smdFile->m_ObjectEventArray) {
				_OBJECT_EVENT * pEvent = itr->second;
				_OBJECT_EVENT * pEventMap = new _OBJECT_EVENT;

				pEvent->nIndex  = 0; // NOTE: index into DB table?
				pEvent->sZoneID = m_nZoneNumber;
				pEvent->byLife  = 0; // NOTE: I guess if the "NPC" can take damage?

				*pEventMap = *pEvent;

				// NOTE: not sure how these should be actually indexed
				int iIndex = g_pMain->m_ObjectEventArray.GetSize();
				if (!g_pMain->m_ObjectEventArray.PutData(iIndex, pEventMap)) {
					TRACE("Object Event PutData Fail - %d\n", pEvent->sIndex);
				}
			}
		}

		foreach_stlmap(itr, g_pMain->m_ObjectEventArray)
		{
			if (itr->second->sZoneID == m_nZoneNumber)
			{
				_OBJECT_EVENT * pEvent = itr->second;
				if (pEvent->sType == OBJECT_GATE
					|| pEvent->sType == OBJECT_GATE2
					|| pEvent->sType == OBJECT_GATE_LEVER
					|| pEvent->sType == OBJECT_ANVIL
					|| pEvent->sType == OBJECT_ARTIFACT)
					g_pMain->AddObjectEventNpc(pEvent, this);
			}
		}

		m_ppRegion = new CRegion*[m_smdFile->m_nXRegion];
		for (int i = 0; i < m_smdFile->m_nXRegion; i++)
			m_ppRegion[i] = new CRegion[m_smdFile->m_nZRegion]();
	}

	if (m_byRoomEvent > 0)
	{
		if (!LoadRoomEvent())
		{
			printf("ERROR: Unable to load room event (%d.aievt) for map - %s\n",
				m_byRoomEvent, pZone->m_MapName.c_str());
			m_byRoomEvent = 0;
		}
		else
		{
			m_byRoomEvent = 1;
		}
	}

	return (m_smdFile != nullptr);
}

MAP::~MAP()
{
	RemoveMapData();

	if (m_smdFile != nullptr)
		m_smdFile->DecRef();
}

void MAP::RemoveMapData()
{
	if( m_ppRegion ) {
		for(int i=0; i <= GetXRegionMax(); i++) {
			delete[] m_ppRegion[i];
			m_ppRegion[i] = nullptr;
		}
		delete[] m_ppRegion;
		m_ppRegion = nullptr;
	}

	if (m_fHeight)
	{
		delete[] m_fHeight;
		m_fHeight = nullptr;
	}

	m_arRoomEventArray.DeleteAllData();
}

bool MAP::IsMovable(int dest_x, int dest_y)
{
	return m_smdFile->GetEventID(dest_x, dest_y) == 0;
}

void MAP::RegionUserAdd(int rx, int rz, int uid)
{
	if (rx < 0 || rz < 0 || rx > GetXRegionMax() || rz > GetZRegionMax())
		return;

	Guard lock(m_lock);
	CRegion * pRegion = &m_ppRegion[rx][rz];

	if (pRegion == nullptr)
		return;

	int *pInt = new int;
	*pInt = uid;
	if (!pRegion->m_RegionUserArray.PutData(uid, pInt))
		delete pInt;

	pRegion->m_byMoving = !pRegion->m_RegionUserArray.IsEmpty();
}

bool MAP::RegionUserRemove(int rx, int rz, int uid)
{
	if (rx < 0 || rz < 0 || rx > GetXRegionMax() || rz > GetZRegionMax())
		return false;

	Guard lock(m_lock);
	CRegion * pRegion = &m_ppRegion[rx][rz];

	if (pRegion == nullptr)
		return false;

	pRegion->m_RegionUserArray.DeleteData(uid);
	pRegion->m_byMoving = !pRegion->m_RegionUserArray.IsEmpty();
	return true;
}

void MAP::RegionNpcAdd(int rx, int rz, int nid)
{
	if (rx < 0 || rz < 0 || rx > GetXRegionMax() || rz > GetZRegionMax())
		return;

	Guard lock(m_lock);
	int *pInt = new int;
	*pInt = nid;
	if (!m_ppRegion[rx][rz].m_RegionNpcArray.PutData(nid, pInt))
		delete pInt;
}

bool MAP::RegionNpcRemove(int rx, int rz, int nid)
{
	if (rx < 0 || rz < 0 || rx > GetXRegionMax() || rz > GetZRegionMax())
		return false;

	Guard lock(m_lock);
	m_ppRegion[rx][rz].m_RegionNpcArray.DeleteData( nid );
	return true;
}

CRegion * MAP::GetRegion(uint16_t regionX, uint16_t regionZ)
{
	if (regionX > GetXRegionMax()
		|| regionZ > GetZRegionMax())
		return nullptr;

	Guard lock(m_lock);
	return &m_ppRegion[regionX][regionZ];
}

bool MAP::LoadRoomEvent()
{
	uint32_t		length, count;
	string		filename = string_format(MAP_DIR "%d.evt", m_byRoomEvent);
	char		byte;
	char		buf[4096];
	char		first[1024];
	char		temp[1024];
	int			index = 0;
	int			t_index = 0, logic=0, exec=0;
	int			event_num = 0, nation = 0;

	CRoomEvent*	pEvent = nullptr;
	ifstream is(filename);
	if (!is)
	{
		printf("ERROR: %s does not exist or no permission to access.\n", filename.c_str());
		return false;
	}

	is.seekg(0, is.end);
	length = (uint32_t)is.tellg();
	is.seekg (0, is.beg);

	count = 0;

	while (count < length)
	{
		is.read(&byte, 1);
		count ++;

		if( byte != '\r' && byte != '\n' ) buf[index++] = byte;

		if((byte == '\n' || count == length ) && index > 1 )	{
			buf[index] = (uint8_t) 0;
			t_index = 0;

			if( buf[t_index] == ';' || buf[t_index] == '/' )	{		// 주석에 대한 처리
				index = 0;
				continue;
			}

			t_index += ParseSpace( first, buf + t_index );

			if( !strcmp( first, "ROOM" ) )	{
				logic = 0; exec = 0;
				t_index += ParseSpace( temp, buf + t_index );	event_num = atoi( temp );

				if( m_arRoomEventArray.IsExist(event_num) )	{
					TRACE("Event Double !!\n" );
					goto cancel_event_load;
				}

				pEvent = nullptr;
				pEvent = SetRoomEvent( event_num );
			}
			else if( !strcmp( first, "TYPE" ) )	{
				t_index += ParseSpace( temp, buf + t_index );	m_byRoomType = atoi( temp );
			}
			else if( !strcmp( first, "L" ) )	{
				if( !pEvent )	{
					goto cancel_event_load;
				}
			}
			else if( !strcmp( first, "E" ) )	{
				if (!pEvent
					|| exec >= MAX_CHECK_EVENT)
					goto cancel_event_load;

				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_Exec[exec].sNumber = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_Exec[exec].sOption_1 = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_Exec[exec].sOption_2 = atoi( temp );
				exec++;
			}
			else if( !strcmp( first, "A" ) )	{
				if (!pEvent
					|| logic >= MAX_CHECK_EVENT)
					goto cancel_event_load;

				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_Logic[logic].sNumber = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_Logic[logic].sOption_1 = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_Logic[logic].sOption_2 = atoi( temp );
				logic++;
				pEvent->m_byCheck = logic;
			}
			else if( !strcmp( first, "O" ) )	{
				if( !pEvent )	{
					goto cancel_event_load;
				}
			}
			else if( !strcmp( first, "NATION" ) )	{
				if( !pEvent )	{
					goto cancel_event_load;
				}

				t_index += ParseSpace( temp, buf + t_index );	nation = atoi( temp );
				if( nation == KARUS )	{
					m_sKarusRoom++;
				}
				else if( nation == ELMORAD )	{
					m_sElmoradRoom++;
				}
			}
			else if( !strcmp( first, "POS" ) )	{
				if( !pEvent )	{
					goto cancel_event_load;
				}

				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iInitMinX = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iInitMinZ = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iInitMaxX = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iInitMaxZ = atoi( temp );
			}
			else if( !strcmp( first, "POSEND" ) )	{
				if( !pEvent )	{
					goto cancel_event_load;
				}

				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iEndMinX = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iEndMinZ = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iEndMaxX = atoi( temp );
				t_index += ParseSpace( temp, buf + t_index );	pEvent->m_iEndMaxZ = atoi( temp );
			}
			else if( !strcmp( first, "END" ) )	{
				if( !pEvent )	{
					goto cancel_event_load;
				}
			}

			index = 0;
		}
	}

	is.close();

	return true;

cancel_event_load:
	printf("Unable to load AI EVT (%d.aievt), failed in or near event number %d.\n",
		m_byRoomEvent, event_num);
	is.close();
	return false;
}

int MAP::IsRoomCheck(float fx, float fz)
{
	int nX = (int)fx, nZ = (int)fz;
	int minX=0, minZ=0, maxX=0, maxZ=0;
	int room_number = 0;

	foreach_stlmap (itr, m_arRoomEventArray)
	{
		CRoomEvent * pRoom = itr->second;
		if (pRoom == nullptr
			|| pRoom->isCleared())
			continue;

		if (pRoom->isInitialised())
		{
			minX = pRoom->m_iInitMinX;		minZ = pRoom->m_iInitMinZ;
			maxX = pRoom->m_iInitMaxX;		maxZ = pRoom->m_iInitMaxZ;
		}
		else // if (pRoom->isInProgress())
		{
			if (pRoom->m_Logic[0].sNumber != 4)
				continue;

			minX = pRoom->m_iEndMinX;		minZ = pRoom->m_iEndMinZ;
			maxX = pRoom->m_iEndMaxX;		maxZ = pRoom->m_iEndMaxZ;
		}

		CRect r(minX, minZ, maxX, maxZ);
		if (r.PtInRect(nX, nZ))
		{
			if (pRoom->isInitialised())
			{
				pRoom->m_byStatus = RoomStatusInProgress;
				pRoom->m_tDelayTime = UNIXTIME;
				room_number = itr->first;
				TRACE(" Room Check - number = %d, x=%d, z=%d\n", room_number, nX, nZ);
				//wsprintf(notify, "** 알림 : [%d Zone][%d] 방에 들어오신것을 환영합니다 **", m_nZoneNumber, pRoom->m_sRoomNumber);
				//g_pMain->SendSystemMsg(notify, PUBLIC_CHAT);
			}
			else // room already in progress
			{
				pRoom->m_byStatus = RoomStatusCleared;
				//wsprintf(notify, "** 알림 : [%d Zone][%d] 목표지점까지 도착해서 클리어 됩니다ㅇ **", m_nZoneNumber, pRoom->m_sRoomNumber);
				//g_pMain->SendSystemMsg(notify, PUBLIC_CHAT);
			}

			return room_number;
		}
	}

	return room_number;
}

CRoomEvent* MAP::SetRoomEvent( int number )
{
	CRoomEvent* pEvent = m_arRoomEventArray.GetData( number );
	if( pEvent )	{
		TRACE("#### SetRoom Error : double event number = %d ####\n", number);
		return nullptr;
	}

	pEvent = new CRoomEvent();
	pEvent->m_iZoneNumber = m_nZoneNumber;
	pEvent->m_sRoomNumber = number;
	if( !m_arRoomEventArray.PutData( pEvent->m_sRoomNumber, pEvent) ) {
		delete pEvent;
		pEvent = nullptr;
		return nullptr;
	}

	return pEvent;
}

bool MAP::IsRoomStatusCheck()
{
	int nClearRoom = 1,
		nTotalRoom = m_arRoomEventArray.GetSize() + 1;

	if (m_byRoomStatus == RoomStatusInProgress)
		m_byInitRoomCount++;

	foreach_stlmap (itr, m_arRoomEventArray)
	{
		CRoomEvent *pRoom = itr->second;
		if (pRoom == nullptr)
		{
			TRACE("#### IsRoomStatusCheck Error : room empty number = %d ####\n", itr->first);
			continue;
		}

		if (m_byRoomStatus == RoomStatusInitialised)
		{
			if (pRoom->isCleared())
				nClearRoom += 1;

			if (m_byRoomType == 0)
			{
				if (nTotalRoom == nClearRoom)
				{
					m_byRoomStatus = RoomStatusInProgress;
					return true;
				}
			}
		}
		else if (m_byRoomStatus == RoomStatusInProgress)
		{
			if (m_byInitRoomCount >= 10)
			{
				pRoom->InitializeRoom();
				nClearRoom += 1;
				if (nTotalRoom == nClearRoom)
				{
					m_byRoomStatus = RoomStatusCleared;
					return true;
				}
			}
		}
		else if (m_byRoomStatus == RoomStatusCleared)
		{
			m_byRoomStatus = RoomStatusInitialised;
			m_byInitRoomCount = 0;
			return true;
		}
	}
	return false;
}

void MAP::InitializeRoom()
{
	foreach_stlmap (itr, m_arRoomEventArray)
	{
		CRoomEvent *pRoom = itr->second;
		if (pRoom == nullptr)
		{
			TRACE("#### InitializeRoom Error : room empty number = %d ####\n", itr->first);
			continue;
		}

		pRoom->InitializeRoom();
		m_byRoomStatus = RoomStatusInitialised;
		m_byInitRoomCount = 0;
	}
}

repository: iKlotho/KnightOnline

repo_name: iKlotho/KnightOnline

src_encoding: UHC

extension: cpp


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="8.4.1">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting keepoldvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="inch" style="lines" multiple="1" display="yes" altdistance="0.001" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="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="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="no" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="no" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="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="129" name="Mask" color="7" fill="1" visible="no" active="yes"/>
<layer number="130" name="130bmp" 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="140" name="Page" color="7" fill="1" visible="no" active="yes"/>
<layer number="141" name="Fabrication" color="7" fill="1" visible="no" active="yes"/>
<layer number="142" name="AMD" color="7" fill="1" visible="no" active="yes"/>
<layer number="143" name="PMD" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="145" name="DrillLegend_01-16" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="232" name="Eagle3D_PG2" color="7" fill="1" visible="no" active="yes"/>
<layer number="233" name="Eagle3D_PG3" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="7.754" y1="76.962" x2="108.324" y2="76.962" width="0.0762" layer="20"/>
<wire x1="108.324" y1="76.962" x2="115.824" y2="69.462" width="0.0762" layer="20" curve="-90"/>
<wire x1="115.824" y1="69.462" x2="115.824" y2="6.992" width="0.0762" layer="20"/>
<wire x1="115.824" y1="6.992" x2="108.324" y2="-0.508" width="0.0762" layer="20" curve="-90"/>
<wire x1="108.324" y1="-0.508" x2="7.754" y2="-0.508" width="0.0762" layer="20"/>
<wire x1="7.754" y1="-0.508" x2="0.254" y2="6.992" width="0.0762" layer="20" curve="-90"/>
<wire x1="0.254" y1="6.992" x2="0.254" y2="69.462" width="0.0762" layer="20"/>
<wire x1="0.254" y1="69.462" x2="7.754" y2="76.962" width="0.0762" layer="20" curve="-90"/>
<text x="5.334" y="66.294" size="3.048" layer="21" font="vector" rot="SR270">OUTPUT
12V, 40A</text>
<text x="112.9538" y="51.435" size="3.048" layer="21" font="vector" rot="SR90">INPUT
20-34V
30A MAX</text>
<wire x1="93.98" y1="75.946" x2="93.98" y2="-0.508" width="0.0762" layer="21" style="longdash"/>
<text x="77.5462" y="27.686" size="2.54" layer="21" font="vector">+20-34V</text>
<text x="86.106" y="20.066" size="2.54" layer="21" font="vector">GND</text>
<text x="25.0444" y="21.463" size="2.54" layer="21" font="vector" rot="SR270">+12 V</text>
<text x="17.272" y="18.2372" size="2.54" layer="21" font="vector" rot="SR270">GND</text>
<text x="37.592" y="13.208" size="2.54" layer="22" font="vector" rot="MR0" align="center">Missouri S&T
Mars Rover Design Team
Buck Converter Test Board
2017 | Rev 1
Lucas Bonskowski
Owen Chiaventone</text>
<wire x1="29.464" y1="-0.508" x2="29.464" y2="76.962" width="0.1524" layer="21" style="longdash"/>
<wire x1="15.24" y1="39.878" x2="15.24" y2="10.668" width="0.1524" layer="21"/>
<wire x1="15.24" y1="10.668" x2="21.336" y2="10.668" width="0.1524" layer="21"/>
<wire x1="21.336" y1="10.668" x2="21.336" y2="39.878" width="0.1524" layer="21"/>
<wire x1="21.336" y1="39.878" x2="15.24" y2="39.878" width="0.1524" layer="21"/>
<wire x1="23.114" y1="39.878" x2="29.21" y2="39.878" width="0.1524" layer="21"/>
<wire x1="29.21" y1="39.878" x2="29.21" y2="9.144" width="0.1524" layer="21"/>
<wire x1="29.21" y1="9.144" x2="23.114" y2="9.144" width="0.1524" layer="21"/>
<wire x1="23.114" y1="9.144" x2="23.114" y2="39.878" width="0.1524" layer="21"/>
<wire x1="100.584" y1="32.258" x2="76.2254" y2="32.258" width="0.1524" layer="21"/>
<wire x1="76.2254" y1="32.258" x2="76.2254" y2="26.416" width="0.1524" layer="21"/>
<wire x1="76.2254" y1="26.416" x2="100.584" y2="26.416" width="0.1524" layer="21"/>
<wire x1="100.584" y1="26.416" x2="100.584" y2="32.258" width="0.1524" layer="21"/>
<wire x1="100.584" y1="24.384" x2="85.598" y2="24.384" width="0.1524" layer="21"/>
<wire x1="85.598" y1="24.384" x2="85.598" y2="18.288" width="0.1524" layer="21"/>
<wire x1="85.598" y1="18.288" x2="100.584" y2="18.288" width="0.1524" layer="21"/>
<wire x1="100.584" y1="18.288" x2="100.584" y2="24.384" width="0.1524" layer="21"/>
</plain>
<libraries>
<library name="buckconverter">
<packages>
<package name="CAP_POL_220UF">
<circle x="0" y="0" radius="6.35" width="0.1524" layer="21"/>
<text x="-2.54" y="2.54" size="1.27" layer="21">+</text>
<circle x="0" y="2.4892" radius="0.283978125" width="0.127" layer="21"/>
<circle x="0" y="-2.54" radius="0.2794" width="0.127" layer="21"/>
<pad name="GND" x="0" y="-2.54" drill="1" diameter="1.4224" shape="square" thermals="no"/>
<text x="-3.1242" y="3.9878" size="1.27" layer="25">>Name</text>
<text x="-3.3528" y="-8.1026" size="1.27" layer="27">>Value</text>
<pad name="+" x="0" y="2.4892" drill="1" diameter="1.6256" thermals="no"/>
</package>
<package name="PLANAR_INDUCTOR_3.3UH">
<wire x1="0" y1="0" x2="7" y2="0" width="0.127" layer="21"/>
<wire x1="7" y1="0" x2="13" y2="0" width="0.127" layer="21"/>
<wire x1="13" y1="0" x2="19" y2="0" width="0.127" layer="21"/>
<wire x1="19" y1="0" x2="22.6" y2="0" width="0.127" layer="21"/>
<wire x1="22.6" y1="0" x2="25" y2="0" width="0.127" layer="21"/>
<wire x1="25" y1="0" x2="32" y2="0" width="0.127" layer="21"/>
<wire x1="32" y1="0" x2="32" y2="22.5" width="0.127" layer="21"/>
<wire x1="32" y1="22.5" x2="22.5" y2="22.5" width="0.127" layer="21"/>
<wire x1="22.5" y1="22.5" x2="9.6" y2="22.5" width="0.127" layer="21"/>
<wire x1="9.6" y1="22.5" x2="0" y2="22.5" width="0.127" layer="21"/>
<wire x1="0" y1="22.5" x2="0" y2="0" width="0.127" layer="21"/>
<wire x1="7" y1="0" x2="7" y2="-6.7" width="0.127" layer="21"/>
<wire x1="7" y1="-6.7" x2="13" y2="-6.7" width="0.127" layer="21"/>
<wire x1="13" y1="-6.7" x2="13" y2="-1.5" width="0.127" layer="21"/>
<wire x1="13" y1="-1.5" x2="13" y2="0" width="0.127" layer="21"/>
<wire x1="25" y1="0" x2="25" y2="-6.7" width="0.127" layer="21"/>
<wire x1="25" y1="-6.7" x2="19" y2="-6.7" width="0.127" layer="21"/>
<wire x1="19" y1="-6.7" x2="19" y2="0" width="0.127" layer="21"/>
<wire x1="9.6" y1="22.5" x2="22.5" y2="22.5" width="0.127" layer="21" curve="-59.653434"/>
<wire x1="13" y1="-1.5" x2="22.6" y2="0" width="0.127" layer="21" curve="43.963948"/>
<pad name="P$1" x="10" y="-6.7" drill="6.6" diameter="10.16"/>
<pad name="P$2" x="22" y="-6.7" drill="6.6" diameter="10.16"/>
<text x="12" y="20" size="1.27" layer="21">>Name</text>
<text x="12" y="1" size="1.27" layer="21">>Value</text>
<text x="8.89" y="17.78" size="1.27" layer="21">PQ3218-3R3-70-T</text>
</package>
<package name="DIODE_SCHOTTKY_30V_1A">
<wire x1="0" y1="0" x2="1.7018" y2="0" width="0.127" layer="21"/>
<wire x1="1.7018" y1="0" x2="1.7018" y2="2.6924" width="0.127" layer="21"/>
<wire x1="1.7018" y1="2.6924" x2="0" y2="2.6924" width="0.127" layer="21"/>
<wire x1="0" y1="2.6924" x2="0" y2="0" width="0.127" layer="21"/>
<polygon width="0.127" layer="1">
<vertex x="0" y="0.508"/>
<vertex x="0" y="-0.7366"/>
<vertex x="1.7018" y="-0.7366"/>
<vertex x="1.7018" y="0.508"/>
</polygon>
<polygon width="0.127" layer="1">
<vertex x="0" y="3.429"/>
<vertex x="0" y="2.1844"/>
<vertex x="1.7018" y="2.1844"/>
<vertex x="1.7018" y="3.429"/>
</polygon>
<smd name="P$1" x="0.889" y="3.0734" dx="1.016" dy="0.508" layer="1"/>
<smd name="P$2" x="0.889" y="-0.4064" dx="1.016" dy="0.508" layer="1"/>
<text x="-0.254" y="3.81" size="1.27" layer="25">>Name</text>
<text x="-0.762" y="-2.286" size="1.27" layer="27">>Value</text>
</package>
<package name="DIODE_STANDARD_100V">
<wire x1="0" y1="0" x2="0" y2="1.9812" width="0.127" layer="21"/>
<wire x1="0" y1="1.9812" x2="1.397" y2="1.9812" width="0.127" layer="21"/>
<wire x1="1.397" y1="1.9812" x2="1.397" y2="0" width="0.127" layer="21"/>
<wire x1="1.397" y1="0" x2="0" y2="0" width="0.127" layer="21"/>
<smd name="P$1" x="0.696775" y="1.778103125" dx="1.524" dy="1.778" layer="1"/>
<smd name="P$2" x="0.7112" y="0" dx="1.524" dy="0.9652" layer="1"/>
<text x="0" y="3.302" size="1.27" layer="25">>Name</text>
<text x="-0.254" y="-2.032" size="1.27" layer="25">>Value</text>
</package>
<package name="TO-220">
<wire x1="-5.334" y1="2.54" x2="5.334" y2="2.54" width="0.1778" layer="21"/>
<wire x1="-5.2578" y1="-2.286" x2="5.2578" y2="-2.286" width="0.1778" layer="21"/>
<wire x1="5.2578" y1="-2.286" x2="5.334" y2="2.54" width="0.1778" layer="21"/>
<wire x1="-5.2578" y1="-2.286" x2="-5.334" y2="2.54" width="0.1778" layer="21"/>
<wire x1="-5.334" y1="1.524" x2="5.334" y2="1.524" width="0.1778" layer="21"/>
<pad name="1" x="-2.54" y="0" drill="1.397" shape="square"/>
<pad name="2" x="0" y="0" drill="1.397"/>
<pad name="3" x="2.54" y="0" drill="1.397"/>
<text x="-5.08" y="3.81" size="1.27" layer="25">>NAME</text>
<text x="-5.08" y="-5.08" size="1.27" layer="27">>VALUE</text>
<rectangle x1="-5.334" y1="1.524" x2="5.334" y2="2.54" layer="21"/>
</package>
<package name="RADIAL_FIN_HEATSINK">
<wire x1="8.636" y1="12.7" x2="21.082" y2="12.7" width="0.127" layer="21"/>
<wire x1="21.082" y1="12.7" x2="21.082" y2="-12.7" width="0.127" layer="21"/>
<wire x1="21.082" y1="-12.7" x2="8.636" y2="-12.7" width="0.127" layer="21"/>
<wire x1="8.636" y1="-12.7" x2="8.636" y2="-0.762" width="0.127" layer="21"/>
<wire x1="8.636" y1="-0.762" x2="-8.636" y2="-0.762" width="0.127" layer="21"/>
<wire x1="-8.636" y1="-0.762" x2="-8.636" y2="-12.7" width="0.127" layer="21"/>
<wire x1="-8.636" y1="-12.7" x2="-21.082" y2="-12.7" width="0.127" layer="21"/>
<wire x1="-21.082" y1="-12.7" x2="-21.082" y2="12.7" width="0.127" layer="21"/>
<wire x1="-21.082" y1="12.7" x2="-8.636" y2="12.7" width="0.127" layer="21"/>
<wire x1="-8.636" y1="12.7" x2="-8.636" y2="0.762" width="0.127" layer="21"/>
<wire x1="-8.636" y1="0.762" x2="8.636" y2="0.762" width="0.127" layer="21"/>
<wire x1="8.636" y1="0.762" x2="8.636" y2="12.7" width="0.127" layer="21"/>
<pad name="P$1" x="12.7" y="0" drill="2.794" shape="square"/>
<pad name="P$2" x="-12.7" y="0" drill="2.794" shape="square"/>
</package>
<package name="BLAH">
<circle x="0" y="0" radius="2.5" width="0.127" layer="21"/>
<pad name="P$1" x="-1" y="0" drill="0.6" shape="square"/>
<pad name="P$2" x="1" y="0" drill="0.6"/>
</package>
</packages>
</library>
<library name="SparkFun-Passives">
<description><h3>SparkFun Electronics' preferred foot prints</h3>
In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br>
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.
<br><br>
<b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/
<br><br>
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-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>
<package name="0603-RES">
<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
<text x="-0.889" y="0.762" size="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.2286" y1="-0.381" x2="0.2286" y2="0.381" layer="21"/>
</package>
</packages>
</library>
<library name="MRDT-Connectors">
<description>MRDT Connectors: Microfits, RJ45, Molex SL...</description>
<packages>
<package name="APP45_5V_HORIZ_CONFIG">
<pad name="GND" x="28.194" y="3.937" drill="4.064" thermals="no"/>
<wire x1="11.176" y1="7.874" x2="8.89" y2="7.874" width="0.127" layer="51" curve="-180"/>
<wire x1="8.89" y1="0" x2="11.176" y2="0" width="0.127" layer="51" curve="-180"/>
<dimension x1="24.638" y1="0" x2="0" y2="0" x3="12.319" y3="-11.8491" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="0" y1="0" x2="10.033" y2="0" x3="5.0165" y3="-7.6454" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="0" y1="0" x2="8.001" y2="0" x3="4.0005" y3="-3.4417" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="0" y1="0" x2="28.194" y2="3.937" x3="14.097" y3="-15.4178" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="24.638" y1="7.874" x2="24.638" y2="0" x3="34.798" y3="3.937" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="11.176" y1="7.874" x2="8.89" y2="7.874" x3="10.033" y3="9.398" textsize="1.27" layer="47" dtype="diameter" unit="inch" precision="3" visible="yes"/>
<wire x1="0" y1="0" x2="0" y2="7.874" width="0.127" layer="51"/>
<wire x1="0" y1="7.874" x2="8.001" y2="7.874" width="0.127" layer="51"/>
<wire x1="8.001" y1="7.874" x2="8.89" y2="7.874" width="0.127" layer="51"/>
<wire x1="11.176" y1="7.874" x2="24.638" y2="7.874" width="0.127" layer="51"/>
<wire x1="24.638" y1="7.874" x2="24.638" y2="0" width="0.127" layer="51"/>
<wire x1="8.001" y1="0" x2="8.001" y2="7.874" width="0.127" layer="51" style="shortdash"/>
<pad name="5V" x="36.068" y="3.937" drill="4.064" thermals="no"/>
<wire x1="11.176" y1="7.874" x2="8.89" y2="7.874" width="0.127" layer="51" curve="-180"/>
<wire x1="24.638" y1="7.874" x2="24.638" y2="7.366" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="7.366" x2="12.319" y2="7.366" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="7.366" x2="12.319" y2="7.874" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="2.286" x2="12.319" y2="2.286" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="2.286" x2="12.319" y2="5.588" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="5.588" x2="24.638" y2="5.588" width="0.127" layer="49" style="shortdash"/>
<wire x1="0" y1="0" x2="8.001" y2="0" width="0.127" layer="51"/>
<wire x1="8.001" y1="0" x2="8.89" y2="0" width="0.127" layer="51"/>
<wire x1="11.176" y1="0" x2="24.638" y2="0" width="0.127" layer="51"/>
<dimension x1="36.068" y1="3.9497" x2="0" y2="0" x3="18.034" y3="-20.1422" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="4" visible="yes"/>
<text x="3.556" y="3.81" size="0.8128" layer="21">5V(top), GND(bot)</text>
</package>
<package name="APP45_12V_HORIZ_CONFIG">
<pad name="GND" x="28.194" y="11.811" drill="4.064" thermals="no"/>
<wire x1="11.176" y1="15.748" x2="8.89" y2="15.748" width="0.127" layer="51" curve="-180"/>
<wire x1="8.89" y1="7.874" x2="11.176" y2="7.874" width="0.127" layer="51" curve="-180"/>
<dimension x1="24.638" y1="7.874" x2="0" y2="7.874" x3="12.319" y3="-11.8491" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="0" y1="7.874" x2="10.033" y2="7.874" x3="5.0165" y3="-7.6454" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="0" y1="7.874" x2="8.001" y2="0" x3="4.0005" y3="-3.4417" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="0" y1="7.874" x2="28.194" y2="11.811" x3="14.097" y3="-15.4178" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="24.638" y1="15.748" x2="24.638" y2="7.874" x3="32.766" y3="11.811" textsize="1.27" layer="47" dtype="horizontal" unit="inch" precision="3" visible="yes"/>
<dimension x1="11.176" y1="15.748" x2="8.89" y2="15.748" x3="10.033" y3="17.272" textsize="1.27" layer="47" dtype="diameter" unit="inch" precision="3" visible="yes"/>
<wire x1="0" y1="7.874" x2="0" y2="15.748" width="0.127" layer="51"/>
<wire x1="0" y1="15.748" x2="8.001" y2="15.748" width="0.127" layer="51"/>
<wire x1="8.001" y1="15.748" x2="8.89" y2="15.748" width="0.127" layer="51"/>
<wire x1="11.176" y1="15.748" x2="24.638" y2="15.748" width="0.127" layer="51"/>
<wire x1="24.638" y1="15.748" x2="24.638" y2="7.874" width="0.127" layer="51"/>
<wire x1="8.001" y1="7.874" x2="8.001" y2="15.748" width="0.127" layer="51" style="shortdash"/>
<wire x1="11.176" y1="15.748" x2="8.89" y2="15.748" width="0.127" layer="51" curve="-180"/>
<wire x1="8.89" y1="7.874" x2="11.176" y2="7.874" width="0.127" layer="51" curve="-180"/>
<wire x1="24.638" y1="15.748" x2="24.638" y2="15.24" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="15.24" x2="12.319" y2="15.24" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="15.24" x2="12.319" y2="15.748" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="10.16" x2="12.319" y2="10.16" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="10.16" x2="12.319" y2="13.462" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="13.462" x2="24.638" y2="13.462" width="0.127" layer="49" style="shortdash"/>
<pad name="12V" x="28.194" y="3.937" drill="4.064" thermals="no"/>
<wire x1="0" y1="0" x2="0" y2="7.874" width="0.127" layer="51"/>
<wire x1="0" y1="7.874" x2="8.001" y2="7.874" width="0.127" layer="51"/>
<wire x1="8.001" y1="7.874" x2="8.89" y2="7.874" width="0.127" layer="51"/>
<wire x1="11.176" y1="7.874" x2="24.638" y2="7.874" width="0.127" layer="51"/>
<wire x1="24.638" y1="7.874" x2="24.638" y2="0" width="0.127" layer="51"/>
<wire x1="24.638" y1="0" x2="11.176" y2="0" width="0.127" layer="51"/>
<wire x1="8.89" y1="0" x2="8.001" y2="0" width="0.127" layer="51"/>
<wire x1="8.001" y1="0" x2="0" y2="0" width="0.127" layer="51"/>
<wire x1="8.001" y1="0" x2="8.001" y2="7.874" width="0.127" layer="51" style="shortdash"/>
<wire x1="11.176" y1="7.874" x2="8.89" y2="7.874" width="0.127" layer="51" curve="-180"/>
<wire x1="8.89" y1="0" x2="11.176" y2="0" width="0.127" layer="51" curve="-180"/>
<wire x1="24.638" y1="0" x2="24.638" y2="-0.508" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="-0.508" x2="12.319" y2="-0.508" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="-0.508" x2="12.319" y2="0" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="7.874" x2="24.638" y2="7.366" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="7.366" x2="12.319" y2="7.366" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="7.366" x2="12.319" y2="7.874" width="0.127" layer="49" style="shortdash"/>
<wire x1="24.638" y1="2.286" x2="12.319" y2="2.286" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="2.286" x2="12.319" y2="5.588" width="0.127" layer="49" style="shortdash"/>
<wire x1="12.319" y1="5.588" x2="24.638" y2="5.588" width="0.127" layer="49" style="shortdash"/>
<text x="3.81" y="10.922" size="0.8128" layer="21">GND</text>
<text x="4.318" y="4.318" size="0.8128" layer="21">12V</text>
</package>
</packages>
</library>
<library name="MRDT-ICs">
<description>MRDT ICs: ICs for all your needs</description>
<packages>
<package name="SSOP-16">
<description>SSOP-16, 0.32 x 1.26 mm pad, 0.63mm pitch, 6.82mm Pad length</description>
<wire x1="-2.451" y1="1.956" x2="-2.451" y2="-1.956" width="0.1524" layer="21"/>
<wire x1="2.451" y1="-1.956" x2="2.451" y2="1.956" width="0.1524" layer="21"/>
<wire x1="-2.451" y1="-1.956" x2="2.451" y2="-1.956" width="0.1524" layer="21"/>
<wire x1="2.451" y1="1.956" x2="-2.451" y2="1.956" width="0.1524" layer="21"/>
<circle x="-3.375" y="-2.75" radius="0.5153" width="0" layer="21"/>
<smd name="8" x="2.222" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="15" x="-1.588" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="14" x="-0.953" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="16" x="-2.223" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="13" x="-0.318" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="12" x="0.317" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="11" x="0.952" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="10" x="1.587" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="9" x="2.222" y="2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="1" x="-2.223" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="2" x="-1.588" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="3" x="-0.953" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="4" x="-0.318" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="5" x="0.317" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="6" x="0.952" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<smd name="7" x="1.587" y="-2.779" dx="0.32" dy="1.26" layer="1"/>
<text x="-3" y="-2" size="1.27" layer="25" font="vector" ratio="10" rot="R90">>NAME</text>
<text x="4.125" y="-2" size="1.27" layer="27" font="vector" ratio="10" rot="R90">>VALUE</text>
<rectangle x1="-2.348" y1="-2.997" x2="-2.098" y2="-1.957" layer="51"/>
<rectangle x1="-1.713" y1="-2.997" x2="-1.463" y2="-1.957" layer="51"/>
<rectangle x1="-1.078" y1="-2.997" x2="-0.828" y2="-1.957" layer="51"/>
<rectangle x1="-0.443" y1="-2.997" x2="-0.193" y2="-1.957" layer="51"/>
<rectangle x1="0.192" y1="-2.997" x2="0.442" y2="-1.957" layer="51"/>
<rectangle x1="0.827" y1="-2.997" x2="1.077" y2="-1.957" layer="51"/>
<rectangle x1="1.462" y1="-2.997" x2="1.712" y2="-1.957" layer="51"/>
<rectangle x1="2.097" y1="-2.997" x2="2.347" y2="-1.957" layer="51"/>
<rectangle x1="-2.348" y1="1.957" x2="-2.098" y2="2.997" layer="51"/>
<rectangle x1="-1.713" y1="1.957" x2="-1.463" y2="2.997" layer="51"/>
<rectangle x1="-1.078" y1="1.957" x2="-0.828" y2="2.997" layer="51"/>
<rectangle x1="-0.443" y1="1.957" x2="-0.193" y2="2.997" layer="51"/>
<rectangle x1="0.192" y1="1.957" x2="0.442" y2="2.997" layer="51"/>
<rectangle x1="0.827" y1="1.957" x2="1.077" y2="2.997" layer="51"/>
<rectangle x1="1.462" y1="1.957" x2="1.712" y2="2.997" layer="51"/>
<rectangle x1="2.097" y1="1.957" x2="2.347" y2="2.997" layer="51"/>
</package>
<package name="OKI-78SR_HORIZ">
<description>OKI-78SR <br>
<b>Orientation:</b> Horizontal</description>
<wire x1="-7.747" y1="-1.27" x2="-7.747" y2="5.08" width="0.127" layer="51"/>
<wire x1="-7.747" y1="10.16" x2="-7.747" y2="15.24" width="0.127" layer="51"/>
<wire x1="2.667" y1="15.24" x2="2.667" y2="-1.27" width="0.127" layer="51"/>
<wire x1="-7.747" y1="5.08" x2="-7.747" y2="10.16" width="0.127" layer="51"/>
<pad name="3" x="-5.08" y="0" drill="0.9" diameter="1.4224"/>
<pad name="2" x="-2.54" y="0" drill="0.9" diameter="1.4224"/>
<pad name="1" x="0" y="0" drill="0.9" diameter="1.4224"/>
<text x="-6.096" y="-2.794" size="1.27" layer="25">>NAME</text>
<wire x1="-7.747" y1="-1.27" x2="2.667" y2="-1.27" width="0.127" layer="51"/>
<wire x1="2.667" y1="15.24" x2="-7.747" y2="15.24" width="0.127" layer="51"/>
<wire x1="-7.62" y1="10.16" x2="-7.62" y2="5.08" width="0.127" layer="51"/>
<wire x1="-7.62" y1="10.16" x2="-5.08" y2="12.7" width="0.127" layer="51"/>
<wire x1="-5.08" y1="12.7" x2="0" y2="12.7" width="0.127" layer="51"/>
<wire x1="0" y1="12.7" x2="2.54" y2="10.16" width="0.127" layer="51"/>
<wire x1="2.54" y1="10.16" x2="2.54" y2="5.08" width="0.127" layer="51"/>
<wire x1="2.54" y1="5.08" x2="0" y2="2.54" width="0.127" layer="51"/>
<wire x1="0" y1="2.54" x2="-5.08" y2="2.54" width="0.127" layer="51"/>
<wire x1="-5.08" y1="2.54" x2="-7.62" y2="5.08" width="0.127" layer="51"/>
<dimension x1="2.667" y1="15.24" x2="-7.747" y2="15.24" x3="-2.54" y3="19.05" textsize="1.27" layer="47" unit="inch" precision="4" visible="yes"/>
<dimension x1="2.54" y1="-1.27" x2="2.54" y2="15.24" x3="6.35" y3="6.985" textsize="1.27" layer="47" unit="inch" precision="4" visible="yes"/>
</package>
</packages>
</library>
<library name="MRDT-Hardware">
<description>MRDT Hardware: Mounting holes and some weird things</description>
<packages>
<package name="#8_SCREW">
<description>BOLT DIA.: .162"
HOLE DIA.: .17"
HEAD DIA.: .265"</description>
<hole x="0" y="0" drill="4.318"/>
<circle x="0" y="0" radius="3.3655" width="0.127" layer="51"/>
<dimension x1="2.033221875" y1="0.72615" x2="-2.033221875" y2="-0.72615" x3="-2.033221875" y3="-0.72615" textsize="1.27" layer="47" dtype="diameter" unit="inch" precision="5" visible="yes"/>
<wire x1="0" y1="2.159" x2="2.159" y2="0" width="0.127" layer="49" style="shortdash" curve="-90"/>
<wire x1="2.159" y1="0" x2="0" y2="-2.159" width="0.127" layer="49" style="shortdash" curve="-90"/>
<wire x1="0" y1="-2.159" x2="-2.159" y2="0" width="0.127" layer="49" style="shortdash" curve="-90"/>
<wire x1="-2.159" y1="0" x2="0" y2="2.159" width="0.127" layer="49" style="shortdash" curve="-90"/>
<dimension x1="3.3655" y1="0" x2="-3.3655" y2="0" x3="-3.3655" y3="0" textsize="1.27" layer="47" dtype="diameter" unit="inch" precision="6" visible="yes"/>
</package>
<package name="MRDT_LOGO">
<rectangle x1="2.491740625" y1="0.83946875" x2="2.506978125" y2="0.84455" layer="21"/>
<rectangle x1="2.410459375" y1="0.84455" x2="2.425696875" y2="0.84963125" layer="21"/>
<rectangle x1="2.5527" y1="0.84455" x2="2.56285625" y2="0.84963125" layer="21"/>
<rectangle x1="2.385059375" y1="0.84963125" x2="2.405378125" y2="0.85470625" layer="21"/>
<rectangle x1="2.44601875" y1="0.84963125" x2="2.53238125" y2="0.85470625" layer="21"/>
<rectangle x1="2.57301875" y1="0.84963125" x2="2.58825625" y2="0.85470625" layer="21"/>
<rectangle x1="2.359659375" y1="0.854709375" x2="2.385059375" y2="0.859790625" layer="21"/>
<rectangle x1="2.415540625" y1="0.854709375" x2="2.557778125" y2="0.859790625" layer="21"/>
<rectangle x1="2.59841875" y1="0.854709375" x2="2.6187375" y2="0.859790625" layer="21"/>
<rectangle x1="2.339340625" y1="0.859790625" x2="2.364740625" y2="0.864865625" layer="21"/>
<rectangle x1="2.390140625" y1="0.859790625" x2="2.578096875" y2="0.864865625" layer="21"/>
<rectangle x1="2.62381875" y1="0.859790625" x2="2.64921875" y2="0.864865625" layer="21"/>
<rectangle x1="2.31901875" y1="0.86486875" x2="2.3393375" y2="0.86995" layer="21"/>
<rectangle x1="2.35458125" y1="0.86486875" x2="2.5933375" y2="0.86995" layer="21"/>
<rectangle x1="2.6543" y1="0.86486875" x2="2.65938125" y2="0.86995" layer="21"/>
<rectangle x1="2.32918125" y1="0.86995" x2="2.68985625" y2="0.87503125" layer="21"/>
<rectangle x1="2.313940625" y1="0.87503125" x2="2.705096875" y2="0.88010625" layer="21"/>
<rectangle x1="2.2987" y1="0.880109375" x2="2.71525625" y2="0.885190625" layer="21"/>
<rectangle x1="2.283459375" y1="0.885190625" x2="2.735578125" y2="0.890265625" layer="21"/>
<rectangle x1="2.26821875" y1="0.89026875" x2="2.7457375" y2="0.89535" layer="21"/>
<rectangle x1="2.258059375" y1="0.89535" x2="2.750815625" y2="0.90043125" layer="21"/>
<rectangle x1="2.237740625" y1="0.90043125" x2="2.760978125" y2="0.90550625" layer="21"/>
<rectangle x1="2.22758125" y1="0.905509375" x2="2.7711375" y2="0.910590625" layer="21"/>
<rectangle x1="2.207259375" y1="0.910590625" x2="2.781296875" y2="0.915665625" layer="21"/>
<rectangle x1="2.19201875" y1="0.91566875" x2="2.7965375" y2="0.92075" layer="21"/>
<rectangle x1="2.181859375" y1="0.92075" x2="2.806696875" y2="0.92583125" layer="21"/>
<rectangle x1="2.17678125" y1="0.92583125" x2="2.81685625" y2="0.93090625" layer="21"/>
<rectangle x1="2.16661875" y1="0.930909375" x2="2.8321" y2="0.935990625" layer="21"/>
<rectangle x1="2.156459375" y1="0.935990625" x2="2.842259375" y2="0.941065625" layer="21"/>
<rectangle x1="2.15138125" y1="0.94106875" x2="2.8473375" y2="0.94615" layer="21"/>
<rectangle x1="2.1463" y1="0.94615" x2="2.8575" y2="0.95123125" layer="21"/>
<rectangle x1="2.14121875" y1="0.95123125" x2="2.86765625" y2="0.95630625" layer="21"/>
<rectangle x1="2.136140625" y1="0.956309375" x2="2.877815625" y2="0.961390625" layer="21"/>
<rectangle x1="2.12598125" y1="0.961390625" x2="2.8829" y2="0.966465625" layer="21"/>
<rectangle x1="2.11581875" y1="0.96646875" x2="2.88798125" y2="0.97155" layer="21"/>
<rectangle x1="2.105659375" y1="0.97155" x2="2.893059375" y2="0.97663125" layer="21"/>
<rectangle x1="2.10058125" y1="0.97663125" x2="2.8981375" y2="0.98170625" layer="21"/>
<rectangle x1="2.0955" y1="0.981709375" x2="2.90321875" y2="0.986790625" layer="21"/>
<rectangle x1="2.085340625" y1="0.986790625" x2="2.913378125" y2="0.991865625" layer="21"/>
<rectangle x1="2.07518125" y1="0.99186875" x2="2.91845625" y2="0.99695" layer="21"/>
<rectangle x1="2.0701" y1="0.99695" x2="2.92861875" y2="1.00203125" layer="21"/>
<rectangle x1="2.06501875" y1="1.00203125" x2="2.93878125" y2="1.00710625" layer="21"/>
<rectangle x1="2.059940625" y1="1.007109375" x2="2.948940625" y2="1.012190625" layer="21"/>
<rectangle x1="2.04978125" y1="1.012190625" x2="2.9489375" y2="1.017265625" layer="21"/>
<rectangle x1="2.0447" y1="1.01726875" x2="2.9591" y2="1.02235" layer="21"/>
<rectangle x1="2.034540625" y1="1.02235" x2="2.395215625" y2="1.02743125" layer="21"/>
<rectangle x1="2.50698125" y1="1.02235" x2="2.9591" y2="1.02743125" layer="21"/>
<rectangle x1="2.029459375" y1="1.02743125" x2="2.354578125" y2="1.03250625" layer="21"/>
<rectangle x1="2.5527" y1="1.02743125" x2="2.96418125" y2="1.03250625" layer="21"/>
<rectangle x1="2.02438125" y1="1.032509375" x2="2.33425625" y2="1.037590625" layer="21"/>
<rectangle x1="2.588259375" y1="1.032509375" x2="2.969259375" y2="1.037590625" layer="21"/>
<rectangle x1="2.0193" y1="1.037590625" x2="2.31901875" y2="1.042665625" layer="21"/>
<rectangle x1="2.6035" y1="1.037590625" x2="2.97941875" y2="1.042665625" layer="21"/>
<rectangle x1="2.009140625" y1="1.04266875" x2="2.298696875" y2="1.04775" layer="21"/>
<rectangle x1="2.613659375" y1="1.04266875" x2="2.984496875" y2="1.04775" layer="21"/>
<rectangle x1="2.004059375" y1="1.04775" x2="2.278378125" y2="1.05283125" layer="21"/>
<rectangle x1="2.618740625" y1="1.04775" x2="2.989578125" y2="1.05283125" layer="21"/>
<rectangle x1="1.98881875" y1="1.05283125" x2="2.2631375" y2="1.05790625" layer="21"/>
<rectangle x1="2.6289" y1="1.05283125" x2="2.99465625" y2="1.05790625" layer="21"/>
<rectangle x1="1.983740625" y1="1.057909375" x2="2.252978125" y2="1.062990625" layer="21"/>
<rectangle x1="2.63398125" y1="1.057909375" x2="2.9997375" y2="1.062990625" layer="21"/>
<rectangle x1="1.978659375" y1="1.062990625" x2="2.252978125" y2="1.068065625" layer="21"/>
<rectangle x1="2.644140625" y1="1.062990625" x2="3.004815625" y2="1.068065625" layer="21"/>
<rectangle x1="1.97358125" y1="1.06806875" x2="2.2479" y2="1.07315" layer="21"/>
<rectangle x1="2.6543" y1="1.06806875" x2="3.0099" y2="1.07315" layer="21"/>
<rectangle x1="1.9685" y1="1.07315" x2="2.24281875" y2="1.07823125" layer="21"/>
<rectangle x1="2.64921875" y1="1.07315" x2="2.6543" y2="1.07823125" layer="21"/>
<rectangle x1="2.664459375" y1="1.07315" x2="3.014978125" y2="1.07823125" layer="21"/>
<rectangle x1="1.9431" y1="1.07823125" x2="2.23265625" y2="1.08330625" layer="21"/>
<rectangle x1="2.65938125" y1="1.07823125" x2="2.6695375" y2="1.08330625" layer="21"/>
<rectangle x1="2.68478125" y1="1.07823125" x2="3.02005625" y2="1.08330625" layer="21"/>
<rectangle x1="1.780540625" y1="1.083309375" x2="2.222496875" y2="1.088390625" layer="21"/>
<rectangle x1="2.669540625" y1="1.083309375" x2="2.679696875" y2="1.088390625" layer="21"/>
<rectangle x1="2.689859375" y1="1.083309375" x2="3.025140625" y2="1.088390625" layer="21"/>
<rectangle x1="1.699259375" y1="1.088390625" x2="2.212340625" y2="1.093465625" layer="21"/>
<rectangle x1="2.68478125" y1="1.088390625" x2="2.68985625" y2="1.093465625" layer="21"/>
<rectangle x1="2.70001875" y1="1.088390625" x2="3.03021875" y2="1.093465625" layer="21"/>
<rectangle x1="1.678940625" y1="1.09346875" x2="2.207259375" y2="1.09855" layer="21"/>
<rectangle x1="2.689859375" y1="1.09346875" x2="2.694940625" y2="1.09855" layer="21"/>
<rectangle x1="2.7051" y1="1.09346875" x2="3.0353" y2="1.09855" layer="21"/>
<rectangle x1="1.6637" y1="1.09855" x2="2.20725625" y2="1.10363125" layer="21"/>
<rectangle x1="2.71018125" y1="1.09855" x2="3.04038125" y2="1.10363125" layer="21"/>
<rectangle x1="1.64338125" y1="1.10363125" x2="2.20725625" y2="1.10870625" layer="21"/>
<rectangle x1="2.7051" y1="1.10363125" x2="2.71018125" y2="1.10870625" layer="21"/>
<rectangle x1="2.720340625" y1="1.10363125" x2="3.045459375" y2="1.10870625" layer="21"/>
<rectangle x1="1.59258125" y1="1.108709375" x2="2.2123375" y2="1.113790625" layer="21"/>
<rectangle x1="2.715259375" y1="1.108709375" x2="2.720340625" y2="1.113790625" layer="21"/>
<rectangle x1="2.72541875" y1="1.108709375" x2="3.0505375" y2="1.113790625" layer="21"/>
<rectangle x1="1.56718125" y1="1.113790625" x2="2.21741875" y2="1.118865625" layer="21"/>
<rectangle x1="2.720340625" y1="1.113790625" x2="2.730496875" y2="1.118865625" layer="21"/>
<rectangle x1="2.73558125" y1="1.113790625" x2="3.05561875" y2="1.118865625" layer="21"/>
<rectangle x1="1.551940625" y1="1.11886875" x2="2.227578125" y2="1.12395" layer="21"/>
<rectangle x1="2.7305" y1="1.11886875" x2="3.0607" y2="1.12395" layer="21"/>
<rectangle x1="1.54178125" y1="1.12395" x2="2.24281875" y2="1.12903125" layer="21"/>
<rectangle x1="2.73558125" y1="1.12395" x2="3.06578125" y2="1.12903125" layer="21"/>
<rectangle x1="1.53161875" y1="1.12903125" x2="2.25805625" y2="1.13410625" layer="21"/>
<rectangle x1="2.745740625" y1="1.12903125" x2="3.070859375" y2="1.13410625" layer="21"/>
<rectangle x1="1.521459375" y1="1.134109375" x2="2.273296875" y2="1.139190625" layer="21"/>
<rectangle x1="2.75081875" y1="1.134109375" x2="3.0759375" y2="1.139190625" layer="21"/>
<rectangle x1="1.49098125" y1="1.139190625" x2="2.2885375" y2="1.144265625" layer="21"/>
<rectangle x1="2.7559" y1="1.139190625" x2="3.08101875" y2="1.144265625" layer="21"/>
<rectangle x1="1.470659375" y1="1.14426875" x2="2.303778125" y2="1.14935" layer="21"/>
<rectangle x1="2.766059375" y1="1.14426875" x2="3.086096875" y2="1.14935" layer="21"/>
<rectangle x1="1.4605" y1="1.14935" x2="2.31901875" y2="1.15443125" layer="21"/>
<rectangle x1="2.771140625" y1="1.14935" x2="3.091178125" y2="1.15443125" layer="21"/>
<rectangle x1="1.45541875" y1="1.15443125" x2="2.33425625" y2="1.15950625" layer="21"/>
<rectangle x1="2.77621875" y1="1.15443125" x2="3.09625625" y2="1.15950625" layer="21"/>
<rectangle x1="1.445259375" y1="1.159509375" x2="2.349496875" y2="1.164590625" layer="21"/>
<rectangle x1="2.78638125" y1="1.159509375" x2="3.1013375" y2="1.164590625" layer="21"/>
<rectangle x1="1.4351" y1="1.164590625" x2="2.3647375" y2="1.169665625" layer="21"/>
<rectangle x1="2.791459375" y1="1.164590625" x2="3.106415625" y2="1.169665625" layer="21"/>
<rectangle x1="1.399540625" y1="1.16966875" x2="2.379978125" y2="1.17475" layer="21"/>
<rectangle x1="2.796540625" y1="1.16966875" x2="3.111496875" y2="1.17475" layer="21"/>
<rectangle x1="1.3843" y1="1.17475" x2="2.39521875" y2="1.17983125" layer="21"/>
<rectangle x1="2.8067" y1="1.17475" x2="3.11658125" y2="1.17983125" layer="21"/>
<rectangle x1="1.374140625" y1="1.17983125" x2="2.405378125" y2="1.18490625" layer="21"/>
<rectangle x1="2.81178125" y1="1.17983125" x2="3.12165625" y2="1.18490625" layer="21"/>
<rectangle x1="1.36398125" y1="1.184909375" x2="2.42061875" y2="1.189990625" layer="21"/>
<rectangle x1="2.816859375" y1="1.184909375" x2="3.126740625" y2="1.189990625" layer="21"/>
<rectangle x1="1.3589" y1="1.189990625" x2="2.43585625" y2="1.195065625" layer="21"/>
<rectangle x1="2.82701875" y1="1.189990625" x2="3.13181875" y2="1.195065625" layer="21"/>
<rectangle x1="1.35381875" y1="1.19506875" x2="2.4511" y2="1.20015" layer="21"/>
<rectangle x1="2.8321" y1="1.19506875" x2="3.1369" y2="1.20015" layer="21"/>
<rectangle x1="1.3335" y1="1.20015" x2="2.4663375" y2="1.20523125" layer="21"/>
<rectangle x1="2.842259375" y1="1.20015" x2="3.141978125" y2="1.20523125" layer="21"/>
<rectangle x1="1.323340625" y1="1.20523125" x2="2.481578125" y2="1.21030625" layer="21"/>
<rectangle x1="2.847340625" y1="1.20523125" x2="3.147059375" y2="1.21030625" layer="21"/>
<rectangle x1="1.31318125" y1="1.210309375" x2="2.4917375" y2="1.215390625" layer="21"/>
<rectangle x1="2.85241875" y1="1.210309375" x2="3.15721875" y2="1.215390625" layer="21"/>
<rectangle x1="1.30301875" y1="1.215390625" x2="2.50698125" y2="1.220465625" layer="21"/>
<rectangle x1="2.8575" y1="1.215390625" x2="3.1623" y2="1.220465625" layer="21"/>
<rectangle x1="1.292859375" y1="1.22046875" x2="2.522215625" y2="1.22555" layer="21"/>
<rectangle x1="2.86258125" y1="1.22046875" x2="3.16738125" y2="1.22555" layer="21"/>
<rectangle x1="1.2827" y1="1.22555" x2="2.53745625" y2="1.23063125" layer="21"/>
<rectangle x1="2.867659375" y1="1.22555" x2="3.172459375" y2="1.23063125" layer="21"/>
<rectangle x1="1.267459375" y1="1.23063125" x2="2.552696875" y2="1.23570625" layer="21"/>
<rectangle x1="2.872740625" y1="1.23063125" x2="3.177540625" y2="1.23570625" layer="21"/>
<rectangle x1="1.26238125" y1="1.235709375" x2="2.5679375" y2="1.240790625" layer="21"/>
<rectangle x1="2.87781875" y1="1.235709375" x2="3.18261875" y2="1.240790625" layer="21"/>
<rectangle x1="1.25221875" y1="1.240790625" x2="2.5781" y2="1.245865625" layer="21"/>
<rectangle x1="2.8829" y1="1.240790625" x2="3.1877" y2="1.245865625" layer="21"/>
<rectangle x1="1.242059375" y1="1.24586875" x2="2.593340625" y2="1.25095" layer="21"/>
<rectangle x1="2.88798125" y1="1.24586875" x2="3.19278125" y2="1.25095" layer="21"/>
<rectangle x1="1.23698125" y1="1.25095" x2="2.6035" y2="1.25603125" layer="21"/>
<rectangle x1="2.893059375" y1="1.25095" x2="3.197859375" y2="1.25603125" layer="21"/>
<rectangle x1="1.22681875" y1="1.25603125" x2="2.61365625" y2="1.26110625" layer="21"/>
<rectangle x1="2.898140625" y1="1.25603125" x2="3.202940625" y2="1.26110625" layer="21"/>
<rectangle x1="1.216659375" y1="1.261109375" x2="2.623815625" y2="1.266190625" layer="21"/>
<rectangle x1="2.90321875" y1="1.261109375" x2="3.20801875" y2="1.266190625" layer="21"/>
<rectangle x1="1.21158125" y1="1.266190625" x2="2.63398125" y2="1.271265625" layer="21"/>
<rectangle x1="2.9083" y1="1.266190625" x2="3.2131" y2="1.271265625" layer="21"/>
<rectangle x1="1.2065" y1="1.27126875" x2="2.6441375" y2="1.27635" layer="21"/>
<rectangle x1="2.91338125" y1="1.27126875" x2="3.21818125" y2="1.27635" layer="21"/>
<rectangle x1="1.20141875" y1="1.27635" x2="1.69418125" y2="1.28143125" layer="21"/>
<rectangle x1="1.724659375" y1="1.27635" x2="2.654296875" y2="1.28143125" layer="21"/>
<rectangle x1="2.91338125" y1="1.27635" x2="3.22325625" y2="1.28143125" layer="21"/>
<rectangle x1="1.196340625" y1="1.28143125" x2="1.689096875" y2="1.28650625" layer="21"/>
<rectangle x1="1.73481875" y1="1.28143125" x2="2.66445625" y2="1.28650625" layer="21"/>
<rectangle x1="2.918459375" y1="1.28143125" x2="3.228340625" y2="1.28650625" layer="21"/>
<rectangle x1="1.18618125" y1="1.286509375" x2="1.68401875" y2="1.291590625" layer="21"/>
<rectangle x1="1.7399" y1="1.286509375" x2="1.92785625" y2="1.291590625" layer="21"/>
<rectangle x1="1.9431" y1="1.286509375" x2="1.9583375" y2="1.291590625" layer="21"/>
<rectangle x1="1.983740625" y1="1.286509375" x2="2.674615625" y2="1.291590625" layer="21"/>
<rectangle x1="2.923540625" y1="1.286509375" x2="3.233415625" y2="1.291590625" layer="21"/>
<rectangle x1="1.1811" y1="1.291590625" x2="1.6789375" y2="1.296665625" layer="21"/>
<rectangle x1="1.74498125" y1="1.291590625" x2="1.92278125" y2="1.296665625" layer="21"/>
<rectangle x1="2.0193" y1="1.291590625" x2="2.68478125" y2="1.296665625" layer="21"/>
<rectangle x1="2.92861875" y1="1.291590625" x2="3.2385" y2="1.296665625" layer="21"/>
<rectangle x1="1.17601875" y1="1.29666875" x2="1.6789375" y2="1.30175" layer="21"/>
<rectangle x1="1.74498125" y1="1.29666875" x2="1.92278125" y2="1.30175" layer="21"/>
<rectangle x1="2.0447" y1="1.29666875" x2="2.6949375" y2="1.30175" layer="21"/>
<rectangle x1="2.9337" y1="1.29666875" x2="3.24358125" y2="1.30175" layer="21"/>
<rectangle x1="1.165859375" y1="1.30175" x2="1.678940625" y2="1.30683125" layer="21"/>
<rectangle x1="1.74498125" y1="1.30175" x2="1.9177" y2="1.30683125" layer="21"/>
<rectangle x1="2.0701" y1="1.30175" x2="2.7051" y2="1.30683125" layer="21"/>
<rectangle x1="2.93878125" y1="1.30175" x2="3.24865625" y2="1.30683125" layer="21"/>
<rectangle x1="1.1557" y1="1.30683125" x2="1.6789375" y2="1.31190625" layer="21"/>
<rectangle x1="1.74498125" y1="1.30683125" x2="1.9177" y2="1.31190625" layer="21"/>
<rectangle x1="2.0955" y1="1.30683125" x2="2.71525625" y2="1.31190625" layer="21"/>
<rectangle x1="2.948940625" y1="1.30683125" x2="3.253740625" y2="1.31190625" layer="21"/>
<rectangle x1="1.145540625" y1="1.311909375" x2="1.678940625" y2="1.316990625" layer="21"/>
<rectangle x1="1.74498125" y1="1.311909375" x2="1.91261875" y2="1.316990625" layer="21"/>
<rectangle x1="2.11581875" y1="1.311909375" x2="2.72541875" y2="1.316990625" layer="21"/>
<rectangle x1="2.95401875" y1="1.311909375" x2="3.25881875" y2="1.316990625" layer="21"/>
<rectangle x1="1.1303" y1="1.316990625" x2="1.68401875" y2="1.322065625" layer="21"/>
<rectangle x1="1.7399" y1="1.316990625" x2="1.91261875" y2="1.322065625" layer="21"/>
<rectangle x1="2.136140625" y1="1.316990625" x2="2.735578125" y2="1.322065625" layer="21"/>
<rectangle x1="2.9591" y1="1.316990625" x2="3.2639" y2="1.322065625" layer="21"/>
<rectangle x1="1.12521875" y1="1.32206875" x2="1.68401875" y2="1.32715" layer="21"/>
<rectangle x1="1.73481875" y1="1.32206875" x2="1.9075375" y2="1.32715" layer="21"/>
<rectangle x1="2.15138125" y1="1.32206875" x2="2.75081875" y2="1.32715" layer="21"/>
<rectangle x1="2.96418125" y1="1.32206875" x2="3.26898125" y2="1.32715" layer="21"/>
<rectangle x1="1.115059375" y1="1.32715" x2="1.694178125" y2="1.33223125" layer="21"/>
<rectangle x1="1.724659375" y1="1.32715" x2="1.907540625" y2="1.33223125" layer="21"/>
<rectangle x1="2.16661875" y1="1.32715" x2="2.76098125" y2="1.33223125" layer="21"/>
<rectangle x1="2.96418125" y1="1.32715" x2="3.27405625" y2="1.33223125" layer="21"/>
<rectangle x1="1.10998125" y1="1.33223125" x2="1.90245625" y2="1.33730625" layer="21"/>
<rectangle x1="2.181859375" y1="1.33223125" x2="2.771140625" y2="1.33730625" layer="21"/>
<rectangle x1="2.969259375" y1="1.33223125" x2="3.279140625" y2="1.33730625" layer="21"/>
<rectangle x1="1.09981875" y1="1.337309375" x2="1.90245625" y2="1.342390625" layer="21"/>
<rectangle x1="2.19201875" y1="1.337309375" x2="2.7813" y2="1.342390625" layer="21"/>
<rectangle x1="2.974340625" y1="1.337309375" x2="3.284215625" y2="1.342390625" layer="21"/>
<rectangle x1="1.094740625" y1="1.342390625" x2="1.902459375" y2="1.347465625" layer="21"/>
<rectangle x1="2.207259375" y1="1.342390625" x2="2.791459375" y2="1.347465625" layer="21"/>
<rectangle x1="2.97941875" y1="1.342390625" x2="3.2893" y2="1.347465625" layer="21"/>
<rectangle x1="1.0795" y1="1.34746875" x2="1.90245625" y2="1.35255" layer="21"/>
<rectangle x1="2.21741875" y1="1.34746875" x2="2.80161875" y2="1.35255" layer="21"/>
<rectangle x1="2.9845" y1="1.34746875" x2="3.29438125" y2="1.35255" layer="21"/>
<rectangle x1="1.069340625" y1="1.35255" x2="1.902459375" y2="1.35763125" layer="21"/>
<rectangle x1="2.22758125" y1="1.35255" x2="2.81178125" y2="1.35763125" layer="21"/>
<rectangle x1="2.9895812

path: /DC-DC Buck Converter Rev1.brd

license_type: permissive

branch_name: refs/heads/master

extension: brd

filename: DC-DC Buck Converter Rev1.brd